public void append()

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);
    }
  }