package org.odata4j.format.xml; import java.io.Writer; import javax.ws.rs.core.UriInfo; import org.odata4j.core.OCollection; import org.odata4j.core.ODataConstants; import org.odata4j.format.FormatWriter; import org.odata4j.producer.CollectionResponse; import org.odata4j.stax2.QName2; import org.odata4j.stax2.XMLFactoryProvider2; import org.odata4j.stax2.XMLWriter2; public class AtomCollectionFormatWriter extends XmlFormatWriter implements FormatWriter<CollectionResponse<?>> { @Override public void write(UriInfo uriInfo, Writer w, CollectionResponse<?> target) { XMLWriter2 writer = XMLFactoryProvider2.getInstance().newXMLWriterFactory2().createXMLWriter(w); writer.startDocument(); writer.startElement(new QName2(d, target.getCollectionName(), "d")); writer.writeNamespace("d", d); writer.writeNamespace("m", m); OCollection<?> coll = target.getCollection(); for (Object e : coll) { this.writeProperty(writer, "element", coll.getType(), e, false, !coll.getType().isSimple()); } writer.endElement(target.getCollectionName()); writer.endDocument(); } @Override public String getContentType() { return ODataConstants.APPLICATION_XML_CHARSET_UTF8; } }