Dépôt officiel du code source de l'ERP OpenConcerto
Blame | Last modification | View Log | RSS feed
/*
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
*
* Copyright 2011 OpenConcerto, by ILM Informatique. All rights reserved.
*
* The contents of this file are subject to the terms of the GNU General Public License Version 3
* only ("GPL"). You may not use this file except in compliance with the License. You can obtain a
* copy of the License at http://www.gnu.org/licenses/gpl-3.0.html See the License for the specific
* language governing permissions and limitations under the License.
*
* When distributing the software, include this License Header Notice in each file.
*/
package org.openconcerto.xml;
import java.beans.XMLDecoder;
import java.beans.XMLEncoder;
import java.util.Iterator;
import org.jdom2.Element;
/**
* To encode and decode using {@link XMLEncoder} and {@link XMLDecoder}.
*
* @author Sylvain CUAZ
*/
public final class XMLDecoderJDOM extends AbstractXMLDecoder<Element, RuntimeException> {
@Override
protected String getAttributeValue(Element elem, String attrName) {
return elem.getAttributeValue(attrName);
}
@Override
protected String getLocalName(Element elem) {
return elem.getName();
}
@Override
protected String getElementText(Element elem) {
return elem.getText();
}
@Override
protected Element getFirstChild(Element elem) {
return elem.getChildren().get(0);
}
@Override
protected String toString(Element elem) {
return JDOM2Utils.output(elem);
}
@Override
protected Children<Element> createChildren(final Element elem) {
return new Children<Element>() {
private final Iterator<Element> iter = elem.getChildren().iterator();
@Override
public Element getNextChild() {
if (!this.iter.hasNext())
return null;
final Element res = this.iter.next();
assert res != null;
return res;
}
};
}
protected XMLDecoderJDOM() {
}
}