package org.odata4j.format.xml; import java.io.Reader; import org.odata4j.core.OSimpleObject; import org.odata4j.core.OSimpleObjects; import org.odata4j.edm.EdmSimpleType; import org.odata4j.format.FormatParser; import org.odata4j.format.Settings; import org.odata4j.stax2.XMLEventReader2; import org.odata4j.stax2.util.StaxUtil; public class AtomSimpleObjectFormatParser implements FormatParser<OSimpleObject<?>> { private final Settings settings; public AtomSimpleObjectFormatParser(Settings settings) { this.settings = settings; } @Override public OSimpleObject<?> parse(Reader reader) { XMLEventReader2 xmlReader = StaxUtil.newXMLEventReader(reader); xmlReader.nextEvent(); // start doc xmlReader.nextEvent(); // start element String text = xmlReader.getElementText(); EdmSimpleType<?> type = EdmSimpleType.STRING; if (settings != null && settings.parseType != null && settings.parseType.isSimple()) type = (EdmSimpleType<?>) settings.parseType; return OSimpleObjects.parse(type, text); } }