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 2015/02/17 10:53:40 UTC
[26/35] olingo-odata4 git commit: [OLINGO-575] Removed V4 server code
http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/f7a7b484/lib/server-core/src/main/java/org/apache/olingo/server/core/deserializer/json/ODataJsonDeserializer.java
----------------------------------------------------------------------
diff --git a/lib/server-core/src/main/java/org/apache/olingo/server/core/deserializer/json/ODataJsonDeserializer.java b/lib/server-core/src/main/java/org/apache/olingo/server/core/deserializer/json/ODataJsonDeserializer.java
deleted file mode 100644
index 6d03215..0000000
--- a/lib/server-core/src/main/java/org/apache/olingo/server/core/deserializer/json/ODataJsonDeserializer.java
+++ /dev/null
@@ -1,616 +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.server.core.deserializer.json;
-
-import java.io.IOException;
-import java.io.InputStream;
-import java.util.ArrayList;
-import java.util.Iterator;
-import java.util.List;
-import java.util.Map;
-import java.util.Map.Entry;
-
-import org.apache.olingo.commons.api.Constants;
-import org.apache.olingo.commons.api.data.Entity;
-import org.apache.olingo.commons.api.data.EntitySet;
-import org.apache.olingo.commons.api.data.Link;
-import org.apache.olingo.commons.api.data.Property;
-import org.apache.olingo.commons.api.data.ValueType;
-import org.apache.olingo.commons.api.domain.ODataLinkType;
-import org.apache.olingo.commons.api.edm.EdmComplexType;
-import org.apache.olingo.commons.api.edm.EdmEntityType;
-import org.apache.olingo.commons.api.edm.EdmEnumType;
-import org.apache.olingo.commons.api.edm.EdmNavigationProperty;
-import org.apache.olingo.commons.api.edm.EdmPrimitiveType;
-import org.apache.olingo.commons.api.edm.EdmPrimitiveTypeException;
-import org.apache.olingo.commons.api.edm.EdmPrimitiveTypeKind;
-import org.apache.olingo.commons.api.edm.EdmProperty;
-import org.apache.olingo.commons.api.edm.EdmTypeDefinition;
-import org.apache.olingo.commons.api.edm.constants.ODataServiceVersion;
-import org.apache.olingo.commons.core.data.EntityImpl;
-import org.apache.olingo.commons.core.data.EntitySetImpl;
-import org.apache.olingo.commons.core.data.LinkImpl;
-import org.apache.olingo.commons.core.data.PropertyImpl;
-import org.apache.olingo.server.api.deserializer.DeserializerException;
-import org.apache.olingo.server.api.deserializer.ODataDeserializer;
-
-import com.fasterxml.jackson.core.JsonFactory;
-import com.fasterxml.jackson.core.JsonParseException;
-import com.fasterxml.jackson.core.JsonParser;
-import com.fasterxml.jackson.databind.DeserializationFeature;
-import com.fasterxml.jackson.databind.JsonMappingException;
-import com.fasterxml.jackson.databind.JsonNode;
-import com.fasterxml.jackson.databind.ObjectMapper;
-import com.fasterxml.jackson.databind.node.ObjectNode;
-
-public class ODataJsonDeserializer implements ODataDeserializer {
-
- private static final String ODATA_ANNOTATION_MARKER = "@";
- private static final String ODATA_CONTROL_INFORMATION_PREFIX = "@odata.";
-
- @Override
- public EntitySet entityCollection(InputStream stream, EdmEntityType edmEntityType) throws DeserializerException {
- try {
- ObjectMapper objectMapper = new ObjectMapper();
- objectMapper.configure(DeserializationFeature.FAIL_ON_READING_DUP_TREE_KEY, true);
- JsonParser parser = new JsonFactory(objectMapper).createParser(stream);
- final ObjectNode tree = parser.getCodec().readTree(parser);
-
- return consumeEntitySetNode(edmEntityType, tree);
- } catch (JsonParseException e) {
- throw new DeserializerException("An JsonParseException occurred", e,
- DeserializerException.MessageKeys.JSON_SYNTAX_EXCEPTION);
- } catch (JsonMappingException e) {
- throw new DeserializerException("Duplicate json property detected", e,
- DeserializerException.MessageKeys.DUPLICATE_JSON_PROPERTY);
- } catch (IOException e) {
- throw new DeserializerException("An IOException occurred", e, DeserializerException.MessageKeys.IO_EXCEPTION);
- }
- }
-
- private EntitySet consumeEntitySetNode(EdmEntityType edmEntityType, final ObjectNode tree)
- throws DeserializerException {
- EntitySetImpl entitySet = new EntitySetImpl();
-
- // Consume entities
- JsonNode jsonNode = tree.get(Constants.VALUE);
- if (jsonNode != null) {
- if (!jsonNode.isArray()) {
- throw new DeserializerException("The content of the value tag must be an Array but is not. ",
- DeserializerException.MessageKeys.VALUE_TAG_MUST_BE_AN_ARRAY);
- }
-
- entitySet.getEntities().addAll(consumeEntitySetArray(edmEntityType, jsonNode));
- tree.remove(Constants.VALUE);
- } else {
- throw new DeserializerException("Could not find value array.",
- DeserializerException.MessageKeys.VALUE_ARRAY_NOT_PRESENT);
- }
-
- final List<String> toRemove = new ArrayList<String>();
- Iterator<Entry<String, JsonNode>> fieldsIterator = tree.fields();
- while (fieldsIterator.hasNext()) {
- Map.Entry<String, JsonNode> field = fieldsIterator.next();
-
- if (field.getKey().contains(ODATA_CONTROL_INFORMATION_PREFIX)) {
- // Control Information is ignored for requests as per specification chapter "4.5 Control Information"
- toRemove.add(field.getKey());
- } else if (field.getKey().contains(ODATA_ANNOTATION_MARKER)) {
- throw new DeserializerException("Custom annotation with field name: " + field.getKey() + " not supported",
- DeserializerException.MessageKeys.NOT_IMPLEMENTED);
- }
- }
- // remove here to avoid iterator issues.
- tree.remove(toRemove);
- assertJsonNodeIsEmpty(tree);
-
- return entitySet;
- }
-
- private List<Entity> consumeEntitySetArray(EdmEntityType edmEntityType, JsonNode jsonNode)
- throws DeserializerException {
- List<Entity> entities = new ArrayList<Entity>();
- for (JsonNode arrayElement : jsonNode) {
- if (arrayElement.isArray() || arrayElement.isValueNode()) {
- throw new DeserializerException("Nested Arrays and primitive values are not allowed for an entity value.",
- DeserializerException.MessageKeys.INVALID_ENTITY);
- }
-
- entities.add(consumeEntityNode(edmEntityType, (ObjectNode) arrayElement));
- }
- return entities;
- }
-
- @Override
- public Entity entity(InputStream stream, EdmEntityType edmEntityType) throws DeserializerException {
- try {
- ObjectMapper objectMapper = new ObjectMapper();
- objectMapper.configure(DeserializationFeature.FAIL_ON_READING_DUP_TREE_KEY, true);
- JsonParser parser = new JsonFactory(objectMapper).createParser(stream);
- final ObjectNode tree = parser.getCodec().readTree(parser);
-
- return consumeEntityNode(edmEntityType, tree);
-
- } catch (JsonParseException e) {
- throw new DeserializerException("An JsonParseException occurred", e,
- DeserializerException.MessageKeys.JSON_SYNTAX_EXCEPTION);
- } catch (JsonMappingException e) {
- throw new DeserializerException("Duplicate property detected", e,
- DeserializerException.MessageKeys.DUPLICATE_PROPERTY);
- } catch (IOException e) {
- throw new DeserializerException("An IOException occurred", e, DeserializerException.MessageKeys.IO_EXCEPTION);
- }
-
- }
-
- private Entity consumeEntityNode(EdmEntityType edmEntityType, final ObjectNode tree) throws DeserializerException {
- EntityImpl entity = new EntityImpl();
- entity.setType(edmEntityType.getFullQualifiedName().getFullQualifiedNameAsString());
-
- // Check and consume all Properties
- consumeEntityProperties(edmEntityType, tree, entity);
-
- // Check and consume all expanded Navigation Properties
- consumeExpandedNavigationProperties(edmEntityType, tree, entity);
-
- // consume remaining json node fields
- consumeRemainingJsonNodeFields(edmEntityType, tree, entity);
-
- assertJsonNodeIsEmpty(tree);
-
- return entity;
- }
-
- /**
- * Consume all remaining fields of Json ObjectNode and try to map found values
- * to according Entity fields and omit to be ignored OData fields (e.g. control information).
- *
- * @param edmEntityType edm entity type which for which the json node is consumed
- * @param node json node which is consumed
- * @param entity entity instance which is filled
- * @throws DeserializerException if an exception during consummation occurs
- */
- private void consumeRemainingJsonNodeFields(final EdmEntityType edmEntityType, final ObjectNode node,
- final EntityImpl
- entity) throws DeserializerException {
- final List<String> toRemove = new ArrayList<String>();
- Iterator<Entry<String, JsonNode>> fieldsIterator = node.fields();
- while (fieldsIterator.hasNext()) {
- Entry<String, JsonNode> field = fieldsIterator.next();
-
- if (field.getKey().contains(Constants.JSON_BIND_LINK_SUFFIX)) {
- Link bindingLink = consumeBindingLink(field.getKey(), field.getValue(), edmEntityType);
- entity.getNavigationBindings().add(bindingLink);
- toRemove.add(field.getKey());
- } else if (field.getKey().contains(ODATA_CONTROL_INFORMATION_PREFIX)) {
- // Control Information is ignored for requests as per specification chapter "4.5 Control Information"
- toRemove.add(field.getKey());
- } else if (field.getKey().contains(ODATA_ANNOTATION_MARKER)) {
- throw new DeserializerException("Custom annotation with field name: " + field.getKey() + " not supported",
- DeserializerException.MessageKeys.NOT_IMPLEMENTED);
- }
- }
- // remove here to avoid iterator issues.
- node.remove(toRemove);
- }
-
- private void consumeEntityProperties(final EdmEntityType edmEntityType, final ObjectNode node, final EntityImpl
- entity) throws DeserializerException {
- List<String> propertyNames = edmEntityType.getPropertyNames();
- for (String propertyName : propertyNames) {
- JsonNode jsonNode = node.get(propertyName);
- if (jsonNode != null) {
- EdmProperty edmProperty = (EdmProperty) edmEntityType.getProperty(propertyName);
- if (jsonNode.isNull() && !isNullable(edmProperty)) {
- throw new DeserializerException("Property: " + propertyName + " must not be null.",
- DeserializerException.MessageKeys.INVALID_NULL_PROPERTY, propertyName);
- }
- Property property = consumePropertyNode(edmProperty, jsonNode);
- entity.addProperty(property);
- node.remove(propertyName);
- }
- }
- }
-
- private void consumeExpandedNavigationProperties(final EdmEntityType edmEntityType, final ObjectNode node,
- final EntityImpl entity) throws DeserializerException {
- List<String> navigationPropertyNames = edmEntityType.getNavigationPropertyNames();
- for (String navigationPropertyName : navigationPropertyNames) {
- // read expanded navigation property
- JsonNode jsonNode = node.get(navigationPropertyName);
- if (jsonNode != null) {
- EdmNavigationProperty edmNavigationProperty = edmEntityType.getNavigationProperty(navigationPropertyName);
- boolean isNullable = edmNavigationProperty.isNullable() == null ? true : edmNavigationProperty.isNullable();
- if (jsonNode.isNull() && !isNullable) {
- throw new DeserializerException("Property: " + navigationPropertyName + " must not be null.",
- DeserializerException.MessageKeys.INVALID_NULL_PROPERTY, navigationPropertyName);
- }
-
- LinkImpl link = new LinkImpl();
- link.setTitle(navigationPropertyName);
- if (jsonNode.isArray() && edmNavigationProperty.isCollection()) {
- link.setType(ODataLinkType.ENTITY_SET_NAVIGATION.toString());
- EntitySetImpl inlineEntitySet = new EntitySetImpl();
- inlineEntitySet.getEntities().addAll(consumeEntitySetArray(edmNavigationProperty.getType(), jsonNode));
- link.setInlineEntitySet(inlineEntitySet);
- } else if (!jsonNode.isArray() && !jsonNode.isValueNode() && !edmNavigationProperty.isCollection()) {
- link.setType(ODataLinkType.ENTITY_NAVIGATION.toString());
- if (!jsonNode.isNull()) {
- Entity inlineEntity = consumeEntityNode(edmNavigationProperty.getType(), (ObjectNode) jsonNode);
- link.setInlineEntity(inlineEntity);
- }
- } else {
- throw new DeserializerException("Invalid value: " + jsonNode.getNodeType()
- + " for expanded navigation property: " + navigationPropertyName,
- DeserializerException.MessageKeys.INVALID_VALUE_FOR_NAVIGATION_PROPERTY, navigationPropertyName);
- }
- entity.getNavigationLinks().add(link);
- node.remove(navigationPropertyName);
- }
- }
- }
-
- private Link consumeBindingLink(String key, JsonNode jsonNode, EdmEntityType edmEntityType)
- throws DeserializerException {
- String[] splitKey = key.split("@");
- String navigationPropertyName = splitKey[0];
- EdmNavigationProperty edmNavigationProperty = edmEntityType.getNavigationProperty(navigationPropertyName);
- if (edmNavigationProperty == null) {
- throw new DeserializerException("Invalid navigationPropertyName: " + navigationPropertyName,
- DeserializerException.MessageKeys.NAVIGATION_PROPERTY_NOT_FOUND, navigationPropertyName);
- }
- LinkImpl bindingLink = new LinkImpl();
- bindingLink.setTitle(navigationPropertyName);
-
- if (edmNavigationProperty.isCollection()) {
- assertIsNullNode(key, jsonNode);
- if (!jsonNode.isArray()) {
- throw new DeserializerException("Binding annotation: " + key + " must be an array.",
- DeserializerException.MessageKeys.INVALID_ANNOTATION_TYPE, key);
- }
- List<String> bindingLinkStrings = new ArrayList<String>();
- for (JsonNode arrayValue : jsonNode) {
- assertIsNullNode(key, arrayValue);
- if (!arrayValue.isTextual()) {
- throw new DeserializerException("Binding annotation: " + key + " must have string valued array.",
- DeserializerException.MessageKeys.INVALID_ANNOTATION_TYPE, key);
- }
- bindingLinkStrings.add(arrayValue.asText());
- }
- bindingLink.setType(ODataLinkType.ENTITY_COLLECTION_BINDING.toString());
- bindingLink.setBindingLinks(bindingLinkStrings);
- } else {
- assertIsNullNode(key, jsonNode);
- if (!jsonNode.isValueNode()) {
- throw new DeserializerException("Binding annotation: " + key + " must be a string value.",
- DeserializerException.MessageKeys.INVALID_ANNOTATION_TYPE, key);
- }
- bindingLink.setBindingLink(jsonNode.asText());
- bindingLink.setType(ODataLinkType.ENTITY_BINDING.toString());
- }
- return bindingLink;
- }
-
- private void assertIsNullNode(String key, JsonNode jsonNode) throws DeserializerException {
- if (jsonNode.isNull()) {
- throw new DeserializerException("Annotation: " + key + "must not have a null value.",
- DeserializerException.MessageKeys.INVALID_NULL_ANNOTATION, key);
- }
- }
-
- private Property consumePropertyNode(final EdmProperty edmProperty, final JsonNode jsonNode)
- throws DeserializerException {
- Property property = new PropertyImpl();
- property.setName(edmProperty.getName());
- property.setType(edmProperty.getType().getFullQualifiedName().getFullQualifiedNameAsString());
- if (edmProperty.isCollection()) {
- consumePropertyCollectionNode(edmProperty, jsonNode, property);
- } else {
- consumePropertySingleNode(edmProperty, jsonNode, property);
- }
- return property;
- }
-
- private void consumePropertySingleNode(final EdmProperty edmProperty,
- final JsonNode jsonNode, final Property property)
- throws DeserializerException {
- switch (edmProperty.getType().getKind()) {
- case PRIMITIVE:
- Object value = readPrimitiveValue(edmProperty, jsonNode);
- property.setValue(ValueType.PRIMITIVE, value);
- break;
- case DEFINITION:
- value = readTypeDefinitionValue(edmProperty, jsonNode);
- property.setValue(ValueType.PRIMITIVE, value);
- break;
- case ENUM:
- value = readEnumValue(edmProperty, jsonNode);
- property.setValue(ValueType.PRIMITIVE, value);
- break;
- case COMPLEX:
- value = readComplexNode(edmProperty, jsonNode);
- property.setValue(ValueType.COMPLEX, value);
-
- break;
- default:
- throw new DeserializerException("Invalid Type Kind for a property found: " + edmProperty.getType().getKind(),
- DeserializerException.MessageKeys.INVALID_JSON_TYPE_FOR_PROPERTY, edmProperty.getName());
- }
- }
-
- private Object readComplexNode(final EdmProperty edmProperty, final JsonNode jsonNode)
- throws DeserializerException {
- // read and add all complex properties
- Object value = readComplexValue(edmProperty, jsonNode);
-
- final List<String> toRemove = new ArrayList<String>();
- Iterator<Entry<String, JsonNode>> fieldsIterator = jsonNode.fields();
- while (fieldsIterator.hasNext()) {
- Entry<String, JsonNode> field = fieldsIterator.next();
-
- if (field.getKey().contains(ODATA_CONTROL_INFORMATION_PREFIX)) {
- // Control Information is ignored for requests as per specification chapter "4.5 Control Information"
- toRemove.add(field.getKey());
- } else if (field.getKey().contains(ODATA_ANNOTATION_MARKER)) {
- throw new DeserializerException("Custom annotation with field name: " + field.getKey() + " not supported",
- DeserializerException.MessageKeys.NOT_IMPLEMENTED);
- }
- }
- // remove here to avoid iterator issues.
- if(!jsonNode.isNull()) {
- ((ObjectNode) jsonNode).remove(toRemove);
- }
- // Afterwards the node must be empty
- assertJsonNodeIsEmpty(jsonNode);
-
- return value;
- }
-
- private void consumePropertyCollectionNode(final EdmProperty edmProperty, final JsonNode jsonNode,
- final Property property) throws DeserializerException {
- if (!jsonNode.isArray()) {
- throw new DeserializerException("Value for property: " + edmProperty.getName()
- + " must be an array but is not.", DeserializerException.MessageKeys.INVALID_JSON_TYPE_FOR_PROPERTY,
- edmProperty.getName());
- }
- List<Object> valueArray = new ArrayList<Object>();
- Iterator<JsonNode> iterator = jsonNode.iterator();
- switch (edmProperty.getType().getKind()) {
- case PRIMITIVE:
- while (iterator.hasNext()) {
- JsonNode arrayElement = iterator.next();
- Object value = readPrimitiveValue(edmProperty, arrayElement);
- valueArray.add(value);
- }
- property.setValue(ValueType.COLLECTION_PRIMITIVE, valueArray);
- break;
- case DEFINITION:
- while (iterator.hasNext()) {
- JsonNode arrayElement = iterator.next();
- Object value = readTypeDefinitionValue(edmProperty, arrayElement);
- valueArray.add(value);
- }
- property.setValue(ValueType.COLLECTION_PRIMITIVE, valueArray);
- break;
- case ENUM:
- while (iterator.hasNext()) {
- JsonNode arrayElement = iterator.next();
- Object value = readEnumValue(edmProperty, arrayElement);
- valueArray.add(value);
- }
- property.setValue(ValueType.COLLECTION_ENUM, valueArray);
- break;
- case COMPLEX:
- while (iterator.hasNext()) {
- // read and add all complex properties
- Object value = readComplexNode(edmProperty, iterator.next());
- valueArray.add(value);
- }
- property.setValue(ValueType.COLLECTION_COMPLEX, valueArray);
- break;
- default:
- throw new DeserializerException("Invalid Type Kind for a property found: " + edmProperty.getType().getKind(),
- DeserializerException.MessageKeys.INVALID_JSON_TYPE_FOR_PROPERTY, edmProperty.getName());
- }
- }
-
- private Object readComplexValue(EdmProperty edmComplexProperty, JsonNode jsonNode) throws DeserializerException {
- if(isValidNull(edmComplexProperty, jsonNode)) {
- return null;
- }
- if (jsonNode.isArray() || !jsonNode.isContainerNode()) {
- throw new DeserializerException(
- "Invalid value for property: " + edmComplexProperty.getName() + " must not be an array or primitive value.",
- DeserializerException.MessageKeys.INVALID_JSON_TYPE_FOR_PROPERTY, edmComplexProperty.getName());
- }
- // Even if there are no properties defined we have to give back an empty list
- List<Property> propertyList = new ArrayList<Property>();
- EdmComplexType edmType = (EdmComplexType) edmComplexProperty.getType();
- // Check and consume all Properties
- for (String propertyName : edmType.getPropertyNames()) {
- JsonNode subNode = jsonNode.get(propertyName);
- if (subNode != null) {
- EdmProperty edmProperty = (EdmProperty) edmType.getProperty(propertyName);
- if (subNode.isNull() && !isNullable(edmProperty)) {
- throw new DeserializerException("Property: " + propertyName + " must not be null.",
- DeserializerException.MessageKeys.INVALID_NULL_PROPERTY, propertyName);
- }
- Property property = consumePropertyNode(edmProperty, subNode);
- propertyList.add(property);
- ((ObjectNode) jsonNode).remove(propertyName);
- }
- }
- return propertyList;
- }
-
- private boolean isNullable(EdmProperty edmProperty) {
- return edmProperty.isNullable() == null ? true : edmProperty.isNullable();
- }
-
- private Object readTypeDefinitionValue(EdmProperty edmProperty, JsonNode jsonNode) throws DeserializerException {
- checkForValueNode(edmProperty, jsonNode);
- if(isValidNull(edmProperty, jsonNode)) {
- return null;
- }
- try {
- EdmTypeDefinition edmTypeDefinition = (EdmTypeDefinition) edmProperty.getType();
- checkJsonTypeBasedOnPrimitiveType(edmProperty.getName(), edmTypeDefinition.getUnderlyingType().getName(),
- jsonNode);
- return edmTypeDefinition.valueOfString(jsonNode.asText(), edmProperty.isNullable(),
- edmTypeDefinition.getMaxLength(),
- edmTypeDefinition.getPrecision(), edmTypeDefinition.getScale(), edmTypeDefinition.isUnicode(),
- edmTypeDefinition.getDefaultType());
- } catch (EdmPrimitiveTypeException e) {
- throw new DeserializerException(
- "Invalid value: " + jsonNode.asText() + " for property: " + edmProperty.getName(), e,
- DeserializerException.MessageKeys.INVALID_VALUE_FOR_PROPERTY, edmProperty.getName());
- }
- }
-
- private boolean isValidNull(EdmProperty edmProperty, JsonNode jsonNode) throws DeserializerException {
- if (jsonNode.isNull()) {
- if (isNullable(edmProperty)) {
- return true;
- } else {
- throw new DeserializerException("Property: " + edmProperty.getName() + " must not be null.",
- DeserializerException.MessageKeys.INVALID_NULL_PROPERTY, edmProperty.getName());
- }
-
- }
- return false;
- }
-
- private Object readEnumValue(EdmProperty edmProperty, JsonNode jsonNode) throws DeserializerException {
- checkForValueNode(edmProperty, jsonNode);
- if(isValidNull(edmProperty, jsonNode)) {
- return null;
- }
- try {
- EdmEnumType edmEnumType = (EdmEnumType) edmProperty.getType();
- checkJsonTypeBasedOnPrimitiveType(edmProperty.getName(), edmEnumType.getUnderlyingType().getName(), jsonNode);
- return edmEnumType
- .valueOfString(jsonNode.asText(), edmProperty.isNullable(), edmProperty.getMaxLength(), edmProperty
- .getPrecision(), edmProperty.getScale(), edmProperty.isUnicode(), edmEnumType.getDefaultType());
- } catch (EdmPrimitiveTypeException e) {
- throw new DeserializerException(
- "Invalid value: " + jsonNode.asText() + " for property: " + edmProperty.getName(), e,
- DeserializerException.MessageKeys.INVALID_VALUE_FOR_PROPERTY, edmProperty.getName());
- }
- }
-
- private Object readPrimitiveValue(EdmProperty edmProperty, JsonNode jsonNode) throws DeserializerException {
- checkForValueNode(edmProperty, jsonNode);
- if(isValidNull(edmProperty, jsonNode)) {
- return null;
- }
- try {
- EdmPrimitiveType edmPrimitiveType = (EdmPrimitiveType) edmProperty.getType();
- checkJsonTypeBasedOnPrimitiveType(edmProperty.getName(), edmPrimitiveType.getName(), jsonNode);
- return edmPrimitiveType.valueOfString(jsonNode.asText(), edmProperty.isNullable(),
- edmProperty.getMaxLength(), edmProperty.getPrecision(), edmProperty.getScale(),
- edmProperty.isUnicode(), edmPrimitiveType.getDefaultType());
- } catch (EdmPrimitiveTypeException e) {
- throw new DeserializerException(
- "Invalid value: " + jsonNode.asText() + " for property: " + edmProperty.getName(), e,
- DeserializerException.MessageKeys.INVALID_VALUE_FOR_PROPERTY, edmProperty.getName());
- }
- }
-
- /**
- * Check if JsonNode is a value node (<code>jsonNode.isValueNode()</code>) and if not throw
- * an DeserializerException.
- *
- * @param edmProperty property which is checked
- * @param jsonNode node which is checked
- * @throws DeserializerException is thrown if json node is not a value node
- */
- private void checkForValueNode(final EdmProperty edmProperty, final JsonNode jsonNode)
- throws DeserializerException {
- if (!jsonNode.isValueNode()) {
- throw new DeserializerException(
- "Invalid value for property: " + edmProperty.getName() + " must not be an object or array.",
- DeserializerException.MessageKeys.INVALID_JSON_TYPE_FOR_PROPERTY, edmProperty.getName());
- }
- }
-
- /**
- * Validate that node is empty (<code>node.size == 0</code>) and if not throw
- * an <code>DeserializerException</code>.
- *
- * @param node node to be checked
- * @throws DeserializerException if node is not empty
- */
- private void assertJsonNodeIsEmpty(JsonNode node) throws DeserializerException {
- if (node.size() != 0) {
- final String unknownField = node.fieldNames().next();
- throw new DeserializerException("Tree should be empty but still has content left: " + unknownField,
- DeserializerException.MessageKeys.UNKOWN_CONTENT, unknownField);
- }
- }
-
- private void checkJsonTypeBasedOnPrimitiveType(String propertyName, String edmPrimitiveTypeName, JsonNode jsonNode)
- throws DeserializerException {
- EdmPrimitiveTypeKind primKind;
- try {
- primKind = EdmPrimitiveTypeKind.valueOf(ODataServiceVersion.V40, edmPrimitiveTypeName);
- } catch (IllegalArgumentException e) {
- throw new DeserializerException("Unknown Primitive Type: " + edmPrimitiveTypeName, e,
- DeserializerException.MessageKeys.UNKNOWN_PRIMITIVE_TYPE, edmPrimitiveTypeName, propertyName);
- }
- switch (primKind) {
- // Booleans
- case Boolean:
- if (!jsonNode.isBoolean()) {
- throw new DeserializerException("Invalid json type: " + jsonNode.getNodeType() + " for edm " + primKind
- + " property: " + propertyName, DeserializerException.MessageKeys.INVALID_VALUE_FOR_PROPERTY, propertyName);
- }
- break;
- // Numbers
- case Int16:
- case Int32:
- case Int64:
- case Byte:
- case SByte:
- case Single:
- case Double:
- case Decimal:
- if (!jsonNode.isNumber()) {
- throw new DeserializerException("Invalid json type: " + jsonNode.getNodeType() + " for edm " + primKind
- + " property: " + propertyName, DeserializerException.MessageKeys.INVALID_VALUE_FOR_PROPERTY, propertyName);
- }
- break;
- // Strings
- case String:
- case Binary:
- case Date:
- case DateTimeOffset:
- case Duration:
- case Guid:
- case TimeOfDay:
- if (!jsonNode.isTextual()) {
- throw new DeserializerException("Invalid json type: " + jsonNode.getNodeType() + " for edm " + primKind
- + " property: " + propertyName, DeserializerException.MessageKeys.INVALID_VALUE_FOR_PROPERTY, propertyName);
- }
- break;
- default:
- throw new DeserializerException("Unsupported Edm Primitive Type: " + primKind,
- DeserializerException.MessageKeys.NOT_IMPLEMENTED);
- }
- }
-}
http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/f7a7b484/lib/server-core/src/main/java/org/apache/olingo/server/core/edm/provider/EdmActionImpl.java
----------------------------------------------------------------------
diff --git a/lib/server-core/src/main/java/org/apache/olingo/server/core/edm/provider/EdmActionImpl.java b/lib/server-core/src/main/java/org/apache/olingo/server/core/edm/provider/EdmActionImpl.java
deleted file mode 100644
index e96e165..0000000
--- a/lib/server-core/src/main/java/org/apache/olingo/server/core/edm/provider/EdmActionImpl.java
+++ /dev/null
@@ -1,36 +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.server.core.edm.provider;
-
-import org.apache.olingo.commons.api.edm.Edm;
-import org.apache.olingo.commons.api.edm.EdmAction;
-import org.apache.olingo.commons.api.edm.FullQualifiedName;
-import org.apache.olingo.commons.api.edm.constants.EdmTypeKind;
-import org.apache.olingo.server.api.edm.provider.Action;
-
-public class EdmActionImpl extends EdmOperationImpl implements EdmAction {
-
- public static EdmActionImpl getInstance(final Edm edm, final FullQualifiedName name, final Action action) {
- return EdmOperationImpl.getInstance(new EdmActionImpl(edm, name, action));
- }
-
- private EdmActionImpl(final Edm edm, final FullQualifiedName name, final Action action) {
- super(edm, name, action, EdmTypeKind.ACTION);
- }
-}
http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/f7a7b484/lib/server-core/src/main/java/org/apache/olingo/server/core/edm/provider/EdmActionImportImpl.java
----------------------------------------------------------------------
diff --git a/lib/server-core/src/main/java/org/apache/olingo/server/core/edm/provider/EdmActionImportImpl.java b/lib/server-core/src/main/java/org/apache/olingo/server/core/edm/provider/EdmActionImportImpl.java
deleted file mode 100644
index 0278f6b..0000000
--- a/lib/server-core/src/main/java/org/apache/olingo/server/core/edm/provider/EdmActionImportImpl.java
+++ /dev/null
@@ -1,47 +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.server.core.edm.provider;
-
-import org.apache.olingo.commons.api.edm.Edm;
-import org.apache.olingo.commons.api.edm.EdmAction;
-import org.apache.olingo.commons.api.edm.EdmActionImport;
-import org.apache.olingo.commons.api.edm.EdmEntityContainer;
-import org.apache.olingo.server.api.edm.provider.ActionImport;
-
-public class EdmActionImportImpl extends EdmOperationImportImpl implements EdmActionImport {
-
- private final ActionImport actionImport;
-
- public EdmActionImportImpl(final Edm edm, final EdmEntityContainer container, final ActionImport actionImport) {
-
- super(edm, container, actionImport);
- this.actionImport = actionImport;
- }
-
- @Override
- public EdmAction getUnboundAction() {
- return edm.getUnboundAction(actionImport.getAction());
- }
-
- @Override
- public TargetType getAnnotationsTargetType() {
- return TargetType.ActionImport;
- }
-
-}
http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/f7a7b484/lib/server-core/src/main/java/org/apache/olingo/server/core/edm/provider/EdmBindingTargetImpl.java
----------------------------------------------------------------------
diff --git a/lib/server-core/src/main/java/org/apache/olingo/server/core/edm/provider/EdmBindingTargetImpl.java b/lib/server-core/src/main/java/org/apache/olingo/server/core/edm/provider/EdmBindingTargetImpl.java
deleted file mode 100644
index bd3df0a..0000000
--- a/lib/server-core/src/main/java/org/apache/olingo/server/core/edm/provider/EdmBindingTargetImpl.java
+++ /dev/null
@@ -1,62 +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.server.core.edm.provider;
-
-import org.apache.olingo.commons.api.edm.Edm;
-import org.apache.olingo.commons.api.edm.EdmEntityContainer;
-import org.apache.olingo.commons.api.edm.EdmNavigationPropertyBinding;
-import org.apache.olingo.commons.api.edm.Target;
-import org.apache.olingo.commons.core.edm.AbstractEdmBindingTarget;
-import org.apache.olingo.commons.core.edm.EdmNavigationPropertyBindingImpl;
-import org.apache.olingo.server.api.edm.provider.BindingTarget;
-import org.apache.olingo.server.api.edm.provider.NavigationPropertyBinding;
-
-import java.util.ArrayList;
-import java.util.List;
-
-public abstract class EdmBindingTargetImpl extends AbstractEdmBindingTarget {
-
- private final BindingTarget target;
- private List<EdmNavigationPropertyBinding> navigationPropertyBindings;
-
- public EdmBindingTargetImpl(final Edm edm, final EdmEntityContainer container, final BindingTarget target) {
- super(edm, container, target.getName(), target.getType());
- this.target = target;
- }
-
- @Override
- public List<EdmNavigationPropertyBinding> getNavigationPropertyBindings() {
- if (navigationPropertyBindings == null) {
- List<NavigationPropertyBinding> providerBindings = target.getNavigationPropertyBindings();
- navigationPropertyBindings = new ArrayList<EdmNavigationPropertyBinding>();
- if (providerBindings != null) {
- for (NavigationPropertyBinding binding : providerBindings) {
- Target providerTarget = binding.getTarget();
- String targetString = "";
- if (providerTarget.getEntityContainer() != null) {
- targetString = targetString + providerTarget.getEntityContainer().getFullQualifiedNameAsString() + "/";
- }
- targetString = targetString + providerTarget.getTargetName();
- navigationPropertyBindings.add(new EdmNavigationPropertyBindingImpl(binding.getPath(), targetString));
- }
- }
- }
- return navigationPropertyBindings;
- }
-}
http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/f7a7b484/lib/server-core/src/main/java/org/apache/olingo/server/core/edm/provider/EdmComplexTypeImpl.java
----------------------------------------------------------------------
diff --git a/lib/server-core/src/main/java/org/apache/olingo/server/core/edm/provider/EdmComplexTypeImpl.java b/lib/server-core/src/main/java/org/apache/olingo/server/core/edm/provider/EdmComplexTypeImpl.java
deleted file mode 100644
index 36c5193..0000000
--- a/lib/server-core/src/main/java/org/apache/olingo/server/core/edm/provider/EdmComplexTypeImpl.java
+++ /dev/null
@@ -1,81 +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.server.core.edm.provider;
-
-import org.apache.olingo.commons.api.edm.Edm;
-import org.apache.olingo.commons.api.edm.EdmAnnotation;
-import org.apache.olingo.commons.api.edm.EdmNavigationProperty;
-import org.apache.olingo.commons.api.edm.EdmProperty;
-import org.apache.olingo.commons.api.edm.EdmTerm;
-import org.apache.olingo.commons.api.edm.FullQualifiedName;
-import org.apache.olingo.commons.core.edm.AbstractEdmComplexType;
-import org.apache.olingo.commons.core.edm.EdmStructuredTypeHelper;
-import org.apache.olingo.server.api.edm.provider.ComplexType;
-
-import java.util.List;
-import java.util.Map;
-
-public class EdmComplexTypeImpl extends AbstractEdmComplexType {
-
- private final EdmStructuredTypeHelper helper;
-
- public static EdmComplexTypeImpl getInstance(
- final Edm edm, final FullQualifiedName name, final ComplexType complexType) {
-
- final EdmComplexTypeImpl instance = new EdmComplexTypeImpl(edm, name, complexType);
- return instance;
- }
-
- private EdmComplexTypeImpl(final Edm edm, final FullQualifiedName name, final ComplexType complexType) {
- super(edm, name, complexType.getBaseType());
- helper = new EdmStructuredTypeHelperImpl(edm, name, complexType);
- }
-
- @Override
- protected Map<String, EdmProperty> getProperties() {
- return helper.getProperties();
- }
-
- @Override
- protected Map<String, EdmNavigationProperty> getNavigationProperties() {
- return helper.getNavigationProperties();
- }
-
- @Override
- public boolean isOpenType() {
- return helper.isOpenType();
- }
-
- @Override
- public boolean isAbstract() {
- return helper.isAbstract();
- }
-
- @Override
- public EdmAnnotation getAnnotation(final EdmTerm term) {
- // TODO: implement
- throw new UnsupportedOperationException("Not supported yet.");
- }
-
- @Override
- public List<EdmAnnotation> getAnnotations() {
- // TODO: implement
- throw new UnsupportedOperationException("Not supported yet.");
- }
-}
http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/f7a7b484/lib/server-core/src/main/java/org/apache/olingo/server/core/edm/provider/EdmEntityContainerImpl.java
----------------------------------------------------------------------
diff --git a/lib/server-core/src/main/java/org/apache/olingo/server/core/edm/provider/EdmEntityContainerImpl.java b/lib/server-core/src/main/java/org/apache/olingo/server/core/edm/provider/EdmEntityContainerImpl.java
deleted file mode 100644
index 1ed8d56..0000000
--- a/lib/server-core/src/main/java/org/apache/olingo/server/core/edm/provider/EdmEntityContainerImpl.java
+++ /dev/null
@@ -1,210 +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.server.core.edm.provider;
-
-import org.apache.olingo.commons.api.ODataException;
-import org.apache.olingo.commons.api.edm.Edm;
-import org.apache.olingo.commons.api.edm.EdmActionImport;
-import org.apache.olingo.commons.api.edm.EdmAnnotation;
-import org.apache.olingo.commons.api.edm.EdmEntitySet;
-import org.apache.olingo.commons.api.edm.EdmException;
-import org.apache.olingo.commons.api.edm.EdmFunctionImport;
-import org.apache.olingo.commons.api.edm.EdmSingleton;
-import org.apache.olingo.commons.api.edm.EdmTerm;
-import org.apache.olingo.commons.api.edm.FullQualifiedName;
-import org.apache.olingo.commons.core.edm.AbstractEdmEntityContainer;
-import org.apache.olingo.server.api.edm.provider.ActionImport;
-import org.apache.olingo.server.api.edm.provider.EdmProvider;
-import org.apache.olingo.server.api.edm.provider.EntityContainer;
-import org.apache.olingo.server.api.edm.provider.EntityContainerInfo;
-import org.apache.olingo.server.api.edm.provider.EntitySet;
-import org.apache.olingo.server.api.edm.provider.FunctionImport;
-import org.apache.olingo.server.api.edm.provider.Singleton;
-
-import java.util.List;
-
-public class EdmEntityContainerImpl extends AbstractEdmEntityContainer {
-
- private final EdmProvider provider;
-
- private EntityContainer container;
-
- public EdmEntityContainerImpl(final Edm edm, final EdmProvider provider,
- final EntityContainerInfo entityContainerInfo) {
- super(edm, entityContainerInfo.getContainerName(), entityContainerInfo.getExtendsContainer());
- this.provider = provider;
- }
-
- public EdmEntityContainerImpl(final Edm edm, final EdmProvider provider, final FullQualifiedName containerFQN,
- final EntityContainer entityContainer) {
- super(edm, containerFQN, entityContainer.getExtendsContainer());
- this.provider = provider;
- container = entityContainer;
- }
-
- @Override
- protected EdmSingleton createSingleton(final String singletonName) {
- EdmSingleton singleton = null;
-
- try {
- final Singleton providerSingleton = provider.getSingleton(entityContainerName, singletonName);
- if (providerSingleton != null) {
- singleton = new EdmSingletonImpl(edm, this, providerSingleton);
- }
- } catch (ODataException e) {
- throw new EdmException(e);
- }
-
- return singleton;
- }
-
- @Override
- protected EdmEntitySet createEntitySet(final String entitySetName) {
- EdmEntitySet entitySet = null;
-
- try {
- final EntitySet providerEntitySet = provider.getEntitySet(entityContainerName, entitySetName);
- if (providerEntitySet != null) {
- entitySet = new EdmEntitySetImpl(edm, this, providerEntitySet);
- }
- } catch (ODataException e) {
- throw new EdmException(e);
- }
-
- return entitySet;
- }
-
- @Override
- protected EdmActionImport createActionImport(final String actionImportName) {
- EdmActionImport actionImport = null;
-
- try {
- final ActionImport providerImport = provider.getActionImport(entityContainerName, actionImportName);
- if (providerImport != null) {
- actionImport = new EdmActionImportImpl(edm, this, providerImport);
- }
- } catch (ODataException e) {
- throw new EdmException(e);
- }
-
- return actionImport;
- }
-
- @Override
- protected EdmFunctionImport createFunctionImport(final String functionImportName) {
- EdmFunctionImport functionImport = null;
-
- try {
- final FunctionImport providerImport = provider.getFunctionImport(entityContainerName, functionImportName);
- if (providerImport != null) {
- functionImport = new EdmFunctionImportImpl(edm, this, providerImport);
- }
- } catch (ODataException e) {
- throw new EdmException(e);
- }
-
- return functionImport;
- }
-
- @Override
- protected void loadAllEntitySets() {
- loadContainer();
- List<EntitySet> providerEntitySets = container.getEntitySets();
- if (providerEntitySets != null) {
- for (EntitySet entitySet : providerEntitySets) {
- if (!entitySets.containsKey(entitySet.getName())) {
- EdmEntitySetImpl impl = new EdmEntitySetImpl(edm, this, entitySet);
- entitySets.put(impl.getName(), impl);
- }
- }
- }
- }
-
- @Override
- protected void loadAllFunctionImports() {
- loadContainer();
- List<FunctionImport> providerFuctionImports = container.getFunctionImports();
- if (providerFuctionImports != null) {
- for (FunctionImport functionImport : providerFuctionImports) {
- String functionName = functionImport.getName();
- if (!functionImports.containsKey(functionName)) {
- EdmFunctionImportImpl impl = new EdmFunctionImportImpl(edm, this, functionImport);
- functionImports.put(functionName, impl);
- }
- }
- }
-
- }
-
- @Override
- protected void loadAllSingletons() {
- loadContainer();
- List<Singleton> providerSingletons = container.getSingletons();
- if (providerSingletons != null) {
- for (Singleton singleton : providerSingletons) {
- if (!singletons.containsKey(singleton.getName())) {
- EdmSingletonImpl impl = new EdmSingletonImpl(edm, this, singleton);
- singletons.put(singleton.getName(), impl);
- }
- }
- }
-
- }
-
- @Override
- protected void loadAllActionImports() {
- loadContainer();
- List<ActionImport> providerActionImports = container.getActionImports();
- if (providerActionImports != null) {
- for (ActionImport actionImport : providerActionImports) {
- if (!actionImports.containsKey(actionImport.getName())) {
- EdmActionImportImpl impl = new EdmActionImportImpl(edm, this, actionImport);
- actionImports.put(actionImport.getName(), impl);
- }
- }
- }
-
- }
-
- private void loadContainer() {
- if (container == null) {
- try {
- container = provider.getEntityContainer();
- if (container == null) {
- // TODO: Should we throw an exception here?
- container = new EntityContainer().setName(getName());
- }
- } catch (ODataException e) {
- throw new EdmException(e);
- }
- }
- }
-
- @Override
- public EdmAnnotation getAnnotation(final EdmTerm term) {
- // TODO: implement
- throw new UnsupportedOperationException("Not supported yet.");
- }
-
- @Override
- public List<EdmAnnotation> getAnnotations() {
- // TODO: implement
- throw new UnsupportedOperationException("Not supported yet.");
- }
-}
http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/f7a7b484/lib/server-core/src/main/java/org/apache/olingo/server/core/edm/provider/EdmEntitySetImpl.java
----------------------------------------------------------------------
diff --git a/lib/server-core/src/main/java/org/apache/olingo/server/core/edm/provider/EdmEntitySetImpl.java b/lib/server-core/src/main/java/org/apache/olingo/server/core/edm/provider/EdmEntitySetImpl.java
deleted file mode 100644
index a2926eb..0000000
--- a/lib/server-core/src/main/java/org/apache/olingo/server/core/edm/provider/EdmEntitySetImpl.java
+++ /dev/null
@@ -1,60 +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.server.core.edm.provider;
-
-import org.apache.olingo.commons.api.edm.Edm;
-import org.apache.olingo.commons.api.edm.EdmAnnotation;
-import org.apache.olingo.commons.api.edm.EdmEntityContainer;
-import org.apache.olingo.commons.api.edm.EdmEntitySet;
-import org.apache.olingo.commons.api.edm.EdmTerm;
-import org.apache.olingo.server.api.edm.provider.EntitySet;
-
-import java.util.List;
-
-public class EdmEntitySetImpl extends EdmBindingTargetImpl implements EdmEntitySet {
-
- private EntitySet entitySet;
-
- public EdmEntitySetImpl(final Edm edm, final EdmEntityContainer container, final EntitySet entitySet) {
- super(edm, container, entitySet);
- this.entitySet = entitySet;
- }
-
- @Override
- public boolean isIncludeInServiceDocument() {
- return entitySet.isIncludeInServiceDocument();
- }
-
- @Override
- public TargetType getAnnotationsTargetType() {
- return TargetType.EntitySet;
- }
-
- @Override
- public EdmAnnotation getAnnotation(final EdmTerm term) {
- // TODO: implement
- throw new UnsupportedOperationException("Not supported yet.");
- }
-
- @Override
- public List<EdmAnnotation> getAnnotations() {
- // TODO: implement
- throw new UnsupportedOperationException("Not supported yet.");
- }
-}
http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/f7a7b484/lib/server-core/src/main/java/org/apache/olingo/server/core/edm/provider/EdmEntityTypeImpl.java
----------------------------------------------------------------------
diff --git a/lib/server-core/src/main/java/org/apache/olingo/server/core/edm/provider/EdmEntityTypeImpl.java b/lib/server-core/src/main/java/org/apache/olingo/server/core/edm/provider/EdmEntityTypeImpl.java
deleted file mode 100644
index 4dff2ba..0000000
--- a/lib/server-core/src/main/java/org/apache/olingo/server/core/edm/provider/EdmEntityTypeImpl.java
+++ /dev/null
@@ -1,112 +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.server.core.edm.provider;
-
-import org.apache.olingo.commons.api.edm.Edm;
-import org.apache.olingo.commons.api.edm.EdmAnnotation;
-import org.apache.olingo.commons.api.edm.EdmEntityType;
-import org.apache.olingo.commons.api.edm.EdmKeyPropertyRef;
-import org.apache.olingo.commons.api.edm.EdmNavigationProperty;
-import org.apache.olingo.commons.api.edm.EdmProperty;
-import org.apache.olingo.commons.api.edm.EdmTerm;
-import org.apache.olingo.commons.api.edm.FullQualifiedName;
-import org.apache.olingo.commons.core.edm.AbstractEdmEntityType;
-import org.apache.olingo.commons.core.edm.EdmStructuredTypeHelper;
-import org.apache.olingo.server.api.edm.provider.EntityType;
-import org.apache.olingo.server.api.edm.provider.PropertyRef;
-
-import java.util.ArrayList;
-import java.util.List;
-import java.util.Map;
-
-public class EdmEntityTypeImpl extends AbstractEdmEntityType {
-
- private final EdmStructuredTypeHelper helper;
-
- private EntityType entityType;
-
- private boolean baseTypeChecked = false;
-
- public static EdmEntityTypeImpl getInstance(final Edm edm, final FullQualifiedName name,
- final EntityType entityType) {
-
- final EdmEntityTypeImpl instance = new EdmEntityTypeImpl(edm, name, entityType);
- return instance;
- }
-
- private EdmEntityTypeImpl(final Edm edm, final FullQualifiedName name, final EntityType entityType) {
- super(edm, name, entityType.getBaseType(), entityType.hasStream());
- this.entityType = entityType;
- helper = new EdmStructuredTypeHelperImpl(edm, name, entityType);
- }
-
- @Override
- protected Map<String, EdmProperty> getProperties() {
- return helper.getProperties();
- }
-
- @Override
- protected Map<String, EdmNavigationProperty> getNavigationProperties() {
- return helper.getNavigationProperties();
- }
-
- @Override
- protected void checkBaseType() {
- if (!baseTypeChecked) {
- if (baseTypeName != null) {
- baseType = buildBaseType(baseTypeName);
- entityBaseType = (EdmEntityType) baseType;
- }
- if (baseType == null
- || (baseType.isAbstract() && ((AbstractEdmEntityType) baseType).getKeyPropertyRefs().size() == 0)) {
- final List<PropertyRef> key = entityType.getKey();
- if (key != null) {
- final List<EdmKeyPropertyRef> edmKey = new ArrayList<EdmKeyPropertyRef>();
- for (PropertyRef ref : key) {
- edmKey.add(new EdmKeyPropertyRefImpl(this, ref));
- }
- setEdmKeyPropertyRef(edmKey);
- }
- }
- baseTypeChecked = true;
- }
- }
-
- @Override
- public boolean isOpenType() {
- return helper.isOpenType();
- }
-
- @Override
- public boolean isAbstract() {
- return helper.isAbstract();
- }
-
- @Override
- public EdmAnnotation getAnnotation(final EdmTerm term) {
- // TODO: implement
- throw new UnsupportedOperationException("Not supported yet.");
- }
-
- @Override
- public List<EdmAnnotation> getAnnotations() {
- // TODO: implement
- throw new UnsupportedOperationException("Not supported yet.");
- }
-}
http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/f7a7b484/lib/server-core/src/main/java/org/apache/olingo/server/core/edm/provider/EdmEnumTypeImpl.java
----------------------------------------------------------------------
diff --git a/lib/server-core/src/main/java/org/apache/olingo/server/core/edm/provider/EdmEnumTypeImpl.java b/lib/server-core/src/main/java/org/apache/olingo/server/core/edm/provider/EdmEnumTypeImpl.java
deleted file mode 100644
index ac1c83d..0000000
--- a/lib/server-core/src/main/java/org/apache/olingo/server/core/edm/provider/EdmEnumTypeImpl.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.server.core.edm.provider;
-
-import java.util.ArrayList;
-import java.util.List;
-
-import org.apache.olingo.commons.api.edm.Edm;
-import org.apache.olingo.commons.api.edm.EdmMember;
-import org.apache.olingo.commons.api.edm.EdmPrimitiveType;
-import org.apache.olingo.commons.api.edm.EdmPrimitiveTypeKind;
-import org.apache.olingo.commons.api.edm.FullQualifiedName;
-import org.apache.olingo.commons.core.edm.AbstractEdmEnumType;
-import org.apache.olingo.commons.core.edm.primitivetype.EdmPrimitiveTypeFactory;
-import org.apache.olingo.server.api.edm.provider.EnumMember;
-import org.apache.olingo.server.api.edm.provider.EnumType;
-
-public class EdmEnumTypeImpl extends AbstractEdmEnumType {
-
- private final EdmPrimitiveType underlyingType;
-
- private final EnumType enumType;
-
- private List<EdmMember> members;
-
- public EdmEnumTypeImpl(final Edm edm, final FullQualifiedName enumName, final EnumType enumType) {
- super(edm, enumName, enumType.isFlags());
-
- if (enumType.getUnderlyingType() == null) {
- underlyingType = EdmPrimitiveTypeFactory.getInstance(EdmPrimitiveTypeKind.Int32);
- } else {
- underlyingType = EdmPrimitiveTypeFactory.getInstance(
- EdmPrimitiveTypeKind.valueOf(enumType.getUnderlyingType().getName()));
- // TODO: Should we validate that the underlying type is of byte, sbyte, in16, int32 or int64?
- }
-
- this.enumType = enumType;
- }
-
- @Override
- public EdmPrimitiveType getUnderlyingType() {
- return underlyingType;
- }
-
- @Override
- protected List<? extends EdmMember> getMembers() {
- if (members == null) {
- members = new ArrayList<EdmMember>(enumType.getMembers().size());
- for (EnumMember member : enumType.getMembers()) {
- members.add(new EdmMemberImpl(edm, getFullQualifiedName(), member.getName(), member.getValue()));
- }
- }
- return members;
- }
-
-}
http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/f7a7b484/lib/server-core/src/main/java/org/apache/olingo/server/core/edm/provider/EdmFunctionImpl.java
----------------------------------------------------------------------
diff --git a/lib/server-core/src/main/java/org/apache/olingo/server/core/edm/provider/EdmFunctionImpl.java b/lib/server-core/src/main/java/org/apache/olingo/server/core/edm/provider/EdmFunctionImpl.java
deleted file mode 100644
index f23e0a8..0000000
--- a/lib/server-core/src/main/java/org/apache/olingo/server/core/edm/provider/EdmFunctionImpl.java
+++ /dev/null
@@ -1,56 +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.server.core.edm.provider;
-
-import org.apache.olingo.commons.api.edm.Edm;
-import org.apache.olingo.commons.api.edm.EdmException;
-import org.apache.olingo.commons.api.edm.EdmFunction;
-import org.apache.olingo.commons.api.edm.EdmReturnType;
-import org.apache.olingo.commons.api.edm.FullQualifiedName;
-import org.apache.olingo.commons.api.edm.constants.EdmTypeKind;
-import org.apache.olingo.server.api.edm.provider.Function;
-
-public class EdmFunctionImpl extends EdmOperationImpl implements EdmFunction {
-
- private final Function function;
-
- public static EdmFunctionImpl getInstance(final Edm edm, final FullQualifiedName name, final Function function) {
- return EdmOperationImpl.getInstance(new EdmFunctionImpl(edm, name, function));
- }
-
- private EdmFunctionImpl(final Edm edm, final FullQualifiedName name, final Function function) {
- super(edm, name, function, EdmTypeKind.FUNCTION);
- this.function = function;
- }
-
- @Override
- public boolean isComposable() {
- return function.isComposable();
- }
-
- @Override
- public EdmReturnType getReturnType() {
- final EdmReturnType returnType = super.getReturnType();
- if (returnType == null) {
- throw new EdmException("ReturnType for a function must not be null");
- }
- return returnType;
- }
-
-}
http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/f7a7b484/lib/server-core/src/main/java/org/apache/olingo/server/core/edm/provider/EdmFunctionImportImpl.java
----------------------------------------------------------------------
diff --git a/lib/server-core/src/main/java/org/apache/olingo/server/core/edm/provider/EdmFunctionImportImpl.java b/lib/server-core/src/main/java/org/apache/olingo/server/core/edm/provider/EdmFunctionImportImpl.java
deleted file mode 100644
index e07eb9f..0000000
--- a/lib/server-core/src/main/java/org/apache/olingo/server/core/edm/provider/EdmFunctionImportImpl.java
+++ /dev/null
@@ -1,71 +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.server.core.edm.provider;
-
-import org.apache.olingo.commons.api.edm.Edm;
-import org.apache.olingo.commons.api.edm.EdmAnnotation;
-import org.apache.olingo.commons.api.edm.EdmEntityContainer;
-import org.apache.olingo.commons.api.edm.EdmFunction;
-import org.apache.olingo.commons.api.edm.EdmFunctionImport;
-import org.apache.olingo.commons.api.edm.FullQualifiedName;
-import org.apache.olingo.server.api.edm.provider.FunctionImport;
-
-import java.util.List;
-
-public class EdmFunctionImportImpl extends EdmOperationImportImpl implements EdmFunctionImport {
-
- private final FunctionImport functionImport;
-
- public EdmFunctionImportImpl(final Edm edm, final EdmEntityContainer container, final FunctionImport functionImport) {
-
- super(edm, container, functionImport);
- this.functionImport = functionImport;
- }
-
- @Override
- public FullQualifiedName getFunctionFqn() {
- return functionImport.getFunction();
- }
-
- @Override
- public EdmFunction getUnboundFunction(final List<String> parameterNames) {
- return edm.getUnboundFunction(getFunctionFqn(), parameterNames);
- }
-
- @Override
- public List<EdmFunction> getUnboundFunctions() {
- return edm.getUnboundFunctions(getFunctionFqn());
- }
-
- @Override
- public boolean isIncludeInServiceDocument() {
- return functionImport.isIncludeInServiceDocument();
- }
-
- @Override
- public TargetType getAnnotationsTargetType() {
- return TargetType.FunctionImport;
- }
-
- @Override
- public List<EdmAnnotation> getAnnotations() {
- // TODO: implement
- throw new UnsupportedOperationException("Not supported yet.");
- }
-}
http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/f7a7b484/lib/server-core/src/main/java/org/apache/olingo/server/core/edm/provider/EdmKeyPropertyRefImpl.java
----------------------------------------------------------------------
diff --git a/lib/server-core/src/main/java/org/apache/olingo/server/core/edm/provider/EdmKeyPropertyRefImpl.java b/lib/server-core/src/main/java/org/apache/olingo/server/core/edm/provider/EdmKeyPropertyRefImpl.java
deleted file mode 100644
index 0660ac0..0000000
--- a/lib/server-core/src/main/java/org/apache/olingo/server/core/edm/provider/EdmKeyPropertyRefImpl.java
+++ /dev/null
@@ -1,48 +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.server.core.edm.provider;
-
-import org.apache.olingo.commons.api.edm.EdmEntityType;
-import org.apache.olingo.commons.core.edm.AbstractEdmKeyPropertyRef;
-import org.apache.olingo.server.api.edm.provider.PropertyRef;
-
-public class EdmKeyPropertyRefImpl extends AbstractEdmKeyPropertyRef {
-
- private final PropertyRef ref;
-
- public EdmKeyPropertyRefImpl(final EdmEntityType edmEntityType, final PropertyRef ref) {
- super(edmEntityType);
- this.ref = ref;
- }
-
- @Override
- public String getKeyPropertyName() {
- return ref.getPropertyName();
- }
-
- @Override
- public String getAlias() {
- return ref.getAlias();
- }
-
- @Override
- public String getPath() {
- return ref.getPath();
- }
-}
http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/f7a7b484/lib/server-core/src/main/java/org/apache/olingo/server/core/edm/provider/EdmMemberImpl.java
----------------------------------------------------------------------
diff --git a/lib/server-core/src/main/java/org/apache/olingo/server/core/edm/provider/EdmMemberImpl.java b/lib/server-core/src/main/java/org/apache/olingo/server/core/edm/provider/EdmMemberImpl.java
deleted file mode 100644
index 5ffe031..0000000
--- a/lib/server-core/src/main/java/org/apache/olingo/server/core/edm/provider/EdmMemberImpl.java
+++ /dev/null
@@ -1,47 +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.server.core.edm.provider;
-
-import org.apache.olingo.commons.api.edm.Edm;
-import org.apache.olingo.commons.api.edm.EdmAnnotation;
-import org.apache.olingo.commons.api.edm.EdmTerm;
-import org.apache.olingo.commons.api.edm.FullQualifiedName;
-import org.apache.olingo.commons.core.edm.AbstractEdmMember;
-
-import java.util.List;
-
-public class EdmMemberImpl extends AbstractEdmMember {
-
- public EdmMemberImpl(final Edm edm, final FullQualifiedName enumFQN, final String name, final String value) {
- super(edm, enumFQN, name, value);
- }
-
- @Override
- public EdmAnnotation getAnnotation(final EdmTerm term) {
- // TODO: implement
- throw new UnsupportedOperationException("Not supported yet.");
- }
-
- @Override
- public List<EdmAnnotation> getAnnotations() {
- // TODO: implement
- throw new UnsupportedOperationException("Not supported yet.");
- }
-
-}
http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/f7a7b484/lib/server-core/src/main/java/org/apache/olingo/server/core/edm/provider/EdmNavigationPropertyImpl.java
----------------------------------------------------------------------
diff --git a/lib/server-core/src/main/java/org/apache/olingo/server/core/edm/provider/EdmNavigationPropertyImpl.java b/lib/server-core/src/main/java/org/apache/olingo/server/core/edm/provider/EdmNavigationPropertyImpl.java
deleted file mode 100644
index 7562360..0000000
--- a/lib/server-core/src/main/java/org/apache/olingo/server/core/edm/provider/EdmNavigationPropertyImpl.java
+++ /dev/null
@@ -1,119 +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.server.core.edm.provider;
-
-import org.apache.olingo.commons.api.edm.Edm;
-import org.apache.olingo.commons.api.edm.EdmAnnotation;
-import org.apache.olingo.commons.api.edm.EdmReferentialConstraint;
-import org.apache.olingo.commons.api.edm.EdmTerm;
-import org.apache.olingo.commons.api.edm.FullQualifiedName;
-import org.apache.olingo.commons.core.edm.AbstractEdmNavigationProperty;
-import org.apache.olingo.server.api.edm.provider.NavigationProperty;
-import org.apache.olingo.server.api.edm.provider.ReferentialConstraint;
-
-import java.util.ArrayList;
-import java.util.List;
-
-public class EdmNavigationPropertyImpl extends AbstractEdmNavigationProperty {
-
- private final FullQualifiedName structuredTypeName;
-
- private final NavigationProperty navigationProperty;
-
- private List<EdmReferentialConstraint> referentialConstraints;
-
- public EdmNavigationPropertyImpl(
- final Edm edm, final FullQualifiedName structuredTypeName, final NavigationProperty navigationProperty) {
-
- super(edm, navigationProperty.getName());
-
- this.structuredTypeName = structuredTypeName;
- this.navigationProperty = navigationProperty;
- }
-
- @Override
- protected FullQualifiedName getTypeFQN() {
- return navigationProperty.getType();
- }
-
- @Override
- public boolean isCollection() {
- return navigationProperty.isCollection();
- }
-
- @Override
- public Boolean isNullable() {
- return navigationProperty.getNullable();
- }
-
- @Override
- public Boolean containsTarget() {
- return navigationProperty.isContainsTarget();
- }
-
- @Override
- protected String internatGetPartner() {
- return navigationProperty.getPartner();
- }
-
- @Override
- public String getReferencingPropertyName(final String referencedPropertyName) {
- final List<ReferentialConstraint> referentialConstraints = navigationProperty.getReferentialConstraints();
- if (referentialConstraints != null) {
- for (ReferentialConstraint constraint : referentialConstraints) {
- if (constraint.getReferencedProperty().equals(referencedPropertyName)) {
- return constraint.getProperty();
- }
- }
- }
- return null;
- }
-
- @Override
- public List<EdmReferentialConstraint> getReferentialConstraints() {
- if (referentialConstraints == null) {
- final List<ReferentialConstraint> providerConstraints = navigationProperty.getReferentialConstraints();
- referentialConstraints = new ArrayList<EdmReferentialConstraint>();
- if (providerConstraints != null) {
- for (ReferentialConstraint constraint : providerConstraints) {
- referentialConstraints.add(
- new EdmReferentialConstraintImpl(constraint.getProperty(), constraint.getReferencedProperty()));
- }
- }
- }
- return referentialConstraints;
- }
-
- @Override
- public FullQualifiedName getAnnotationsTargetFQN() {
- return structuredTypeName;
- }
-
- @Override
- public EdmAnnotation getAnnotation(final EdmTerm term) {
- // TODO: implement
- throw new UnsupportedOperationException("Not supported yet.");
- }
-
- @Override
- public List<EdmAnnotation> getAnnotations() {
- // TODO: implement
- throw new UnsupportedOperationException("Not supported yet.");
- }
-}
http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/f7a7b484/lib/server-core/src/main/java/org/apache/olingo/server/core/edm/provider/EdmOperationImpl.java
----------------------------------------------------------------------
diff --git a/lib/server-core/src/main/java/org/apache/olingo/server/core/edm/provider/EdmOperationImpl.java b/lib/server-core/src/main/java/org/apache/olingo/server/core/edm/provider/EdmOperationImpl.java
deleted file mode 100644
index 0b5a8f2..0000000
--- a/lib/server-core/src/main/java/org/apache/olingo/server/core/edm/provider/EdmOperationImpl.java
+++ /dev/null
@@ -1,100 +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.server.core.edm.provider;
-
-import org.apache.olingo.commons.api.edm.Edm;
-import org.apache.olingo.commons.api.edm.EdmAnnotation;
-import org.apache.olingo.commons.api.edm.EdmParameter;
-import org.apache.olingo.commons.api.edm.EdmTerm;
-import org.apache.olingo.commons.api.edm.FullQualifiedName;
-import org.apache.olingo.commons.api.edm.constants.EdmTypeKind;
-import org.apache.olingo.commons.core.edm.AbstractEdmOperation;
-import org.apache.olingo.server.api.edm.provider.EntitySetPath;
-import org.apache.olingo.server.api.edm.provider.Operation;
-import org.apache.olingo.server.api.edm.provider.Parameter;
-
-import java.util.ArrayList;
-import java.util.List;
-
-public abstract class EdmOperationImpl extends AbstractEdmOperation {
-
- protected final Operation operation;
-
- protected static <T extends EdmOperationImpl> T getInstance(final T instance) {
- final List<Parameter> providerParameters = instance.operation.getParameters();
- if (providerParameters != null) {
- final List<EdmParameter> _parameters = new ArrayList<EdmParameter>(providerParameters.size());
- for (Parameter parameter : providerParameters) {
- _parameters.add(new EdmParameterImpl(instance.edm, parameter));
- }
- instance.setParameters(_parameters);
- }
-
- final EntitySetPath entitySetPath = instance.operation.getEntitySetPath();
- if (entitySetPath != null && entitySetPath.getPath() != null) {
- instance.setEntitySetPath(entitySetPath.getPath());
- }
-
- instance.setIsBound(instance.operation.isBound());
-
- if (instance.operation.getReturnType() != null) {
- instance.setReturnType(new EdmReturnTypeImpl(instance.edm, instance.operation.getReturnType()));
- }
-
- return instance;
- }
-
- protected EdmOperationImpl(final Edm edm, final FullQualifiedName name, final Operation operation,
- final EdmTypeKind kind) {
-
- super(edm, name, kind);
- this.operation = operation;
- }
-
- @Override
- public FullQualifiedName getBindingParameterTypeFqn() {
- if (isBound()) {
- Parameter bindingParameter = operation.getParameters().get(0);
- return bindingParameter.getType();
- }
- return null;
- }
-
- @Override
- public Boolean isBindingParameterTypeCollection() {
- if (isBound()) {
- Parameter bindingParameter = operation.getParameters().get(0);
- return bindingParameter.isCollection();
- }
- return null;
- }
-
- @Override
- public EdmAnnotation getAnnotation(final EdmTerm term) {
- // TODO: implement
- throw new UnsupportedOperationException("Not supported yet.");
- }
-
- @Override
- public List<EdmAnnotation> getAnnotations() {
- // TODO: implement
- throw new UnsupportedOperationException("Not supported yet.");
- }
-
-}
http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/f7a7b484/lib/server-core/src/main/java/org/apache/olingo/server/core/edm/provider/EdmOperationImportImpl.java
----------------------------------------------------------------------
diff --git a/lib/server-core/src/main/java/org/apache/olingo/server/core/edm/provider/EdmOperationImportImpl.java b/lib/server-core/src/main/java/org/apache/olingo/server/core/edm/provider/EdmOperationImportImpl.java
deleted file mode 100644
index 2cc85d0..0000000
--- a/lib/server-core/src/main/java/org/apache/olingo/server/core/edm/provider/EdmOperationImportImpl.java
+++ /dev/null
@@ -1,48 +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.server.core.edm.provider;
-
-import org.apache.olingo.commons.api.edm.Edm;
-import org.apache.olingo.commons.api.edm.EdmAnnotation;
-import org.apache.olingo.commons.api.edm.EdmEntityContainer;
-import org.apache.olingo.commons.api.edm.EdmTerm;
-import org.apache.olingo.commons.core.edm.AbstractEdmOperationImport;
-import org.apache.olingo.server.api.edm.provider.OperationImport;
-
-import java.util.List;
-
-public abstract class EdmOperationImportImpl extends AbstractEdmOperationImport {
-
- public EdmOperationImportImpl(final Edm edm, final EdmEntityContainer container,
- final OperationImport operationImport) {
- super(edm, container, operationImport.getName(), operationImport.getEntitySet());
- }
-
- @Override
- public EdmAnnotation getAnnotation(final EdmTerm term) {
- // TODO: implement
- throw new UnsupportedOperationException("Not supported yet.");
- }
-
- @Override
- public List<EdmAnnotation> getAnnotations() {
- // TODO: implement
- throw new UnsupportedOperationException("Not supported yet.");
- }
-}
http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/f7a7b484/lib/server-core/src/main/java/org/apache/olingo/server/core/edm/provider/EdmParameterImpl.java
----------------------------------------------------------------------
diff --git a/lib/server-core/src/main/java/org/apache/olingo/server/core/edm/provider/EdmParameterImpl.java b/lib/server-core/src/main/java/org/apache/olingo/server/core/edm/provider/EdmParameterImpl.java
deleted file mode 100644
index 53b46d2..0000000
--- a/lib/server-core/src/main/java/org/apache/olingo/server/core/edm/provider/EdmParameterImpl.java
+++ /dev/null
@@ -1,86 +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.server.core.edm.provider;
-
-import org.apache.olingo.commons.api.edm.Edm;
-import org.apache.olingo.commons.api.edm.EdmAnnotation;
-import org.apache.olingo.commons.api.edm.EdmMapping;
-import org.apache.olingo.commons.api.edm.EdmTerm;
-import org.apache.olingo.commons.api.edm.geo.SRID;
-import org.apache.olingo.commons.core.edm.AbstractEdmParameter;
-import org.apache.olingo.server.api.edm.provider.Parameter;
-
-import java.util.List;
-
-public class EdmParameterImpl extends AbstractEdmParameter {
-
- private final Parameter parameter;
-
- public EdmParameterImpl(final Edm edm, final Parameter parameter) {
- super(edm, parameter.getName(), parameter.getType());
- this.parameter = parameter;
- }
-
- @Override
- public boolean isCollection() {
- return parameter.isCollection();
- }
-
- @Override
- public EdmMapping getMapping() {
- return parameter.getMapping();
- }
-
- @Override
- public Boolean isNullable() {
- return parameter.getNullable();
- }
-
- @Override
- public Integer getMaxLength() {
- return parameter.getMaxLength();
- }
-
- @Override
- public Integer getPrecision() {
- return parameter.getPrecision();
- }
-
- @Override
- public Integer getScale() {
- return parameter.getScale();
- }
-
- @Override
- public SRID getSrid() {
- return null; // TODO: provide implementation
- }
-
- @Override
- public EdmAnnotation getAnnotation(final EdmTerm term) {
- // TODO: implement
- throw new UnsupportedOperationException("Not supported yet.");
- }
-
- @Override
- public List<EdmAnnotation> getAnnotations() {
- // TODO: implement
- throw new UnsupportedOperationException("Not supported yet.");
- }
-}
http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/f7a7b484/lib/server-core/src/main/java/org/apache/olingo/server/core/edm/provider/EdmPropertyImpl.java
----------------------------------------------------------------------
diff --git a/lib/server-core/src/main/java/org/apache/olingo/server/core/edm/provider/EdmPropertyImpl.java b/lib/server-core/src/main/java/org/apache/olingo/server/core/edm/provider/EdmPropertyImpl.java
deleted file mode 100644
index 290a952..0000000
--- a/lib/server-core/src/main/java/org/apache/olingo/server/core/edm/provider/EdmPropertyImpl.java
+++ /dev/null
@@ -1,120 +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.server.core.edm.provider;
-
-import java.util.List;
-
-import org.apache.olingo.commons.api.edm.Edm;
-import org.apache.olingo.commons.api.edm.EdmAnnotation;
-import org.apache.olingo.commons.api.edm.EdmMapping;
-import org.apache.olingo.commons.api.edm.EdmTerm;
-import org.apache.olingo.commons.api.edm.FullQualifiedName;
-import org.apache.olingo.commons.api.edm.geo.SRID;
-import org.apache.olingo.commons.core.edm.AbstractEdmProperty;
-import org.apache.olingo.commons.core.edm.EdmTypeInfo;
-import org.apache.olingo.server.api.edm.provider.Property;
-
-public class EdmPropertyImpl extends AbstractEdmProperty {
-
- private final FullQualifiedName structuredTypeName;
-
- private final Property property;
-
- private final EdmTypeInfo typeInfo;
-
- public EdmPropertyImpl(final Edm edm, final FullQualifiedName structuredTypeName, final Property property) {
- super(edm, property.getName());
-
- this.structuredTypeName = structuredTypeName;
- this.property = property;
- typeInfo = new EdmTypeInfo.Builder().setEdm(edm).setTypeExpression(property.getType().toString()).build();
- }
-
- @Override
- public EdmTypeInfo getTypeInfo() {
- return typeInfo;
- }
-
- @Override
- public boolean isCollection() {
- return property.isCollection();
- }
-
- @Override
- public EdmMapping getMapping() {
- return property.getMapping();
- }
-
- @Override
- public String getMimeType() {
- return property.getMimeType();
- }
-
- @Override
- public Boolean isNullable() {
- return property.getNullable();
- }
-
- @Override
- public Integer getMaxLength() {
- return property.getMaxLength();
- }
-
- @Override
- public Integer getPrecision() {
- return property.getPrecision();
- }
-
- @Override
- public Integer getScale() {
- return property.getScale();
- }
-
- @Override
- public SRID getSrid() {
- return null; // TODO: provide implementation
- }
-
- @Override
- public Boolean isUnicode() {
- return property.isUnicode();
- }
-
- @Override
- public String getDefaultValue() {
- return property.getDefaultValue();
- }
-
- @Override
- public FullQualifiedName getAnnotationsTargetFQN() {
- return structuredTypeName;
- }
-
- @Override
- public EdmAnnotation getAnnotation(final EdmTerm term) {
- // TODO: implement
- throw new UnsupportedOperationException("Not supported yet.");
- }
-
- @Override
- public List<EdmAnnotation> getAnnotations() {
- // TODO: implement
- throw new UnsupportedOperationException("Not supported yet.");
- }
-}