in odata2-lib/odata-core/src/main/java/org/apache/olingo/odata2/core/ep/producer/AtomEntryEntityProducer.java [79:149]
public void append(final XMLStreamWriter writer, final EntityInfoAggregator eia, final Map<String, Object> data,
final boolean isRootElement, final boolean isFeedPart) throws EntityProviderException {
try {
writer.writeStartElement(FormatXml.ATOM_ENTRY);
if (isRootElement) {
writer.writeDefaultNamespace(Edm.NAMESPACE_ATOM_2005);
writer.writeNamespace(Edm.PREFIX_M, Edm.NAMESPACE_M_2007_08);
writer.writeNamespace(Edm.PREFIX_D, Edm.NAMESPACE_D_2007_08);
}
if (!isFeedPart) {
writer.writeAttribute(Edm.PREFIX_XML, Edm.NAMESPACE_XML_1998, FormatXml.XML_BASE, properties.getServiceRoot()
.toASCIIString());
}
if (!properties.isContentOnly() && !properties.isOmitETag()) {
etag = createETag(eia, data);
if (etag != null) {
writer.writeAttribute(Edm.NAMESPACE_M_2007_08, FormatXml.M_ETAG, etag);
}
}
String selfLink = null;
if (!properties.isContentOnly()) {
// write all atom infos (mandatory and optional)
selfLink = createSelfLink(eia, data, null);
appendAtomMandatoryParts(writer, eia, data, selfLink);
appendAtomOptionalParts(writer, eia, data);
}
if (eia.getEntityType().hasStream()) {
// write all links
if (!properties.isContentOnly()) {
appendAtomEditLink(writer, eia, selfLink);
appendAtomContentLink(writer, eia, data, selfLink);
appendAtomNavigationLinks(writer, eia, data);
} else {
appendAdditinalLinks(writer, eia, data);
}
// write properties/content
appendCustomProperties(writer, eia, data);
if (!properties.isContentOnly()) {
appendAtomContentPart(writer, eia, data, selfLink);
}
appendProperties(writer, eia, data);
} else {
// write all links
if (!properties.isContentOnly()) {
appendAtomEditLink(writer, eia, selfLink);
appendAtomNavigationLinks(writer, eia, data);
} else {
appendAdditinalLinks(writer, eia, data);
}
// write properties/content
appendCustomProperties(writer, eia, data);
writer.writeStartElement(FormatXml.ATOM_CONTENT);
writer.writeAttribute(FormatXml.ATOM_TYPE, ContentType.APPLICATION_XML.toString());
appendProperties(writer, eia, data);
writer.writeEndElement();
}
writer.writeEndElement();
writer.flush();
} catch (XMLStreamException e) {
throw new EntityProviderProducerException(EntityProviderException.COMMON, e);
} catch (EdmException e) {
throw new EntityProviderProducerException(e.getMessageReference(), e);
} catch (URISyntaxException e) {
throw new EntityProviderProducerException(EntityProviderException.COMMON, e);
}
}