/** * * @param properties * @return EntitySerializerPropertiesBuilder */ public static EntitySerializerPropertiesBuilder fromProperties (final EntitySerializerProperties properties) { final EntitySerializerPropertiesBuilder builder = EntitySerializerProperties.serviceRoot(properties.getServiceRoot()); return builder.fromProperties(properties); } }
private String createCustomTargetLink(final EntityInfoAggregator entityInfo, final String navigationPropertyName, final Map<String, Object> key) throws EntityProviderException, EdmException { String target; final EntityInfoAggregator targetEntityInfo = EntityInfoAggregator.create( entityInfo.getEntitySet().getRelatedEntitySet( (EdmNavigationProperty) entityInfo.getEntityType().getProperty(navigationPropertyName))); target = (properties.getServiceRoot() == null ? "" : properties.getServiceRoot().toASCIIString()) + AtomEntryEntitySerializer.createSelfLink(targetEntityInfo, key, null, properties.isKeyAutoGenerated(), false); return target; }
/** * * @param writeProperties */ public XmlPropertyEntitySerializer(final EntitySerializerProperties writeProperties) { this(writeProperties.isValidatingFacets()); }
/** * * @param properties */ public AtomEntryEntitySerializer(final EntitySerializerProperties properties) { this.properties = properties == null ? EntitySerializerProperties.serviceRoot(null).build() : properties; }
if (properties.getServiceRoot() == null) { throw new EntityProviderProducerException(EntityProviderException.MANDATORY_WRITE_PROPERTY); writer.writeAttribute(Edm.PREFIX_XML, Edm.NAMESPACE_XML_1998, FormatXml.XML_BASE, properties.getServiceRoot() .toASCIIString()); if (properties.isIncludeMetadata()) { selfLink = createSelfLink(eia, data.getProperties(), null, properties.isKeyAutoGenerated(), false); appendAtomMandatoryParts(writer, eia, data.getProperties()); appendAtomOptionalParts(writer, eia, data.getProperties()); if (properties.isIncludeMetadata()) { appendAtomContentPart(writer, eia, data.getProperties(), selfLink);
private void appendInlineFeed(final XMLStreamWriter writer, final String navigationPropertyName, final EntityInfoAggregator eia, final Entity data) throws EntityProviderException, XMLStreamException, EdmException { if (eia.getNavigationPropertyNames().contains(navigationPropertyName) && data != null && data.getNavigations().containsKey(navigationPropertyName)) { EdmNavigationProperty navProp = (EdmNavigationProperty) eia.getEntityType().getProperty(navigationPropertyName); if (navProp == null) { throw new EntityProviderProducerException(EntityProviderException.EXPANDNOTSUPPORTED); } EntityCollection inlineData; inlineData = (EntityCollection) data.getNavigation(navigationPropertyName); if (inlineData == null) { inlineData = new EntityCollection(); } if (inlineData.getEntities().isEmpty()) { return; } writer.writeStartElement(Edm.NAMESPACE_M_2007_08, FormatXml.M_INLINE); EntityCollectionSerializerProperties inlineProperties = inlineData.getCollectionProperties() == null ? EntityCollectionSerializerProperties.serviceRoot(data.getWriteProperties().getServiceRoot()).build() : inlineData.getCollectionProperties(); EdmEntitySet inlineEntitySet = eia.getEntitySet().getRelatedEntitySet(navProp); AtomFeedSerializer inlineFeedProducer = new AtomFeedSerializer(inlineProperties); inlineData.setCollectionProperties(inlineProperties); EntityInfoAggregator inlineEia = EntityInfoAggregator.create(inlineEntitySet, null); inlineFeedProducer.append(writer, inlineEia, inlineData, true); writer.writeEndElement(); } }
if (navigationKeyMap != null && !navigationKeyMap.isEmpty()) { appendAtomNavigationLink(writer, createSelfLink(targetEntityInfo, navigationKeyMap, null, properties.isKeyAutoGenerated(), false), entry.getKey(), isFeed); writer.writeEndElement(); String navigationPropertyName = entry.getKey(); String selfLink = createSelfLink(eia, data.getProperties(), navigationPropertyName, properties.isKeyAutoGenerated(), false); appendNavigationLink(writer, selfLink, navigationPropertyName); String navigationPropertyName = entry.getKey(); String selfLink = createSelfLink(eia, data.getProperties(), navigationPropertyName, properties.isKeyAutoGenerated(), false); if (!((EntityCollection) entry.getValue()).getEntities().isEmpty()) { appendNavigationLink(writer, selfLink, navigationPropertyName);
if (properties.isIncludeMetadata()) { writeMetadata(entityInfo, data.getProperties(), type); containsMetadata = true;
/** * * @param properties * @throws EntityProviderException */ public JsonEntryEntitySerializer(final EntitySerializerProperties properties) { this.properties = properties == null ? EntitySerializerProperties.serviceRoot(null).build() : properties; }
/** * * @param properties * @return EntitySerializerPropertiesBuilder */ public static EntitySerializerPropertiesBuilder fromProperties (final EntitySerializerProperties properties) { final EntitySerializerPropertiesBuilder builder = EntitySerializerProperties.serviceRoot(properties.getServiceRoot()); return builder.fromProperties(properties); } }
@Override public ODataResponse writeEntry(EdmEntitySet entitySet, Entity data) throws EntityProviderException { final EntitySerializerProperties properties = data == null ? EntitySerializerProperties.serviceRoot(null).build() : data.getWriteProperties() == null ? EntitySerializerProperties.serviceRoot(null).build() : data.getWriteProperties(); final EntityInfoAggregator entityInfo = EntityInfoAggregator.create(entitySet, null); CircleStreamBuffer buffer = new CircleStreamBuffer(); try { BufferedWriter writer = new BufferedWriter(new OutputStreamWriter(buffer.getOutputStream(), DEFAULT_CHARSET)); JsonEntryEntitySerializer producer = new JsonEntryEntitySerializer(properties); producer.append(writer, entityInfo, data); writer.flush(); buffer.closeWrite(); return ODataResponse.entity(buffer.getInputStream()) .idLiteral(producer.getLocation()) .build(); } catch (EntityProviderException e) { buffer.close(); throw e; } catch (Exception e) { buffer.close(); throw new EntityProviderProducerException(EntityProviderException.EXCEPTION_OCCURRED.addContent(e.getClass() .getSimpleName()), e); } }
try { writer.writeStartElement(FormatXml.ATOM_ID); String idlocation = properties.getServiceRoot().toASCIIString() + createSelfLink( eia, data, null, properties.isKeyAutoGenerated(), true);; writer.writeCharacters(idlocation); writer.writeEndElement();
/** * @param entityInfo * @param data * @param omitComma * @param propertyName * @return * @throws IOException * @throws EdmException * @throws EntityProviderException */ private boolean appendPropertyNameValue(final EntityInfoAggregator entityInfo, final Map<String, Object> data, boolean omitComma, String propertyName) throws IOException, EdmException, EntityProviderException { if (omitComma) { omitComma = false; //NOSONAR } else { jsonStreamWriter.separator(); } jsonStreamWriter.name(propertyName); JsonPropertyEntitySerializer.appendPropertyValue(jsonStreamWriter, entityInfo.getPropertyInfo(propertyName), data.get(propertyName), properties.isValidatingFacets()); return omitComma; }
serviceRoot(properties.getServiceRoot()).build() : inlineData.getCollectionProperties(); JsonFeedEntitySerializer jsonFeedEntityProducer = new JsonFeedEntitySerializer(inlineProperties); final EntitySerializerProperties inlineProperties = inlineData.getWriteProperties() == null ? EntitySerializerProperties. serviceRoot(properties.getServiceRoot()).build() : inlineData.getWriteProperties(); final EntityInfoAggregator inlineEntityInfo = EntityInfoAggregator.create(inlineEntitySet, null);
entity.setWriteProperties(EntitySerializerProperties.serviceRoot(URI.create(serviceUri)).build()); try {
private void writeMetadata(final EntityInfoAggregator entityInfo, final Map<String, Object> data, final EdmEntityType type) throws IOException, EntityProviderException, EdmException { if (properties.getServiceRoot() == null) { location = ""; idlocation = ""; } else { location = properties.getServiceRoot().toASCIIString() + AtomEntryEntitySerializer.createSelfLink(entityInfo, data, null, properties.isKeyAutoGenerated(), false); idlocation = properties.getServiceRoot().toASCIIString() + AtomEntryEntitySerializer.createSelfLink(entityInfo, data, null, properties.isKeyAutoGenerated(), true);
private void appendEntries(final XMLStreamWriter writer, final EntityInfoAggregator eia, final EntityCollection data) throws EntityProviderException { AtomEntryEntitySerializer entryProvider; for (Entity singleEntryData : data.getEntities()) { entryProvider = singleEntryData.getWriteProperties() == null? data.getGlobalEntityProperties() == null ? new AtomEntryEntitySerializer (EntitySerializerProperties.serviceRoot(data.getCollectionProperties().getServiceRoot()).build()) : new AtomEntryEntitySerializer(data.getGlobalEntityProperties()): new AtomEntryEntitySerializer(singleEntryData.getWriteProperties()); entryProvider.append(writer, eia, singleEntryData, false, true); } }
private void appendEntries(final Writer writer, final EntityInfoAggregator entityInfo, final EntityCollection data, JsonStreamWriter jsonStreamWriter) throws EntityProviderException, IOException { boolean first = true; for (Entity entryData : data.getEntities()) { if (first) { first = false; } else { jsonStreamWriter.separator(); } EntitySerializerProperties entryProperties = entryData == null || entryData.getWriteProperties() == null ? data.getGlobalEntityProperties() != null? data.getGlobalEntityProperties(): EntitySerializerProperties. serviceRoot(properties.getServiceRoot()). build() : entryData.getWriteProperties(); JsonEntryEntitySerializer entryProducer = new JsonEntryEntitySerializer(entryProperties); entryProducer.append(writer, entityInfo, entryData); } } }
entity.setWriteProperties(EntitySerializerProperties.serviceRoot(URI.create(serviceUri)).build()); try { response = ODataClient.newInstance().createSerializer(contentType).writeEntry(entitySet, entity);