serviceRoot(properties.getServiceRoot()).build() : inlineData.getCollectionProperties(); JsonFeedEntitySerializer jsonFeedEntityProducer = new JsonFeedEntitySerializer(inlineProperties);
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(); } }
@Override public ODataResponse writeFeed(EdmEntitySet entitySet, EntityCollection data) throws EntityProviderException { final EntityCollectionSerializerProperties properties = data == null ? EntityCollectionSerializerProperties.serviceRoot(null).build() : data.getCollectionProperties() == null ? EntityCollectionSerializerProperties.serviceRoot(null).build() : data.getCollectionProperties(); final EntityInfoAggregator entityInfo = EntityInfoAggregator.create(entitySet, null); CircleStreamBuffer buffer = new CircleStreamBuffer(); try { BufferedWriter writer = new BufferedWriter(new OutputStreamWriter(buffer.getOutputStream(), DEFAULT_CHARSET)); new JsonFeedEntitySerializer(properties).appendAsObject(writer, entityInfo, data); writer.flush(); buffer.closeWrite(); return ODataResponse.entity(buffer.getInputStream()).build(); } catch (EntityProviderException e) { buffer.close(); throw e; } catch (Exception e) { buffer.close(); throw new EntityProviderProducerException(EntityProviderException.EXCEPTION_OCCURRED.addContent(e.getClass() .getSimpleName()), e); } }
/** * * @param properties * @return EntityCollectionPropertiesBuilder */ public static EntityCollectionPropertiesBuilder fromProperties (final EntityCollectionSerializerProperties properties) { final EntityCollectionPropertiesBuilder builder = EntityCollectionSerializerProperties.serviceRoot(properties.getServiceRoot()); return builder.fromProperties(properties); } }
/** * * @param properties */ public AtomFeedSerializer(final EntityCollectionSerializerProperties properties) { this.properties = properties == null ? EntityCollectionSerializerProperties.serviceRoot(null).build() : properties; }
/** * * @param serviceRoot * @return EntityCollectionPropertiesBuilder */ public static EntityCollectionPropertiesBuilder serviceRoot(final URI serviceRoot) { return new EntityCollectionPropertiesBuilder().serviceRoot(serviceRoot); }
/** * * @param properties * @return EntityCollectionPropertiesBuilder */ public static EntityCollectionPropertiesBuilder fromProperties (final EntityCollectionSerializerProperties properties) { final EntityCollectionPropertiesBuilder builder = EntityCollectionSerializerProperties.serviceRoot(properties.getServiceRoot()); return builder.fromProperties(properties); } }
/** * * @param properties * @throws EntityProviderException */ public JsonFeedEntitySerializer(final EntityCollectionSerializerProperties properties) { this.properties = properties == null ? EntityCollectionSerializerProperties. serviceRoot(null).build() : properties; }
/** * * @param serviceRoot * @return EntityCollectionPropertiesBuilder */ public static EntityCollectionPropertiesBuilder serviceRoot(final URI serviceRoot) { return new EntityCollectionPropertiesBuilder().serviceRoot(serviceRoot); }