You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@olingo.apache.org by mi...@apache.org on 2013/09/24 14:42:40 UTC
[13/51] [partial] Refactored project structure
http://git-wip-us.apache.org/repos/asf/incubator-olingo-odata2/blob/57599da6/odata-core/src/main/java/org/apache/olingo/odata2/core/ep/producer/XmlCollectionEntityProducer.java
----------------------------------------------------------------------
diff --git a/odata-core/src/main/java/org/apache/olingo/odata2/core/ep/producer/XmlCollectionEntityProducer.java b/odata-core/src/main/java/org/apache/olingo/odata2/core/ep/producer/XmlCollectionEntityProducer.java
deleted file mode 100644
index ea36828..0000000
--- a/odata-core/src/main/java/org/apache/olingo/odata2/core/ep/producer/XmlCollectionEntityProducer.java
+++ /dev/null
@@ -1,55 +0,0 @@
-/*******************************************************************************
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- ******************************************************************************/
-package org.apache.olingo.odata2.core.ep.producer;
-
-import java.util.List;
-
-import javax.xml.stream.XMLStreamException;
-import javax.xml.stream.XMLStreamWriter;
-
-import org.apache.olingo.odata2.api.edm.Edm;
-import org.apache.olingo.odata2.api.ep.EntityProviderException;
-import org.apache.olingo.odata2.core.ep.aggregator.EntityPropertyInfo;
-import org.apache.olingo.odata2.core.ep.util.FormatXml;
-
-/**
- * Provider for writing a collection of simple-type or complex-type instances
- *
- */
-public class XmlCollectionEntityProducer {
-
- public static void append(final XMLStreamWriter writer, final EntityPropertyInfo propertyInfo, final List<?> data)
- throws EntityProviderException {
- try {
- writer.writeStartElement(propertyInfo.getName());
- writer.writeDefaultNamespace(Edm.NAMESPACE_D_2007_08);
- if (propertyInfo.isComplex()) {
- writer.writeNamespace(Edm.PREFIX_M, Edm.NAMESPACE_M_2007_08);
- }
- XmlPropertyEntityProducer provider = new XmlPropertyEntityProducer();
- for (final Object propertyData : data) {
- provider.append(writer, FormatXml.D_ELEMENT, propertyInfo, propertyData);
- }
- writer.writeEndElement();
- writer.flush();
- } catch (XMLStreamException e) {
- throw new EntityProviderException(EntityProviderException.COMMON, e);
- }
- }
-}
http://git-wip-us.apache.org/repos/asf/incubator-olingo-odata2/blob/57599da6/odata-core/src/main/java/org/apache/olingo/odata2/core/ep/producer/XmlErrorDocumentProducer.java
----------------------------------------------------------------------
diff --git a/odata-core/src/main/java/org/apache/olingo/odata2/core/ep/producer/XmlErrorDocumentProducer.java b/odata-core/src/main/java/org/apache/olingo/odata2/core/ep/producer/XmlErrorDocumentProducer.java
deleted file mode 100644
index 05ee992..0000000
--- a/odata-core/src/main/java/org/apache/olingo/odata2/core/ep/producer/XmlErrorDocumentProducer.java
+++ /dev/null
@@ -1,72 +0,0 @@
-/*******************************************************************************
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- ******************************************************************************/
-package org.apache.olingo.odata2.core.ep.producer;
-
-import java.util.Locale;
-
-import javax.xml.stream.XMLStreamException;
-import javax.xml.stream.XMLStreamWriter;
-
-import org.apache.olingo.odata2.api.edm.Edm;
-import org.apache.olingo.odata2.core.ep.util.FormatXml;
-
-public class XmlErrorDocumentProducer {
-
- public void writeErrorDocument(final XMLStreamWriter writer, final String errorCode, final String message,
- final Locale locale, final String innerError) throws XMLStreamException {
- writer.writeStartDocument();
- writer.writeStartElement(FormatXml.M_ERROR);
- writer.writeDefaultNamespace(Edm.NAMESPACE_M_2007_08);
- writer.writeStartElement(FormatXml.M_CODE);
- if (errorCode != null) {
- writer.writeCharacters(errorCode);
- }
- writer.writeEndElement();
- writer.writeStartElement(FormatXml.M_MESSAGE);
- if (locale != null) {
- writer.writeAttribute(Edm.PREFIX_XML, Edm.NAMESPACE_XML_1998, FormatXml.XML_LANG, getLocale(locale));
- } else {
- writer.writeAttribute(Edm.PREFIX_XML, Edm.NAMESPACE_XML_1998, FormatXml.XML_LANG, "");
- }
- if (message != null) {
- writer.writeCharacters(message);
- }
- writer.writeEndElement();
-
- if (innerError != null) {
- writer.writeStartElement(FormatXml.M_INNER_ERROR);
- writer.writeCharacters(innerError);
- writer.writeEndElement();
- }
-
- writer.writeEndDocument();
- }
-
- /**
- * Gets language and country as defined in RFC 4646 based on {@link Locale}.
- */
- private String getLocale(final Locale locale) {
- if (locale.getCountry().isEmpty()) {
- return locale.getLanguage();
- } else {
- return locale.getLanguage() + "-" + locale.getCountry();
- }
- }
-
-}
http://git-wip-us.apache.org/repos/asf/incubator-olingo-odata2/blob/57599da6/odata-core/src/main/java/org/apache/olingo/odata2/core/ep/producer/XmlLinkEntityProducer.java
----------------------------------------------------------------------
diff --git a/odata-core/src/main/java/org/apache/olingo/odata2/core/ep/producer/XmlLinkEntityProducer.java b/odata-core/src/main/java/org/apache/olingo/odata2/core/ep/producer/XmlLinkEntityProducer.java
deleted file mode 100644
index fe59c4a..0000000
--- a/odata-core/src/main/java/org/apache/olingo/odata2/core/ep/producer/XmlLinkEntityProducer.java
+++ /dev/null
@@ -1,61 +0,0 @@
-/*******************************************************************************
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- ******************************************************************************/
-package org.apache.olingo.odata2.core.ep.producer;
-
-import java.util.Map;
-
-import javax.xml.stream.XMLStreamException;
-import javax.xml.stream.XMLStreamWriter;
-
-import org.apache.olingo.odata2.api.edm.Edm;
-import org.apache.olingo.odata2.api.ep.EntityProviderException;
-import org.apache.olingo.odata2.api.ep.EntityProviderWriteProperties;
-import org.apache.olingo.odata2.core.ep.aggregator.EntityInfoAggregator;
-import org.apache.olingo.odata2.core.ep.util.FormatXml;
-
-/**
- * Provider for writing a single link.
- *
- */
-public class XmlLinkEntityProducer {
-
- private final EntityProviderWriteProperties properties;
-
- public XmlLinkEntityProducer(final EntityProviderWriteProperties properties) throws EntityProviderException {
- this.properties = properties == null ? EntityProviderWriteProperties.serviceRoot(null).build() : properties;
- }
-
- public void append(final XMLStreamWriter writer, final EntityInfoAggregator entityInfo,
- final Map<String, Object> data, final boolean isRootElement) throws EntityProviderException {
- try {
- writer.writeStartElement(FormatXml.D_URI);
- if (isRootElement) {
- writer.writeDefaultNamespace(Edm.NAMESPACE_D_2007_08);
- }
- if (properties.getServiceRoot() != null) {
- writer.writeCharacters(properties.getServiceRoot().toASCIIString());
- }
- writer.writeCharacters(AtomEntryEntityProducer.createSelfLink(entityInfo, data, null));
- writer.writeEndElement();
- writer.flush();
- } catch (final XMLStreamException e) {
- throw new EntityProviderException(EntityProviderException.COMMON, e);
- }
- }
-}
http://git-wip-us.apache.org/repos/asf/incubator-olingo-odata2/blob/57599da6/odata-core/src/main/java/org/apache/olingo/odata2/core/ep/producer/XmlLinksEntityProducer.java
----------------------------------------------------------------------
diff --git a/odata-core/src/main/java/org/apache/olingo/odata2/core/ep/producer/XmlLinksEntityProducer.java b/odata-core/src/main/java/org/apache/olingo/odata2/core/ep/producer/XmlLinksEntityProducer.java
deleted file mode 100644
index 84eff3b..0000000
--- a/odata-core/src/main/java/org/apache/olingo/odata2/core/ep/producer/XmlLinksEntityProducer.java
+++ /dev/null
@@ -1,66 +0,0 @@
-/*******************************************************************************
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- ******************************************************************************/
-package org.apache.olingo.odata2.core.ep.producer;
-
-import java.util.List;
-import java.util.Map;
-
-import javax.xml.stream.XMLStreamException;
-import javax.xml.stream.XMLStreamWriter;
-
-import org.apache.olingo.odata2.api.edm.Edm;
-import org.apache.olingo.odata2.api.ep.EntityProviderException;
-import org.apache.olingo.odata2.api.ep.EntityProviderWriteProperties;
-import org.apache.olingo.odata2.core.ep.aggregator.EntityInfoAggregator;
-import org.apache.olingo.odata2.core.ep.util.FormatXml;
-
-/**
- * Provider for writing a collection of links
- *
- */
-public class XmlLinksEntityProducer {
-
- private final EntityProviderWriteProperties properties;
-
- public XmlLinksEntityProducer(final EntityProviderWriteProperties properties) throws EntityProviderException {
- this.properties = properties == null ? EntityProviderWriteProperties.serviceRoot(null).build() : properties;
- }
-
- public void append(final XMLStreamWriter writer, final EntityInfoAggregator entityInfo,
- final List<Map<String, Object>> data) throws EntityProviderException {
- try {
- writer.writeStartElement(FormatXml.D_LINKS);
- writer.writeDefaultNamespace(Edm.NAMESPACE_D_2007_08);
- if (properties.getInlineCount() != null) {
- writer.writeStartElement(Edm.PREFIX_M, FormatXml.M_COUNT, Edm.NAMESPACE_M_2007_08);
- writer.writeNamespace(Edm.PREFIX_M, Edm.NAMESPACE_M_2007_08);
- writer.writeCharacters(properties.getInlineCount().toString());
- writer.writeEndElement();
- }
- XmlLinkEntityProducer provider = new XmlLinkEntityProducer(properties);
- for (final Map<String, Object> entityData : data) {
- provider.append(writer, entityInfo, entityData, false);
- }
- writer.writeEndElement();
- writer.flush();
- } catch (final XMLStreamException e) {
- throw new EntityProviderException(EntityProviderException.COMMON, e);
- }
- }
-}
http://git-wip-us.apache.org/repos/asf/incubator-olingo-odata2/blob/57599da6/odata-core/src/main/java/org/apache/olingo/odata2/core/ep/producer/XmlMetadataProducer.java
----------------------------------------------------------------------
diff --git a/odata-core/src/main/java/org/apache/olingo/odata2/core/ep/producer/XmlMetadataProducer.java b/odata-core/src/main/java/org/apache/olingo/odata2/core/ep/producer/XmlMetadataProducer.java
deleted file mode 100644
index 51a09b4..0000000
--- a/odata-core/src/main/java/org/apache/olingo/odata2/core/ep/producer/XmlMetadataProducer.java
+++ /dev/null
@@ -1,652 +0,0 @@
-/*******************************************************************************
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- ******************************************************************************/
-package org.apache.olingo.odata2.core.ep.producer;
-
-import java.util.ArrayList;
-import java.util.Collection;
-import java.util.HashMap;
-import java.util.Locale;
-import java.util.Map;
-
-import javax.xml.stream.FactoryConfigurationError;
-import javax.xml.stream.XMLStreamException;
-import javax.xml.stream.XMLStreamWriter;
-
-import org.apache.olingo.odata2.api.edm.Edm;
-import org.apache.olingo.odata2.api.edm.EdmFacets;
-import org.apache.olingo.odata2.api.edm.provider.AnnotationAttribute;
-import org.apache.olingo.odata2.api.edm.provider.AnnotationElement;
-import org.apache.olingo.odata2.api.edm.provider.Association;
-import org.apache.olingo.odata2.api.edm.provider.AssociationEnd;
-import org.apache.olingo.odata2.api.edm.provider.AssociationSet;
-import org.apache.olingo.odata2.api.edm.provider.AssociationSetEnd;
-import org.apache.olingo.odata2.api.edm.provider.ComplexProperty;
-import org.apache.olingo.odata2.api.edm.provider.ComplexType;
-import org.apache.olingo.odata2.api.edm.provider.CustomizableFeedMappings;
-import org.apache.olingo.odata2.api.edm.provider.DataServices;
-import org.apache.olingo.odata2.api.edm.provider.Documentation;
-import org.apache.olingo.odata2.api.edm.provider.EntityContainer;
-import org.apache.olingo.odata2.api.edm.provider.EntitySet;
-import org.apache.olingo.odata2.api.edm.provider.EntityType;
-import org.apache.olingo.odata2.api.edm.provider.FunctionImport;
-import org.apache.olingo.odata2.api.edm.provider.FunctionImportParameter;
-import org.apache.olingo.odata2.api.edm.provider.Key;
-import org.apache.olingo.odata2.api.edm.provider.NavigationProperty;
-import org.apache.olingo.odata2.api.edm.provider.OnDelete;
-import org.apache.olingo.odata2.api.edm.provider.Property;
-import org.apache.olingo.odata2.api.edm.provider.PropertyRef;
-import org.apache.olingo.odata2.api.edm.provider.ReferentialConstraint;
-import org.apache.olingo.odata2.api.edm.provider.ReferentialConstraintRole;
-import org.apache.olingo.odata2.api.edm.provider.Schema;
-import org.apache.olingo.odata2.api.edm.provider.SimpleProperty;
-import org.apache.olingo.odata2.api.edm.provider.Using;
-import org.apache.olingo.odata2.api.ep.EntityProviderException;
-import org.apache.olingo.odata2.core.ep.util.XmlMetadataConstants;
-import org.apache.olingo.odata2.core.exception.ODataRuntimeException;
-
-public class XmlMetadataProducer {
-
- public static void writeMetadata(final DataServices metadata, final XMLStreamWriter xmlStreamWriter,
- Map<String, String> predefinedNamespaces) throws EntityProviderException {
-
- try {
- xmlStreamWriter.writeStartDocument();
- xmlStreamWriter.setPrefix(Edm.PREFIX_EDMX, Edm.NAMESPACE_EDMX_2007_06);
- xmlStreamWriter.setPrefix(Edm.PREFIX_M, Edm.NAMESPACE_M_2007_08);
- xmlStreamWriter.setDefaultNamespace(Edm.NAMESPACE_EDM_2008_09);
-
- xmlStreamWriter.writeStartElement(Edm.NAMESPACE_EDMX_2007_06, "Edmx");
- xmlStreamWriter.writeAttribute("Version", "1.0");
- xmlStreamWriter.writeNamespace(Edm.PREFIX_EDMX, Edm.NAMESPACE_EDMX_2007_06);
-
- xmlStreamWriter.writeStartElement(Edm.NAMESPACE_EDMX_2007_06, XmlMetadataConstants.EDM_DATA_SERVICES);
- xmlStreamWriter.writeAttribute(Edm.PREFIX_M, Edm.NAMESPACE_M_2007_08,
- XmlMetadataConstants.EDM_DATA_SERVICE_VERSION, metadata.getDataServiceVersion());
- xmlStreamWriter.writeNamespace(Edm.PREFIX_M, Edm.NAMESPACE_M_2007_08);
-
- if (predefinedNamespaces != null) {
- for (Map.Entry<String, String> entry : predefinedNamespaces.entrySet()) {
- xmlStreamWriter.writeNamespace(entry.getKey(), entry.getValue());
- }
- } else {
- predefinedNamespaces = new HashMap<String, String>();
- }
-
- Collection<Schema> schemas = metadata.getSchemas();
- if (schemas != null) {
- for (Schema schema : schemas) {
- xmlStreamWriter.writeStartElement(XmlMetadataConstants.EDM_SCHEMA);
- if (schema.getAlias() != null) {
- xmlStreamWriter.writeAttribute(XmlMetadataConstants.EDM_SCHEMA_ALIAS, schema.getAlias());
- }
- xmlStreamWriter.writeAttribute(XmlMetadataConstants.EDM_SCHEMA_NAMESPACE, schema.getNamespace());
- xmlStreamWriter.writeDefaultNamespace(Edm.NAMESPACE_EDM_2008_09);
-
- writeAnnotationAttributes(schema.getAnnotationAttributes(), predefinedNamespaces, null, xmlStreamWriter);
-
- Collection<Using> usings = schema.getUsings();
- if (usings != null) {
- for (Using using : usings) {
- xmlStreamWriter.writeStartElement(XmlMetadataConstants.EDM_USING);
- xmlStreamWriter.writeAttribute("Namespace", using.getNamespace());
- xmlStreamWriter.writeAttribute("Alias", using.getAlias());
- writeAnnotationAttributes(using.getAnnotationAttributes(), predefinedNamespaces, null, xmlStreamWriter);
- writeDocumentation(using.getDocumentation(), predefinedNamespaces, xmlStreamWriter);
- writeAnnotationElements(using.getAnnotationElements(), predefinedNamespaces, xmlStreamWriter);
- xmlStreamWriter.writeEndElement();
- }
- }
-
- Collection<EntityType> entityTypes = schema.getEntityTypes();
- if (entityTypes != null) {
- for (EntityType entityType : entityTypes) {
- xmlStreamWriter.writeStartElement(XmlMetadataConstants.EDM_ENTITY_TYPE);
- xmlStreamWriter.writeAttribute(XmlMetadataConstants.EDM_NAME, entityType.getName());
- if (entityType.getBaseType() != null) {
- xmlStreamWriter.writeAttribute(XmlMetadataConstants.EDM_BASE_TYPE, entityType.getBaseType().toString());
- }
- if (entityType.isAbstract()) {
- xmlStreamWriter.writeAttribute(XmlMetadataConstants.EDM_TYPE_ABSTRACT, "true");
- }
- if (entityType.isHasStream()) {
- xmlStreamWriter.writeAttribute(Edm.PREFIX_M, Edm.NAMESPACE_M_2007_08,
- XmlMetadataConstants.M_ENTITY_TYPE_HAS_STREAM, "true");
- }
-
- writeCustomizableFeedMappings(entityType.getCustomizableFeedMappings(), xmlStreamWriter);
-
- writeAnnotationAttributes(entityType.getAnnotationAttributes(), predefinedNamespaces, null,
- xmlStreamWriter);
-
- writeDocumentation(entityType.getDocumentation(), predefinedNamespaces, xmlStreamWriter);
-
- Key key = entityType.getKey();
- if (key != null) {
- xmlStreamWriter.writeStartElement(XmlMetadataConstants.EDM_ENTITY_TYPE_KEY);
-
- writeAnnotationAttributes(key.getAnnotationAttributes(), predefinedNamespaces, null, xmlStreamWriter);
-
- Collection<PropertyRef> propertyRefs = entityType.getKey().getKeys();
- for (PropertyRef propertyRef : propertyRefs) {
- xmlStreamWriter.writeStartElement(XmlMetadataConstants.EDM_PROPERTY_REF);
-
- writeAnnotationAttributes(propertyRef.getAnnotationAttributes(), predefinedNamespaces, null,
- xmlStreamWriter);
-
- xmlStreamWriter.writeAttribute(XmlMetadataConstants.EDM_NAME, propertyRef.getName());
-
- writeAnnotationElements(propertyRef.getAnnotationElements(), predefinedNamespaces, xmlStreamWriter);
-
- xmlStreamWriter.writeEndElement();
- }
-
- writeAnnotationElements(key.getAnnotationElements(), predefinedNamespaces, xmlStreamWriter);
-
- xmlStreamWriter.writeEndElement();
- }
-
- Collection<Property> properties = entityType.getProperties();
- if (properties != null) {
- writeProperties(properties, predefinedNamespaces, xmlStreamWriter);
- }
-
- Collection<NavigationProperty> navigationProperties = entityType.getNavigationProperties();
- if (navigationProperties != null) {
- for (NavigationProperty navigationProperty : navigationProperties) {
- xmlStreamWriter.writeStartElement(XmlMetadataConstants.EDM_NAVIGATION_PROPERTY);
- xmlStreamWriter.writeAttribute(XmlMetadataConstants.EDM_NAME, navigationProperty.getName());
- xmlStreamWriter.writeAttribute(XmlMetadataConstants.EDM_NAVIGATION_RELATIONSHIP, navigationProperty
- .getRelationship().toString());
- xmlStreamWriter.writeAttribute(XmlMetadataConstants.EDM_NAVIGATION_FROM_ROLE, navigationProperty
- .getFromRole());
- xmlStreamWriter.writeAttribute(XmlMetadataConstants.EDM_NAVIGATION_TO_ROLE, navigationProperty
- .getToRole());
-
- writeAnnotationAttributes(navigationProperty.getAnnotationAttributes(), predefinedNamespaces, null,
- xmlStreamWriter);
-
- writeDocumentation(navigationProperty.getDocumentation(), predefinedNamespaces, xmlStreamWriter);
-
- writeAnnotationElements(navigationProperty.getAnnotationElements(), predefinedNamespaces,
- xmlStreamWriter);
-
- xmlStreamWriter.writeEndElement();
- }
- }
-
- writeAnnotationElements(entityType.getAnnotationElements(), predefinedNamespaces, xmlStreamWriter);
-
- xmlStreamWriter.writeEndElement();
- }
- }
-
- Collection<ComplexType> complexTypes = schema.getComplexTypes();
- if (complexTypes != null) {
- for (ComplexType complexType : complexTypes) {
- xmlStreamWriter.writeStartElement(XmlMetadataConstants.EDM_COMPLEX_TYPE);
- xmlStreamWriter.writeAttribute(XmlMetadataConstants.EDM_NAME, complexType.getName());
- if (complexType.getBaseType() != null) {
- xmlStreamWriter
- .writeAttribute(XmlMetadataConstants.EDM_BASE_TYPE, complexType.getBaseType().toString());
- }
- if (complexType.isAbstract()) {
- xmlStreamWriter.writeAttribute(XmlMetadataConstants.EDM_TYPE_ABSTRACT, "true");
- }
-
- writeAnnotationAttributes(complexType.getAnnotationAttributes(), predefinedNamespaces, null,
- xmlStreamWriter);
-
- writeDocumentation(complexType.getDocumentation(), predefinedNamespaces, xmlStreamWriter);
-
- Collection<Property> properties = complexType.getProperties();
- if (properties != null) {
- writeProperties(properties, predefinedNamespaces, xmlStreamWriter);
- }
-
- writeAnnotationElements(complexType.getAnnotationElements(), predefinedNamespaces, xmlStreamWriter);
-
- xmlStreamWriter.writeEndElement();
- }
- }
-
- Collection<Association> associations = schema.getAssociations();
- if (associations != null) {
- for (Association association : associations) {
- xmlStreamWriter.writeStartElement(XmlMetadataConstants.EDM_ASSOCIATION);
- xmlStreamWriter.writeAttribute(XmlMetadataConstants.EDM_NAME, association.getName());
-
- writeAnnotationAttributes(association.getAnnotationAttributes(), predefinedNamespaces, null,
- xmlStreamWriter);
-
- writeDocumentation(association.getDocumentation(), predefinedNamespaces, xmlStreamWriter);
-
- writeAssociationEnd(association.getEnd1(), predefinedNamespaces, xmlStreamWriter);
- writeAssociationEnd(association.getEnd2(), predefinedNamespaces, xmlStreamWriter);
-
- ReferentialConstraint referentialConstraint = association.getReferentialConstraint();
- if (referentialConstraint != null) {
- xmlStreamWriter.writeStartElement(XmlMetadataConstants.EDM_ASSOCIATION_CONSTRAINT);
- writeAnnotationAttributes(referentialConstraint.getAnnotationAttributes(), predefinedNamespaces, null,
- xmlStreamWriter);
- writeDocumentation(referentialConstraint.getDocumentation(), predefinedNamespaces, xmlStreamWriter);
-
- ReferentialConstraintRole principal = referentialConstraint.getPrincipal();
- xmlStreamWriter.writeStartElement(XmlMetadataConstants.EDM_ASSOCIATION_PRINCIPAL);
- xmlStreamWriter.writeAttribute(XmlMetadataConstants.EDM_ROLE, principal.getRole());
- writeAnnotationAttributes(principal.getAnnotationAttributes(), predefinedNamespaces, null,
- xmlStreamWriter);
-
- for (PropertyRef propertyRef : principal.getPropertyRefs()) {
- xmlStreamWriter.writeStartElement(XmlMetadataConstants.EDM_PROPERTY_REF);
- xmlStreamWriter.writeAttribute(XmlMetadataConstants.EDM_NAME, propertyRef.getName());
- xmlStreamWriter.writeEndElement();
- }
- writeAnnotationElements(principal.getAnnotationElements(), predefinedNamespaces, xmlStreamWriter);
- xmlStreamWriter.writeEndElement();
-
- ReferentialConstraintRole dependent = referentialConstraint.getDependent();
- xmlStreamWriter.writeStartElement(XmlMetadataConstants.EDM_ASSOCIATION_DEPENDENT);
- xmlStreamWriter.writeAttribute(XmlMetadataConstants.EDM_ROLE, dependent.getRole());
- writeAnnotationAttributes(dependent.getAnnotationAttributes(), predefinedNamespaces, null,
- xmlStreamWriter);
-
- for (PropertyRef propertyRef : dependent.getPropertyRefs()) {
- xmlStreamWriter.writeStartElement(XmlMetadataConstants.EDM_PROPERTY_REF);
- xmlStreamWriter.writeAttribute(XmlMetadataConstants.EDM_NAME, propertyRef.getName());
- xmlStreamWriter.writeEndElement();
- }
- writeAnnotationElements(dependent.getAnnotationElements(), predefinedNamespaces, xmlStreamWriter);
- xmlStreamWriter.writeEndElement();
-
- writeAnnotationElements(referentialConstraint.getAnnotationElements(), predefinedNamespaces,
- xmlStreamWriter);
- xmlStreamWriter.writeEndElement();
- }
-
- writeAnnotationElements(association.getAnnotationElements(), predefinedNamespaces, xmlStreamWriter);
-
- xmlStreamWriter.writeEndElement();
- }
- }
-
- Collection<EntityContainer> entityContainers = schema.getEntityContainers();
- if (entityContainers != null) {
- for (EntityContainer entityContainer : entityContainers) {
- xmlStreamWriter.writeStartElement(XmlMetadataConstants.EDM_ENTITY_CONTAINER);
- xmlStreamWriter.writeAttribute(XmlMetadataConstants.EDM_NAME, entityContainer.getName());
- if (entityContainer.getExtendz() != null) {
- xmlStreamWriter
- .writeAttribute(XmlMetadataConstants.EDM_CONTAINER_EXTENDZ, entityContainer.getExtendz());
- }
- if (entityContainer.isDefaultEntityContainer()) {
- xmlStreamWriter.writeAttribute(Edm.PREFIX_M, Edm.NAMESPACE_M_2007_08,
- XmlMetadataConstants.EDM_CONTAINER_IS_DEFAULT, "true");
- }
-
- writeAnnotationAttributes(entityContainer.getAnnotationAttributes(), predefinedNamespaces, null,
- xmlStreamWriter);
-
- writeDocumentation(entityContainer.getDocumentation(), predefinedNamespaces, xmlStreamWriter);
-
- Collection<EntitySet> entitySets = entityContainer.getEntitySets();
- if (entitySets != null) {
- for (EntitySet entitySet : entitySets) {
- xmlStreamWriter.writeStartElement(XmlMetadataConstants.EDM_ENTITY_SET);
- xmlStreamWriter.writeAttribute(XmlMetadataConstants.EDM_NAME, entitySet.getName());
- xmlStreamWriter.writeAttribute(XmlMetadataConstants.EDM_ENTITY_TYPE, entitySet.getEntityType()
- .toString());
-
- writeAnnotationAttributes(entitySet.getAnnotationAttributes(), predefinedNamespaces, null,
- xmlStreamWriter);
-
- writeDocumentation(entitySet.getDocumentation(), predefinedNamespaces, xmlStreamWriter);
-
- writeAnnotationElements(entitySet.getAnnotationElements(), predefinedNamespaces, xmlStreamWriter);
-
- xmlStreamWriter.writeEndElement();
- }
- }
-
- Collection<AssociationSet> associationSets = entityContainer.getAssociationSets();
- if (associationSets != null) {
- for (AssociationSet associationSet : associationSets) {
- xmlStreamWriter.writeStartElement(XmlMetadataConstants.EDM_ASSOCIATION_SET);
- xmlStreamWriter.writeAttribute(XmlMetadataConstants.EDM_NAME, associationSet.getName());
- xmlStreamWriter.writeAttribute(XmlMetadataConstants.EDM_ASSOCIATION, associationSet.getAssociation()
- .toString());
-
- writeAnnotationAttributes(associationSet.getAnnotationAttributes(), predefinedNamespaces, null,
- xmlStreamWriter);
-
- writeDocumentation(associationSet.getDocumentation(), predefinedNamespaces, xmlStreamWriter);
-
- writeAssociationSetEnd(associationSet.getEnd1(), predefinedNamespaces, xmlStreamWriter);
- writeAssociationSetEnd(associationSet.getEnd2(), predefinedNamespaces, xmlStreamWriter);
-
- writeAnnotationElements(associationSet.getAnnotationElements(), predefinedNamespaces,
- xmlStreamWriter);
-
- xmlStreamWriter.writeEndElement();
- }
- }
-
- Collection<FunctionImport> functionImports = entityContainer.getFunctionImports();
- if (functionImports != null) {
- for (FunctionImport functionImport : functionImports) {
- xmlStreamWriter.writeStartElement(XmlMetadataConstants.EDM_FUNCTION_IMPORT);
- xmlStreamWriter.writeAttribute(XmlMetadataConstants.EDM_NAME, functionImport.getName());
- if (functionImport.getReturnType() != null) {
- xmlStreamWriter.writeAttribute(XmlMetadataConstants.EDM_FUNCTION_IMPORT_RETURN, functionImport
- .getReturnType().toString());
- }
- if (functionImport.getEntitySet() != null) {
- xmlStreamWriter.writeAttribute(XmlMetadataConstants.EDM_ENTITY_SET, functionImport.getEntitySet());
- }
- if (functionImport.getHttpMethod() != null) {
- xmlStreamWriter.writeAttribute(Edm.PREFIX_M, Edm.NAMESPACE_M_2007_08,
- XmlMetadataConstants.EDM_FUNCTION_IMPORT_HTTP_METHOD, functionImport.getHttpMethod());
- }
-
- writeAnnotationAttributes(functionImport.getAnnotationAttributes(), predefinedNamespaces, null,
- xmlStreamWriter);
-
- writeDocumentation(functionImport.getDocumentation(), predefinedNamespaces, xmlStreamWriter);
-
- Collection<FunctionImportParameter> functionImportParameters = functionImport.getParameters();
- if (functionImportParameters != null) {
- for (FunctionImportParameter functionImportParameter : functionImportParameters) {
- xmlStreamWriter.writeStartElement(XmlMetadataConstants.EDM_FUNCTION_PARAMETER);
- xmlStreamWriter.writeAttribute(XmlMetadataConstants.EDM_NAME, functionImportParameter.getName());
- xmlStreamWriter.writeAttribute(XmlMetadataConstants.EDM_TYPE, functionImportParameter.getType()
- .getFullQualifiedName().toString());
- if (functionImportParameter.getMode() != null) {
- xmlStreamWriter.writeAttribute(XmlMetadataConstants.EDM_FUNCTION_PARAMETER_MODE,
- functionImportParameter.getMode());
- }
-
- writeFacets(xmlStreamWriter, functionImportParameter.getFacets());
-
- writeAnnotationAttributes(functionImportParameter.getAnnotationAttributes(),
- predefinedNamespaces, null, xmlStreamWriter);
-
- writeDocumentation(functionImportParameter.getDocumentation(), predefinedNamespaces,
- xmlStreamWriter);
-
- writeAnnotationElements(functionImportParameter.getAnnotationElements(), predefinedNamespaces,
- xmlStreamWriter);
-
- xmlStreamWriter.writeEndElement();
- }
- }
-
- writeAnnotationElements(functionImport.getAnnotationElements(), predefinedNamespaces,
- xmlStreamWriter);
-
- xmlStreamWriter.writeEndElement();
- }
- }
-
- writeAnnotationElements(entityContainer.getAnnotationElements(), predefinedNamespaces, xmlStreamWriter);
-
- xmlStreamWriter.writeEndElement();
- }
- }
-
- writeAnnotationElements(schema.getAnnotationElements(), predefinedNamespaces, xmlStreamWriter);
-
- xmlStreamWriter.writeEndElement();
- }
- }
-
- xmlStreamWriter.writeEndElement();
- xmlStreamWriter.writeEndElement();
- xmlStreamWriter.writeEndDocument();
-
- xmlStreamWriter.flush();
- } catch (XMLStreamException e) {
- throw new EntityProviderException(EntityProviderException.COMMON, e);
- } catch (FactoryConfigurationError e) {
- throw new EntityProviderException(EntityProviderException.COMMON, e);
- }
- }
-
- private static void writeCustomizableFeedMappings(final CustomizableFeedMappings customizableFeedMappings,
- final XMLStreamWriter xmlStreamWriter) throws XMLStreamException {
- if (customizableFeedMappings != null) {
- if (customizableFeedMappings.getFcKeepInContent() != null) {
- xmlStreamWriter.writeAttribute(Edm.PREFIX_M, Edm.NAMESPACE_M_2007_08,
- XmlMetadataConstants.M_FC_KEEP_IN_CONTENT, customizableFeedMappings.getFcKeepInContent().toString()
- .toLowerCase(Locale.ROOT));
- }
- if (customizableFeedMappings.getFcContentKind() != null) {
- xmlStreamWriter.writeAttribute(Edm.PREFIX_M, Edm.NAMESPACE_M_2007_08, XmlMetadataConstants.M_FC_CONTENT_KIND,
- customizableFeedMappings.getFcContentKind().toString());
- }
- if (customizableFeedMappings.getFcNsPrefix() != null) {
- xmlStreamWriter.writeAttribute(Edm.PREFIX_M, Edm.NAMESPACE_M_2007_08, XmlMetadataConstants.M_FC_PREFIX,
- customizableFeedMappings.getFcNsPrefix());
- }
- if (customizableFeedMappings.getFcNsUri() != null) {
- xmlStreamWriter.writeAttribute(Edm.PREFIX_M, Edm.NAMESPACE_M_2007_08, XmlMetadataConstants.M_FC_NS_URI,
- customizableFeedMappings.getFcNsUri());
- }
- if (customizableFeedMappings.getFcSourcePath() != null) {
- xmlStreamWriter.writeAttribute(Edm.PREFIX_M, Edm.NAMESPACE_M_2007_08, XmlMetadataConstants.M_FC_SOURCE_PATH,
- customizableFeedMappings.getFcSourcePath());
- }
- if (customizableFeedMappings.getFcTargetPath() != null) {
- xmlStreamWriter.writeAttribute(Edm.PREFIX_M, Edm.NAMESPACE_M_2007_08, XmlMetadataConstants.M_FC_TARGET_PATH,
- customizableFeedMappings.getFcTargetPath().toString());
- }
- }
- }
-
- private static void writeProperties(final Collection<Property> properties,
- final Map<String, String> predefinedNamespaces, final XMLStreamWriter xmlStreamWriter) throws XMLStreamException {
- for (Property property : properties) {
- xmlStreamWriter.writeStartElement(XmlMetadataConstants.EDM_PROPERTY);
- xmlStreamWriter.writeAttribute(XmlMetadataConstants.EDM_NAME, property.getName());
- if (property instanceof SimpleProperty) {
- xmlStreamWriter.writeAttribute(XmlMetadataConstants.EDM_TYPE, ((SimpleProperty) property).getType()
- .getFullQualifiedName().toString());
- } else if (property instanceof ComplexProperty) {
- xmlStreamWriter
- .writeAttribute(XmlMetadataConstants.EDM_TYPE, ((ComplexProperty) property).getType().toString());
- } else {
- throw new ODataRuntimeException();
- }
-
- writeFacets(xmlStreamWriter, property.getFacets());
-
- if (property.getMimeType() != null) {
- xmlStreamWriter.writeAttribute(Edm.PREFIX_M, Edm.NAMESPACE_M_2007_08, XmlMetadataConstants.M_MIMETYPE, property
- .getMimeType());
- }
-
- writeCustomizableFeedMappings(property.getCustomizableFeedMappings(), xmlStreamWriter);
-
- writeAnnotationAttributes(property.getAnnotationAttributes(), predefinedNamespaces, null, xmlStreamWriter);
-
- writeDocumentation(property.getDocumentation(), predefinedNamespaces, xmlStreamWriter);
-
- writeAnnotationElements(property.getAnnotationElements(), predefinedNamespaces, xmlStreamWriter);
-
- xmlStreamWriter.writeEndElement();
- }
- }
-
- private static void writeFacets(final XMLStreamWriter xmlStreamWriter, final EdmFacets facets)
- throws XMLStreamException {
- if (facets != null) {
- if (facets.isNullable() != null) {
- xmlStreamWriter.writeAttribute(XmlMetadataConstants.EDM_PROPERTY_NULLABLE, facets.isNullable().toString()
- .toLowerCase(Locale.ROOT));
- }
- if (facets.getDefaultValue() != null) {
- xmlStreamWriter.writeAttribute(XmlMetadataConstants.EDM_PROPERTY_DEFAULT_VALUE, facets.getDefaultValue());
- }
- if (facets.getMaxLength() != null) {
- xmlStreamWriter.writeAttribute(XmlMetadataConstants.EDM_PROPERTY_MAX_LENGTH, facets.getMaxLength().toString());
- }
- if (facets.isFixedLength() != null) {
- xmlStreamWriter.writeAttribute(XmlMetadataConstants.EDM_PROPERTY_FIXED_LENGTH, facets.isFixedLength()
- .toString().toLowerCase(Locale.ROOT));
- }
- if (facets.getPrecision() != null) {
- xmlStreamWriter.writeAttribute(XmlMetadataConstants.EDM_PROPERTY_PRECISION, facets.getPrecision().toString());
- }
- if (facets.getScale() != null) {
- xmlStreamWriter.writeAttribute(XmlMetadataConstants.EDM_PROPERTY_SCALE, facets.getScale().toString());
- }
- if (facets.isUnicode() != null) {
- xmlStreamWriter.writeAttribute(XmlMetadataConstants.EDM_PROPERTY_UNICODE, facets.isUnicode().toString());
- }
- if (facets.getCollation() != null) {
- xmlStreamWriter.writeAttribute(XmlMetadataConstants.EDM_PROPERTY_COLLATION, facets.getCollation());
- }
- if (facets.getConcurrencyMode() != null) {
- xmlStreamWriter.writeAttribute(XmlMetadataConstants.EDM_PROPERTY_CONCURRENCY_MODE, facets.getConcurrencyMode()
- .toString());
- }
- }
- }
-
- private static void writeAssociationEnd(final AssociationEnd end, final Map<String, String> predefinedNamespaces,
- final XMLStreamWriter xmlStreamWriter) throws XMLStreamException {
- xmlStreamWriter.writeStartElement(XmlMetadataConstants.EDM_ASSOCIATION_END);
- xmlStreamWriter.writeAttribute(XmlMetadataConstants.EDM_TYPE, end.getType().toString());
- xmlStreamWriter.writeAttribute(XmlMetadataConstants.EDM_ASSOCIATION_MULTIPLICITY, end.getMultiplicity().toString());
- if (end.getRole() != null) {
- xmlStreamWriter.writeAttribute(XmlMetadataConstants.EDM_ROLE, end.getRole());
- }
-
- writeAnnotationAttributes(end.getAnnotationAttributes(), predefinedNamespaces, null, xmlStreamWriter);
-
- writeDocumentation(end.getDocumentation(), predefinedNamespaces, xmlStreamWriter);
-
- OnDelete onDelete = end.getOnDelete();
- if (onDelete != null) {
- xmlStreamWriter.writeStartElement(XmlMetadataConstants.EDM_ASSOCIATION_ONDELETE);
- xmlStreamWriter.writeAttribute(XmlMetadataConstants.EDM_ONDELETE_ACTION, onDelete.getAction().toString());
- writeAnnotationAttributes(onDelete.getAnnotationAttributes(), predefinedNamespaces, null, xmlStreamWriter);
- writeDocumentation(onDelete.getDocumentation(), predefinedNamespaces, xmlStreamWriter);
- writeAnnotationElements(onDelete.getAnnotationElements(), predefinedNamespaces, xmlStreamWriter);
- xmlStreamWriter.writeEndElement();
- }
-
- writeAnnotationElements(end.getAnnotationElements(), predefinedNamespaces, xmlStreamWriter);
-
- xmlStreamWriter.writeEndElement();
- }
-
- private static void writeAssociationSetEnd(final AssociationSetEnd end,
- final Map<String, String> predefinedNamespaces, final XMLStreamWriter xmlStreamWriter) throws XMLStreamException {
- xmlStreamWriter.writeStartElement(XmlMetadataConstants.EDM_ASSOCIATION_END);
- xmlStreamWriter.writeAttribute(XmlMetadataConstants.EDM_ENTITY_SET, end.getEntitySet().toString());
- if (end.getRole() != null) {
- xmlStreamWriter.writeAttribute(XmlMetadataConstants.EDM_ROLE, end.getRole());
- }
- writeAnnotationAttributes(end.getAnnotationAttributes(), predefinedNamespaces, null, xmlStreamWriter);
- writeDocumentation(end.getDocumentation(), predefinedNamespaces, xmlStreamWriter);
- writeAnnotationElements(end.getAnnotationElements(), predefinedNamespaces, xmlStreamWriter);
- xmlStreamWriter.writeEndElement();
- }
-
- private static void writeDocumentation(final Documentation documentation,
- final Map<String, String> predefinedNamespaces, final XMLStreamWriter xmlStreamWriter) throws XMLStreamException {
- if (documentation != null) {
- xmlStreamWriter.writeStartElement(XmlMetadataConstants.DOCUMENTATION);
- writeAnnotationAttributes(documentation.getAnnotationAttributes(), predefinedNamespaces, null, xmlStreamWriter);
-
- xmlStreamWriter.writeStartElement(XmlMetadataConstants.SUMMARY);
- xmlStreamWriter.writeCharacters(documentation.getSummary());
- xmlStreamWriter.writeEndElement();
-
- xmlStreamWriter.writeStartElement(XmlMetadataConstants.LONG_DESCRIPTION);
- xmlStreamWriter.writeCharacters(documentation.getLongDescription());
- xmlStreamWriter.writeEndElement();
-
- writeAnnotationElements(documentation.getAnnotationElements(), predefinedNamespaces, xmlStreamWriter);
- xmlStreamWriter.writeEndElement();
- }
- }
-
- private static void writeAnnotationAttributes(final Collection<AnnotationAttribute> annotationAttributes,
- final Map<String, String> predefinedNamespaces, ArrayList<String> setNamespaces,
- final XMLStreamWriter xmlStreamWriter) throws XMLStreamException {
- if (annotationAttributes != null) {
- if (setNamespaces == null) {
- setNamespaces = new ArrayList<String>();
- }
- for (AnnotationAttribute annotationAttribute : annotationAttributes) {
- if (annotationAttribute.getNamespace() != null) {
- xmlStreamWriter.writeAttribute(annotationAttribute.getPrefix(), annotationAttribute.getNamespace(),
- annotationAttribute.getName(), annotationAttribute.getText());
- if (setNamespaces.contains(annotationAttribute.getNamespace()) == false
- && predefinedNamespaces.containsValue(annotationAttribute.getNamespace()) == false) {
- xmlStreamWriter.writeNamespace(annotationAttribute.getPrefix(), annotationAttribute.getNamespace());
- setNamespaces.add(annotationAttribute.getNamespace());
- }
- } else {
- xmlStreamWriter.writeAttribute(annotationAttribute.getName(), annotationAttribute.getText());
- }
- }
- }
- }
-
- private static void writeAnnotationElements(final Collection<AnnotationElement> annotationElements,
- final Map<String, String> predefinedNamespaces, final XMLStreamWriter xmlStreamWriter) throws XMLStreamException {
- if (annotationElements != null) {
- for (AnnotationElement annotationElement : annotationElements) {
- ArrayList<String> setNamespaces = new ArrayList<String>();
- if (annotationElement.getNamespace() != null) {
- if (annotationElement.getPrefix() != null) {
- xmlStreamWriter.writeStartElement(annotationElement.getPrefix(), annotationElement.getName(),
- annotationElement.getNamespace());
- if (!predefinedNamespaces.containsValue(annotationElement.getNamespace())) {
- xmlStreamWriter.writeNamespace(annotationElement.getPrefix(), annotationElement.getNamespace());
- setNamespaces.add(annotationElement.getNamespace());
- }
- } else {
- xmlStreamWriter.writeStartElement("", annotationElement.getName(), annotationElement.getNamespace());
- if (!predefinedNamespaces.containsValue(annotationElement.getNamespace())) {
- xmlStreamWriter.writeNamespace("", annotationElement.getNamespace());
- setNamespaces.add(annotationElement.getNamespace());
- }
- }
- } else {
- xmlStreamWriter.writeStartElement(annotationElement.getName());
- }
-
- writeAnnotationAttributes(annotationElement.getAttributes(), predefinedNamespaces, setNamespaces,
- xmlStreamWriter);
-
- if (annotationElement.getChildElements() != null) {
- writeAnnotationElements(annotationElement.getChildElements(), predefinedNamespaces, xmlStreamWriter);
- } else {
- if (annotationElement.getText() != null) {
- xmlStreamWriter.writeCharacters(annotationElement.getText());
- }
- }
-
- xmlStreamWriter.writeEndElement();
- }
- }
- }
-}
http://git-wip-us.apache.org/repos/asf/incubator-olingo-odata2/blob/57599da6/odata-core/src/main/java/org/apache/olingo/odata2/core/ep/producer/XmlPropertyEntityProducer.java
----------------------------------------------------------------------
diff --git a/odata-core/src/main/java/org/apache/olingo/odata2/core/ep/producer/XmlPropertyEntityProducer.java b/odata-core/src/main/java/org/apache/olingo/odata2/core/ep/producer/XmlPropertyEntityProducer.java
deleted file mode 100644
index 90931d6..0000000
--- a/odata-core/src/main/java/org/apache/olingo/odata2/core/ep/producer/XmlPropertyEntityProducer.java
+++ /dev/null
@@ -1,217 +0,0 @@
-/*******************************************************************************
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- ******************************************************************************/
-package org.apache.olingo.odata2.core.ep.producer;
-
-import java.util.List;
-import java.util.Map;
-
-import javax.xml.stream.XMLStreamException;
-import javax.xml.stream.XMLStreamWriter;
-
-import org.apache.olingo.odata2.api.edm.Edm;
-import org.apache.olingo.odata2.api.edm.EdmCustomizableFeedMappings;
-import org.apache.olingo.odata2.api.edm.EdmException;
-import org.apache.olingo.odata2.api.edm.EdmLiteralKind;
-import org.apache.olingo.odata2.api.edm.EdmSimpleType;
-import org.apache.olingo.odata2.api.ep.EntityProviderException;
-import org.apache.olingo.odata2.core.ep.aggregator.EntityComplexPropertyInfo;
-import org.apache.olingo.odata2.core.ep.aggregator.EntityPropertyInfo;
-import org.apache.olingo.odata2.core.ep.util.FormatXml;
-
-/**
- * Internal EntityProvider for simple and complex EDM properties which are pre-analyzed as {@link EntityPropertyInfo}.
- *
- */
-public class XmlPropertyEntityProducer {
-
- /**
- * Append {@link Object} <code>value</code> based on {@link EntityPropertyInfo} to {@link XMLStreamWriter} in an
- * already existing XML structure inside the d namespace.
- *
- * @param writer
- * @param name Name of the outer XML tag
- * @param propertyInfo
- * @param value
- * @throws EntityProviderException
- */
- public void append(final XMLStreamWriter writer, final String name, final EntityPropertyInfo propertyInfo,
- final Object value) throws EntityProviderException {
- try {
- writer.writeStartElement(Edm.NAMESPACE_D_2007_08, name);
-
- if (propertyInfo.isComplex()) {
- appendProperty(writer, (EntityComplexPropertyInfo) propertyInfo, value);
- } else {
- appendProperty(writer, propertyInfo, value);
- }
-
- writer.writeEndElement();
- } catch (XMLStreamException e) {
- throw new EntityProviderException(EntityProviderException.COMMON, e);
- } catch (EdmException e) {
- throw new EntityProviderException(EntityProviderException.COMMON, e);
- }
- }
-
- public void appendCustomProperty(final XMLStreamWriter writer, final String name,
- final EntityPropertyInfo propertyInfo, final Object value) throws EntityProviderException {
- try {
- if (!propertyInfo.isComplex()) {
- writeStartElementWithCustomNamespace(writer, propertyInfo, name);
- appendProperty(writer, propertyInfo, value);
- writer.writeEndElement();
- }
- } catch (XMLStreamException e) {
- throw new EntityProviderException(EntityProviderException.COMMON, e);
- } catch (EdmException e) {
- throw new EntityProviderException(EntityProviderException.COMMON, e);
- }
- }
-
- /**
- * Append {@link Object} <code>value</code> based on {@link EntityPropertyInfo} to {@link XMLStreamWriter} as a
- * stand-alone XML structure, including writing of default namespace declarations.
- * The name of the outermost XML element comes from the {@link EntityPropertyInfo}.
- *
- * @param writer
- * @param propertyInfo
- * @param value
- * @throws EntityProviderException
- */
- public void append(final XMLStreamWriter writer, final EntityPropertyInfo propertyInfo, final Object value)
- throws EntityProviderException {
- try {
- writer.writeStartElement(propertyInfo.getName());
- writer.writeDefaultNamespace(Edm.NAMESPACE_D_2007_08);
- writer.writeNamespace(Edm.PREFIX_M, Edm.NAMESPACE_M_2007_08);
-
- if (propertyInfo.isComplex()) {
- appendProperty(writer, (EntityComplexPropertyInfo) propertyInfo, value);
- } else {
- appendProperty(writer, propertyInfo, value);
- }
-
- writer.writeEndElement();
- } catch (XMLStreamException e) {
- throw new EntityProviderException(EntityProviderException.COMMON, e);
- } catch (EdmException e) {
- throw new EntityProviderException(EntityProviderException.COMMON, e);
- }
- }
-
- /**
- *
- * @param writer
- * @param propertyInfo
- * @param value
- * @throws XMLStreamException
- * @throws EdmException
- * @throws EntityProviderException
- */
- private void appendProperty(final XMLStreamWriter writer, final EntityComplexPropertyInfo propertyInfo,
- final Object value) throws XMLStreamException, EdmException, EntityProviderException {
-
- if (value == null) {
- writer.writeAttribute(Edm.NAMESPACE_M_2007_08, FormatXml.ATOM_NULL, FormatXml.ATOM_VALUE_TRUE);
- } else {
- writer.writeAttribute(Edm.NAMESPACE_M_2007_08, FormatXml.ATOM_TYPE, getFqnTypeName(propertyInfo));
- List<EntityPropertyInfo> propertyInfos = propertyInfo.getPropertyInfos();
- for (EntityPropertyInfo childPropertyInfo : propertyInfos) {
- Object childValue = extractChildValue(value, childPropertyInfo.getName());
- append(writer, childPropertyInfo.getName(), childPropertyInfo, childValue);
- }
- }
- }
-
- /**
- * Returns full qualified name of a type of a given PropertyInfo.
- * @return Full qualified name
- */
- private String getFqnTypeName(final EntityComplexPropertyInfo propertyInfo) throws EdmException {
- return propertyInfo.getType().getNamespace() + Edm.DELIMITER + propertyInfo.getType().getName();
- }
-
- /**
- * If <code>value</code> is a {@link Map} the element with given <code>name</code> as key is returned.
- * If <code>value</code> is NOT a {@link Map} its {@link String#valueOf(Object)} result is returned.
- *
- * @param value
- * @param name
- * @return name or result (see above)
- */
- private Object extractChildValue(final Object value, final String name) {
- if (value instanceof Map) {
- Map<?, ?> map = (Map<?, ?>) value;
- return map.get(name);
- }
- return String.valueOf(value);
- }
-
- /**
- * Appends a simple-property value to the XML stream.
- * @param writer the XML stream writer
- * @param prop property informations
- * @param value the value of the property
- * @throws XMLStreamException
- * @throws EdmException
- */
- private void appendProperty(final XMLStreamWriter writer, final EntityPropertyInfo prop, final Object value)
- throws XMLStreamException, EdmException {
- Object contentValue = value;
- String mimeType = null;
- if (prop.getMimeType() != null) {
- mimeType = prop.getMimeType();
- } else if (prop.getMapping() != null && prop.getMapping().getMimeType() != null) {
- mimeType = (String) extractChildValue(value, prop.getMapping().getMimeType());
- contentValue = extractChildValue(value, prop.getName());
- }
-
- if (mimeType != null) {
- writer.writeAttribute(Edm.NAMESPACE_M_2007_08, FormatXml.M_MIME_TYPE, mimeType);
- }
-
- final EdmSimpleType type = (EdmSimpleType) prop.getType();
- final String valueAsString = type.valueToString(contentValue, EdmLiteralKind.DEFAULT, prop.getFacets());
- if (valueAsString == null) {
- writer.writeAttribute(Edm.NAMESPACE_M_2007_08, FormatXml.ATOM_NULL, FormatXml.ATOM_VALUE_TRUE);
- } else {
- writer.writeCharacters(valueAsString);
- }
- }
-
- /**
- *
- * @param writer
- * @param prop
- * @param name
- * @throws XMLStreamException
- * @throws EntityProviderException
- */
- private void writeStartElementWithCustomNamespace(final XMLStreamWriter writer, final EntityPropertyInfo prop,
- final String name) throws XMLStreamException, EntityProviderException {
- EdmCustomizableFeedMappings mapping = prop.getCustomMapping();
- String nsPrefix = mapping.getFcNsPrefix();
- String nsUri = mapping.getFcNsUri();
- if (nsUri == null || nsPrefix == null) {
- throw new EntityProviderException(EntityProviderException.INVALID_NAMESPACE.addContent(name));
- }
- writer.writeStartElement(nsPrefix, name, nsUri);
- writer.writeNamespace(nsPrefix, nsUri);
- }
-}
http://git-wip-us.apache.org/repos/asf/incubator-olingo-odata2/blob/57599da6/odata-core/src/main/java/org/apache/olingo/odata2/core/ep/util/CircleStreamBuffer.java
----------------------------------------------------------------------
diff --git a/odata-core/src/main/java/org/apache/olingo/odata2/core/ep/util/CircleStreamBuffer.java b/odata-core/src/main/java/org/apache/olingo/odata2/core/ep/util/CircleStreamBuffer.java
deleted file mode 100644
index 9a14f66..0000000
--- a/odata-core/src/main/java/org/apache/olingo/odata2/core/ep/util/CircleStreamBuffer.java
+++ /dev/null
@@ -1,327 +0,0 @@
-/*******************************************************************************
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- ******************************************************************************/
-package org.apache.olingo.odata2.core.ep.util;
-
-import java.io.IOException;
-import java.io.InputStream;
-import java.io.OutputStream;
-import java.nio.ByteBuffer;
-import java.util.Queue;
-import java.util.concurrent.LinkedBlockingQueue;
-
-/**
- * Circular stream buffer to write/read into/from one single buffer.
- * With support of {@link InputStream} and {@link OutputStream} access to buffered data.
- *
- *
- */
-public class CircleStreamBuffer {
-
- private static final int NEW_BUFFER_RESIZE_FACTOR = 2;
- private static final int READ_EOF = -1;
- private static final int DEFAULT_CAPACITY = 8192;
- private static final int MAX_CAPACITY = DEFAULT_CAPACITY * 32;
-
- private int currentAllocateCapacity = DEFAULT_CAPACITY;
-
- private boolean writeMode = true;
- private boolean writeClosed = false;
- private boolean readClosed = false;
-
- private Queue<ByteBuffer> bufferQueue = new LinkedBlockingQueue<ByteBuffer>();
- private ByteBuffer currentWriteBuffer;
-
- private InternalInputStream inStream;
- private InternalOutputStream outStream;
-
- /**
- * Creates a {@link CircleStreamBuffer} with default buffer size.
- */
- public CircleStreamBuffer() {
- this(DEFAULT_CAPACITY);
- }
-
- /**
- * Create a {@link CircleStreamBuffer} with given buffer size in bytes.
- *
- * @param bufferSize
- */
- public CircleStreamBuffer(final int bufferSize) {
- currentAllocateCapacity = bufferSize;
- createNewWriteBuffer();
- inStream = new InternalInputStream(this);
- outStream = new InternalOutputStream(this);
- }
-
- /**
- * Get {@link InputStream} for data read access.
- *
- * @return the stream
- */
- public InputStream getInputStream() {
- return inStream;
- }
-
- /**
- * Get {@link OutputStream} for write data.
- *
- * @return the stream
- */
- public OutputStream getOutputStream() {
- return outStream;
- }
-
- // #############################################
- // #
- // # Common parts
- // #
- // #############################################
-
- /**
- * Closes the write (input) part of the {@link CircleStreamBuffer}.
- * After this call the buffer can only be read out.
- */
- public void closeWrite() {
- writeClosed = true;
- }
-
- /**
- * Closes the read (output) part of the {@link CircleStreamBuffer}.
- * After this call it is possible to write into the buffer (but can never be read out).
- */
- public void closeRead() {
- readClosed = true;
- // clear references to byte buffers
- ByteBuffer buffer = bufferQueue.poll();
- while (buffer != null) {
- buffer.clear();
- buffer = bufferQueue.poll();
- }
- }
-
- /**
- * Closes write and read part (and hence the complete buffer).
- */
- public void close() {
- closeWrite();
- closeRead();
- }
-
- private int remaining() throws IOException {
- if (writeMode) {
- return currentWriteBuffer.remaining();
- } else {
- ByteBuffer toRead = getReadBuffer();
- if (toRead == null) {
- return 0;
- }
- return toRead.remaining();
- }
- }
-
- // #############################################
- // #
- // # Reading parts
- // #
- // #############################################
-
- private ByteBuffer getReadBuffer() throws IOException {
- if (readClosed) {
- throw new IOException("Tried to read from closed stream.");
- }
-
- boolean next = false;
- ByteBuffer tmp = null;
- if (writeMode) {
- writeMode = false;
- next = true;
- } else {
- tmp = bufferQueue.peek();
- if (tmp != null && !tmp.hasRemaining()) {
- tmp = bufferQueue.poll();
- next = true;
- }
- }
-
- if (next) {
- tmp = bufferQueue.peek();
- if (tmp != null) {
- tmp.flip();
- }
- tmp = getReadBuffer();
- }
-
- return tmp;
- }
-
- private int read(final byte[] b, final int off, final int len) throws IOException {
- ByteBuffer readBuffer = getReadBuffer();
- if (readBuffer == null) {
- return READ_EOF;
- }
-
- int toReadLength = readBuffer.remaining();
- if (len < toReadLength) {
- toReadLength = len;
- }
- readBuffer.get(b, off, toReadLength);
- return toReadLength;
- }
-
- private int read() throws IOException {
- ByteBuffer readBuffer = getReadBuffer();
- if (readBuffer == null) {
- return READ_EOF;
- }
-
- return readBuffer.get();
- }
-
- // #############################################
- // #
- // # Writing parts
- // #
- // #############################################
-
- private void write(final byte[] data, final int off, final int len) throws IOException {
- ByteBuffer writeBuffer = getWriteBuffer(len);
- writeBuffer.put(data, off, len);
- }
-
- private ByteBuffer getWriteBuffer(final int size) throws IOException {
- if (writeClosed) {
- throw new IOException("Tried to write into closed stream.");
- }
-
- if (writeMode) {
- if (remaining() < size) {
- createNewWriteBuffer(size);
- }
- } else {
- writeMode = true;
- createNewWriteBuffer();
- }
-
- return currentWriteBuffer;
- }
-
- private void write(final int b) throws IOException {
- ByteBuffer writeBuffer = getWriteBuffer(1);
- writeBuffer.put((byte) b);
- }
-
- private void createNewWriteBuffer() {
- createNewWriteBuffer(currentAllocateCapacity);
- }
-
- /**
- * Creates a new buffer (per {@link #allocateBuffer(int)}) with the requested capacity as minimum capacity, add the
- * new allocated
- * buffer to the {@link #bufferQueue} and set it as {@link #currentWriteBuffer}.
- *
- * @param requestedCapacity minimum capacity for new allocated buffer
- */
- private void createNewWriteBuffer(final int requestedCapacity) {
- ByteBuffer b = allocateBuffer(requestedCapacity);
- bufferQueue.add(b);
- currentWriteBuffer = b;
- }
-
- /**
- *
- * @param requestedCapacity
- * @return the buffer
- */
- private ByteBuffer allocateBuffer(final int requestedCapacity) {
- int allocateCapacity = requestedCapacity;
- if (allocateCapacity < currentAllocateCapacity) {
- allocateCapacity = currentAllocateCapacity * NEW_BUFFER_RESIZE_FACTOR;
- }
- if (allocateCapacity > MAX_CAPACITY) {
- allocateCapacity = MAX_CAPACITY;
- }
- // update current
- currentAllocateCapacity = allocateCapacity;
- return ByteBuffer.allocate(allocateCapacity);
- }
-
- // #############################################
- // #
- // # Inner classes (streams)
- // #
- // #############################################
-
- /**
- *
- */
- private static class InternalInputStream extends InputStream {
-
- private final CircleStreamBuffer inBuffer;
-
- public InternalInputStream(final CircleStreamBuffer csBuffer) {
- inBuffer = csBuffer;
- }
-
- @Override
- public int available() throws IOException {
- return inBuffer.remaining();
- }
-
- @Override
- public int read() throws IOException {
- return inBuffer.read();
- }
-
- @Override
- public int read(final byte[] b, final int off, final int len) throws IOException {
- return inBuffer.read(b, off, len);
- }
-
- @Override
- public void close() throws IOException {
- inBuffer.closeRead();
- }
- }
-
- /**
- *
- */
- private static class InternalOutputStream extends OutputStream {
- private final CircleStreamBuffer outBuffer;
-
- public InternalOutputStream(final CircleStreamBuffer csBuffer) {
- outBuffer = csBuffer;
- }
-
- @Override
- public void write(final int b) throws IOException {
- outBuffer.write(b);
- }
-
- @Override
- public void write(final byte[] b, final int off, final int len) throws IOException {
- outBuffer.write(b, off, len);
- }
-
- @Override
- public void close() throws IOException {
- outBuffer.closeWrite();
- }
- }
-}
http://git-wip-us.apache.org/repos/asf/incubator-olingo-odata2/blob/57599da6/odata-core/src/main/java/org/apache/olingo/odata2/core/ep/util/FormatJson.java
----------------------------------------------------------------------
diff --git a/odata-core/src/main/java/org/apache/olingo/odata2/core/ep/util/FormatJson.java b/odata-core/src/main/java/org/apache/olingo/odata2/core/ep/util/FormatJson.java
deleted file mode 100644
index 28b31e1..0000000
--- a/odata-core/src/main/java/org/apache/olingo/odata2/core/ep/util/FormatJson.java
+++ /dev/null
@@ -1,53 +0,0 @@
-/*******************************************************************************
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- ******************************************************************************/
-package org.apache.olingo.odata2.core.ep.util;
-
-/**
- * String constants for formatting and parsing of JSON.
- *
- */
-public class FormatJson {
-
- public static final String D = "d";
- public static final String RESULTS = "results";
- public static final String COUNT = "__count";
- public static final String METADATA = "__metadata";
- public static final String DEFERRED = "__deferred";
- public static final String ID = "id";
- public static final String CONTENT_TYPE = "content_type";
- public static final String MEDIA_SRC = "media_src";
- public static final String MEDIA_ETAG = "media_etag";
- public static final String EDIT_MEDIA = "edit_media";
- public static final String PROPERTIES = "properties";
- public static final String URI = "uri";
- public static final String NULL = "null";
- public static final String TRUE = "true";
- public static final String FALSE = "false";
- public static final String TYPE = "type";
- public static final String ETAG = "etag";
- public static final String ENTITY_SETS = "EntitySets";
- public static final String NEXT = "__next";
- public static final String ERROR = "error";
- public static final String CODE = "code";
- public static final String MESSAGE = "message";
- public static final String LANG = "lang";
- public static final String VALUE = "value";
- public static final String INNER_ERROR = "innererror";
- public static final String DELTA = "__delta";
-}
http://git-wip-us.apache.org/repos/asf/incubator-olingo-odata2/blob/57599da6/odata-core/src/main/java/org/apache/olingo/odata2/core/ep/util/FormatXml.java
----------------------------------------------------------------------
diff --git a/odata-core/src/main/java/org/apache/olingo/odata2/core/ep/util/FormatXml.java b/odata-core/src/main/java/org/apache/olingo/odata2/core/ep/util/FormatXml.java
deleted file mode 100644
index 153647b..0000000
--- a/odata-core/src/main/java/org/apache/olingo/odata2/core/ep/util/FormatXml.java
+++ /dev/null
@@ -1,94 +0,0 @@
-/*******************************************************************************
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- ******************************************************************************/
-package org.apache.olingo.odata2.core.ep.util;
-
-/**
- * String constants for formatting and parsing of XML.
- *
- */
-public class FormatXml {
-
- public static final String XML_HEADER_NO = "no";
- public static final String XML_HEADER_FULL = "full";
- public static final String XML_HEADER_WITHOUT_ENCODING = "without encoding";
- public static final String XML_BASE = "base";
- public static final String XML_LANG = "lang";
-
- public static final String M_PROPERTIES = "properties";
- public static final String M_MIME_TYPE = "MimeType";
-
- public static final String M_ETAG = "etag";
- public static final String M_COUNT = "count";
- public static final String M_TYPE = "type";
- public static final String M_NULL = "null";
- public static final String M_INLINE = "inline";
-
- public static final String M_ERROR = "error";
- public static final String M_CODE = "code";
- public static final String M_MESSAGE = "message";
- public static final String M_INNER_ERROR = "innererror";
-
- public static final String D_ELEMENT = "element";
- public static final String D_LINKS = "links";
- public static final String D_URI = "uri";
-
- public static final String APP_SERVICE = "service";
- public static final String APP_WORKSPACE = "workspace";
- public static final String APP_COLLECTION = "collection";
- public static final String APP_ACCEPT = "accept";
- public static final String APP_CATEGORIES = "categories";
- public static final String APP_CATEGORIES_FIXED = "fixed";
- public static final String APP_CATEGORIES_SCHEME = "scheme";
-
- public static final String ATOM_FEED = "feed";
- public static final String ATOM_ENTRY = "entry";
- public static final String ATOM_LINK = "link";
- public static final String ATOM_REL = "rel";
- public static final String ATOM_HREF = "href";
- public static final String ATOM_SRC = "src";
- public static final String ATOM_TITLE = "title";
- public static final String ATOM_TITLE_DEFAULT = "Default";
- public static final String ATOM_TEXT = "text";
- public static final String ATOM_TYPE = "type";
- public static final String ATOM_UPDATED = "updated";
- public static final String ATOM_ID = "id";
- public static final String ATOM_AUTHOR = "author";
- public static final String ATOM_AUTHOR_NAME = "name";
- public static final String ATOM_AUTHOR_EMAIL = "email";
- public static final String ATOM_AUTHOR_URI = "uri";
- public static final String ATOM_SUMMARY = "summary";
- public static final String ATOM_CONTRIBUTOR = "contributor";
- public static final String ATOM_CONTRIBUTOR_NAME = "name";
- public static final String ATOM_CONTRIBUTOR_EMAIL = "email";
- public static final String ATOM_CONTRIBUTOR_URI = "uri";
- public static final String ATOM_PUBLISHED = "published";
- public static final String ATOM_RIGHTS = "rights";
- public static final String ATOM_CATEGORY = "category";
- public static final String ATOM_CATEGORY_TERM = "term";
- public static final String ATOM_CATEGORY_SCHEME = "scheme";
- public static final String ATOM_CATEGORY_LABEL = "label";
- public static final String ATOM_CONTENT = "content";
- public static final String ATOM_NULL = "null";
- public static final String ATOM_VALUE_TRUE = "true";
- public static final String ATOM_NEXT_LINK = "next";
- public static final String ATOM_DELTA_LINK = "delta";
- public static final String ATOM_TOMBSTONE_REF = "ref";
- public static final String ATOM_TOMBSTONE_WHEN = "when";
- public static final String ATOM_TOMBSTONE_DELETED_ENTRY = "deleted-entry";
-}
http://git-wip-us.apache.org/repos/asf/incubator-olingo-odata2/blob/57599da6/odata-core/src/main/java/org/apache/olingo/odata2/core/ep/util/JsonStreamWriter.java
----------------------------------------------------------------------
diff --git a/odata-core/src/main/java/org/apache/olingo/odata2/core/ep/util/JsonStreamWriter.java b/odata-core/src/main/java/org/apache/olingo/odata2/core/ep/util/JsonStreamWriter.java
deleted file mode 100644
index b4cf8c4..0000000
--- a/odata-core/src/main/java/org/apache/olingo/odata2/core/ep/util/JsonStreamWriter.java
+++ /dev/null
@@ -1,175 +0,0 @@
-/*******************************************************************************
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- ******************************************************************************/
-package org.apache.olingo.odata2.core.ep.util;
-
-import java.io.IOException;
-import java.io.Writer;
-
-/**
- * Writes JSON output.
- *
- */
-public class JsonStreamWriter {
- private final Writer writer;
-
- public JsonStreamWriter(final Writer writer) {
- this.writer = writer;
- }
-
- public JsonStreamWriter beginObject() throws IOException {
- writer.append('{');
- return this;
- }
-
- public JsonStreamWriter endObject() throws IOException {
- writer.append('}');
- return this;
- }
-
- public JsonStreamWriter beginArray() throws IOException {
- writer.append('[');
- return this;
- }
-
- public JsonStreamWriter endArray() throws IOException {
- writer.append(']');
- return this;
- }
-
- public JsonStreamWriter name(final String name) throws IOException {
- writer.append('"').append(name).append('"').append(':');
- return this;
- }
-
- public JsonStreamWriter unquotedValue(final String value) throws IOException {
- writer.append(value == null ? FormatJson.NULL : value);
- return this;
- }
-
- public JsonStreamWriter stringValueRaw(final String value) throws IOException {
- if (value == null) {
- writer.append(FormatJson.NULL);
- } else {
- writer.append('"').append(value).append('"');
- }
- return this;
- }
-
- public JsonStreamWriter stringValue(final String value) throws IOException {
- if (value == null) {
- writer.append(FormatJson.NULL);
- } else {
- writer.append('"');
- escape(value);
- writer.append('"');
- }
- return this;
- }
-
- public JsonStreamWriter namedStringValueRaw(final String name, final String value) throws IOException {
- name(name);
- stringValueRaw(value);
- return this;
- }
-
- public JsonStreamWriter namedStringValue(final String name, final String value) throws IOException {
- name(name);
- stringValue(value);
- return this;
- }
-
- public JsonStreamWriter separator() throws IOException {
- writer.append(',');
- return this;
- }
-
- /**
- * Writes the JSON-escaped form of a Java String value according to RFC 4627.
- * @param value the Java String
- * @throws IOException if an I/O error occurs
- */
- protected void escape(final String value) throws IOException {
- // RFC 4627 says: "All Unicode characters may be placed within the
- // quotation marks except for the characters that must be escaped:
- // quotation mark, reverse solidus, and the control characters
- // (U+0000 through U+001F)."
- // All output here is done on character basis which should be faster
- // than writing Strings.
- for (int i = 0; i < value.length(); i++) {
- final char c = value.charAt(i);
- switch (c) {
- case '\\':
- writer.append('\\').append(c);
- break;
- case '"':
- writer.append('\\').append(c);
- break;
- case '\b':
- writer.append('\\').append('b');
- break;
- case '\t':
- writer.append('\\').append('t');
- break;
- case '\n':
- writer.append('\\').append('n');
- break;
- case '\f':
- writer.append('\\').append('f');
- break;
- case '\r':
- writer.append('\\').append('r');
- break;
- case '\u0000':
- case '\u0001':
- case '\u0002':
- case '\u0003':
- case '\u0004':
- case '\u0005':
- case '\u0006':
- case '\u0007':
- case '\u000B':
- case '\u000E':
- case '\u000F':
- case '\u0010':
- case '\u0011':
- case '\u0012':
- case '\u0013':
- case '\u0014':
- case '\u0015':
- case '\u0016':
- case '\u0017':
- case '\u0018':
- case '\u0019':
- case '\u001A':
- case '\u001B':
- case '\u001C':
- case '\u001D':
- case '\u001E':
- case '\u001F':
- final int lastHexDigit = c % 0x10;
- writer.append('\\').append('u').append('0').append('0')
- .append(c >= '\u0010' ? '1' : '0')
- .append((char) ((lastHexDigit > 9 ? 'A' : '0') + lastHexDigit % 10));
- break;
- default:
- writer.append(c);
- }
- }
- }
-}
http://git-wip-us.apache.org/repos/asf/incubator-olingo-odata2/blob/57599da6/odata-core/src/main/java/org/apache/olingo/odata2/core/ep/util/JsonUtils.java
----------------------------------------------------------------------
diff --git a/odata-core/src/main/java/org/apache/olingo/odata2/core/ep/util/JsonUtils.java b/odata-core/src/main/java/org/apache/olingo/odata2/core/ep/util/JsonUtils.java
deleted file mode 100644
index 786c24e..0000000
--- a/odata-core/src/main/java/org/apache/olingo/odata2/core/ep/util/JsonUtils.java
+++ /dev/null
@@ -1,75 +0,0 @@
-/*******************************************************************************
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- ******************************************************************************/
-package org.apache.olingo.odata2.core.ep.util;
-
-import java.io.IOException;
-
-import org.apache.olingo.odata2.api.ep.EntityProviderException;
-
-import com.google.gson.stream.JsonReader;
-import com.google.gson.stream.JsonToken;
-
-public class JsonUtils {
-
- public static int startJson(final JsonReader reader) throws EntityProviderException {
- // The enclosing "d" and "results" are optional - so we cannot check for the presence
- // but we have to read over them in case they are present.
- JsonToken token;
- try {
- token = reader.peek();
- int openJsonObjects = 0;
- if (JsonToken.BEGIN_OBJECT == token) {
- reader.beginObject();
- openJsonObjects++;
- token = reader.peek();
- if (JsonToken.NAME == token) {
- String name = reader.nextName();
- if (!("d".equals(name) ^ "results".equals(name))) {
- // TODO I18N
- throw new EntityProviderException(EntityProviderException.COMMON, name +
- " not expected, only d or results");
- }
- }
-
- token = reader.peek();
- if (JsonToken.BEGIN_OBJECT == token) {
- reader.beginObject();
- openJsonObjects++;
- } else if (JsonToken.BEGIN_ARRAY == token) {
- // TODO I18N
- throw new EntityProviderException(EntityProviderException.COMMON, "Array not expected");
- }
- }
-
- return openJsonObjects;
- } catch (IOException e) {
- // TODO I18N
- throw new EntityProviderException(EntityProviderException.COMMON, e);
- }
- }
-
- public static boolean endJson(final JsonReader reader, final int openJsonObjects) throws IOException,
- EntityProviderException {
-
- for (int closedJsonObjects = 0; closedJsonObjects < openJsonObjects; closedJsonObjects++) {
- reader.endObject();
- }
- return reader.peek() == JsonToken.END_DOCUMENT;
- }
-}