package org.odata4j.format.xml; import java.io.Reader; import java.util.ArrayList; import java.util.List; import org.odata4j.format.FormatParser; import org.odata4j.format.SingleLink; import org.odata4j.format.SingleLinks; import org.odata4j.stax2.QName2; import org.odata4j.stax2.XMLEvent2; import org.odata4j.stax2.XMLEventReader2; import org.odata4j.stax2.util.StaxUtil; public class AtomSingleLinkFormatParser extends XmlFormatParser implements FormatParser<SingleLink> { private static final QName2 URI = new QName2(NS_DATASERVICES, "uri"); public static Iterable<SingleLink> parseLinks(XMLEventReader2 reader) { List<SingleLink> rt = new ArrayList<SingleLink>(); while (reader.hasNext()) { XMLEvent2 event = reader.nextEvent(); if (isStartElement(event, URI)) { rt.add(SingleLinks.create(reader.getElementText())); } } return rt; } @Override public SingleLink parse(Reader reader) { return parseLinks(StaxUtil.newXMLEventReader(reader)).iterator().next(); } }