You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@olingo.apache.org by il...@apache.org on 2014/03/10 10:49:53 UTC
[1/6] git commit: Enhancing EdmTypeInfo capabilities
Repository: incubator-olingo-odata4
Updated Branches:
refs/heads/master 897db8ef1 -> f70d3f0bd
Enhancing EdmTypeInfo capabilities
Project: http://git-wip-us.apache.org/repos/asf/incubator-olingo-odata4/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-olingo-odata4/commit/848976bb
Tree: http://git-wip-us.apache.org/repos/asf/incubator-olingo-odata4/tree/848976bb
Diff: http://git-wip-us.apache.org/repos/asf/incubator-olingo-odata4/diff/848976bb
Branch: refs/heads/master
Commit: 848976bbbc9b69f29805ed508e8004ac36976e52
Parents: 7da681a
Author: Francesco Chicchiriccò <il...@apache.org>
Authored: Mon Mar 10 09:29:36 2014 +0100
Committer: Francesco Chicchiriccò <il...@apache.org>
Committed: Mon Mar 10 09:29:36 2014 +0100
----------------------------------------------------------------------
.../odata4/client/api/utils/EdmTypeInfo.java | 81 ---------
.../client/core/edm/EdmActionImportImpl.java | 5 +-
.../odata4/client/core/edm/EdmClientImpl.java | 13 +-
.../client/core/edm/EdmComplexTypeImpl.java | 3 +-
.../client/core/edm/EdmEntityContainerImpl.java | 20 +--
.../client/core/edm/EdmEntityTypeImpl.java | 4 +-
.../client/core/edm/EdmFunctionImportImpl.java | 6 +-
.../core/edm/EdmNavigationPropertyImpl.java | 3 +-
.../client/core/edm/EdmParameterImpl.java | 3 +-
.../odata4/client/core/edm/EdmPropertyImpl.java | 3 +-
.../client/core/edm/EdmReturnTypeImpl.java | 3 +-
.../odata4/client/core/edm/EdmTypeInfo.java | 174 +++++++++++++++++++
.../core/edm/v3/EdmActionImportProxy.java | 6 +-
.../core/edm/v3/EdmFunctionImportProxy.java | 7 +-
.../commons/api/edm/EdmPrimitiveType.java | 4 +-
.../core/edm/primitivetype/EdmDuration.java | 3 +-
16 files changed, 212 insertions(+), 126 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/incubator-olingo-odata4/blob/848976bb/odata4-lib/odata4-client-api/src/main/java/org/apache/olingo/odata4/client/api/utils/EdmTypeInfo.java
----------------------------------------------------------------------
diff --git a/odata4-lib/odata4-client-api/src/main/java/org/apache/olingo/odata4/client/api/utils/EdmTypeInfo.java b/odata4-lib/odata4-client-api/src/main/java/org/apache/olingo/odata4/client/api/utils/EdmTypeInfo.java
deleted file mode 100644
index 33dd468..0000000
--- a/odata4-lib/odata4-client-api/src/main/java/org/apache/olingo/odata4/client/api/utils/EdmTypeInfo.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.odata4.client.api.utils;
-
-import org.apache.commons.lang3.StringUtils;
-import org.apache.olingo.odata4.commons.api.edm.FullQualifiedName;
-
-public class EdmTypeInfo {
-
- private final String typeExpression;
-
- private final boolean collection;
-
- private final FullQualifiedName fullQualifiedName;
-
- public EdmTypeInfo(final String typeExpression, final String defaultNamespace) {
- this(typeExpression.indexOf('.') == -1
- ? defaultNamespace + "." + typeExpression
- : typeExpression);
- }
-
- public EdmTypeInfo(final String typeExpression) {
- this.typeExpression = typeExpression;
-
- String baseType;
- final int collStartIdx = typeExpression.indexOf("Collection(");
- final int collEndIdx = typeExpression.lastIndexOf(')');
- if (collStartIdx == -1) {
- baseType = typeExpression;
- this.collection = false;
- } else {
- if (collEndIdx == -1) {
- throw new IllegalArgumentException("Malformed type: " + typeExpression);
- }
-
- this.collection = true;
- baseType = typeExpression.substring(collStartIdx + 11, collEndIdx);
- }
-
- final int lastDotIdx = baseType.lastIndexOf('.');
- if (lastDotIdx == -1) {
- throw new IllegalArgumentException("Cannot find namespace or alias in " + typeExpression);
- }
- final String namespace = baseType.substring(0, lastDotIdx);
- final String typeName = baseType.substring(lastDotIdx + 1);
- if (StringUtils.isBlank(typeName)) {
- throw new IllegalArgumentException("Null or empty type name in " + typeExpression);
- }
-
- this.fullQualifiedName = new FullQualifiedName(namespace, typeName);
- }
-
- public String getTypeExpression() {
- return typeExpression;
- }
-
- public boolean isCollection() {
- return collection;
- }
-
- public FullQualifiedName getFullQualifiedName() {
- return fullQualifiedName;
- }
-
-}
http://git-wip-us.apache.org/repos/asf/incubator-olingo-odata4/blob/848976bb/odata4-lib/odata4-client-core/src/main/java/org/apache/olingo/odata4/client/core/edm/EdmActionImportImpl.java
----------------------------------------------------------------------
diff --git a/odata4-lib/odata4-client-core/src/main/java/org/apache/olingo/odata4/client/core/edm/EdmActionImportImpl.java b/odata4-lib/odata4-client-core/src/main/java/org/apache/olingo/odata4/client/core/edm/EdmActionImportImpl.java
index 1af0f47..0bc3b5e 100644
--- a/odata4-lib/odata4-client-core/src/main/java/org/apache/olingo/odata4/client/core/edm/EdmActionImportImpl.java
+++ b/odata4-lib/odata4-client-core/src/main/java/org/apache/olingo/odata4/client/core/edm/EdmActionImportImpl.java
@@ -19,7 +19,6 @@
package org.apache.olingo.odata4.client.core.edm;
import org.apache.olingo.odata4.client.api.edm.xml.v4.ActionImport;
-import org.apache.olingo.odata4.client.api.utils.EdmTypeInfo;
import org.apache.olingo.odata4.commons.api.edm.Edm;
import org.apache.olingo.odata4.commons.api.edm.EdmAction;
import org.apache.olingo.odata4.commons.api.edm.EdmActionImport;
@@ -38,8 +37,8 @@ public class EdmActionImportImpl extends EdmOperationImportImpl implements EdmAc
@Override
public EdmAction getAction() {
- return edm.getAction(
- new EdmTypeInfo(actionImport.getAction(), container.getNamespace()).getFullQualifiedName(), null, null);
+ return edm.getAction(new EdmTypeInfo.Builder().setEdm(edm).setTypeExpression(actionImport.getAction()).
+ setDefaultNamespace(container.getNamespace()).build().getFullQualifiedName(), null, null);
}
}
http://git-wip-us.apache.org/repos/asf/incubator-olingo-odata4/blob/848976bb/odata4-lib/odata4-client-core/src/main/java/org/apache/olingo/odata4/client/core/edm/EdmClientImpl.java
----------------------------------------------------------------------
diff --git a/odata4-lib/odata4-client-core/src/main/java/org/apache/olingo/odata4/client/core/edm/EdmClientImpl.java b/odata4-lib/odata4-client-core/src/main/java/org/apache/olingo/odata4/client/core/edm/EdmClientImpl.java
index 905a310..9ebb0c5 100644
--- a/odata4-lib/odata4-client-core/src/main/java/org/apache/olingo/odata4/client/core/edm/EdmClientImpl.java
+++ b/odata4-lib/odata4-client-core/src/main/java/org/apache/olingo/odata4/client/core/edm/EdmClientImpl.java
@@ -36,7 +36,6 @@ import org.apache.olingo.odata4.client.api.edm.xml.XMLMetadata;
import org.apache.olingo.odata4.client.api.edm.xml.ComplexType;
import org.apache.olingo.odata4.client.api.edm.xml.EntityType;
import org.apache.olingo.odata4.client.api.edm.xml.v4.TypeDefinition;
-import org.apache.olingo.odata4.client.api.utils.EdmTypeInfo;
import org.apache.olingo.odata4.client.api.UnsupportedInV3Exception;
import org.apache.olingo.odata4.client.api.edm.xml.EntityContainer;
import org.apache.olingo.odata4.client.api.edm.xml.v3.FunctionImport;
@@ -260,7 +259,8 @@ public class EdmClientImpl extends AbstractEdmImpl {
for (final Iterator<Action> itor = actions.iterator(); itor.hasNext() && !found;) {
final Action action = itor.next();
if (action.isBound()) {
- final EdmTypeInfo boundParam = new EdmTypeInfo(action.getParameters().get(0).getType());
+ final EdmTypeInfo boundParam = new EdmTypeInfo.Builder().setEdm(this).
+ setTypeExpression(action.getParameters().get(0).getType()).build();
if (bindingParameterTypeName.equals(boundParam.getFullQualifiedName())
&& isBindingParameterCollection.booleanValue() == boundParam.isCollection()) {
@@ -278,7 +278,8 @@ public class EdmClientImpl extends AbstractEdmImpl {
for (final Iterator<FunctionImport> itor = functionImports.iterator(); itor.hasNext() && !found;) {
final FunctionImport functionImport = itor.next();
if (!V3FunctionImportUtils.canProxyFunction(functionImport) && functionImport.isBindable()) {
- final EdmTypeInfo boundParam = new EdmTypeInfo(functionImport.getParameters().get(0).getType());
+ final EdmTypeInfo boundParam = new EdmTypeInfo.Builder().setEdm(this).
+ setTypeExpression(functionImport.getParameters().get(0).getType()).build();
if (bindingParameterTypeName.equals(boundParam.getFullQualifiedName())
&& isBindingParameterCollection.booleanValue() == boundParam.isCollection()) {
@@ -308,7 +309,8 @@ public class EdmClientImpl extends AbstractEdmImpl {
for (final Iterator<Function> itor = functions.iterator(); itor.hasNext() && !found;) {
final Function function = itor.next();
if (function.isBound()) {
- final EdmTypeInfo boundParam = new EdmTypeInfo(function.getParameters().get(0).getType());
+ final EdmTypeInfo boundParam = new EdmTypeInfo.Builder().setEdm(this).
+ setTypeExpression(function.getParameters().get(0).getType()).build();
if (bindingParameterTypeName.equals(boundParam.getFullQualifiedName())
&& isBindingParameterCollection.booleanValue() == boundParam.isCollection()) {
@@ -332,7 +334,8 @@ public class EdmClientImpl extends AbstractEdmImpl {
for (final Iterator<FunctionImport> itor = functionImports.iterator(); itor.hasNext() && !found;) {
final FunctionImport functionImport = itor.next();
if (!V3FunctionImportUtils.canProxyFunction(functionImport) && functionImport.isBindable()) {
- final EdmTypeInfo boundParam = new EdmTypeInfo(functionImport.getParameters().get(0).getType());
+ final EdmTypeInfo boundParam = new EdmTypeInfo.Builder().setEdm(this).
+ setTypeExpression(functionImport.getParameters().get(0).getType()).build();
if (bindingParameterTypeName.equals(boundParam.getFullQualifiedName())
&& isBindingParameterCollection.booleanValue() == boundParam.isCollection()) {
http://git-wip-us.apache.org/repos/asf/incubator-olingo-odata4/blob/848976bb/odata4-lib/odata4-client-core/src/main/java/org/apache/olingo/odata4/client/core/edm/EdmComplexTypeImpl.java
----------------------------------------------------------------------
diff --git a/odata4-lib/odata4-client-core/src/main/java/org/apache/olingo/odata4/client/core/edm/EdmComplexTypeImpl.java b/odata4-lib/odata4-client-core/src/main/java/org/apache/olingo/odata4/client/core/edm/EdmComplexTypeImpl.java
index b10bf79..66de10c 100644
--- a/odata4-lib/odata4-client-core/src/main/java/org/apache/olingo/odata4/client/core/edm/EdmComplexTypeImpl.java
+++ b/odata4-lib/odata4-client-core/src/main/java/org/apache/olingo/odata4/client/core/edm/EdmComplexTypeImpl.java
@@ -20,7 +20,6 @@ package org.apache.olingo.odata4.client.core.edm;
import java.util.Map;
import org.apache.olingo.odata4.client.api.edm.xml.ComplexType;
-import org.apache.olingo.odata4.client.api.utils.EdmTypeInfo;
import org.apache.olingo.odata4.commons.api.edm.Edm;
import org.apache.olingo.odata4.commons.api.edm.EdmNavigationProperty;
import org.apache.olingo.odata4.commons.api.edm.EdmProperty;
@@ -39,7 +38,7 @@ public class EdmComplexTypeImpl extends AbstractEdmComplexType {
if (complexType instanceof org.apache.olingo.odata4.client.api.edm.xml.v4.ComplexType) {
final String baseType = ((org.apache.olingo.odata4.client.api.edm.xml.v4.ComplexType) complexType).getBaseType();
baseTypeName = baseType == null
- ? null : new EdmTypeInfo(baseType).getFullQualifiedName();
+ ? null : new EdmTypeInfo.Builder().setTypeExpression(baseType).build().getFullQualifiedName();
}
final EdmComplexTypeImpl instance = new EdmComplexTypeImpl(edm, fqn, baseTypeName, complexType);
instance.baseType = instance.buildBaseType(baseTypeName);
http://git-wip-us.apache.org/repos/asf/incubator-olingo-odata4/blob/848976bb/odata4-lib/odata4-client-core/src/main/java/org/apache/olingo/odata4/client/core/edm/EdmEntityContainerImpl.java
----------------------------------------------------------------------
diff --git a/odata4-lib/odata4-client-core/src/main/java/org/apache/olingo/odata4/client/core/edm/EdmEntityContainerImpl.java b/odata4-lib/odata4-client-core/src/main/java/org/apache/olingo/odata4/client/core/edm/EdmEntityContainerImpl.java
index 9cde1b1..b6f5c1b 100644
--- a/odata4-lib/odata4-client-core/src/main/java/org/apache/olingo/odata4/client/core/edm/EdmEntityContainerImpl.java
+++ b/odata4-lib/odata4-client-core/src/main/java/org/apache/olingo/odata4/client/core/edm/EdmEntityContainerImpl.java
@@ -22,7 +22,6 @@ import org.apache.olingo.odata4.client.api.edm.xml.v4.ActionImport;
import org.apache.olingo.odata4.client.api.edm.xml.EntitySet;
import org.apache.olingo.odata4.client.api.edm.xml.CommonFunctionImport;
import org.apache.olingo.odata4.client.api.edm.xml.v4.Singleton;
-import org.apache.olingo.odata4.client.api.utils.EdmTypeInfo;
import org.apache.olingo.odata4.client.api.UnsupportedInV3Exception;
import org.apache.olingo.odata4.client.api.edm.xml.EntityContainer;
import org.apache.olingo.odata4.client.api.edm.xml.XMLMetadata;
@@ -65,9 +64,9 @@ public class EdmEntityContainerImpl extends AbstractEdmEntityContainer {
if (singleton == null) {
throw new EdmException("Singleton named '" + singletonName + "' not found in " + entityContainerName);
}
- return new EdmSingletonImpl(edm, this, singletonName,
- new EdmTypeInfo(singleton.getEntityType(), entityContainerName.getNamespace()).getFullQualifiedName(),
- singleton);
+ return new EdmSingletonImpl(edm, this, singletonName, new EdmTypeInfo.Builder().
+ setTypeExpression(singleton.getEntityType()).setDefaultNamespace(entityContainerName.getNamespace()).
+ build().getFullQualifiedName(), singleton);
}
@Override
@@ -77,22 +76,21 @@ public class EdmEntityContainerImpl extends AbstractEdmEntityContainer {
throw new EdmException("EntitySet named '" + entitySetName + "' not found in " + entityContainerName);
}
+ final FullQualifiedName entityType = new EdmTypeInfo.Builder().setTypeExpression(entitySet.getEntityType()).
+ setDefaultNamespace(entityContainerName.getNamespace()).build().getFullQualifiedName();
if (entitySet instanceof org.apache.olingo.odata4.client.api.edm.xml.v4.EntitySet) {
- return new EdmEntitySetImpl(edm, this, entitySetName,
- new EdmTypeInfo(entitySet.getEntityType(), entityContainerName.getNamespace()).getFullQualifiedName(),
+ return new EdmEntitySetImpl(edm, this, entitySetName, entityType,
(org.apache.olingo.odata4.client.api.edm.xml.v4.EntitySet) entitySet);
} else {
- return new EdmEntitySetProxy(edm, this, entitySetName,
- new EdmTypeInfo(entitySet.getEntityType(), entityContainerName.getNamespace()).getFullQualifiedName(),
- xmlMetadata);
+ return new EdmEntitySetProxy(edm, this, entitySetName, entityType, xmlMetadata);
}
}
@Override
protected EdmActionImport createActionImport(final String actionImportName) {
if (xmlEntityContainer instanceof org.apache.olingo.odata4.client.api.edm.xml.v4.EntityContainer) {
- final ActionImport actionImport
- = ((org.apache.olingo.odata4.client.api.edm.xml.v4.EntityContainer) xmlEntityContainer).
+ final ActionImport actionImport =
+ ((org.apache.olingo.odata4.client.api.edm.xml.v4.EntityContainer) xmlEntityContainer).
getActionImport(actionImportName);
if (actionImport == null) {
throw new EdmException("ActionImport named '" + actionImportName + "' not found in " + entityContainerName);
http://git-wip-us.apache.org/repos/asf/incubator-olingo-odata4/blob/848976bb/odata4-lib/odata4-client-core/src/main/java/org/apache/olingo/odata4/client/core/edm/EdmEntityTypeImpl.java
----------------------------------------------------------------------
diff --git a/odata4-lib/odata4-client-core/src/main/java/org/apache/olingo/odata4/client/core/edm/EdmEntityTypeImpl.java b/odata4-lib/odata4-client-core/src/main/java/org/apache/olingo/odata4/client/core/edm/EdmEntityTypeImpl.java
index f94807d..4e94e7f 100644
--- a/odata4-lib/odata4-client-core/src/main/java/org/apache/olingo/odata4/client/core/edm/EdmEntityTypeImpl.java
+++ b/odata4-lib/odata4-client-core/src/main/java/org/apache/olingo/odata4/client/core/edm/EdmEntityTypeImpl.java
@@ -23,7 +23,6 @@ import java.util.List;
import java.util.Map;
import org.apache.olingo.odata4.client.api.edm.xml.PropertyRef;
import org.apache.olingo.odata4.client.api.edm.xml.EntityType;
-import org.apache.olingo.odata4.client.api.utils.EdmTypeInfo;
import org.apache.olingo.odata4.commons.api.edm.Edm;
import org.apache.olingo.odata4.commons.api.edm.EdmEntityType;
import org.apache.olingo.odata4.commons.api.edm.EdmKeyPropertyRef;
@@ -39,7 +38,8 @@ public class EdmEntityTypeImpl extends AbstractEdmEntityType {
public static EdmEntityTypeImpl getInstance(final Edm edm, final FullQualifiedName fqn, final EntityType entityType) {
final FullQualifiedName baseTypeName = entityType.getBaseType() == null
- ? null : new EdmTypeInfo(entityType.getBaseType()).getFullQualifiedName();
+ ? null
+ : new EdmTypeInfo.Builder().setTypeExpression(entityType.getBaseType()).build().getFullQualifiedName();
final EdmEntityTypeImpl instance = new EdmEntityTypeImpl(edm, fqn, baseTypeName, entityType);
instance.baseType = instance.buildBaseType(baseTypeName);
http://git-wip-us.apache.org/repos/asf/incubator-olingo-odata4/blob/848976bb/odata4-lib/odata4-client-core/src/main/java/org/apache/olingo/odata4/client/core/edm/EdmFunctionImportImpl.java
----------------------------------------------------------------------
diff --git a/odata4-lib/odata4-client-core/src/main/java/org/apache/olingo/odata4/client/core/edm/EdmFunctionImportImpl.java b/odata4-lib/odata4-client-core/src/main/java/org/apache/olingo/odata4/client/core/edm/EdmFunctionImportImpl.java
index 8a7ef6d..3a7822d 100644
--- a/odata4-lib/odata4-client-core/src/main/java/org/apache/olingo/odata4/client/core/edm/EdmFunctionImportImpl.java
+++ b/odata4-lib/odata4-client-core/src/main/java/org/apache/olingo/odata4/client/core/edm/EdmFunctionImportImpl.java
@@ -20,7 +20,6 @@ package org.apache.olingo.odata4.client.core.edm;
import java.util.List;
import org.apache.olingo.odata4.client.api.edm.xml.v4.FunctionImport;
-import org.apache.olingo.odata4.client.api.utils.EdmTypeInfo;
import org.apache.olingo.odata4.commons.api.edm.Edm;
import org.apache.olingo.odata4.commons.api.edm.EdmEntityContainer;
import org.apache.olingo.odata4.commons.api.edm.EdmFunction;
@@ -39,9 +38,8 @@ public class EdmFunctionImportImpl extends EdmOperationImportImpl implements Edm
@Override
public EdmFunction getFunction(final List<String> parameterNames) {
- return edm.getFunction(
- new EdmTypeInfo(functionImport.getFunction(), container.getNamespace()).getFullQualifiedName(),
- null, null, parameterNames);
+ return edm.getFunction(new EdmTypeInfo.Builder().setEdm(edm).setTypeExpression(functionImport.getFunction()).
+ setDefaultNamespace(container.getNamespace()).build().getFullQualifiedName(), null, null, parameterNames);
}
}
http://git-wip-us.apache.org/repos/asf/incubator-olingo-odata4/blob/848976bb/odata4-lib/odata4-client-core/src/main/java/org/apache/olingo/odata4/client/core/edm/EdmNavigationPropertyImpl.java
----------------------------------------------------------------------
diff --git a/odata4-lib/odata4-client-core/src/main/java/org/apache/olingo/odata4/client/core/edm/EdmNavigationPropertyImpl.java b/odata4-lib/odata4-client-core/src/main/java/org/apache/olingo/odata4/client/core/edm/EdmNavigationPropertyImpl.java
index 9d79914..aed747f 100644
--- a/odata4-lib/odata4-client-core/src/main/java/org/apache/olingo/odata4/client/core/edm/EdmNavigationPropertyImpl.java
+++ b/odata4-lib/odata4-client-core/src/main/java/org/apache/olingo/odata4/client/core/edm/EdmNavigationPropertyImpl.java
@@ -21,7 +21,6 @@ package org.apache.olingo.odata4.client.core.edm;
import java.util.List;
import org.apache.olingo.odata4.client.api.edm.xml.v4.NavigationProperty;
import org.apache.olingo.odata4.client.api.edm.xml.v4.ReferentialConstraint;
-import org.apache.olingo.odata4.client.api.utils.EdmTypeInfo;
import org.apache.olingo.odata4.commons.api.edm.Edm;
import org.apache.olingo.odata4.commons.api.edm.FullQualifiedName;
import org.apache.olingo.odata4.commons.core.edm.AbstractEdmNavigationProperty;
@@ -35,7 +34,7 @@ public class EdmNavigationPropertyImpl extends AbstractEdmNavigationProperty {
public EdmNavigationPropertyImpl(final Edm edm, final NavigationProperty navigationProperty) {
super(edm, navigationProperty.getName());
this.navigationProperty = navigationProperty;
- this.edmTypeInfo = new EdmTypeInfo(navigationProperty.getType());
+ this.edmTypeInfo = new EdmTypeInfo.Builder().setTypeExpression(navigationProperty.getType()).build();
}
@Override
http://git-wip-us.apache.org/repos/asf/incubator-olingo-odata4/blob/848976bb/odata4-lib/odata4-client-core/src/main/java/org/apache/olingo/odata4/client/core/edm/EdmParameterImpl.java
----------------------------------------------------------------------
diff --git a/odata4-lib/odata4-client-core/src/main/java/org/apache/olingo/odata4/client/core/edm/EdmParameterImpl.java b/odata4-lib/odata4-client-core/src/main/java/org/apache/olingo/odata4/client/core/edm/EdmParameterImpl.java
index 9b3beb4..c1187c9 100644
--- a/odata4-lib/odata4-client-core/src/main/java/org/apache/olingo/odata4/client/core/edm/EdmParameterImpl.java
+++ b/odata4-lib/odata4-client-core/src/main/java/org/apache/olingo/odata4/client/core/edm/EdmParameterImpl.java
@@ -19,7 +19,6 @@
package org.apache.olingo.odata4.client.core.edm;
import org.apache.olingo.odata4.client.api.edm.xml.CommonParameter;
-import org.apache.olingo.odata4.client.api.utils.EdmTypeInfo;
import org.apache.olingo.odata4.commons.api.edm.Edm;
import org.apache.olingo.odata4.commons.api.edm.EdmMapping;
import org.apache.olingo.odata4.commons.core.edm.AbstractEdmParameter;
@@ -31,7 +30,7 @@ public class EdmParameterImpl extends AbstractEdmParameter {
private final EdmTypeInfo parameterInfo;
public static EdmParameterImpl getInstance(final Edm edm, final CommonParameter parameter) {
- final EdmTypeInfo paramTypeInfo = new EdmTypeInfo(parameter.getType());
+ final EdmTypeInfo paramTypeInfo = new EdmTypeInfo.Builder().setTypeExpression(parameter.getType()).build();
return new EdmParameterImpl(edm, parameter, paramTypeInfo);
}
http://git-wip-us.apache.org/repos/asf/incubator-olingo-odata4/blob/848976bb/odata4-lib/odata4-client-core/src/main/java/org/apache/olingo/odata4/client/core/edm/EdmPropertyImpl.java
----------------------------------------------------------------------
diff --git a/odata4-lib/odata4-client-core/src/main/java/org/apache/olingo/odata4/client/core/edm/EdmPropertyImpl.java b/odata4-lib/odata4-client-core/src/main/java/org/apache/olingo/odata4/client/core/edm/EdmPropertyImpl.java
index 20ffb2c..ad8869e 100644
--- a/odata4-lib/odata4-client-core/src/main/java/org/apache/olingo/odata4/client/core/edm/EdmPropertyImpl.java
+++ b/odata4-lib/odata4-client-core/src/main/java/org/apache/olingo/odata4/client/core/edm/EdmPropertyImpl.java
@@ -19,7 +19,6 @@
package org.apache.olingo.odata4.client.core.edm;
import org.apache.olingo.odata4.client.api.edm.xml.CommonProperty;
-import org.apache.olingo.odata4.client.api.utils.EdmTypeInfo;
import org.apache.olingo.odata4.commons.api.edm.Edm;
import org.apache.olingo.odata4.commons.api.edm.EdmMapping;
import org.apache.olingo.odata4.commons.api.edm.EdmProperty;
@@ -35,7 +34,7 @@ public class EdmPropertyImpl extends AbstractEdmProperty implements EdmProperty
public EdmPropertyImpl(final Edm edm, final CommonProperty property) {
super(edm, property.getName());
this.property = property;
- this.edmTypeInfo = new EdmTypeInfo(property.getType());
+ this.edmTypeInfo = new EdmTypeInfo.Builder().setTypeExpression(property.getType()).build();
}
@Override
http://git-wip-us.apache.org/repos/asf/incubator-olingo-odata4/blob/848976bb/odata4-lib/odata4-client-core/src/main/java/org/apache/olingo/odata4/client/core/edm/EdmReturnTypeImpl.java
----------------------------------------------------------------------
diff --git a/odata4-lib/odata4-client-core/src/main/java/org/apache/olingo/odata4/client/core/edm/EdmReturnTypeImpl.java b/odata4-lib/odata4-client-core/src/main/java/org/apache/olingo/odata4/client/core/edm/EdmReturnTypeImpl.java
index c17b996..4ab71a2 100644
--- a/odata4-lib/odata4-client-core/src/main/java/org/apache/olingo/odata4/client/core/edm/EdmReturnTypeImpl.java
+++ b/odata4-lib/odata4-client-core/src/main/java/org/apache/olingo/odata4/client/core/edm/EdmReturnTypeImpl.java
@@ -19,7 +19,6 @@
package org.apache.olingo.odata4.client.core.edm;
import org.apache.olingo.odata4.client.api.edm.xml.v4.ReturnType;
-import org.apache.olingo.odata4.client.api.utils.EdmTypeInfo;
import org.apache.olingo.odata4.commons.api.edm.Edm;
import org.apache.olingo.odata4.commons.core.edm.AbstractEdmReturnType;
@@ -30,7 +29,7 @@ public class EdmReturnTypeImpl extends AbstractEdmReturnType {
private final EdmTypeInfo returnTypeInfo;
public static EdmReturnTypeImpl getInstance(final Edm edm, final ReturnType returnType) {
- final EdmTypeInfo returnTypeInfo = new EdmTypeInfo(returnType.getType());
+ final EdmTypeInfo returnTypeInfo = new EdmTypeInfo.Builder().setTypeExpression(returnType.getType()).build();
return new EdmReturnTypeImpl(edm, returnType, returnTypeInfo);
}
http://git-wip-us.apache.org/repos/asf/incubator-olingo-odata4/blob/848976bb/odata4-lib/odata4-client-core/src/main/java/org/apache/olingo/odata4/client/core/edm/EdmTypeInfo.java
----------------------------------------------------------------------
diff --git a/odata4-lib/odata4-client-core/src/main/java/org/apache/olingo/odata4/client/core/edm/EdmTypeInfo.java b/odata4-lib/odata4-client-core/src/main/java/org/apache/olingo/odata4/client/core/edm/EdmTypeInfo.java
new file mode 100644
index 0000000..1df8a4a
--- /dev/null
+++ b/odata4-lib/odata4-client-core/src/main/java/org/apache/olingo/odata4/client/core/edm/EdmTypeInfo.java
@@ -0,0 +1,174 @@
+/*
+ * 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.odata4.client.core.edm;
+
+import org.apache.commons.lang3.StringUtils;
+import org.apache.olingo.odata4.commons.api.edm.Edm;
+import org.apache.olingo.odata4.commons.api.edm.EdmComplexType;
+import org.apache.olingo.odata4.commons.api.edm.EdmEntityType;
+import org.apache.olingo.odata4.commons.api.edm.EdmEnumType;
+import org.apache.olingo.odata4.commons.api.edm.EdmPrimitiveType;
+import org.apache.olingo.odata4.commons.api.edm.FullQualifiedName;
+import org.apache.olingo.odata4.commons.core.edm.primitivetype.EdmPrimitiveTypeKind;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+public class EdmTypeInfo {
+
+ private static final Logger LOG = LoggerFactory.getLogger(EdmTypeInfo.class);
+
+ public static class Builder {
+
+ private String typeExpression;
+
+ private String defaultNamespace;
+
+ private Edm edm;
+
+ public Builder setTypeExpression(final String typeExpression) {
+ this.typeExpression = typeExpression;
+ return this;
+ }
+
+ public Builder setDefaultNamespace(final String defaultNamespace) {
+ this.defaultNamespace = defaultNamespace;
+ return this;
+ }
+
+ public Builder setEdm(final Edm edm) {
+ this.edm = edm;
+ return this;
+ }
+
+ public EdmTypeInfo build() {
+ return new EdmTypeInfo(edm, typeExpression.indexOf('.') == -1
+ ? defaultNamespace + "." + typeExpression
+ : typeExpression);
+ }
+ }
+
+ private final Edm edm;
+
+ private final String typeExpression;
+
+ private final boolean collection;
+
+ private final FullQualifiedName fullQualifiedName;
+
+ private EdmPrimitiveType primitiveType;
+
+ private EdmEnumType enumType;
+
+ private EdmComplexType complexType;
+
+ private EdmEntityType entityType;
+
+ private EdmTypeInfo(final Edm edm, final String typeExpression) {
+ this.edm = edm;
+ this.typeExpression = typeExpression;
+
+ String baseType;
+ final int collStartIdx = typeExpression.indexOf("Collection(");
+ final int collEndIdx = typeExpression.lastIndexOf(')');
+ if (collStartIdx == -1) {
+ baseType = typeExpression;
+ this.collection = false;
+ } else {
+ if (collEndIdx == -1) {
+ throw new IllegalArgumentException("Malformed type: " + typeExpression);
+ }
+
+ this.collection = true;
+ baseType = typeExpression.substring(collStartIdx + 11, collEndIdx);
+ }
+
+ final int lastDotIdx = baseType.lastIndexOf('.');
+ if (lastDotIdx == -1) {
+ throw new IllegalArgumentException("Cannot find namespace or alias in " + typeExpression);
+ }
+ final String namespace = baseType.substring(0, lastDotIdx);
+ final String typeName = baseType.substring(lastDotIdx + 1);
+ if (StringUtils.isBlank(typeName)) {
+ throw new IllegalArgumentException("Null or empty type name in " + typeExpression);
+ }
+
+ this.fullQualifiedName = new FullQualifiedName(namespace, typeName);
+
+ try {
+ this.primitiveType = EdmPrimitiveTypeKind.valueOf(this.fullQualifiedName.getName()).
+ getEdmPrimitiveTypeInstance();
+ } catch (IllegalArgumentException e) {
+ LOG.debug("{} does not appear to refer to an Edm primitive type", this.fullQualifiedName);
+ }
+ if (this.primitiveType == null && this.edm != null) {
+ this.enumType = this.edm.getEnumType(this.fullQualifiedName);
+ if (this.enumType == null) {
+ this.complexType = this.edm.getComplexType(this.fullQualifiedName);
+ if (this.complexType == null) {
+ this.entityType = this.edm.getEntityType(this.fullQualifiedName);
+ }
+ }
+ }
+ }
+
+ public String getTypeExpression() {
+ return typeExpression;
+ }
+
+ public boolean isCollection() {
+ return collection;
+ }
+
+ public FullQualifiedName getFullQualifiedName() {
+ return fullQualifiedName;
+ }
+
+ public boolean isPrimitiveType() {
+ return this.primitiveType != null;
+ }
+
+ public EdmPrimitiveType getPrimitiveType() {
+ return primitiveType;
+ }
+
+ public boolean isEnumType() {
+ return this.enumType != null;
+ }
+
+ public EdmEnumType getEnumType() {
+ return enumType;
+ }
+
+ public boolean isComplexType() {
+ return this.complexType != null;
+ }
+
+ public EdmComplexType getComplexType() {
+ return complexType;
+ }
+
+ public boolean isEntityType() {
+ return this.entityType != null;
+ }
+
+ public EdmEntityType getEntityType() {
+ return entityType;
+ }
+
+}
http://git-wip-us.apache.org/repos/asf/incubator-olingo-odata4/blob/848976bb/odata4-lib/odata4-client-core/src/main/java/org/apache/olingo/odata4/client/core/edm/v3/EdmActionImportProxy.java
----------------------------------------------------------------------
diff --git a/odata4-lib/odata4-client-core/src/main/java/org/apache/olingo/odata4/client/core/edm/v3/EdmActionImportProxy.java b/odata4-lib/odata4-client-core/src/main/java/org/apache/olingo/odata4/client/core/edm/v3/EdmActionImportProxy.java
index ddf1b7c..d8c5634 100644
--- a/odata4-lib/odata4-client-core/src/main/java/org/apache/olingo/odata4/client/core/edm/v3/EdmActionImportProxy.java
+++ b/odata4-lib/odata4-client-core/src/main/java/org/apache/olingo/odata4/client/core/edm/v3/EdmActionImportProxy.java
@@ -19,7 +19,7 @@
package org.apache.olingo.odata4.client.core.edm.v3;
import org.apache.olingo.odata4.client.api.edm.xml.v3.FunctionImport;
-import org.apache.olingo.odata4.client.api.utils.EdmTypeInfo;
+import org.apache.olingo.odata4.client.core.edm.EdmTypeInfo;
import org.apache.olingo.odata4.client.core.edm.EdmOperationImportImpl;
import org.apache.olingo.odata4.commons.api.edm.Edm;
import org.apache.olingo.odata4.commons.api.edm.EdmAction;
@@ -39,7 +39,7 @@ public class EdmActionImportProxy extends EdmOperationImportImpl implements EdmA
@Override
public EdmAction getAction() {
- return edm.getAction(
- new EdmTypeInfo(functionImport.getName(), container.getNamespace()).getFullQualifiedName(), null, null);
+ return edm.getAction(new EdmTypeInfo.Builder().setEdm(edm).setTypeExpression(functionImport.getName()).
+ setDefaultNamespace(container.getNamespace()).build().getFullQualifiedName(), null, null);
}
}
http://git-wip-us.apache.org/repos/asf/incubator-olingo-odata4/blob/848976bb/odata4-lib/odata4-client-core/src/main/java/org/apache/olingo/odata4/client/core/edm/v3/EdmFunctionImportProxy.java
----------------------------------------------------------------------
diff --git a/odata4-lib/odata4-client-core/src/main/java/org/apache/olingo/odata4/client/core/edm/v3/EdmFunctionImportProxy.java b/odata4-lib/odata4-client-core/src/main/java/org/apache/olingo/odata4/client/core/edm/v3/EdmFunctionImportProxy.java
index 345dd6d..0279b17 100644
--- a/odata4-lib/odata4-client-core/src/main/java/org/apache/olingo/odata4/client/core/edm/v3/EdmFunctionImportProxy.java
+++ b/odata4-lib/odata4-client-core/src/main/java/org/apache/olingo/odata4/client/core/edm/v3/EdmFunctionImportProxy.java
@@ -20,7 +20,7 @@ package org.apache.olingo.odata4.client.core.edm.v3;
import java.util.List;
import org.apache.olingo.odata4.client.api.edm.xml.v3.FunctionImport;
-import org.apache.olingo.odata4.client.api.utils.EdmTypeInfo;
+import org.apache.olingo.odata4.client.core.edm.EdmTypeInfo;
import org.apache.olingo.odata4.client.core.edm.EdmOperationImportImpl;
import org.apache.olingo.odata4.commons.api.edm.Edm;
import org.apache.olingo.odata4.commons.api.edm.EdmEntityContainer;
@@ -40,8 +40,7 @@ public class EdmFunctionImportProxy extends EdmOperationImportImpl implements Ed
@Override
public EdmFunction getFunction(final List<String> parameterNames) {
- return edm.getFunction(
- new EdmTypeInfo(functionImport.getName(), container.getNamespace()).getFullQualifiedName(),
- null, null, parameterNames);
+ return edm.getFunction(new EdmTypeInfo.Builder().setEdm(edm).setTypeExpression(functionImport.getName()).
+ setDefaultNamespace(container.getNamespace()).build().getFullQualifiedName(), null, null, parameterNames);
}
}
http://git-wip-us.apache.org/repos/asf/incubator-olingo-odata4/blob/848976bb/odata4-lib/odata4-commons-api/src/main/java/org/apache/olingo/odata4/commons/api/edm/EdmPrimitiveType.java
----------------------------------------------------------------------
diff --git a/odata4-lib/odata4-commons-api/src/main/java/org/apache/olingo/odata4/commons/api/edm/EdmPrimitiveType.java b/odata4-lib/odata4-commons-api/src/main/java/org/apache/olingo/odata4/commons/api/edm/EdmPrimitiveType.java
index 5771157..d8ae441 100644
--- a/odata4-lib/odata4-commons-api/src/main/java/org/apache/olingo/odata4/commons/api/edm/EdmPrimitiveType.java
+++ b/odata4-lib/odata4-commons-api/src/main/java/org/apache/olingo/odata4/commons/api/edm/EdmPrimitiveType.java
@@ -68,9 +68,9 @@ package org.apache.olingo.odata4.commons.api.edm;
*/
public interface EdmPrimitiveType extends EdmType {
- static final String EDM_NAMESPACE = "Edm";
+ String EDM_NAMESPACE = "Edm";
- static final String SYSTEM_NAMESPACE = "System";
+ String SYSTEM_NAMESPACE = "System";
/**
* Checks type compatibility.
http://git-wip-us.apache.org/repos/asf/incubator-olingo-odata4/blob/848976bb/odata4-lib/odata4-commons-core/src/main/java/org/apache/olingo/odata4/commons/core/edm/primitivetype/EdmDuration.java
----------------------------------------------------------------------
diff --git a/odata4-lib/odata4-commons-core/src/main/java/org/apache/olingo/odata4/commons/core/edm/primitivetype/EdmDuration.java b/odata4-lib/odata4-commons-core/src/main/java/org/apache/olingo/odata4/commons/core/edm/primitivetype/EdmDuration.java
index 538c74d..5fe5554 100644
--- a/odata4-lib/odata4-commons-core/src/main/java/org/apache/olingo/odata4/commons/core/edm/primitivetype/EdmDuration.java
+++ b/odata4-lib/odata4-commons-core/src/main/java/org/apache/olingo/odata4/commons/core/edm/primitivetype/EdmDuration.java
@@ -51,6 +51,7 @@ public final class EdmDuration extends SingletonPrimitiveType {
protected <T> T internalValueOfString(final String value,
final Boolean isNullable, final Integer maxLength, final Integer precision,
final Integer scale, final Boolean isUnicode, final Class<T> returnType) throws EdmPrimitiveTypeException {
+
final Matcher matcher = PATTERN.matcher(value);
if (!matcher.matches()
|| matcher.group(1) == null && matcher.group(2) == null && matcher.group(3) == null
@@ -68,7 +69,7 @@ public final class EdmDuration extends SingletonPrimitiveType {
add(matcher.group(4) == null ? BigDecimal.ZERO : new BigDecimal(matcher.group(4)));
if (result.scale() <= (precision == null ? 0 : precision)) {
- result = value.startsWith("-") ? result.negate() : result;
+ result = value.charAt(0) == '-' ? result.negate() : result;
} else {
throw new EdmPrimitiveTypeException(
"EdmPrimitiveTypeException.LITERAL_FACETS_NOT_MATCHED.addContent(literal, facets)");
[5/6] Merge from master
Posted by il...@apache.org.
http://git-wip-us.apache.org/repos/asf/incubator-olingo-odata4/blob/f70d3f0b/lib/client-api/src/main/java/org/apache/olingo/client/api/edm/ConcurrencyMode.java
----------------------------------------------------------------------
diff --cc lib/client-api/src/main/java/org/apache/olingo/client/api/edm/ConcurrencyMode.java
index 0000000,0000000..90a8f7b
new file mode 100644
--- /dev/null
+++ b/lib/client-api/src/main/java/org/apache/olingo/client/api/edm/ConcurrencyMode.java
@@@ -1,0 -1,0 +1,26 @@@
++/*
++ * 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.odata4.client.api.edm;
++
++public enum ConcurrencyMode {
++
++ None,
++ Fixed
++
++}
http://git-wip-us.apache.org/repos/asf/incubator-olingo-odata4/blob/f70d3f0b/lib/client-api/src/main/java/org/apache/olingo/client/api/edm/StoreGeneratedPattern.java
----------------------------------------------------------------------
diff --cc lib/client-api/src/main/java/org/apache/olingo/client/api/edm/StoreGeneratedPattern.java
index 0000000,0000000..c081bdf
new file mode 100644
--- /dev/null
+++ b/lib/client-api/src/main/java/org/apache/olingo/client/api/edm/StoreGeneratedPattern.java
@@@ -1,0 -1,0 +1,27 @@@
++/*
++ * 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.odata4.client.api.edm;
++
++public enum StoreGeneratedPattern {
++
++ None,
++ Identity,
++ Computed
++
++}
http://git-wip-us.apache.org/repos/asf/incubator-olingo-odata4/blob/f70d3f0b/lib/client-api/src/main/java/org/apache/olingo/client/api/edm/xml/CommonProperty.java
----------------------------------------------------------------------
diff --cc lib/client-api/src/main/java/org/apache/olingo/client/api/edm/xml/CommonProperty.java
index 0000000,28688ab..b11de10
mode 000000,100644..100644
--- a/lib/client-api/src/main/java/org/apache/olingo/client/api/edm/xml/CommonProperty.java
+++ b/lib/client-api/src/main/java/org/apache/olingo/client/api/edm/xml/CommonProperty.java
@@@ -1,0 -1,49 +1,39 @@@
+ /*
+ * 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.client.api.edm.xml;
+
-import org.apache.olingo.commons.api.edm.constants.ConcurrencyMode;
-import org.apache.olingo.commons.api.edm.constants.StoreGeneratedPattern;
-
+ public interface CommonProperty extends Named {
+
+ String getType();
+
+ boolean isNullable();
+
+ String getDefaultValue();
+
+ Integer getMaxLength();
+
- boolean isFixedLength();
-
+ Integer getPrecision();
+
+ Integer getScale();
+
+ boolean isUnicode();
+
- String getCollation();
-
+ String getSrid();
+
- ConcurrencyMode getConcurrencyMode();
-
- StoreGeneratedPattern getStoreGeneratedPattern();
+ }
http://git-wip-us.apache.org/repos/asf/incubator-olingo-odata4/blob/f70d3f0b/lib/client-api/src/main/java/org/apache/olingo/client/api/edm/xml/v3/Property.java
----------------------------------------------------------------------
diff --cc lib/client-api/src/main/java/org/apache/olingo/client/api/edm/xml/v3/Property.java
index 0000000,c254f9a..6536a21
mode 000000,100644..100644
--- a/lib/client-api/src/main/java/org/apache/olingo/client/api/edm/xml/v3/Property.java
+++ b/lib/client-api/src/main/java/org/apache/olingo/client/api/edm/xml/v3/Property.java
@@@ -1,0 -1,38 +1,48 @@@
+ /*
+ * 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.client.api.edm.xml.v3;
+
+ import org.apache.olingo.client.api.edm.xml.CommonProperty;
+ import org.apache.olingo.commons.api.edm.constants.EdmContentKind;
++import org.apache.olingo.odata4.client.api.edm.ConcurrencyMode;
++import org.apache.olingo.odata4.client.api.edm.StoreGeneratedPattern;
+
+ public interface Property extends CommonProperty {
+
++ String getCollation();
++
++ boolean isFixedLength();
++
++ ConcurrencyMode getConcurrencyMode();
++
++ StoreGeneratedPattern getStoreGeneratedPattern();
++
+ String getFcSourcePath();
+
+ String getFcTargetPath();
+
+ EdmContentKind getFcContentKind();
+
+ String getFcNSPrefix();
+
+ String getFcNSURI();
+
+ boolean isFcKeepInContent();
+
+ }
http://git-wip-us.apache.org/repos/asf/incubator-olingo-odata4/blob/f70d3f0b/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/EdmActionImportImpl.java
----------------------------------------------------------------------
diff --cc lib/client-core/src/main/java/org/apache/olingo/client/core/edm/EdmActionImportImpl.java
index 0000000,ad1fb68..3827418
mode 000000,100644..100644
--- a/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/EdmActionImportImpl.java
+++ b/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/EdmActionImportImpl.java
@@@ -1,0 -1,45 +1,45 @@@
+ /*
+ * 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.client.core.edm;
+
+ import org.apache.olingo.client.api.edm.xml.v4.ActionImport;
-import org.apache.olingo.client.api.utils.EdmTypeInfo;
++import org.apache.olingo.client.core.edm.EdmTypeInfo;
+ 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;
+
+ public class EdmActionImportImpl extends EdmOperationImportImpl implements EdmActionImport {
+
+ private final ActionImport actionImport;
+
+ public EdmActionImportImpl(final Edm edm, final EdmEntityContainer container, final String name,
+ final ActionImport actionImport) {
+
+ super(edm, container, name, actionImport.getEntitySet());
+ this.actionImport = actionImport;
+ }
+
+ @Override
+ public EdmAction getAction() {
- return edm.getAction(
- new EdmTypeInfo(actionImport.getAction(), container.getNamespace()).getFullQualifiedName(), null, null);
++ return edm.getAction(new EdmTypeInfo.Builder().setEdm(edm).setTypeExpression(actionImport.getAction()).
++ setDefaultNamespace(container.getNamespace()).build().getFullQualifiedName(), null, null);
+ }
+
+ }
http://git-wip-us.apache.org/repos/asf/incubator-olingo-odata4/blob/f70d3f0b/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/EdmClientImpl.java
----------------------------------------------------------------------
diff --cc lib/client-core/src/main/java/org/apache/olingo/client/core/edm/EdmClientImpl.java
index 0000000,332e673..bcc89dc
mode 000000,100644..100644
--- a/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/EdmClientImpl.java
+++ b/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/EdmClientImpl.java
@@@ -1,0 -1,371 +1,374 @@@
+ /*
+ * 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.client.core.edm;
+
+ import java.util.HashMap;
+ import java.util.HashSet;
+ import java.util.Iterator;
+ import java.util.List;
+ import java.util.Map;
+ import java.util.Set;
+
+ import org.apache.commons.lang3.StringUtils;
+ import org.apache.commons.lang3.builder.EqualsBuilder;
+ import org.apache.commons.lang3.builder.HashCodeBuilder;
+ import org.apache.commons.lang3.builder.ReflectionToStringBuilder;
+ import org.apache.commons.lang3.builder.ToStringStyle;
+ import org.apache.olingo.client.api.UnsupportedInV3Exception;
+ import org.apache.olingo.client.api.edm.xml.CommonParameter;
+ import org.apache.olingo.client.api.edm.xml.ComplexType;
+ import org.apache.olingo.client.api.edm.xml.EntityContainer;
+ import org.apache.olingo.client.api.edm.xml.EntityType;
+ import org.apache.olingo.client.api.edm.xml.EnumType;
+ import org.apache.olingo.client.api.edm.xml.Schema;
+ import org.apache.olingo.client.api.edm.xml.XMLMetadata;
+ import org.apache.olingo.client.api.edm.xml.v3.FunctionImport;
+ import org.apache.olingo.client.api.edm.xml.v4.Action;
+ import org.apache.olingo.client.api.edm.xml.v4.Function;
+ import org.apache.olingo.client.api.edm.xml.v4.TypeDefinition;
-import org.apache.olingo.client.api.utils.EdmTypeInfo;
+ import org.apache.olingo.client.core.edm.v3.EdmActionProxy;
+ import org.apache.olingo.client.core.edm.v3.EdmFunctionProxy;
+ import org.apache.olingo.client.core.edm.v3.V3FunctionImportUtils;
+ import org.apache.olingo.commons.api.edm.EdmAction;
+ import org.apache.olingo.commons.api.edm.EdmComplexType;
+ import org.apache.olingo.commons.api.edm.EdmEntityContainer;
+ import org.apache.olingo.commons.api.edm.EdmEntityType;
+ import org.apache.olingo.commons.api.edm.EdmEnumType;
+ import org.apache.olingo.commons.api.edm.EdmFunction;
+ import org.apache.olingo.commons.api.edm.EdmServiceMetadata;
+ import org.apache.olingo.commons.api.edm.EdmTypeDefinition;
+ import org.apache.olingo.commons.api.edm.FullQualifiedName;
+ import org.apache.olingo.commons.core.edm.AbstractEdmImpl;
+
+ public class EdmClientImpl extends AbstractEdmImpl {
+
+ private final XMLMetadata xmlMetadata;
+
+ private final EdmServiceMetadata serviceMetadata;
+
+ public EdmClientImpl(final XMLMetadata xmlMetadata) {
+ this.xmlMetadata = xmlMetadata;
+ this.serviceMetadata = AbstractEdmServiceMetadataImpl.getInstance(xmlMetadata);
+ }
+
+ public XMLMetadata getXMLMetadata() {
+ return xmlMetadata;
+ }
+
+ @Override
+ protected EdmServiceMetadata createServiceMetadata() {
+ return serviceMetadata;
+ }
+
+ @Override
+ protected Map<String, String> createAliasToNamespaceInfo() {
+ final Map<String, String> aliasToNamespace = new HashMap<String, String>();
+
+ for (Schema schema : xmlMetadata.getSchemas()) {
+ aliasToNamespace.put(null, schema.getNamespace());
+ if (StringUtils.isNotBlank(schema.getAlias())) {
+ aliasToNamespace.put(schema.getAlias(), schema.getNamespace());
+ }
+ }
+
+ return aliasToNamespace;
+ }
+
+ @Override
+ protected EdmEntityContainer createEntityContainer(final FullQualifiedName containerName) {
+ EdmEntityContainer result = null;
+
+ final Schema schema = xmlMetadata.getSchema(containerName.getNamespace());
+ if (schema != null) {
+ final EntityContainer xmlEntityContainer = schema.getDefaultEntityContainer();
+ if (xmlEntityContainer != null) {
+ result = new EdmEntityContainerImpl(this, containerName, xmlEntityContainer, xmlMetadata);
+ }
+ }
+
+ return result;
+ }
+
+ @Override
+ protected EdmEnumType createEnumType(final FullQualifiedName enumName) {
+ EdmEnumType result = null;
+
+ final Schema schema = xmlMetadata.getSchema(enumName.getNamespace());
+ if (schema != null) {
+ final EnumType xmlEnumType = schema.getEnumType(enumName.getName());
+ if (xmlEnumType != null) {
+ result = new EdmEnumTypeImpl(this, enumName, xmlEnumType);
+ }
+ }
+
+ return result;
+ }
+
+ @Override
+ protected EdmTypeDefinition createTypeDefinition(final FullQualifiedName typeDefinitionName) {
+ EdmTypeDefinition result = null;
+
+ final Schema schema = xmlMetadata.getSchema(typeDefinitionName.getNamespace());
+ if (schema instanceof org.apache.olingo.client.api.edm.xml.v4.Schema) {
+ final TypeDefinition xmlTypeDefinition = ((org.apache.olingo.client.api.edm.xml.v4.Schema) schema).
+ getTypeDefinition(typeDefinitionName.getName());
+ if (xmlTypeDefinition != null) {
+ result = new EdmTypeDefinitionImpl(this, typeDefinitionName, xmlTypeDefinition);
+ }
+ } else {
+ throw new UnsupportedInV3Exception();
+ }
+
+ return result;
+ }
+
+ @Override
+ protected EdmEntityType createEntityType(final FullQualifiedName entityTypeName) {
+ EdmEntityType result = null;
+
+ final Schema schema = xmlMetadata.getSchema(entityTypeName.getNamespace());
+ final EntityType xmlEntityType = schema.getEntityType(entityTypeName.getName());
+ if (xmlEntityType != null) {
+ result = EdmEntityTypeImpl.getInstance(this, entityTypeName, xmlEntityType);
+ }
+
+ return result;
+ }
+
+ @Override
+ protected EdmComplexType createComplexType(final FullQualifiedName complexTypeName) {
+ EdmComplexType result = null;
+
+ final Schema schema = xmlMetadata.getSchema(complexTypeName.getNamespace());
+ final ComplexType xmlComplexType = schema.getComplexType(complexTypeName.getName());
+ if (xmlComplexType != null) {
+ result = EdmComplexTypeImpl.getInstance(this, complexTypeName, xmlComplexType);
+ }
+
+ return result;
+ }
+
+ @Override
+ protected EdmAction createUnboundAction(final FullQualifiedName actionName) {
+ EdmAction result = null;
+
+ final Schema schema = xmlMetadata.getSchema(actionName.getNamespace());
+ if (schema instanceof org.apache.olingo.client.api.edm.xml.v4.Schema) {
+ final List<Action> actions = ((org.apache.olingo.client.api.edm.xml.v4.Schema) schema).
+ getActions(actionName.getName());
+ boolean found = false;
+ for (final Iterator<Action> itor = actions.iterator(); itor.hasNext() && !found;) {
+ final Action action = itor.next();
+ if (!action.isBound()) {
+ found = true;
+ result = EdmActionImpl.getInstance(this, actionName, action);
+ }
+ }
+ } else {
+ for (EntityContainer entityContainer : schema.getEntityContainers()) {
+ @SuppressWarnings("unchecked")
+ final List<FunctionImport> functionImports = (List<FunctionImport>) entityContainer.
+ getFunctionImports(actionName.getName());
+ boolean found = false;
+ for (final Iterator<FunctionImport> itor = functionImports.iterator(); itor.hasNext() && !found;) {
+ final FunctionImport functionImport = itor.next();
+ if (!V3FunctionImportUtils.canProxyFunction(functionImport) && !functionImport.isBindable()) {
+ found = functionImport.getParameters().isEmpty();
+ result = EdmActionProxy.getInstance(this, actionName, functionImport);
+ }
+ }
+ }
+ }
+
+ return result;
+ }
+
+ @Override
+ protected EdmFunction createUnboundFunction(final FullQualifiedName functionName, final List<String> parameterNames) {
+ EdmFunction result = null;
+
+ final Schema schema = xmlMetadata.getSchema(functionName.getNamespace());
+ if (schema instanceof org.apache.olingo.client.api.edm.xml.v4.Schema) {
+ final List<Function> functions = ((org.apache.olingo.client.api.edm.xml.v4.Schema) schema).
+ getFunctions(functionName.getName());
+ boolean found = false;
+ for (final Iterator<Function> itor = functions.iterator(); itor.hasNext() && !found;) {
+ final Function function = itor.next();
+ if (!function.isBound()) {
+ final Set<String> functionParamNames = new HashSet<String>();
+ for (CommonParameter param : function.getParameters()) {
+ functionParamNames.add(param.getName());
+ }
+ found = parameterNames == null
+ ? functionParamNames.isEmpty()
+ : functionParamNames.containsAll(parameterNames);
+ result = EdmFunctionImpl.getInstance(this, functionName, function);
+ }
+ }
+ } else {
+ for (EntityContainer entityContainer : schema.getEntityContainers()) {
+ @SuppressWarnings("unchecked")
+ final List<FunctionImport> functionImports = (List<FunctionImport>) entityContainer.
+ getFunctionImports(functionName.getName());
+ boolean found = false;
+ for (final Iterator<FunctionImport> itor = functionImports.iterator(); itor.hasNext() && !found;) {
+ final FunctionImport functionImport = itor.next();
+ if (V3FunctionImportUtils.canProxyFunction(functionImport) && !functionImport.isBindable()) {
+ final Set<String> functionParamNames = new HashSet<String>();
+ for (CommonParameter param : functionImport.getParameters()) {
+ functionParamNames.add(param.getName());
+ }
+ found = parameterNames == null
+ ? functionParamNames.isEmpty()
+ : functionParamNames.containsAll(parameterNames);
+ result = EdmFunctionProxy.getInstance(this, functionName, functionImport);
+ }
+ }
+ }
+ }
+
+ return result;
+ }
+
+ @Override
+ protected EdmAction createBoundAction(final FullQualifiedName actionName,
+ final FullQualifiedName bindingParameterTypeName, final Boolean isBindingParameterCollection) {
+
+ EdmAction result = null;
+
+ final Schema schema = xmlMetadata.getSchema(actionName.getNamespace());
+ if (schema instanceof org.apache.olingo.client.api.edm.xml.v4.Schema) {
+ final List<Action> actions = ((org.apache.olingo.client.api.edm.xml.v4.Schema) schema).
+ getActions(actionName.getName());
+ boolean found = false;
+ for (final Iterator<Action> itor = actions.iterator(); itor.hasNext() && !found;) {
+ final Action action = itor.next();
+ if (action.isBound()) {
- final EdmTypeInfo boundParam = new EdmTypeInfo(action.getParameters().get(0).getType());
++ final EdmTypeInfo boundParam = new EdmTypeInfo.Builder().setEdm(this).
++ setTypeExpression(action.getParameters().get(0).getType()).build();
+ if (bindingParameterTypeName.equals(boundParam.getFullQualifiedName())
+ && isBindingParameterCollection.booleanValue() == boundParam.isCollection()) {
+
+ found = true;
+ result = EdmActionImpl.getInstance(this, actionName, action);
+ }
+ }
+ }
+ } else {
+ for (EntityContainer entityContainer : schema.getEntityContainers()) {
+ @SuppressWarnings("unchecked")
+ final List<FunctionImport> functionImports = (List<FunctionImport>) entityContainer.
+ getFunctionImports(actionName.getName());
+ boolean found = false;
+ for (final Iterator<FunctionImport> itor = functionImports.iterator(); itor.hasNext() && !found;) {
+ final FunctionImport functionImport = itor.next();
+ if (!V3FunctionImportUtils.canProxyFunction(functionImport) && functionImport.isBindable()) {
- final EdmTypeInfo boundParam = new EdmTypeInfo(functionImport.getParameters().get(0).getType());
++ final EdmTypeInfo boundParam = new EdmTypeInfo.Builder().setEdm(this).
++ setTypeExpression(functionImport.getParameters().get(0).getType()).build();
+ if (bindingParameterTypeName.equals(boundParam.getFullQualifiedName())
+ && isBindingParameterCollection.booleanValue() == boundParam.isCollection()) {
+
+ found = true;
+ result = EdmActionProxy.getInstance(this, actionName, functionImport);
+ }
+ }
+ }
+ }
+ }
+
+ return result;
+ }
+
+ @Override
+ protected EdmFunction createBoundFunction(final FullQualifiedName functionName,
+ final FullQualifiedName bindingParameterTypeName, final Boolean isBindingParameterCollection,
+ final List<String> parameterNames) {
+
+ EdmFunction result = null;
+
+ final Schema schema = xmlMetadata.getSchema(functionName.getNamespace());
+ if (schema instanceof org.apache.olingo.client.api.edm.xml.v4.Schema) {
+ final List<Function> functions = ((org.apache.olingo.client.api.edm.xml.v4.Schema) schema).
+ getFunctions(functionName.getName());
+ boolean found = false;
+ for (final Iterator<Function> itor = functions.iterator(); itor.hasNext() && !found;) {
+ final Function function = itor.next();
+ if (function.isBound()) {
- final EdmTypeInfo boundParam = new EdmTypeInfo(function.getParameters().get(0).getType());
++ final EdmTypeInfo boundParam = new EdmTypeInfo.Builder().setEdm(this).
++ setTypeExpression(function.getParameters().get(0).getType()).build();
+ if (bindingParameterTypeName.equals(boundParam.getFullQualifiedName())
+ && isBindingParameterCollection.booleanValue() == boundParam.isCollection()) {
+
+ final Set<String> functionParamNames = new HashSet<String>();
+ for (CommonParameter param : function.getParameters()) {
+ functionParamNames.add(param.getName());
+ }
+ found = parameterNames == null
+ ? functionParamNames.isEmpty()
+ : functionParamNames.containsAll(parameterNames);
+ result = EdmFunctionImpl.getInstance(this, functionName, function);
+ }
+ }
+ }
+ } else {
+ for (EntityContainer entityContainer : schema.getEntityContainers()) {
+ @SuppressWarnings("unchecked")
+ final List<FunctionImport> functionImports = (List<FunctionImport>) entityContainer.
+ getFunctionImports(functionName.getName());
+ boolean found = false;
+ for (final Iterator<FunctionImport> itor = functionImports.iterator(); itor.hasNext() && !found;) {
+ final FunctionImport functionImport = itor.next();
+ if (!V3FunctionImportUtils.canProxyFunction(functionImport) && functionImport.isBindable()) {
- final EdmTypeInfo boundParam = new EdmTypeInfo(functionImport.getParameters().get(0).getType());
++ final EdmTypeInfo boundParam = new EdmTypeInfo.Builder().setEdm(this).
++ setTypeExpression(functionImport.getParameters().get(0).getType()).build();
+ if (bindingParameterTypeName.equals(boundParam.getFullQualifiedName())
+ && isBindingParameterCollection.booleanValue() == boundParam.isCollection()) {
+
+ final Set<String> functionParamNames = new HashSet<String>();
+ for (CommonParameter param : functionImport.getParameters()) {
+ functionParamNames.add(param.getName());
+ }
+ found = parameterNames == null
+ ? functionParamNames.isEmpty()
+ : functionParamNames.containsAll(parameterNames);
+ result = EdmFunctionProxy.getInstance(this, functionName, functionImport);
+ }
+ }
+ }
+ }
+ }
+
+ return result;
+ }
+
+ @Override
+ public boolean equals(final Object obj) {
+ return EqualsBuilder.reflectionEquals(this, obj);
+ }
+
+ @Override
+ public int hashCode() {
+ return HashCodeBuilder.reflectionHashCode(this);
+ }
+
+ @Override
+ public String toString() {
+ return ReflectionToStringBuilder.toString(this, ToStringStyle.MULTI_LINE_STYLE);
+ }
+ }
http://git-wip-us.apache.org/repos/asf/incubator-olingo-odata4/blob/f70d3f0b/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/EdmComplexTypeImpl.java
----------------------------------------------------------------------
diff --cc lib/client-core/src/main/java/org/apache/olingo/client/core/edm/EdmComplexTypeImpl.java
index 0000000,7f126f9..43f5357
mode 000000,100644..100644
--- a/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/EdmComplexTypeImpl.java
+++ b/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/EdmComplexTypeImpl.java
@@@ -1,0 -1,68 +1,66 @@@
+ /*
+ * 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.client.core.edm;
+
+ import java.util.Map;
-
+ import org.apache.olingo.client.api.edm.xml.ComplexType;
-import org.apache.olingo.client.api.utils.EdmTypeInfo;
+ import org.apache.olingo.commons.api.edm.Edm;
+ import org.apache.olingo.commons.api.edm.EdmNavigationProperty;
+ import org.apache.olingo.commons.api.edm.EdmProperty;
+ import org.apache.olingo.commons.api.edm.FullQualifiedName;
+ import org.apache.olingo.commons.core.edm.AbstractEdmComplexType;
+ import org.apache.olingo.commons.core.edm.EdmStructuredTypeHelper;
+
+ public class EdmComplexTypeImpl extends AbstractEdmComplexType {
+
+ private final EdmStructuredTypeHelper helper;
+
+ public static EdmComplexTypeImpl getInstance(final Edm edm, final FullQualifiedName fqn,
+ final ComplexType complexType) {
+
+ FullQualifiedName baseTypeName = null;
+ if (complexType instanceof org.apache.olingo.client.api.edm.xml.v4.ComplexType) {
+ final String baseType = ((org.apache.olingo.client.api.edm.xml.v4.ComplexType) complexType).getBaseType();
+ baseTypeName = baseType == null
- ? null : new EdmTypeInfo(baseType).getFullQualifiedName();
++ ? null : new EdmTypeInfo.Builder().setTypeExpression(baseType).build().getFullQualifiedName();
+ }
+ final EdmComplexTypeImpl instance = new EdmComplexTypeImpl(edm, fqn, baseTypeName, complexType);
+ instance.baseType = instance.buildBaseType(baseTypeName);
+
+ return instance;
+ }
+
+ private EdmComplexTypeImpl(final Edm edm, final FullQualifiedName fqn, final FullQualifiedName baseTypeName,
+ final ComplexType complexType) {
+
+ super(edm, fqn, baseTypeName);
+ this.helper = new EdmStructuredTypeHelperImpl(edm, complexType);
+ }
+
+ @Override
+ protected Map<String, EdmProperty> getProperties() {
+ return helper.getProperties();
+ }
+
+ @Override
+ protected Map<String, EdmNavigationProperty> getNavigationProperties() {
+ return helper.getNavigationProperties();
+ }
+
+ }
http://git-wip-us.apache.org/repos/asf/incubator-olingo-odata4/blob/f70d3f0b/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/EdmEntityContainerImpl.java
----------------------------------------------------------------------
diff --cc lib/client-core/src/main/java/org/apache/olingo/client/core/edm/EdmEntityContainerImpl.java
index 0000000,fdbbed2..871bfb2
mode 000000,100644..100644
--- a/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/EdmEntityContainerImpl.java
+++ b/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/EdmEntityContainerImpl.java
@@@ -1,0 -1,125 +1,123 @@@
+ /*
+ * 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.client.core.edm;
+
+ import org.apache.olingo.client.api.UnsupportedInV3Exception;
+ import org.apache.olingo.client.api.edm.xml.CommonFunctionImport;
+ import org.apache.olingo.client.api.edm.xml.EntityContainer;
+ import org.apache.olingo.client.api.edm.xml.EntitySet;
+ import org.apache.olingo.client.api.edm.xml.XMLMetadata;
+ import org.apache.olingo.client.api.edm.xml.v3.FunctionImport;
+ import org.apache.olingo.client.api.edm.xml.v4.ActionImport;
+ import org.apache.olingo.client.api.edm.xml.v4.Singleton;
-import org.apache.olingo.client.api.utils.EdmTypeInfo;
+ import org.apache.olingo.client.core.edm.v3.EdmActionImportProxy;
+ import org.apache.olingo.client.core.edm.v3.EdmEntitySetProxy;
+ import org.apache.olingo.client.core.edm.v3.EdmFunctionImportProxy;
+ import org.apache.olingo.commons.api.edm.Edm;
+ import org.apache.olingo.commons.api.edm.EdmActionImport;
+ 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.FullQualifiedName;
+ import org.apache.olingo.commons.core.edm.AbstractEdmEntityContainer;
+
+ public class EdmEntityContainerImpl extends AbstractEdmEntityContainer {
+
+ private final EntityContainer xmlEntityContainer;
+
+ private final XMLMetadata xmlMetadata;
+
+ public EdmEntityContainerImpl(final Edm edm, final FullQualifiedName entityContainerName,
+ final EntityContainer xmlEntityContainer, final XMLMetadata xmlMetadata) {
+
+ super(edm, entityContainerName);
+
+ this.xmlEntityContainer = xmlEntityContainer;
+ this.xmlMetadata = xmlMetadata;
+ }
+
+ @Override
+ protected EdmSingleton createSingleton(final String singletonName) {
+ if (!(xmlEntityContainer instanceof org.apache.olingo.client.api.edm.xml.v4.EntityContainer)) {
+ throw new UnsupportedInV3Exception();
+ }
+
+ final Singleton singleton = ((org.apache.olingo.client.api.edm.xml.v4.EntityContainer) xmlEntityContainer).
+ getSingleton(singletonName);
+ if (singleton == null) {
+ throw new EdmException("Singleton named '" + singletonName + "' not found in " + entityContainerName);
+ }
- return new EdmSingletonImpl(edm, this, singletonName,
- new EdmTypeInfo(singleton.getEntityType(), entityContainerName.getNamespace()).getFullQualifiedName(),
- singleton);
++ return new EdmSingletonImpl(edm, this, singletonName, new EdmTypeInfo.Builder().
++ setTypeExpression(singleton.getEntityType()).setDefaultNamespace(entityContainerName.getNamespace()).
++ build().getFullQualifiedName(), singleton);
+ }
+
+ @Override
+ protected EdmEntitySet createEntitySet(final String entitySetName) {
+ final EntitySet entitySet = xmlEntityContainer.getEntitySet(entitySetName);
+ if (entitySet == null) {
+ throw new EdmException("EntitySet named '" + entitySetName + "' not found in " + entityContainerName);
+ }
+
++ final FullQualifiedName entityType = new EdmTypeInfo.Builder().setTypeExpression(entitySet.getEntityType()).
++ setDefaultNamespace(entityContainerName.getNamespace()).build().getFullQualifiedName();
+ if (entitySet instanceof org.apache.olingo.client.api.edm.xml.v4.EntitySet) {
- return new EdmEntitySetImpl(edm, this, entitySetName,
- new EdmTypeInfo(entitySet.getEntityType(), entityContainerName.getNamespace()).getFullQualifiedName(),
++ return new EdmEntitySetImpl(edm, this, entitySetName, entityType,
+ (org.apache.olingo.client.api.edm.xml.v4.EntitySet) entitySet);
+ } else {
- return new EdmEntitySetProxy(edm, this, entitySetName,
- new EdmTypeInfo(entitySet.getEntityType(), entityContainerName.getNamespace()).getFullQualifiedName(),
- xmlMetadata);
++ return new EdmEntitySetProxy(edm, this, entitySetName, entityType, xmlMetadata);
+ }
+ }
+
+ @Override
+ protected EdmActionImport createActionImport(final String actionImportName) {
+ if (xmlEntityContainer instanceof org.apache.olingo.client.api.edm.xml.v4.EntityContainer) {
- final ActionImport actionImport
- = ((org.apache.olingo.client.api.edm.xml.v4.EntityContainer) xmlEntityContainer).
++ final ActionImport actionImport =
++ ((org.apache.olingo.client.api.edm.xml.v4.EntityContainer) xmlEntityContainer).
+ getActionImport(actionImportName);
+ if (actionImport == null) {
+ throw new EdmException("ActionImport named '" + actionImportName + "' not found in " + entityContainerName);
+ }
+ return new EdmActionImportImpl(edm, this, actionImportName, actionImport);
+ } else {
+ final FunctionImport functionImport = (FunctionImport) xmlEntityContainer.getFunctionImport(actionImportName);
+ if (functionImport == null) {
+ throw new EdmException("FunctionImport named '" + actionImportName + "' not found in " + entityContainerName);
+ }
+ return new EdmActionImportProxy(edm, this, actionImportName, functionImport);
+ }
+ }
+
+ @Override
+ protected EdmFunctionImport createFunctionImport(final String functionImportName) {
+ final CommonFunctionImport functionImport = xmlEntityContainer.getFunctionImport(functionImportName);
+ if (functionImport == null) {
+ throw new EdmException("FunctionImport named '" + functionImportName + "' not found in " + entityContainerName);
+ }
+
+ if (functionImport instanceof org.apache.olingo.client.api.edm.xml.v4.FunctionImport) {
+ return new EdmFunctionImportImpl(edm, this, functionImportName,
+ (org.apache.olingo.client.api.edm.xml.v4.FunctionImport) functionImport);
+ } else {
+ return new EdmFunctionImportProxy(edm, this, functionImportName,
+ (org.apache.olingo.client.api.edm.xml.v3.FunctionImport) functionImport);
+ }
+ }
+ }
http://git-wip-us.apache.org/repos/asf/incubator-olingo-odata4/blob/f70d3f0b/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/EdmEntityTypeImpl.java
----------------------------------------------------------------------
diff --cc lib/client-core/src/main/java/org/apache/olingo/client/core/edm/EdmEntityTypeImpl.java
index 0000000,218c5cb..914ad1c
mode 000000,100644..100644
--- a/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/EdmEntityTypeImpl.java
+++ b/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/EdmEntityTypeImpl.java
@@@ -1,0 -1,80 +1,80 @@@
+ /*
+ * 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.client.core.edm;
+
+ import java.util.ArrayList;
+ import java.util.List;
+ import java.util.Map;
+
+ import org.apache.olingo.client.api.edm.xml.EntityType;
+ import org.apache.olingo.client.api.edm.xml.PropertyRef;
-import org.apache.olingo.client.api.utils.EdmTypeInfo;
+ import org.apache.olingo.commons.api.edm.Edm;
+ 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.FullQualifiedName;
+ import org.apache.olingo.commons.core.edm.AbstractEdmEntityType;
+ import org.apache.olingo.commons.core.edm.EdmStructuredTypeHelper;
+
+ public class EdmEntityTypeImpl extends AbstractEdmEntityType {
+
+ private final EdmStructuredTypeHelper helper;
+
+ public static EdmEntityTypeImpl getInstance(final Edm edm, final FullQualifiedName fqn, final EntityType entityType) {
+ final FullQualifiedName baseTypeName = entityType.getBaseType() == null
- ? null : new EdmTypeInfo(entityType.getBaseType()).getFullQualifiedName();
++ ? null
++ : new EdmTypeInfo.Builder().setTypeExpression(entityType.getBaseType()).build().getFullQualifiedName();
+ final EdmEntityTypeImpl instance = new EdmEntityTypeImpl(edm, fqn, baseTypeName, entityType);
+ instance.baseType = instance.buildBaseType(baseTypeName);
+
+ if (instance.baseType == null) {
+ instance.entityBaseType = null;
+
+ final List<EdmKeyPropertyRef> edmKey = new ArrayList<EdmKeyPropertyRef>(
+ entityType.getKey().getPropertyRefs().size());
+ for (PropertyRef ref : entityType.getKey().getPropertyRefs()) {
+ edmKey.add(new EdmKeyPropertyRefImpl(instance, ref));
+ }
+ instance.setEdmKeyPropertyRef(edmKey);
+ } else {
+ instance.entityBaseType = (EdmEntityType) instance.baseType;
+ }
+
+ return instance;
+ }
+
+ private EdmEntityTypeImpl(final Edm edm, final FullQualifiedName fqn, final FullQualifiedName baseTypeName,
+ final EntityType entityType) {
+
+ super(edm, fqn, baseTypeName, entityType.isHasStream());
+ this.helper = new EdmStructuredTypeHelperImpl(edm, entityType);
+ }
+
+ @Override
+ protected Map<String, EdmProperty> getProperties() {
+ return helper.getProperties();
+ }
+
+ @Override
+ protected Map<String, EdmNavigationProperty> getNavigationProperties() {
+ return helper.getNavigationProperties();
+ }
+
+ }
http://git-wip-us.apache.org/repos/asf/incubator-olingo-odata4/blob/f70d3f0b/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/EdmEnumTypeImpl.java
----------------------------------------------------------------------
diff --cc lib/client-core/src/main/java/org/apache/olingo/client/core/edm/EdmEnumTypeImpl.java
index 0000000,3260802..10a1b2e
mode 000000,100644..100644
--- a/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/EdmEnumTypeImpl.java
+++ b/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/EdmEnumTypeImpl.java
@@@ -1,0 -1,84 +1,96 @@@
+ /*
+ * 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.client.core.edm;
+
+ import org.apache.olingo.client.api.edm.xml.EnumType;
+ import org.apache.olingo.client.api.edm.xml.Member;
+ import org.apache.olingo.commons.api.edm.Edm;
+ import org.apache.olingo.commons.api.edm.EdmEnumType;
+ import org.apache.olingo.commons.api.edm.EdmMember;
+ import org.apache.olingo.commons.api.edm.EdmPrimitiveType;
+ import org.apache.olingo.commons.api.edm.FullQualifiedName;
+ import org.apache.olingo.commons.core.edm.AbstractEdmEnumType;
+ import org.apache.olingo.commons.core.edm.EdmMemberImpl;
+ import org.apache.olingo.commons.core.edm.primitivetype.EdmPrimitiveTypeKind;
+
+ import java.util.ArrayList;
+ import java.util.Collection;
+ import java.util.Collections;
+ import java.util.LinkedHashMap;
+ import java.util.List;
+ import java.util.Map;
++import org.apache.commons.lang3.ArrayUtils;
++import org.apache.olingo.commons.api.edm.EdmException;
+
+ public class EdmEnumTypeImpl extends AbstractEdmEnumType implements EdmEnumType {
+
++ private static final EdmPrimitiveTypeKind[] VALID_UNDERLYING_TYPES = new EdmPrimitiveTypeKind[] {
++ EdmPrimitiveTypeKind.Byte,
++ EdmPrimitiveTypeKind.SByte,
++ EdmPrimitiveTypeKind.Int16,
++ EdmPrimitiveTypeKind.Int32,
++ EdmPrimitiveTypeKind.Int64
++ };
++
+ private final EdmPrimitiveType underlyingType;
+
+ private final List<String> memberNames;
+
+ private final Map<String, EdmMember> members;
+
+ public EdmEnumTypeImpl(final Edm edm, final FullQualifiedName fqn, final EnumType xmlEnumType) {
+ super(edm, fqn, xmlEnumType.isFlags());
+
+ if (xmlEnumType.getUnderlyingType() == null) {
+ this.underlyingType = EdmPrimitiveTypeKind.Int32.getEdmPrimitiveTypeInstance();
+ } else {
- this.underlyingType = EdmPrimitiveTypeKind.fromString(
- xmlEnumType.getUnderlyingType()).getEdmPrimitiveTypeInstance();
- // TODO: Should we validate that the underlying type is of byte, sbyte, in16, int32 or int64?
++ this.underlyingType = EdmPrimitiveTypeKind.valueOfFQN(xmlEnumType.getUnderlyingType()).
++ getEdmPrimitiveTypeInstance();
++ if (!ArrayUtils.contains(VALID_UNDERLYING_TYPES, this.underlyingType.getKind())) {
++ throw new EdmException("Not allowed as underlying type: " + this.underlyingType.getKind());
++ }
+ }
+
+ final List<? extends Member> xmlMembers = xmlEnumType.getMembers();
+ final List<String> _memberNames = new ArrayList<String>();
+ final Map<String, EdmMember> _members = new LinkedHashMap<String, EdmMember>(xmlMembers.size());
+ for (Member xmlMember : xmlMembers) {
+ _memberNames.add(xmlMember.getName());
+ _members.put(xmlMember.getName(), new EdmMemberImpl(edm, xmlMember.getName(), xmlMember.getValue()));
+ }
+ this.memberNames = Collections.unmodifiableList(_memberNames);
+ this.members = Collections.unmodifiableMap(_members);
+ }
+
+ @Override
+ public EdmPrimitiveType getUnderlyingType() {
+ return underlyingType;
+ }
+
+ @Override
+ public List<String> getMemberNames() {
+ return memberNames;
+ }
+
+ @Override
+ protected Collection<? extends EdmMember> getMembers() {
+ return members.values();
+ }
+
+ }
http://git-wip-us.apache.org/repos/asf/incubator-olingo-odata4/blob/f70d3f0b/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/EdmFunctionImportImpl.java
----------------------------------------------------------------------
diff --cc lib/client-core/src/main/java/org/apache/olingo/client/core/edm/EdmFunctionImportImpl.java
index 0000000,d3004cb..ced5ae4
mode 000000,100644..100644
--- a/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/EdmFunctionImportImpl.java
+++ b/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/EdmFunctionImportImpl.java
@@@ -1,0 -1,48 +1,46 @@@
+ /*
+ * 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.client.core.edm;
+
+ import java.util.List;
+
+ import org.apache.olingo.client.api.edm.xml.v4.FunctionImport;
-import org.apache.olingo.client.api.utils.EdmTypeInfo;
+ import org.apache.olingo.commons.api.edm.Edm;
+ import org.apache.olingo.commons.api.edm.EdmEntityContainer;
+ import org.apache.olingo.commons.api.edm.EdmFunction;
+ import org.apache.olingo.commons.api.edm.EdmFunctionImport;
+
+ public class EdmFunctionImportImpl extends EdmOperationImportImpl implements EdmFunctionImport {
+
+ private final FunctionImport functionImport;
+
+ public EdmFunctionImportImpl(final Edm edm, final EdmEntityContainer container, final String name,
+ final FunctionImport functionImport) {
+
+ super(edm, container, name, functionImport.getEntitySet());
+ this.functionImport = functionImport;
+ }
+
+ @Override
+ public EdmFunction getFunction(final List<String> parameterNames) {
- return edm.getFunction(
- new EdmTypeInfo(functionImport.getFunction(), container.getNamespace()).getFullQualifiedName(),
- null, null, parameterNames);
++ return edm.getFunction(new EdmTypeInfo.Builder().setEdm(edm).setTypeExpression(functionImport.getFunction()).
++ setDefaultNamespace(container.getNamespace()).build().getFullQualifiedName(), null, null, parameterNames);
+ }
+
+ }
http://git-wip-us.apache.org/repos/asf/incubator-olingo-odata4/blob/f70d3f0b/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/EdmNavigationPropertyImpl.java
----------------------------------------------------------------------
diff --cc lib/client-core/src/main/java/org/apache/olingo/client/core/edm/EdmNavigationPropertyImpl.java
index 0000000,cab0297..19df620
mode 000000,100644..100644
--- a/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/EdmNavigationPropertyImpl.java
+++ b/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/EdmNavigationPropertyImpl.java
@@@ -1,0 -1,75 +1,74 @@@
+ /*
+ * 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.client.core.edm;
+
+ import java.util.List;
+
+ import org.apache.olingo.client.api.edm.xml.v4.NavigationProperty;
+ import org.apache.olingo.client.api.edm.xml.v4.ReferentialConstraint;
-import org.apache.olingo.client.api.utils.EdmTypeInfo;
+ import org.apache.olingo.commons.api.edm.Edm;
+ import org.apache.olingo.commons.api.edm.FullQualifiedName;
+ import org.apache.olingo.commons.core.edm.AbstractEdmNavigationProperty;
+
+ public class EdmNavigationPropertyImpl extends AbstractEdmNavigationProperty {
+
+ private final NavigationProperty navigationProperty;
+
+ private final EdmTypeInfo edmTypeInfo;
+
+ public EdmNavigationPropertyImpl(final Edm edm, final NavigationProperty navigationProperty) {
+ super(edm, navigationProperty.getName());
+ this.navigationProperty = navigationProperty;
- this.edmTypeInfo = new EdmTypeInfo(navigationProperty.getType());
++ this.edmTypeInfo = new EdmTypeInfo.Builder().setTypeExpression(navigationProperty.getType()).build();
+ }
+
+ @Override
+ protected FullQualifiedName getTypeFQN() {
+ return edmTypeInfo.getFullQualifiedName();
+ }
+
+ @Override
+ protected String internatGetPartner() {
+ return navigationProperty.getPartner();
+ }
+
+ @Override
+ public boolean isCollection() {
+ return edmTypeInfo.isCollection();
+ }
+
+ @Override
+ public Boolean isNullable() {
+ return navigationProperty.isNullable();
+ }
+
+ @Override
+ public String getReferencingPropertyName(final String referencedPropertyName) {
+ final List<? extends ReferentialConstraint> referentialConstraints = navigationProperty.getReferentialConstraints();
+ if (referentialConstraints != null) {
+ for (ReferentialConstraint constraint : referentialConstraints) {
+ if (constraint.getReferencedProperty().equals(referencedPropertyName)) {
+ return constraint.getProperty();
+ }
+ }
+ }
+ return null;
+ }
+
+ }
http://git-wip-us.apache.org/repos/asf/incubator-olingo-odata4/blob/f70d3f0b/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/EdmParameterImpl.java
----------------------------------------------------------------------
diff --cc lib/client-core/src/main/java/org/apache/olingo/client/core/edm/EdmParameterImpl.java
index 0000000,33dfad3..e912ecb
mode 000000,100644..100644
--- a/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/EdmParameterImpl.java
+++ b/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/EdmParameterImpl.java
@@@ -1,0 -1,74 +1,73 @@@
+ /*
+ * 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.client.core.edm;
+
+ import org.apache.olingo.client.api.edm.xml.CommonParameter;
-import org.apache.olingo.client.api.utils.EdmTypeInfo;
+ import org.apache.olingo.commons.api.edm.Edm;
+ import org.apache.olingo.commons.api.edm.EdmMapping;
+ import org.apache.olingo.commons.core.edm.AbstractEdmParameter;
+
+ public class EdmParameterImpl extends AbstractEdmParameter {
+
+ private final CommonParameter parameter;
+
+ private final EdmTypeInfo parameterInfo;
+
+ public static EdmParameterImpl getInstance(final Edm edm, final CommonParameter parameter) {
- final EdmTypeInfo paramTypeInfo = new EdmTypeInfo(parameter.getType());
++ final EdmTypeInfo paramTypeInfo = new EdmTypeInfo.Builder().setTypeExpression(parameter.getType()).build();
+ return new EdmParameterImpl(edm, parameter, paramTypeInfo);
+ }
+
+ private EdmParameterImpl(final Edm edm, final CommonParameter parameter, final EdmTypeInfo parameterInfo) {
+ super(edm, parameter.getName(), parameterInfo.getFullQualifiedName());
+ this.parameter = parameter;
+ this.parameterInfo = parameterInfo;
+ }
+
+ @Override
+ public boolean isCollection() {
+ return parameterInfo.isCollection();
+ }
+
+ @Override
+ public EdmMapping getMapping() {
+ throw new UnsupportedOperationException("Not supported in client code.");
+ }
+
+ @Override
+ public Boolean isNullable() {
+ return parameter.isNullable();
+ }
+
+ @Override
+ public Integer getMaxLength() {
+ return parameter.getMaxLength();
+ }
+
+ @Override
+ public Integer getPrecision() {
+ return parameter.getPrecision();
+ }
+
+ @Override
+ public Integer getScale() {
+ return parameter.getScale();
+ }
+
+ }
http://git-wip-us.apache.org/repos/asf/incubator-olingo-odata4/blob/f70d3f0b/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/EdmPropertyImpl.java
----------------------------------------------------------------------
diff --cc lib/client-core/src/main/java/org/apache/olingo/client/core/edm/EdmPropertyImpl.java
index 0000000,399b344..8e3eba6
mode 000000,100644..100644
--- a/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/EdmPropertyImpl.java
+++ b/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/EdmPropertyImpl.java
@@@ -1,0 -1,91 +1,90 @@@
+ /*
+ * 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.client.core.edm;
+
+ import org.apache.olingo.client.api.edm.xml.CommonProperty;
-import org.apache.olingo.client.api.utils.EdmTypeInfo;
+ import org.apache.olingo.commons.api.edm.Edm;
+ import org.apache.olingo.commons.api.edm.EdmMapping;
+ import org.apache.olingo.commons.api.edm.EdmProperty;
+ import org.apache.olingo.commons.api.edm.FullQualifiedName;
+ import org.apache.olingo.commons.core.edm.AbstractEdmProperty;
+
+ public class EdmPropertyImpl extends AbstractEdmProperty implements EdmProperty {
+
+ private final CommonProperty property;
+
+ private final EdmTypeInfo edmTypeInfo;
+
+ public EdmPropertyImpl(final Edm edm, final CommonProperty property) {
+ super(edm, property.getName());
+ this.property = property;
- this.edmTypeInfo = new EdmTypeInfo(property.getType());
++ this.edmTypeInfo = new EdmTypeInfo.Builder().setTypeExpression(property.getType()).build();
+ }
+
+ @Override
+ protected FullQualifiedName getTypeFQN() {
+ return edmTypeInfo.getFullQualifiedName();
+ }
+
+ @Override
+ public boolean isCollection() {
+ return edmTypeInfo.isCollection();
+ }
+
+ @Override
+ public EdmMapping getMapping() {
+ throw new UnsupportedOperationException("Not supported in client code.");
+ }
+
+ @Override
+ public String getMimeType() {
+ throw new UnsupportedOperationException("Not supported in client code.");
+ }
+
+ @Override
+ public Boolean isNullable() {
+ return property.isNullable();
+ }
+
+ @Override
+ public Integer getMaxLength() {
+ return property.getMaxLength();
+ }
+
+ @Override
+ public Integer getPrecision() {
+ return property.getPrecision();
+ }
+
+ @Override
+ public Integer getScale() {
+ return property.getScale();
+ }
+
+ @Override
+ public Boolean isUnicode() {
+ return property.isUnicode();
+ }
+
+ @Override
+ public String getDefaultValue() {
+ return property.getDefaultValue();
+ }
+
+ }
http://git-wip-us.apache.org/repos/asf/incubator-olingo-odata4/blob/f70d3f0b/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/EdmReturnTypeImpl.java
----------------------------------------------------------------------
diff --cc lib/client-core/src/main/java/org/apache/olingo/client/core/edm/EdmReturnTypeImpl.java
index 0000000,72d6626..b559c71
mode 000000,100644..100644
--- a/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/EdmReturnTypeImpl.java
+++ b/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/EdmReturnTypeImpl.java
@@@ -1,0 -1,68 +1,67 @@@
+ /*
+ * 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.client.core.edm;
+
+ import org.apache.olingo.client.api.edm.xml.v4.ReturnType;
-import org.apache.olingo.client.api.utils.EdmTypeInfo;
+ import org.apache.olingo.commons.api.edm.Edm;
+ import org.apache.olingo.commons.core.edm.AbstractEdmReturnType;
+
+ public class EdmReturnTypeImpl extends AbstractEdmReturnType {
+
+ private final ReturnType returnType;
+
+ private final EdmTypeInfo returnTypeInfo;
+
+ public static EdmReturnTypeImpl getInstance(final Edm edm, final ReturnType returnType) {
- final EdmTypeInfo returnTypeInfo = new EdmTypeInfo(returnType.getType());
++ final EdmTypeInfo returnTypeInfo = new EdmTypeInfo.Builder().setTypeExpression(returnType.getType()).build();
+ return new EdmReturnTypeImpl(edm, returnType, returnTypeInfo);
+ }
+
+ private EdmReturnTypeImpl(final Edm edm, final ReturnType returnType, final EdmTypeInfo returnTypeInfo) {
+ super(edm, returnTypeInfo.getFullQualifiedName());
+ this.returnType = returnType;
+ this.returnTypeInfo = returnTypeInfo;
+ }
+
+ @Override
+ public Boolean isNullable() {
+ return returnType.isNullable();
+ }
+
+ @Override
+ public Integer getMaxLength() {
+ return returnType.getMaxLength();
+ }
+
+ @Override
+ public Integer getPrecision() {
+ return returnType.getPrecision();
+ }
+
+ @Override
+ public Integer getScale() {
+ return returnType.getScale();
+ }
+
+ @Override
+ public boolean isCollection() {
+ return returnTypeInfo.isCollection();
+ }
+
+ }
http://git-wip-us.apache.org/repos/asf/incubator-olingo-odata4/blob/f70d3f0b/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/EdmTypeDefinitionImpl.java
----------------------------------------------------------------------
diff --cc lib/client-core/src/main/java/org/apache/olingo/client/core/edm/EdmTypeDefinitionImpl.java
index 0000000,afe6512..cf2ad47
mode 000000,100644..100644
--- a/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/EdmTypeDefinitionImpl.java
+++ b/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/EdmTypeDefinitionImpl.java
@@@ -1,0 -1,74 +1,73 @@@
+ /*
+ * 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.client.core.edm;
+
+ import org.apache.olingo.client.api.edm.xml.v4.TypeDefinition;
+ import org.apache.olingo.commons.api.edm.Edm;
+ import org.apache.olingo.commons.api.edm.EdmException;
+ import org.apache.olingo.commons.api.edm.EdmPrimitiveType;
+ import org.apache.olingo.commons.api.edm.EdmTypeDefinition;
+ import org.apache.olingo.commons.api.edm.FullQualifiedName;
+ import org.apache.olingo.commons.core.edm.AbstractEdmTypeDefinition;
+ import org.apache.olingo.commons.core.edm.primitivetype.EdmPrimitiveTypeKind;
+
+ public class EdmTypeDefinitionImpl extends AbstractEdmTypeDefinition implements EdmTypeDefinition {
+
+ private TypeDefinition typeDefinition;
+
+ private EdmPrimitiveType edmPrimitiveTypeInstance;
+
+ public EdmTypeDefinitionImpl(final Edm edm, final FullQualifiedName typeDefinitionName,
+ final TypeDefinition typeDefinition) {
+
+ super(edm, typeDefinitionName);
+ this.typeDefinition = typeDefinition;
- // TODO: Should we check for edmNamespace in the underlying type name?
+ try {
- edmPrimitiveTypeInstance = EdmPrimitiveTypeKind.fromString(
- typeDefinition.getUnderlyingType()).getEdmPrimitiveTypeInstance();
++ edmPrimitiveTypeInstance = EdmPrimitiveTypeKind.valueOfFQN(typeDefinition.getUnderlyingType()).
++ getEdmPrimitiveTypeInstance();
+ } catch (IllegalArgumentException e) {
+ throw new EdmException("Invalid underlying type: " + typeDefinition.getUnderlyingType(), e);
+ }
+ }
+
+ @Override
+ public EdmPrimitiveType getUnderlyingType() {
+ return edmPrimitiveTypeInstance;
+ }
+
+ @Override
+ public Integer getMaxLength() {
+ return typeDefinition.getMaxLength();
+ }
+
+ @Override
+ public Integer getPrecision() {
+ return typeDefinition.getPrecision();
+ }
+
+ @Override
+ public Integer getScale() {
+ return typeDefinition.getScale();
+ }
+
+ @Override
+ public Boolean isUnicode() {
+ return typeDefinition.isUnicode();
+ }
+ }
http://git-wip-us.apache.org/repos/asf/incubator-olingo-odata4/blob/f70d3f0b/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/EdmTypeInfo.java
----------------------------------------------------------------------
diff --cc lib/client-core/src/main/java/org/apache/olingo/client/core/edm/EdmTypeInfo.java
index 0000000,0000000..b8e930f
new file mode 100644
--- /dev/null
+++ b/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/EdmTypeInfo.java
@@@ -1,0 -1,0 +1,174 @@@
++/*
++ * 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.client.core.edm;
++
++import org.apache.commons.lang3.StringUtils;
++import org.apache.olingo.commons.api.edm.Edm;
++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.EdmPrimitiveType;
++import org.apache.olingo.commons.api.edm.FullQualifiedName;
++import org.apache.olingo.commons.core.edm.primitivetype.EdmPrimitiveTypeKind;
++import org.slf4j.Logger;
++import org.slf4j.LoggerFactory;
++
++public class EdmTypeInfo {
++
++ private static final Logger LOG = LoggerFactory.getLogger(EdmTypeInfo.class);
++
++ public static class Builder {
++
++ private String typeExpression;
++
++ private String defaultNamespace;
++
++ private Edm edm;
++
++ public Builder setTypeExpression(final String typeExpression) {
++ this.typeExpression = typeExpression;
++ return this;
++ }
++
++ public Builder setDefaultNamespace(final String defaultNamespace) {
++ this.defaultNamespace = defaultNamespace;
++ return this;
++ }
++
++ public Builder setEdm(final Edm edm) {
++ this.edm = edm;
++ return this;
++ }
++
++ public EdmTypeInfo build() {
++ return new EdmTypeInfo(edm, typeExpression.indexOf('.') == -1
++ ? defaultNamespace + "." + typeExpression
++ : typeExpression);
++ }
++ }
++
++ private final Edm edm;
++
++ private final String typeExpression;
++
++ private final boolean collection;
++
++ private final FullQualifiedName fullQualifiedName;
++
++ private EdmPrimitiveType primitiveType;
++
++ private EdmEnumType enumType;
++
++ private EdmComplexType complexType;
++
++ private EdmEntityType entityType;
++
++ private EdmTypeInfo(final Edm edm, final String typeExpression) {
++ this.edm = edm;
++ this.typeExpression = typeExpression;
++
++ String baseType;
++ final int collStartIdx = typeExpression.indexOf("Collection(");
++ final int collEndIdx = typeExpression.lastIndexOf(')');
++ if (collStartIdx == -1) {
++ baseType = typeExpression;
++ this.collection = false;
++ } else {
++ if (collEndIdx == -1) {
++ throw new IllegalArgumentException("Malformed type: " + typeExpression);
++ }
++
++ this.collection = true;
++ baseType = typeExpression.substring(collStartIdx + 11, collEndIdx);
++ }
++
++ final int lastDotIdx = baseType.lastIndexOf('.');
++ if (lastDotIdx == -1) {
++ throw new IllegalArgumentException("Cannot find namespace or alias in " + typeExpression);
++ }
++ final String namespace = baseType.substring(0, lastDotIdx);
++ final String typeName = baseType.substring(lastDotIdx + 1);
++ if (StringUtils.isBlank(typeName)) {
++ throw new IllegalArgumentException("Null or empty type name in " + typeExpression);
++ }
++
++ this.fullQualifiedName = new FullQualifiedName(namespace, typeName);
++
++ try {
++ this.primitiveType = EdmPrimitiveTypeKind.valueOf(this.fullQualifiedName.getName()).
++ getEdmPrimitiveTypeInstance();
++ } catch (IllegalArgumentException e) {
++ LOG.debug("{} does not appear to refer to an Edm primitive type", this.fullQualifiedName);
++ }
++ if (this.primitiveType == null && this.edm != null) {
++ this.enumType = this.edm.getEnumType(this.fullQualifiedName);
++ if (this.enumType == null) {
++ this.complexType = this.edm.getComplexType(this.fullQualifiedName);
++ if (this.complexType == null) {
++ this.entityType = this.edm.getEntityType(this.fullQualifiedName);
++ }
++ }
++ }
++ }
++
++ public String getTypeExpression() {
++ return typeExpression;
++ }
++
++ public boolean isCollection() {
++ return collection;
++ }
++
++ public FullQualifiedName getFullQualifiedName() {
++ return fullQualifiedName;
++ }
++
++ public boolean isPrimitiveType() {
++ return this.primitiveType != null;
++ }
++
++ public EdmPrimitiveType getPrimitiveType() {
++ return primitiveType;
++ }
++
++ public boolean isEnumType() {
++ return this.enumType != null;
++ }
++
++ public EdmEnumType getEnumType() {
++ return enumType;
++ }
++
++ public boolean isComplexType() {
++ return this.complexType != null;
++ }
++
++ public EdmComplexType getComplexType() {
++ return complexType;
++ }
++
++ public boolean isEntityType() {
++ return this.entityType != null;
++ }
++
++ public EdmEntityType getEntityType() {
++ return entityType;
++ }
++
++}
http://git-wip-us.apache.org/repos/asf/incubator-olingo-odata4/blob/f70d3f0b/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/v3/EdmActionImportProxy.java
----------------------------------------------------------------------
diff --cc lib/client-core/src/main/java/org/apache/olingo/client/core/edm/v3/EdmActionImportProxy.java
index 0000000,576623e..32429c0
mode 000000,100644..100644
--- a/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/v3/EdmActionImportProxy.java
+++ b/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/v3/EdmActionImportProxy.java
@@@ -1,0 -1,45 +1,45 @@@
+ /*
+ * 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.client.core.edm.v3;
+
+ import org.apache.olingo.client.api.edm.xml.v3.FunctionImport;
-import org.apache.olingo.client.api.utils.EdmTypeInfo;
+ import org.apache.olingo.client.core.edm.EdmOperationImportImpl;
++import org.apache.olingo.client.core.edm.EdmTypeInfo;
+ 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;
+
+ public class EdmActionImportProxy extends EdmOperationImportImpl implements EdmActionImport {
+
+ private final FunctionImport functionImport;
+
+ public EdmActionImportProxy(final Edm edm, final EdmEntityContainer container, final String name,
+ final FunctionImport functionImport) {
+
+ super(edm, container, name, functionImport.getEntitySet());
+ this.functionImport = functionImport;
+ }
+
+ @Override
+ public EdmAction getAction() {
- return edm.getAction(
- new EdmTypeInfo(functionImport.getName(), container.getNamespace()).getFullQualifiedName(), null, null);
++ return edm.getAction(new EdmTypeInfo.Builder().setEdm(edm).setTypeExpression(functionImport.getName()).
++ setDefaultNamespace(container.getNamespace()).build().getFullQualifiedName(), null, null);
+ }
+ }
http://git-wip-us.apache.org/repos/asf/incubator-olingo-odata4/blob/f70d3f0b/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/v3/EdmFunctionImportProxy.java
----------------------------------------------------------------------
diff --cc lib/client-core/src/main/java/org/apache/olingo/client/core/edm/v3/EdmFunctionImportProxy.java
index 0000000,c7d1de2..9076a52
mode 000000,100644..100644
--- a/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/v3/EdmFunctionImportProxy.java
+++ b/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/v3/EdmFunctionImportProxy.java
@@@ -1,0 -1,48 +1,47 @@@
+ /*
+ * 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.client.core.edm.v3;
+
+ import java.util.List;
+
+ import org.apache.olingo.client.api.edm.xml.v3.FunctionImport;
-import org.apache.olingo.client.api.utils.EdmTypeInfo;
+ import org.apache.olingo.client.core.edm.EdmOperationImportImpl;
++import org.apache.olingo.client.core.edm.EdmTypeInfo;
+ import org.apache.olingo.commons.api.edm.Edm;
+ import org.apache.olingo.commons.api.edm.EdmEntityContainer;
+ import org.apache.olingo.commons.api.edm.EdmFunction;
+ import org.apache.olingo.commons.api.edm.EdmFunctionImport;
+
+ public class EdmFunctionImportProxy extends EdmOperationImportImpl implements EdmFunctionImport {
+
+ private final FunctionImport functionImport;
+
+ public EdmFunctionImportProxy(final Edm edm, final EdmEntityContainer container, final String name,
+ final FunctionImport functionImport) {
+
+ super(edm, container, name, functionImport.getEntitySet());
+ this.functionImport = functionImport;
+ }
+
+ @Override
+ public EdmFunction getFunction(final List<String> parameterNames) {
- return edm.getFunction(
- new EdmTypeInfo(functionImport.getName(), container.getNamespace()).getFullQualifiedName(),
- null, null, parameterNames);
++ return edm.getFunction(new EdmTypeInfo.Builder().setEdm(edm).setTypeExpression(functionImport.getName()).
++ setDefaultNamespace(container.getNamespace()).build().getFullQualifiedName(), null, null, parameterNames);
+ }
+ }
http://git-wip-us.apache.org/repos/asf/incubator-olingo-odata4/blob/f70d3f0b/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/AbstractProperty.java
----------------------------------------------------------------------
diff --cc lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/AbstractProperty.java
index 0000000,198e50f..8d4da80
mode 000000,100644..100644
--- a/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/AbstractProperty.java
+++ b/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/AbstractProperty.java
@@@ -1,0 -1,174 +1,128 @@@
+ /*
+ * 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.client.core.edm.xml;
+
+ import com.fasterxml.jackson.databind.annotation.JsonDeserialize;
+
+ import org.apache.olingo.client.api.edm.xml.CommonProperty;
-import org.apache.olingo.commons.api.edm.constants.ConcurrencyMode;
-import org.apache.olingo.commons.api.edm.constants.StoreGeneratedPattern;
+
+ @JsonDeserialize(using = PropertyDeserializer.class)
+ public abstract class AbstractProperty extends AbstractEdmItem implements CommonProperty {
+
+ private static final long serialVersionUID = -6004492361142315153L;
+
+ private String name;
+
+ private String type;
+
+ private boolean nullable = true;
+
+ private String defaultValue;
+
+ private Integer maxLength;
+
- private boolean fixedLength;
-
+ private Integer precision;
+
+ private Integer scale;
+
+ private boolean unicode = true;
+
- private String collation;
-
+ private String srid;
+
- private ConcurrencyMode concurrencyMode;
-
- private StoreGeneratedPattern storeGeneratedPattern = StoreGeneratedPattern.None;
-
+ @Override
+ public String getName() {
+ return name;
+ }
+
+ public void setName(final String name) {
+ this.name = name;
+ }
+
+ @Override
+ public String getType() {
+ return type;
+ }
+
+ public void setType(final String type) {
+ this.type = type;
+ }
+
+ @Override
+ public boolean isNullable() {
+ return nullable;
+ }
+
+ public void setNullable(final boolean nullable) {
+ this.nullable = nullable;
+ }
+
+ @Override
+ public String getDefaultValue() {
+ return defaultValue;
+ }
+
+ public void setDefaultValue(final String defaultValue) {
+ this.defaultValue = defaultValue;
+ }
+
+ @Override
+ public Integer getMaxLength() {
+ return maxLength;
+ }
+
+ public void setMaxLength(final Integer maxLength) {
+ this.maxLength = maxLength;
+ }
+
+ @Override
- public boolean isFixedLength() {
- return fixedLength;
- }
-
- public void setFixedLength(final boolean fixedLength) {
- this.fixedLength = fixedLength;
- }
-
- @Override
+ public Integer getPrecision() {
+ return precision;
+ }
+
+ public void setPrecision(final Integer precision) {
+ this.precision = precision;
+ }
+
+ @Override
+ public Integer getScale() {
+ return scale;
+ }
+
+ public void setScale(final Integer scale) {
+ this.scale = scale;
+ }
+
+ @Override
+ public boolean isUnicode() {
+ return unicode;
+ }
+
+ public void setUnicode(final boolean unicode) {
+ this.unicode = unicode;
+ }
+
+ @Override
- public String getCollation() {
- return collation;
- }
-
- public void setCollation(final String collation) {
- this.collation = collation;
- }
-
- @Override
+ public String getSrid() {
+ return srid;
+ }
+
+ public void setSrid(final String srid) {
+ this.srid = srid;
+ }
-
- @Override
- public ConcurrencyMode getConcurrencyMode() {
- return concurrencyMode;
- }
-
- public void setConcurrencyMode(final ConcurrencyMode concurrencyMode) {
- this.concurrencyMode = concurrencyMode;
- }
-
- @Override
- public StoreGeneratedPattern getStoreGeneratedPattern() {
- return storeGeneratedPattern;
- }
-
- public void setStoreGeneratedPattern(final StoreGeneratedPattern storeGeneratedPattern) {
- this.storeGeneratedPattern = storeGeneratedPattern;
- }
+ }
http://git-wip-us.apache.org/repos/asf/incubator-olingo-odata4/blob/f70d3f0b/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/ParameterDeserializer.java
----------------------------------------------------------------------
diff --cc lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/ParameterDeserializer.java
index 0000000,db5b6c1..2587bce
mode 000000,100644..100644
--- a/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/ParameterDeserializer.java
+++ b/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/ParameterDeserializer.java
@@@ -1,0 -1,71 +1,72 @@@
+ /*
+ * 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.client.core.edm.xml;
+
+ import com.fasterxml.jackson.core.JsonParser;
+ import com.fasterxml.jackson.core.JsonProcessingException;
+ import com.fasterxml.jackson.core.JsonToken;
+ import com.fasterxml.jackson.databind.DeserializationContext;
+
+ import java.io.IOException;
+
+ import org.apache.commons.lang3.BooleanUtils;
+ import org.apache.olingo.client.api.edm.xml.v3.ParameterMode;
+ import org.apache.olingo.client.core.op.impl.AbstractEdmDeserializer;
+ import org.apache.olingo.commons.api.edm.constants.ODataServiceVersion;
+
+ public class ParameterDeserializer extends AbstractEdmDeserializer<AbstractParameter> {
+
+ @Override
+ protected AbstractParameter doDeserialize(final JsonParser jp, final DeserializationContext ctxt)
+ throws IOException, JsonProcessingException {
+
+ final AbstractParameter parameter = ODataServiceVersion.V30 == client.getServiceVersion()
+ ? new org.apache.olingo.client.core.edm.xml.v3.ParameterImpl()
+ : new org.apache.olingo.client.core.edm.xml.v4.ParameterImpl();
+
+ for (; jp.getCurrentToken() != JsonToken.END_OBJECT; jp.nextToken()) {
+ final JsonToken token = jp.getCurrentToken();
+ if (token == JsonToken.FIELD_NAME) {
+ if ("Name".equals(jp.getCurrentName())) {
+ parameter.setName(jp.nextTextValue());
+ } else if ("Type".equals(jp.getCurrentName())) {
+ parameter.setType(jp.nextTextValue());
+ } else if ("Nullable".equals(jp.getCurrentName())) {
+ parameter.setNullable(BooleanUtils.toBoolean(jp.nextTextValue()));
+ } else if ("MaxLength".equals(jp.getCurrentName())) {
+ final String maxLenght = jp.nextTextValue();
+ parameter.setMaxLength(maxLenght.equalsIgnoreCase("max") ? Integer.MAX_VALUE : Integer.valueOf(maxLenght));
+ } else if ("Precision".equals(jp.getCurrentName())) {
+ parameter.setPrecision(Integer.valueOf(jp.nextTextValue()));
+ } else if ("Scale".equals(jp.getCurrentName())) {
- parameter.setScale(Integer.valueOf(jp.nextTextValue()));
++ final String scale = jp.nextTextValue();
++ parameter.setScale(scale.equalsIgnoreCase("variable") ? 0 : Integer.valueOf(scale));
+ } else if ("Mode".equals(jp.getCurrentName())) {
+ ((org.apache.olingo.client.core.edm.xml.v3.ParameterImpl) parameter).
+ setMode(ParameterMode.valueOf(jp.nextTextValue()));
+ } else if ("SRID".equals(jp.getCurrentName())) {
+ ((org.apache.olingo.client.core.edm.xml.v4.ParameterImpl) parameter).setSrid(jp.nextTextValue());
+ }
+ }
+ }
+
+ return parameter;
+ }
+
+ }
[2/6] git commit: Again refinements in Edm type management
Posted by il...@apache.org.
Again refinements in Edm type management
Project: http://git-wip-us.apache.org/repos/asf/incubator-olingo-odata4/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-olingo-odata4/commit/027e1355
Tree: http://git-wip-us.apache.org/repos/asf/incubator-olingo-odata4/tree/027e1355
Diff: http://git-wip-us.apache.org/repos/asf/incubator-olingo-odata4/diff/027e1355
Branch: refs/heads/master
Commit: 027e1355835d549980a95301725a58a9d38873d2
Parents: 848976b
Author: Francesco Chicchiriccò <il...@apache.org>
Authored: Mon Mar 10 09:47:08 2014 +0100
Committer: Francesco Chicchiriccò <il...@apache.org>
Committed: Mon Mar 10 09:47:08 2014 +0100
----------------------------------------------------------------------
.../odata4/client/core/edm/EdmEnumTypeImpl.java | 18 +++++++++++++++---
.../client/core/edm/EdmTypeDefinitionImpl.java | 5 ++---
.../edm/primitivetype/EdmPrimitiveTypeKind.java | 11 ++++-------
3 files changed, 21 insertions(+), 13 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/incubator-olingo-odata4/blob/027e1355/odata4-lib/odata4-client-core/src/main/java/org/apache/olingo/odata4/client/core/edm/EdmEnumTypeImpl.java
----------------------------------------------------------------------
diff --git a/odata4-lib/odata4-client-core/src/main/java/org/apache/olingo/odata4/client/core/edm/EdmEnumTypeImpl.java b/odata4-lib/odata4-client-core/src/main/java/org/apache/olingo/odata4/client/core/edm/EdmEnumTypeImpl.java
index 6d090ab..4a5b310 100644
--- a/odata4-lib/odata4-client-core/src/main/java/org/apache/olingo/odata4/client/core/edm/EdmEnumTypeImpl.java
+++ b/odata4-lib/odata4-client-core/src/main/java/org/apache/olingo/odata4/client/core/edm/EdmEnumTypeImpl.java
@@ -25,10 +25,12 @@ import java.util.Collections;
import java.util.LinkedHashMap;
import java.util.List;
import java.util.Map;
+import org.apache.commons.lang3.ArrayUtils;
import org.apache.olingo.odata4.client.api.edm.xml.EnumType;
import org.apache.olingo.odata4.client.api.edm.xml.Member;
import org.apache.olingo.odata4.commons.api.edm.Edm;
import org.apache.olingo.odata4.commons.api.edm.EdmEnumType;
+import org.apache.olingo.odata4.commons.api.edm.EdmException;
import org.apache.olingo.odata4.commons.api.edm.EdmMember;
import org.apache.olingo.odata4.commons.api.edm.EdmPrimitiveType;
import org.apache.olingo.odata4.commons.api.edm.FullQualifiedName;
@@ -37,6 +39,14 @@ import org.apache.olingo.odata4.commons.core.edm.primitivetype.EdmPrimitiveTypeK
public class EdmEnumTypeImpl extends AbstractEdmEnumType implements EdmEnumType {
+ private static final EdmPrimitiveTypeKind[] VALID_UNDERLYING_TYPES = new EdmPrimitiveTypeKind[] {
+ EdmPrimitiveTypeKind.Byte,
+ EdmPrimitiveTypeKind.SByte,
+ EdmPrimitiveTypeKind.Int16,
+ EdmPrimitiveTypeKind.Int32,
+ EdmPrimitiveTypeKind.Int64
+ };
+
private final EdmPrimitiveType underlyingType;
private final List<String> memberNames;
@@ -49,9 +59,11 @@ public class EdmEnumTypeImpl extends AbstractEdmEnumType implements EdmEnumType
if (xmlEnumType.getUnderlyingType() == null) {
this.underlyingType = EdmPrimitiveTypeKind.Int32.getEdmPrimitiveTypeInstance();
} else {
- this.underlyingType = EdmPrimitiveTypeKind.fromString(
- xmlEnumType.getUnderlyingType()).getEdmPrimitiveTypeInstance();
- // TODO: Should we validate that the underlying type is of byte, sbyte, in16, int32 or int64?
+ this.underlyingType = EdmPrimitiveTypeKind.valueOfFQN(xmlEnumType.getUnderlyingType()).
+ getEdmPrimitiveTypeInstance();
+ if (!ArrayUtils.contains(VALID_UNDERLYING_TYPES, this.underlyingType.getKind())) {
+ throw new EdmException("Not allowed as underlying type: " + this.underlyingType.getKind());
+ }
}
final List<? extends Member> xmlMembers = xmlEnumType.getMembers();
http://git-wip-us.apache.org/repos/asf/incubator-olingo-odata4/blob/027e1355/odata4-lib/odata4-client-core/src/main/java/org/apache/olingo/odata4/client/core/edm/EdmTypeDefinitionImpl.java
----------------------------------------------------------------------
diff --git a/odata4-lib/odata4-client-core/src/main/java/org/apache/olingo/odata4/client/core/edm/EdmTypeDefinitionImpl.java b/odata4-lib/odata4-client-core/src/main/java/org/apache/olingo/odata4/client/core/edm/EdmTypeDefinitionImpl.java
index 43a5455..634e20c 100644
--- a/odata4-lib/odata4-client-core/src/main/java/org/apache/olingo/odata4/client/core/edm/EdmTypeDefinitionImpl.java
+++ b/odata4-lib/odata4-client-core/src/main/java/org/apache/olingo/odata4/client/core/edm/EdmTypeDefinitionImpl.java
@@ -38,10 +38,9 @@ public class EdmTypeDefinitionImpl extends AbstractEdmTypeDefinition implements
super(edm, typeDefinitionName);
this.typeDefinition = typeDefinition;
- // TODO: Should we check for edmNamespace in the underlying type name?
try {
- edmPrimitiveTypeInstance = EdmPrimitiveTypeKind.fromString(
- typeDefinition.getUnderlyingType()).getEdmPrimitiveTypeInstance();
+ edmPrimitiveTypeInstance = EdmPrimitiveTypeKind.valueOfFQN(typeDefinition.getUnderlyingType()).
+ getEdmPrimitiveTypeInstance();
} catch (IllegalArgumentException e) {
throw new EdmException("Invalid underlying type: " + typeDefinition.getUnderlyingType(), e);
}
http://git-wip-us.apache.org/repos/asf/incubator-olingo-odata4/blob/027e1355/odata4-lib/odata4-commons-core/src/main/java/org/apache/olingo/odata4/commons/core/edm/primitivetype/EdmPrimitiveTypeKind.java
----------------------------------------------------------------------
diff --git a/odata4-lib/odata4-commons-core/src/main/java/org/apache/olingo/odata4/commons/core/edm/primitivetype/EdmPrimitiveTypeKind.java b/odata4-lib/odata4-commons-core/src/main/java/org/apache/olingo/odata4/commons/core/edm/primitivetype/EdmPrimitiveTypeKind.java
index 2b0b08f..b46a34f 100644
--- a/odata4-lib/odata4-commons-core/src/main/java/org/apache/olingo/odata4/commons/core/edm/primitivetype/EdmPrimitiveTypeKind.java
+++ b/odata4-lib/odata4-commons-core/src/main/java/org/apache/olingo/odata4/commons/core/edm/primitivetype/EdmPrimitiveTypeKind.java
@@ -86,13 +86,10 @@ public enum EdmPrimitiveTypeKind {
* @param value string value type.
* @return <tt>EdmPrimitiveTypeKind</tt> object.
*/
- public static EdmPrimitiveTypeKind fromString(final String value) {
- final String noNsValue = value.substring(4);
- for (EdmPrimitiveTypeKind edmSimpleType : EdmPrimitiveTypeKind.values()) {
- if (edmSimpleType.name().equals(noNsValue)) {
- return edmSimpleType;
- }
+ public static EdmPrimitiveTypeKind valueOfFQN(final String value) {
+ if (!value.startsWith(EdmPrimitiveType.EDM_NAMESPACE + ".")) {
+ throw new IllegalArgumentException(value + " does not look like an Edm primitive type");
}
- throw new IllegalArgumentException(value);
+ return valueOf(value.substring(4));
}
}
[6/6] git commit: Merge from master
Posted by il...@apache.org.
Merge from master
Project: http://git-wip-us.apache.org/repos/asf/incubator-olingo-odata4/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-olingo-odata4/commit/f70d3f0b
Tree: http://git-wip-us.apache.org/repos/asf/incubator-olingo-odata4/tree/f70d3f0b
Diff: http://git-wip-us.apache.org/repos/asf/incubator-olingo-odata4/diff/f70d3f0b
Branch: refs/heads/master
Commit: f70d3f0bd3dd38ef76d5f22d4de7bb26bc2ecf11
Parents: 7f7a68e 897db8e
Author: Francesco Chicchiriccò <il...@apache.org>
Authored: Mon Mar 10 10:49:41 2014 +0100
Committer: Francesco Chicchiriccò <il...@apache.org>
Committed: Mon Mar 10 10:49:41 2014 +0100
----------------------------------------------------------------------
fit/pom.xml | 49 +
lib/client-api/pom.xml | 54 +
.../apache/olingo/client/api/Configuration.java | 184 +
.../org/apache/olingo/client/api/Constants.java | 217 +
.../apache/olingo/client/api/ODataClient.java | 55 +
.../olingo/client/api/ODataConstants.java | 219 +
.../apache/olingo/client/api/ODataError.java | 67 +
.../apache/olingo/client/api/ODataV3Client.java | 39 +
.../apache/olingo/client/api/ODataV4Client.java | 39 +
.../client/api/UnsupportedInV3Exception.java | 31 +
.../olingo/client/api/V3Configuration.java | 44 +
.../olingo/client/api/V4Configuration.java | 24 +
.../olingo/client/api/data/ServiceDocument.java | 138 +
.../client/api/data/ServiceDocumentItem.java | 30 +
.../api/deserializer/AnnotationProperty.java | 24 +
.../api/deserializer/ClientException.java | 36 +
.../client/api/deserializer/ComplexValue.java | 35 +
.../olingo/client/api/deserializer/Entity.java | 59 +
.../client/api/deserializer/EntitySet.java | 34 +
.../api/deserializer/NavigationProperty.java | 27 +
.../client/api/deserializer/Property.java | 24 +
.../olingo/client/api/deserializer/Reader.java | 30 +
.../api/deserializer/StructuralProperty.java | 30 +
.../olingo/client/api/deserializer/Value.java | 28 +
.../olingo/client/api/domain/EdmSimpleType.java | 289 +
.../client/api/domain/ODataCollectionValue.java | 98 +
.../client/api/domain/ODataComplexValue.java | 97 +
.../olingo/client/api/domain/ODataDuration.java | 79 +
.../client/api/domain/ODataGeospatialValue.java | 488 ++
.../client/api/domain/ODataInvokeResult.java | 30 +
.../client/api/domain/ODataPrimitiveValue.java | 378 ++
.../olingo/client/api/domain/ODataProperty.java | 192 +
.../client/api/domain/ODataServiceDocument.java | 183 +
.../client/api/domain/ODataTimestamp.java | 138 +
.../olingo/client/api/domain/ODataValue.java | 111 +
.../domain/geospatial/ComposedGeospatial.java | 75 +
.../api/domain/geospatial/Geospatial.java | 157 +
.../domain/geospatial/GeospatialCollection.java | 48 +
.../api/domain/geospatial/LineString.java | 39 +
.../api/domain/geospatial/MultiLineString.java | 39 +
.../api/domain/geospatial/MultiPoint.java | 39 +
.../api/domain/geospatial/MultiPolygon.java | 39 +
.../client/api/domain/geospatial/Point.java | 77 +
.../client/api/domain/geospatial/Polygon.java | 73 +
.../olingo/client/api/edm/ConcurrencyMode.java | 26 +
.../client/api/edm/StoreGeneratedPattern.java | 27 +
.../client/api/edm/xml/CommonAnnotations.java | 26 +
.../api/edm/xml/CommonFunctionImport.java | 22 +
.../api/edm/xml/CommonNavigationProperty.java | 22 +
.../client/api/edm/xml/CommonParameter.java | 33 +
.../client/api/edm/xml/CommonProperty.java | 39 +
.../olingo/client/api/edm/xml/ComplexType.java | 32 +
.../olingo/client/api/edm/xml/DataServices.java | 30 +
.../apache/olingo/client/api/edm/xml/Edmx.java | 26 +
.../client/api/edm/xml/EntityContainer.java | 40 +
.../olingo/client/api/edm/xml/EntityKey.java | 26 +
.../olingo/client/api/edm/xml/EntitySet.java | 25 +
.../olingo/client/api/edm/xml/EntityType.java | 32 +
.../olingo/client/api/edm/xml/EnumType.java | 34 +
.../olingo/client/api/edm/xml/Member.java | 26 +
.../apache/olingo/client/api/edm/xml/Named.java | 24 +
.../olingo/client/api/edm/xml/OnDelete.java | 24 +
.../client/api/edm/xml/OnDeleteAction.java | 28 +
.../olingo/client/api/edm/xml/PropertyRef.java | 25 +
.../olingo/client/api/edm/xml/Schema.java | 74 +
.../olingo/client/api/edm/xml/XMLMetadata.java | 59 +
.../client/api/edm/xml/v3/Annotations.java | 30 +
.../client/api/edm/xml/v3/Association.java | 31 +
.../client/api/edm/xml/v3/AssociationEnd.java | 32 +
.../client/api/edm/xml/v3/AssociationSet.java | 30 +
.../api/edm/xml/v3/AssociationSetEnd.java | 26 +
.../client/api/edm/xml/v3/FunctionImport.java | 43 +
.../api/edm/xml/v3/NavigationProperty.java | 29 +
.../olingo/client/api/edm/xml/v3/Parameter.java | 24 +
.../client/api/edm/xml/v3/ParameterMode.java | 27 +
.../olingo/client/api/edm/xml/v3/Property.java | 48 +
.../client/api/edm/xml/v3/PropertyValue.java | 43 +
.../api/edm/xml/v3/ReferentialConstraint.java | 26 +
.../edm/xml/v3/ReferentialConstraintRole.java | 31 +
.../client/api/edm/xml/v3/TypeAnnotation.java | 31 +
.../olingo/client/api/edm/xml/v3/Using.java | 27 +
.../client/api/edm/xml/v3/ValueAnnotation.java | 45 +
.../olingo/client/api/edm/xml/v3/ValueTerm.java | 26 +
.../olingo/client/api/edm/xml/v4/Action.java | 37 +
.../client/api/edm/xml/v4/ActionImport.java | 24 +
.../client/api/edm/xml/v4/AnnotatedEdmItem.java | 24 +
.../client/api/edm/xml/v4/Annotation.java | 33 +
.../client/api/edm/xml/v4/Annotations.java | 30 +
.../client/api/edm/xml/v4/BindingTarget.java | 28 +
.../client/api/edm/xml/v4/CSDLElement.java | 37 +
.../client/api/edm/xml/v4/ComplexType.java | 43 +
.../olingo/client/api/edm/xml/v4/Edmx.java | 26 +
.../client/api/edm/xml/v4/EntityContainer.java | 44 +
.../olingo/client/api/edm/xml/v4/EntitySet.java | 24 +
.../client/api/edm/xml/v4/EntityType.java | 23 +
.../olingo/client/api/edm/xml/v4/Function.java | 24 +
.../client/api/edm/xml/v4/FunctionImport.java | 28 +
.../olingo/client/api/edm/xml/v4/Include.java | 26 +
.../api/edm/xml/v4/IncludeAnnotations.java | 28 +
.../api/edm/xml/v4/NavigationProperty.java | 40 +
.../edm/xml/v4/NavigationPropertyBinding.java | 27 +
.../client/api/edm/xml/v4/OperationImport.java | 28 +
.../olingo/client/api/edm/xml/v4/Parameter.java | 24 +
.../olingo/client/api/edm/xml/v4/Property.java | 25 +
.../olingo/client/api/edm/xml/v4/Reference.java | 33 +
.../api/edm/xml/v4/ReferentialConstraint.java | 27 +
.../client/api/edm/xml/v4/ReturnType.java | 34 +
.../olingo/client/api/edm/xml/v4/Schema.java | 64 +
.../olingo/client/api/edm/xml/v4/Singleton.java | 25 +
.../olingo/client/api/edm/xml/v4/Term.java | 44 +
.../client/api/edm/xml/v4/TypeDefinition.java | 40 +
.../client/api/edm/xml/v4/XMLMetadata.java | 36 +
.../xml/v4/annotation/ConstExprConstruct.java | 56 +
.../edm/xml/v4/annotation/DynExprConstruct.java | 23 +
.../edm/xml/v4/annotation/ExprConstruct.java | 23 +
.../olingo/client/api/format/ODataFormat.java | 97 +
.../client/api/format/ODataMediaFormat.java | 71 +
.../client/api/format/ODataPubFormat.java | 97 +
.../client/api/format/ODataValueFormat.java | 76 +
.../client/api/http/HttpClientException.java | 68 +
.../client/api/http/HttpClientFactory.java | 30 +
.../olingo/client/api/http/HttpMethod.java | 33 +
.../client/api/http/HttpUriRequestFactory.java | 30 +
.../client/api/http/NoContentException.java | 36 +
.../olingo/client/api/op/ODataBinder.java | 122 +
.../olingo/client/api/op/ODataDeserializer.java | 94 +
.../olingo/client/api/op/ODataReader.java | 104 +
.../olingo/client/api/op/ODataSerializer.java | 118 +
.../client/api/op/ODataV3Deserializer.java | 23 +
.../client/api/op/ODataV4Deserializer.java | 30 +
.../olingo/client/api/uri/QueryOption.java | 95 +
.../olingo/client/api/uri/SegmentType.java | 66 +
.../olingo/client/api/uri/URIBuilder.java | 225 +
.../olingo/client/api/uri/V3URIBuilder.java | 47 +
.../olingo/client/api/uri/V4URIBuilder.java | 87 +
.../olingo/client/api/uri/filter/FilterArg.java | 30 +
.../client/api/uri/filter/FilterArgFactory.java | 83 +
.../client/api/uri/filter/FilterFactory.java | 61 +
.../olingo/client/api/uri/filter/URIFilter.java | 32 +
.../api/uri/filter/V3FilterArgFactory.java | 25 +
.../client/api/uri/filter/V3FilterFactory.java | 26 +
.../api/uri/filter/V4FilterArgFactory.java | 55 +
.../client/api/uri/filter/V4FilterFactory.java | 32 +
.../olingo/client/api/utils/XMLUtils.java | 178 +
lib/client-core/pom.xml | 98 +
.../client/core/AbstractConfiguration.java | 198 +
.../olingo/client/core/AbstractODataClient.java | 37 +
.../olingo/client/core/ODataClientFactory.java | 37 +
.../olingo/client/core/ODataV3ClientImpl.java | 146 +
.../olingo/client/core/ODataV4ClientImpl.java | 146 +
.../olingo/client/core/V3ConfigurationImpl.java | 57 +
.../olingo/client/core/V4ConfigurationImpl.java | 31 +
.../core/data/AbstractServiceDocument.java | 146 +
.../data/JSONServiceDocumentDeserializer.java | 84 +
.../core/data/ODataJacksonDeserializer.java | 45 +
.../core/data/ODataJacksonSerializer.java | 45 +
.../core/data/ServiceDocumentItemImpl.java | 79 +
.../data/XMLServiceDocumentDeserializer.java | 120 +
.../core/data/v3/JSONServiceDocumentImpl.java | 67 +
.../core/data/v3/XMLServiceDocumentImpl.java | 48 +
.../core/data/v4/AbstractServiceDocument.java | 89 +
.../core/data/v4/JSONServiceDocumentImpl.java | 43 +
.../core/data/v4/XMLServiceDocumentImpl.java | 29 +
.../deserializer/AnnotationPropertyImpl.java | 53 +
.../core/deserializer/ComplexValueImpl.java | 82 +
.../client/core/deserializer/EntityImpl.java | 126 +
.../core/deserializer/EntitySetBuilder.java | 72 +
.../client/core/deserializer/EntitySetImpl.java | 120 +
.../client/core/deserializer/JsonReader.java | 89 +
.../deserializer/NavigationPropertyImpl.java | 89 +
.../core/deserializer/PrimitiveValue.java | 51 +
.../core/deserializer/PropertyCollection.java | 96 +
.../deserializer/PropertyCollectionBuilder.java | 221 +
.../deserializer/StructuralPropertyImpl.java | 83 +
.../edm/AbstractEdmServiceMetadataImpl.java | 99 +
.../olingo/client/core/edm/EdmActionImpl.java | 37 +
.../client/core/edm/EdmActionImportImpl.java | 45 +
.../client/core/edm/EdmBindingTargetImpl.java | 79 +
.../olingo/client/core/edm/EdmClientImpl.java | 374 ++
.../client/core/edm/EdmComplexTypeImpl.java | 66 +
.../client/core/edm/EdmEntityContainerImpl.java | 123 +
.../client/core/edm/EdmEntitySetImpl.java | 35 +
.../client/core/edm/EdmEntityTypeImpl.java | 80 +
.../olingo/client/core/edm/EdmEnumTypeImpl.java | 96 +
.../olingo/client/core/edm/EdmFunctionImpl.java | 44 +
.../client/core/edm/EdmFunctionImportImpl.java | 46 +
.../client/core/edm/EdmKeyPropertyRefImpl.java | 49 +
.../core/edm/EdmNavigationPropertyImpl.java | 74 +
.../client/core/edm/EdmOperationImpl.java | 61 +
.../client/core/edm/EdmOperationImportImpl.java | 34 +
.../client/core/edm/EdmParameterImpl.java | 73 +
.../olingo/client/core/edm/EdmPropertyImpl.java | 90 +
.../client/core/edm/EdmReturnTypeImpl.java | 67 +
.../client/core/edm/EdmSingletonImpl.java | 35 +
.../core/edm/EdmStructuredTypeHelperImpl.java | 72 +
.../client/core/edm/EdmTypeDefinitionImpl.java | 73 +
.../olingo/client/core/edm/EdmTypeInfo.java | 174 +
.../core/edm/v3/EdmActionImportProxy.java | 45 +
.../client/core/edm/v3/EdmActionProxy.java | 39 +
.../client/core/edm/v3/EdmEntitySetProxy.java | 102 +
.../core/edm/v3/EdmFunctionImportProxy.java | 47 +
.../client/core/edm/v3/EdmFunctionProxy.java | 43 +
.../client/core/edm/v3/EdmOperationProxy.java | 65 +
.../core/edm/v3/EdmServiceMetadataImpl.java | 98 +
.../client/core/edm/v3/ReturnTypeProxy.java | 62 +
.../core/edm/v3/V3FunctionImportUtils.java | 36 +
.../core/edm/v4/EdmServiceMetadataImpl.java | 105 +
.../core/edm/xml/AbstractAnnotations.java | 51 +
.../core/edm/xml/AbstractComplexType.java | 53 +
.../core/edm/xml/AbstractDataServices.java | 51 +
.../client/core/edm/xml/AbstractEdmItem.java | 62 +
.../client/core/edm/xml/AbstractEdmx.java | 52 +
.../core/edm/xml/AbstractEntityContainer.java | 105 +
.../client/core/edm/xml/AbstractEntitySet.java | 52 +
.../client/core/edm/xml/AbstractEntityType.java | 87 +
.../client/core/edm/xml/AbstractEnumType.java | 97 +
.../client/core/edm/xml/AbstractMember.java | 52 +
.../edm/xml/AbstractNavigationProperty.java | 40 +
.../client/core/edm/xml/AbstractParameter.java | 95 +
.../client/core/edm/xml/AbstractProperty.java | 128 +
.../client/core/edm/xml/AbstractSchema.java | 70 +
.../core/edm/xml/AbstractXMLMetadata.java | 96 +
.../core/edm/xml/DataServicesDeserializer.java | 66 +
.../client/core/edm/xml/EdmxDeserializer.java | 69 +
.../client/core/edm/xml/EntityKeyImpl.java | 41 +
.../client/core/edm/xml/OnDeleteImpl.java | 42 +
.../core/edm/xml/ParameterDeserializer.java | 72 +
.../core/edm/xml/PropertyDeserializer.java | 129 +
.../client/core/edm/xml/PropertyRefImpl.java | 53 +
.../edm/xml/v3/AnnotationsDeserializer.java | 57 +
.../client/core/edm/xml/v3/AnnotationsImpl.java | 50 +
.../edm/xml/v3/AssociationDeserializer.java | 55 +
.../core/edm/xml/v3/AssociationEndImpl.java | 78 +
.../client/core/edm/xml/v3/AssociationImpl.java | 64 +
.../edm/xml/v3/AssociationSetDeserializer.java | 54 +
.../core/edm/xml/v3/AssociationSetEndImpl.java | 53 +
.../core/edm/xml/v3/AssociationSetImpl.java | 63 +
.../client/core/edm/xml/v3/ComplexTypeImpl.java | 55 +
.../core/edm/xml/v3/DataServicesImpl.java | 38 +
.../olingo/client/core/edm/xml/v3/EdmxImpl.java | 32 +
.../core/edm/xml/v3/EntityContainerImpl.java | 69 +
.../client/core/edm/xml/v3/EntitySetImpl.java | 27 +
.../client/core/edm/xml/v3/EntityTypeImpl.java | 54 +
.../client/core/edm/xml/v3/EnumTypeImpl.java | 38 +
.../edm/xml/v3/FunctionImportDeserializer.java | 69 +
.../core/edm/xml/v3/FunctionImportImpl.java | 140 +
.../client/core/edm/xml/v3/MemberImpl.java | 27 +
.../core/edm/xml/v3/NavigationPropertyImpl.java | 66 +
.../client/core/edm/xml/v3/ParameterImpl.java | 40 +
.../client/core/edm/xml/v3/PropertyImpl.java | 141 +
.../core/edm/xml/v3/PropertyValueImpl.java | 129 +
.../edm/xml/v3/ReferentialConstraintImpl.java | 57 +
.../ReferentialConstraintRoleDeserializer.java | 53 +
.../xml/v3/ReferentialConstraintRoleImpl.java | 51 +
.../client/core/edm/xml/v3/SchemaImpl.java | 138 +
.../edm/xml/v3/TypeAnnotationDeserializer.java | 54 +
.../core/edm/xml/v3/TypeAnnotationImpl.java | 64 +
.../client/core/edm/xml/v3/UsingImpl.java | 53 +
.../core/edm/xml/v3/ValueAnnotationImpl.java | 141 +
.../client/core/edm/xml/v3/ValueTermImpl.java | 53 +
.../client/core/edm/xml/v3/XMLMetadataImpl.java | 31 +
.../edm/xml/v4/AbstractAnnotatedEdmItem.java | 45 +
.../core/edm/xml/v4/ActionDeserializer.java | 62 +
.../client/core/edm/xml/v4/ActionImpl.java | 91 +
.../core/edm/xml/v4/ActionImportImpl.java | 66 +
.../core/edm/xml/v4/AnnotationDeserializer.java | 59 +
.../client/core/edm/xml/v4/AnnotationImpl.java | 77 +
.../edm/xml/v4/AnnotationsDeserializer.java | 55 +
.../client/core/edm/xml/v4/AnnotationsImpl.java | 51 +
.../client/core/edm/xml/v4/ComplexTypeImpl.java | 102 +
.../core/edm/xml/v4/DataServicesImpl.java | 38 +
.../olingo/client/core/edm/xml/v4/EdmxImpl.java | 44 +
.../core/edm/xml/v4/EntityContainerImpl.java | 129 +
.../client/core/edm/xml/v4/EntitySetImpl.java | 62 +
.../client/core/edm/xml/v4/EntityTypeImpl.java | 69 +
.../client/core/edm/xml/v4/EnumTypeImpl.java | 40 +
.../core/edm/xml/v4/FunctionDeserializer.java | 64 +
.../client/core/edm/xml/v4/FunctionImpl.java | 41 +
.../core/edm/xml/v4/FunctionImportImpl.java | 93 +
.../core/edm/xml/v4/IncludeAnnotationsImpl.java | 66 +
.../client/core/edm/xml/v4/IncludeImpl.java | 54 +
.../client/core/edm/xml/v4/MemberImpl.java | 45 +
.../xml/v4/NavigationPropertyBindingImpl.java | 54 +
.../xml/v4/NavigationPropertyDeserializer.java | 70 +
.../core/edm/xml/v4/NavigationPropertyImpl.java | 110 +
.../client/core/edm/xml/v4/ParameterImpl.java | 39 +
.../client/core/edm/xml/v4/PropertyImpl.java | 42 +
.../core/edm/xml/v4/ReferenceDeserializer.java | 60 +
.../client/core/edm/xml/v4/ReferenceImpl.java | 70 +
.../edm/xml/v4/ReferentialConstraintImpl.java | 53 +
.../core/edm/xml/v4/ReturnTypeDeserializer.java | 63 +
.../client/core/edm/xml/v4/ReturnTypeImpl.java | 97 +
.../client/core/edm/xml/v4/SchemaImpl.java | 181 +
.../core/edm/xml/v4/SingletonDeserializer.java | 59 +
.../client/core/edm/xml/v4/SingletonImpl.java | 63 +
.../core/edm/xml/v4/TermDeserializer.java | 78 +
.../olingo/client/core/edm/xml/v4/TermImpl.java | 140 +
.../edm/xml/v4/TypeDefinitionDeserializer.java | 67 +
.../core/edm/xml/v4/TypeDefinitionImpl.java | 119 +
.../client/core/edm/xml/v4/XMLMetadataImpl.java | 56 +
.../annotation/AbstractElOrAttrConstruct.java | 37 +
.../annotation/AnnotatedDynExprConstruct.java | 38 +
.../edm/xml/v4/annotation/AnnotationPath.java | 25 +
.../core/edm/xml/v4/annotation/Apply.java | 55 +
.../xml/v4/annotation/ApplyDeserializer.java | 57 +
.../client/core/edm/xml/v4/annotation/Cast.java | 92 +
.../edm/xml/v4/annotation/CastDeserializer.java | 64 +
.../core/edm/xml/v4/annotation/Collection.java | 39 +
.../v4/annotation/CollectionDeserializer.java | 52 +
.../v4/annotation/ConstExprConstructImpl.java | 51 +
.../DynExprConstructDeserializer.java | 147 +
.../xml/v4/annotation/DynExprConstructImpl.java | 30 +
.../xml/v4/annotation/DynExprDoubleParamOp.java | 73 +
.../xml/v4/annotation/DynExprSingleParamOp.java | 69 +
.../xml/v4/annotation/ExprConstructImpl.java | 28 +
.../client/core/edm/xml/v4/annotation/If.java | 57 +
.../client/core/edm/xml/v4/annotation/IsOf.java | 92 +
.../edm/xml/v4/annotation/IsOfDeserializer.java | 64 +
.../edm/xml/v4/annotation/LabeledElement.java | 50 +
.../annotation/LabeledElementDeserializer.java | 55 +
.../v4/annotation/LabeledElementReference.java | 25 +
.../v4/annotation/NavigationPropertyPath.java | 25 +
.../client/core/edm/xml/v4/annotation/Null.java | 28 +
.../edm/xml/v4/annotation/NullDeserializer.java | 51 +
.../client/core/edm/xml/v4/annotation/Path.java | 25 +
.../edm/xml/v4/annotation/PropertyPath.java | 25 +
.../edm/xml/v4/annotation/PropertyValue.java | 50 +
.../annotation/PropertyValueDeserializer.java | 57 +
.../core/edm/xml/v4/annotation/Record.java | 46 +
.../xml/v4/annotation/RecordDeserializer.java | 55 +
.../core/edm/xml/v4/annotation/UrlRef.java | 40 +
.../xml/v4/annotation/UrlRefDeserializer.java | 52 +
.../AbstractBasicAuthHttpClientFactory.java | 51 +
.../http/AbstractNTLMAuthHttpClientFactory.java | 63 +
.../core/http/DefaultHttpClientFactory.java | 40 +
.../core/http/DefaultHttpUriRequestFactory.java | 69 +
.../olingo/client/core/http/HttpMerge.java | 70 +
.../olingo/client/core/http/HttpPatch.java | 70 +
.../core/op/impl/AbstractEdmDeserializer.java | 71 +
.../core/op/impl/AbstractJacksonTool.java | 85 +
.../core/op/impl/AbstractODataBinder.java | 582 ++
.../core/op/impl/AbstractODataDeserializer.java | 178 +
.../core/op/impl/AbstractODataReader.java | 138 +
.../core/op/impl/AbstractODataSerializer.java | 161 +
.../core/op/impl/ComplexTypeDeserializer.java | 83 +
.../op/impl/EntityContainerDeserializer.java | 102 +
.../core/op/impl/EntityKeyDeserializer.java | 50 +
.../core/op/impl/EntitySetDeserializer.java | 70 +
.../core/op/impl/EntityTypeDeserializer.java | 92 +
.../core/op/impl/EnumTypeDeserializer.java | 73 +
.../op/impl/InjectableSerializerProvider.java | 43 +
.../client/core/op/impl/ODataV3BinderImpl.java | 37 +
.../core/op/impl/ODataV3DeserializerImpl.java | 70 +
.../client/core/op/impl/ODataV3ReaderImpl.java | 48 +
.../core/op/impl/ODataV3SerializerImpl.java | 32 +
.../client/core/op/impl/ODataV4BinderImpl.java | 62 +
.../core/op/impl/ODataV4DeserializerImpl.java | 71 +
.../client/core/op/impl/ODataV4ReaderImpl.java | 48 +
.../core/op/impl/ODataV4SerializerImpl.java | 32 +
.../client/core/op/impl/SchemaDeserializer.java | 149 +
.../client/core/uri/AbstractURIBuilder.java | 274 +
.../apache/olingo/client/core/uri/URIUtils.java | 196 +
.../client/core/uri/V3URIBuilderImpl.java | 94 +
.../client/core/uri/V4URIBuilderImpl.java | 101 +
.../uri/filter/AbstractComparingFilter.java | 45 +
.../uri/filter/AbstractFilterArgFactory.java | 178 +
.../core/uri/filter/AbstractFilterFactory.java | 108 +
.../client/core/uri/filter/AndFilter.java | 42 +
.../olingo/client/core/uri/filter/EqFilter.java | 33 +
.../client/core/uri/filter/FilterConst.java | 41 +
.../client/core/uri/filter/FilterFunction.java | 48 +
.../client/core/uri/filter/FilterLambda.java | 46 +
.../client/core/uri/filter/FilterLiteral.java | 41 +
.../olingo/client/core/uri/filter/FilterOp.java | 45 +
.../client/core/uri/filter/FilterProperty.java | 40 +
.../olingo/client/core/uri/filter/GeFilter.java | 33 +
.../olingo/client/core/uri/filter/GtFilter.java | 33 +
.../client/core/uri/filter/HasFilter.java | 34 +
.../olingo/client/core/uri/filter/LeFilter.java | 33 +
.../olingo/client/core/uri/filter/LtFilter.java | 33 +
.../client/core/uri/filter/MatchFilter.java | 36 +
.../olingo/client/core/uri/filter/NeFilter.java | 33 +
.../client/core/uri/filter/NotFilter.java | 35 +
.../olingo/client/core/uri/filter/OrFilter.java | 42 +
.../core/uri/filter/V3FilterArgFactoryImpl.java | 31 +
.../core/uri/filter/V3FilterFactoryImpl.java | 33 +
.../core/uri/filter/V4FilterArgFactoryImpl.java | 107 +
.../core/uri/filter/V4FilterFactoryImpl.java | 46 +
.../client/core/xml/AbstractDOMParser.java | 46 +
.../client/core/xml/AndroidDOMParserImpl.java | 53 +
.../client/core/xml/DefaultDOMParserImpl.java | 78 +
.../olingo/client/core/xml/XMLParser.java | 37 +
.../apache/olingo/client/core/AbstractTest.java | 60 +
.../olingo/client/core/ODataClientTest.java | 41 +
.../deserializer/JsonReaderPerformance.java | 76 +
.../core/deserializer/JsonReaderTest.java | 372 ++
.../client/core/v3/FilterFactoryTest.java | 167 +
.../olingo/client/core/v3/MetadataTest.java | 224 +
.../client/core/v3/ServiceDocumentTest.java | 58 +
.../olingo/client/core/v3/URIBuilderTest.java | 131 +
.../client/core/v4/FilterFactoryTest.java | 85 +
.../olingo/client/core/v4/MetadataTest.java | 282 +
.../client/core/v4/ServiceDocumentTest.java | 68 +
.../olingo/client/core/v4/URIBuilderTest.java | 136 +
.../src/test/resources/complexProperty.json | 8 +
.../src/test/resources/fullEntity.json | 22 +
.../src/test/resources/fullEntitySet.json | 29 +
.../resources/fullEntitySetWithTwoEntities.json | 49 +
...fullEntityWithCollectionOfComplexValues.json | 28 +
.../src/test/resources/minimalEntity.json | 21 +
.../apache/olingo/client/core/v3/metadata.xml | 721 +++
.../client/core/v3/northwind-metadata.xml | 22 +
.../olingo/client/core/v3/serviceDocument.json | 33 +
.../olingo/client/core/v3/serviceDocument.xml | 49 +
.../olingo/client/core/v4/demo-metadata.xml | 163 +
.../olingo/client/core/v4/fromdoc1-metadata.xml | 126 +
.../olingo/client/core/v4/fromdoc2-metadata.xml | 54 +
.../olingo/client/core/v4/fromdoc3-metadata.xml | 131 +
.../apache/olingo/client/core/v4/metadata.xml | 232 +
.../client/core/v4/northwind-metadata.xml | 471 ++
.../olingo/client/core/v4/serviceDocument.json | 32 +
.../olingo/client/core/v4/serviceDocument.xml | 46 +
.../src/test/resources/primitiveNullValue.json | 3 +
.../test/resources/setOfComplexProperties.json | 13 +
.../resources/setOfPrimitiveProperties.json | 8 +
lib/commons-api/pom.xml | 39 +
.../commons/api/ODataApplicationException.java | 37 +
.../olingo/commons/api/ODataException.java | 37 +
.../api/ODataNotImplementedException.java | 33 +
.../org/apache/olingo/commons/api/edm/Edm.java | 111 +
.../olingo/commons/api/edm/EdmAction.java | 26 +
.../olingo/commons/api/edm/EdmActionImport.java | 27 +
.../commons/api/edm/EdmActionImportInfo.java | 40 +
.../olingo/commons/api/edm/EdmAnnotatable.java | 30 +
.../olingo/commons/api/edm/EdmAnnotations.java | 24 +
.../commons/api/edm/EdmBindingTarget.java | 48 +
.../olingo/commons/api/edm/EdmComplexType.java | 31 +
.../olingo/commons/api/edm/EdmElement.java | 27 +
.../commons/api/edm/EdmEntityContainer.java | 66 +
.../olingo/commons/api/edm/EdmEntitySet.java | 29 +
.../commons/api/edm/EdmEntitySetInfo.java | 47 +
.../olingo/commons/api/edm/EdmEntityType.java | 64 +
.../olingo/commons/api/edm/EdmEnumType.java | 43 +
.../olingo/commons/api/edm/EdmException.java | 37 +
.../olingo/commons/api/edm/EdmFunction.java | 31 +
.../commons/api/edm/EdmFunctionImport.java | 30 +
.../commons/api/edm/EdmFunctionImportInfo.java | 40 +
.../commons/api/edm/EdmKeyPropertyRef.java | 43 +
.../olingo/commons/api/edm/EdmMappable.java | 32 +
.../olingo/commons/api/edm/EdmMapping.java | 53 +
.../olingo/commons/api/edm/EdmMember.java | 30 +
.../apache/olingo/commons/api/edm/EdmNamed.java | 30 +
.../commons/api/edm/EdmNavigationProperty.java | 40 +
.../olingo/commons/api/edm/EdmOperation.java | 57 +
.../commons/api/edm/EdmOperationImport.java | 36 +
.../commons/api/edm/EdmOperationImportInfo.java | 31 +
.../olingo/commons/api/edm/EdmParameter.java | 45 +
.../commons/api/edm/EdmPrimitiveType.java | 166 +
.../api/edm/EdmPrimitiveTypeException.java | 32 +
.../olingo/commons/api/edm/EdmProperty.java | 71 +
.../olingo/commons/api/edm/EdmReturnType.java | 45 +
.../commons/api/edm/EdmServiceMetadata.java | 59 +
.../olingo/commons/api/edm/EdmSingleton.java | 26 +
.../commons/api/edm/EdmSingletonInfo.java | 45 +
.../commons/api/edm/EdmStructuredType.java | 82 +
.../apache/olingo/commons/api/edm/EdmTerm.java | 50 +
.../apache/olingo/commons/api/edm/EdmType.java | 40 +
.../commons/api/edm/EdmTypeDefinition.java | 52 +
.../apache/olingo/commons/api/edm/EdmTyped.java | 37 +
.../commons/api/edm/FullQualifiedName.java | 84 +
.../apache/olingo/commons/api/edm/Target.java | 71 +
.../api/edm/constants/EdmContentKind.java | 30 +
.../commons/api/edm/constants/EdmOnDelete.java | 25 +
.../api/edm/constants/EdmTargetPath.java | 50 +
.../commons/api/edm/constants/EdmTypeKind.java | 28 +
.../api/edm/constants/ODataServiceVersion.java | 140 +
.../olingo/commons/api/edm/package-info.java | 19 +
lib/commons-core/pom.xml | 46 +
.../core/edm/AbstractEdmBindingTarget.java | 55 +
.../core/edm/AbstractEdmComplexType.java | 50 +
.../core/edm/AbstractEdmEntityContainer.java | 102 +
.../commons/core/edm/AbstractEdmEntityType.java | 114 +
.../commons/core/edm/AbstractEdmEnumType.java | 206 +
.../commons/core/edm/AbstractEdmImpl.java | 252 +
.../core/edm/AbstractEdmKeyPropertyRef.java | 80 +
.../core/edm/AbstractEdmNavigationProperty.java | 76 +
.../commons/core/edm/AbstractEdmOperation.java | 114 +
.../core/edm/AbstractEdmOperationImport.java | 63 +
.../commons/core/edm/AbstractEdmParameter.java | 87 +
.../commons/core/edm/AbstractEdmProperty.java | 70 +
.../commons/core/edm/AbstractEdmReturnType.java | 85 +
.../core/edm/AbstractEdmStructuredType.java | 129 +
.../core/edm/AbstractEdmTypeDefinition.java | 107 +
.../olingo/commons/core/edm/ActionMapKey.java | 67 +
.../core/edm/EdmActionImportInfoImpl.java | 45 +
.../olingo/commons/core/edm/EdmElementImpl.java | 29 +
.../commons/core/edm/EdmEntitySetInfoImpl.java | 52 +
.../core/edm/EdmFunctionImportInfoImpl.java | 45 +
.../olingo/commons/core/edm/EdmMemberImpl.java | 38 +
.../olingo/commons/core/edm/EdmNamedImpl.java | 40 +
.../core/edm/EdmOperationImportInfoImpl.java | 36 +
.../commons/core/edm/EdmSingletonInfoImpl.java | 52 +
.../core/edm/EdmStructuredTypeHelper.java | 31 +
.../olingo/commons/core/edm/EdmTypeImpl.java | 48 +
.../olingo/commons/core/edm/FunctionMapKey.java | 113 +
.../primitivetype/AbstractPrimitiveType.java | 116 +
.../core/edm/primitivetype/EdmBinary.java | 117 +
.../core/edm/primitivetype/EdmBoolean.java | 81 +
.../commons/core/edm/primitivetype/EdmByte.java | 101 +
.../commons/core/edm/primitivetype/EdmDate.java | 95 +
.../edm/primitivetype/EdmDateTimeOffset.java | 239 +
.../core/edm/primitivetype/EdmDecimal.java | 200 +
.../core/edm/primitivetype/EdmDouble.java | 146 +
.../core/edm/primitivetype/EdmDuration.java | 141 +
.../commons/core/edm/primitivetype/EdmGuid.java | 88 +
.../core/edm/primitivetype/EdmInt16.java | 99 +
.../core/edm/primitivetype/EdmInt32.java | 100 +
.../core/edm/primitivetype/EdmInt64.java | 135 +
.../commons/core/edm/primitivetype/EdmNull.java | 75 +
.../edm/primitivetype/EdmPrimitiveTypeKind.java | 95 +
.../core/edm/primitivetype/EdmSByte.java | 95 +
.../core/edm/primitivetype/EdmSingle.java | 148 +
.../core/edm/primitivetype/EdmString.java | 108 +
.../core/edm/primitivetype/EdmTimeOfDay.java | 107 +
.../primitivetype/SingletonPrimitiveType.java | 52 +
.../commons/core/edm/primitivetype/Uint7.java | 66 +
.../commons/core/edm/ActionMapKeyTest.java | 102 +
.../commons/core/edm/EdmImplCachingTest.java | 389 ++
.../commons/core/edm/EdmImplCallCreateTest.java | 268 +
.../commons/core/edm/FunctionMapKeyTest.java | 252 +
.../primitivetype/CommonPrimitiveTypeTest.java | 175 +
.../core/edm/primitivetype/EdmBinaryTest.java | 106 +
.../core/edm/primitivetype/EdmBooleanTest.java | 64 +
.../core/edm/primitivetype/EdmByteTest.java | 86 +
.../core/edm/primitivetype/EdmDateTest.java | 93 +
.../primitivetype/EdmDateTimeOffsetTest.java | 125 +
.../core/edm/primitivetype/EdmDecimalTest.java | 132 +
.../core/edm/primitivetype/EdmDoubleTest.java | 132 +
.../core/edm/primitivetype/EdmDurationTest.java | 105 +
.../core/edm/primitivetype/EdmGuidTest.java | 68 +
.../core/edm/primitivetype/EdmInt16Test.java | 88 +
.../core/edm/primitivetype/EdmInt32Test.java | 89 +
.../core/edm/primitivetype/EdmInt64Test.java | 96 +
.../core/edm/primitivetype/EdmNullTest.java | 50 +
.../core/edm/primitivetype/EdmSByteTest.java | 82 +
.../core/edm/primitivetype/EdmSingleTest.java | 138 +
.../core/edm/primitivetype/EdmStringTest.java | 78 +
.../edm/primitivetype/EdmTimeOfDayTest.java | 93 +
.../primitivetype/PrimitiveTypeBaseTest.java | 119 +
.../core/edm/primitivetype/UInt7Test.java | 35 +
lib/pom.xml | 47 +
lib/ref/pom.xml | 50 +
lib/server-api/pom.xml | 45 +
.../olingo/server/api/edm/provider/Action.java | 54 +
.../server/api/edm/provider/ActionImport.java | 48 +
.../server/api/edm/provider/AliasInfo.java | 45 +
.../server/api/edm/provider/Annotation.java | 72 +
.../server/api/edm/provider/BindingTarget.java | 60 +
.../server/api/edm/provider/ComplexType.java | 62 +
.../server/api/edm/provider/EdmProvider.java | 182 +
.../api/edm/provider/EntityContainer.java | 93 +
.../api/edm/provider/EntityContainerInfo.java | 47 +
.../server/api/edm/provider/EntitySet.java | 55 +
.../server/api/edm/provider/EntitySetPath.java | 45 +
.../server/api/edm/provider/EntityType.java | 84 +
.../server/api/edm/provider/EnumMember.java | 49 +
.../server/api/edm/provider/EnumType.java | 73 +
.../server/api/edm/provider/Expression.java | 24 +
.../server/api/edm/provider/Function.java | 65 +
.../server/api/edm/provider/FunctionImport.java | 64 +
.../olingo/server/api/edm/provider/Mapping.java | 96 +
.../api/edm/provider/NavigationProperty.java | 118 +
.../edm/provider/NavigationPropertyBinding.java | 46 +
.../server/api/edm/provider/Operation.java | 81 +
.../api/edm/provider/OperationImport.java | 47 +
.../server/api/edm/provider/Parameter.java | 113 +
.../server/api/edm/provider/Property.java | 148 +
.../server/api/edm/provider/PropertyRef.java | 55 +
.../api/edm/provider/ReferentialConstraint.java | 46 +
.../server/api/edm/provider/ReturnType.java | 91 +
.../olingo/server/api/edm/provider/Schema.java | 135 +
.../server/api/edm/provider/Singleton.java | 44 +
.../server/api/edm/provider/StructuredType.java | 93 +
.../olingo/server/api/edm/provider/Term.java | 150 +
.../server/api/edm/provider/TypeDefinition.java | 94 +
.../apache/olingo/server/api/uri/UriInfo.java | 48 +
.../olingo/server/api/uri/UriInfoAll.java | 28 +
.../olingo/server/api/uri/UriInfoBatch.java | 27 +
.../olingo/server/api/uri/UriInfoCrossjoin.java | 34 +
.../olingo/server/api/uri/UriInfoEntityId.java | 68 +
.../olingo/server/api/uri/UriInfoKind.java | 67 +
.../olingo/server/api/uri/UriInfoMetadata.java | 39 +
.../olingo/server/api/uri/UriInfoResource.java | 118 +
.../olingo/server/api/uri/UriInfoService.java | 27 +
.../olingo/server/api/uri/UriParameter.java | 53 +
.../olingo/server/api/uri/UriResource.java | 35 +
.../server/api/uri/UriResourceAction.java | 42 +
.../api/uri/UriResourceComplexProperty.java | 41 +
.../olingo/server/api/uri/UriResourceCount.java | 27 +
.../server/api/uri/UriResourceEntitySet.java | 58 +
.../server/api/uri/UriResourceFunction.java | 66 +
.../olingo/server/api/uri/UriResourceIt.java | 38 +
.../olingo/server/api/uri/UriResourceKind.java | 115 +
.../server/api/uri/UriResourceLambdaAll.java | 39 +
.../server/api/uri/UriResourceLambdaAny.java | 39 +
.../api/uri/UriResourceLambdaVariable.java | 33 +
.../server/api/uri/UriResourceNavigation.java | 51 +
.../server/api/uri/UriResourcePartTyped.java | 43 +
.../api/uri/UriResourcePrimitiveProperty.java | 27 +
.../server/api/uri/UriResourceProperty.java | 33 +
.../olingo/server/api/uri/UriResourceRef.java | 28 +
.../olingo/server/api/uri/UriResourceRoot.java | 28 +
.../server/api/uri/UriResourceSingleton.java | 46 +
.../olingo/server/api/uri/UriResourceValue.java | 27 +
.../api/uri/queryoption/AliasQueryOption.java | 27 +
.../server/api/uri/queryoption/CountOption.java | 25 +
.../api/uri/queryoption/CustomQueryOption.java | 23 +
.../uri/queryoption/ExceptionVisitExpand.java | 25 +
.../server/api/uri/queryoption/ExpandItem.java | 53 +
.../api/uri/queryoption/ExpandOption.java | 27 +
.../api/uri/queryoption/FilterOption.java | 26 +
.../api/uri/queryoption/FormatOption.java | 25 +
.../server/api/uri/queryoption/IdOption.java | 25 +
.../api/uri/queryoption/LevelsExpandOption.java | 27 +
.../server/api/uri/queryoption/OrderByItem.java | 33 +
.../api/uri/queryoption/OrderByOption.java | 27 +
.../server/api/uri/queryoption/QueryOption.java | 27 +
.../api/uri/queryoption/SearchOption.java | 27 +
.../server/api/uri/queryoption/SelectItem.java | 37 +
.../api/uri/queryoption/SelectOption.java | 27 +
.../server/api/uri/queryoption/SkipOption.java | 25 +
.../api/uri/queryoption/SkipTokenOption.java | 25 +
.../uri/queryoption/SupportedQueryOptions.java | 45 +
.../api/uri/queryoption/SystemQueryOption.java | 25 +
.../server/api/uri/queryoption/TopOption.java | 25 +
.../queryoption/expression/AliasExpression.java | 25 +
.../expression/BinaryExpression.java | 29 +
.../expression/BinaryOperatorKind.java | 57 +
.../uri/queryoption/expression/Enumeration.java | 31 +
.../uri/queryoption/expression/Expression.java | 23 +
.../expression/ExpressionVisitException.java | 25 +
.../expression/ExpressionVisitor.java | 57 +
.../uri/queryoption/expression/LambdaRef.java | 25 +
.../api/uri/queryoption/expression/Literal.java | 29 +
.../api/uri/queryoption/expression/Member.java | 36 +
.../uri/queryoption/expression/MethodCall.java | 29 +
.../queryoption/expression/MethodCallKind.java | 58 +
.../uri/queryoption/expression/TypeLiteral.java | 27 +
.../queryoption/expression/UnaryOperator.java | 27 +
.../expression/UnaryOperatorKind.java | 44 +
.../expression/VisitableExression.java | 47 +
.../uri/queryoption/search/SearchBinary.java | 29 +
.../search/SearchBinaryOperatorKind.java | 45 +
.../queryoption/search/SearchExpression.java | 23 +
.../api/uri/queryoption/search/SearchTerm.java | 25 +
.../api/uri/queryoption/search/SearchUnary.java | 25 +
.../search/SearchUnaryOperatorKind.java | 43 +
lib/server-core/pom.xml | 84 +
.../olingo/server/core/uri/antlr/UriLexer.g4 | 404 ++
.../olingo/server/core/uri/antlr/UriParser.g4 | 439 ++
.../server/core/edm/provider/EdmActionImpl.java | 36 +
.../core/edm/provider/EdmActionImportImpl.java | 43 +
.../core/edm/provider/EdmBindingTargetImpl.java | 77 +
.../core/edm/provider/EdmComplexTypeImpl.java | 59 +
.../edm/provider/EdmEntityContainerImpl.java | 111 +
.../core/edm/provider/EdmEntitySetImpl.java | 32 +
.../core/edm/provider/EdmEntityTypeImpl.java | 87 +
.../core/edm/provider/EdmEnumTypeImpl.java | 61 +
.../core/edm/provider/EdmFunctionImpl.java | 56 +
.../edm/provider/EdmFunctionImportImpl.java | 45 +
.../edm/provider/EdmKeyPropertyRefImpl.java | 48 +
.../edm/provider/EdmNavigationPropertyImpl.java | 71 +
.../core/edm/provider/EdmOperationImpl.java | 67 +
.../edm/provider/EdmOperationImportImpl.java | 33 +
.../core/edm/provider/EdmParameterImpl.java | 65 +
.../core/edm/provider/EdmPropertyImpl.java | 87 +
.../core/edm/provider/EdmProviderImpl.java | 287 +
.../core/edm/provider/EdmReturnTypeImpl.java | 59 +
.../edm/provider/EdmServiceMetadataImpl.java | 190 +
.../core/edm/provider/EdmSingletonImpl.java | 31 +
.../provider/EdmStructuredTypeHelperImpl.java | 73 +
.../edm/provider/EdmTypeDefinitionImpl.java | 74 +
.../olingo/server/core/uri/UriInfoImpl.java | 296 +
.../server/core/uri/UriParameterImpl.java | 82 +
.../server/core/uri/UriResourceActionImpl.java | 77 +
.../uri/UriResourceComplexPropertyImpl.java | 70 +
.../server/core/uri/UriResourceCountImpl.java | 35 +
.../core/uri/UriResourceEntitySetImpl.java | 66 +
.../core/uri/UriResourceFunctionImpl.java | 111 +
.../olingo/server/core/uri/UriResourceImpl.java | 39 +
.../server/core/uri/UriResourceItImpl.java | 65 +
.../core/uri/UriResourceLambdaAllImpl.java | 73 +
.../core/uri/UriResourceLambdaAnyImpl.java | 72 +
.../core/uri/UriResourceLambdaVarImpl.java | 70 +
.../uri/UriResourceNavigationPropertyImpl.java | 63 +
.../uri/UriResourcePrimitivePropertyImpl.java | 59 +
.../server/core/uri/UriResourceRefImpl.java | 36 +
.../server/core/uri/UriResourceRootImpl.java | 62 +
.../core/uri/UriResourceSingletonImpl.java | 71 +
.../uri/UriResourceStartingTypeFilterImpl.java | 66 +
.../server/core/uri/UriResourceTypedImpl.java | 60 +
.../server/core/uri/UriResourceValueImpl.java | 36 +
.../core/uri/UriResourceWithKeysImpl.java | 99 +
.../uri/parser/CheckFullContextListener.java | 60 +
.../olingo/server/core/uri/parser/Parser.java | 442 ++
.../olingo/server/core/uri/parser/RawUri.java | 46 +
.../server/core/uri/parser/UriContext.java | 80 +
.../server/core/uri/parser/UriDecoder.java | 137 +
.../core/uri/parser/UriParseTreeVisitor.java | 2111 ++++++++
.../core/uri/parser/UriParserException.java | 35 +
.../uri/parser/UriParserSemanticException.java | 33 +
.../uri/parser/UriParserSyntaxException.java | 36 +
.../uri/queryoption/AliasQueryOptionImpl.java | 38 +
.../core/uri/queryoption/CountOptionImpl.java | 42 +
.../uri/queryoption/CustomQueryOptionImpl.java | 25 +
.../core/uri/queryoption/ExpandItemImpl.java | 176 +
.../core/uri/queryoption/ExpandOptionImpl.java | 49 +
.../core/uri/queryoption/FilterOptionImpl.java | 43 +
.../core/uri/queryoption/FormatOptionImpl.java | 41 +
.../core/uri/queryoption/IdOptionImpl.java | 40 +
.../core/uri/queryoption/LevelsOptionImpl.java | 53 +
.../core/uri/queryoption/OrderByItemImpl.java | 49 +
.../core/uri/queryoption/OrderByOptionImpl.java | 50 +
.../core/uri/queryoption/QueryOptionImpl.java | 47 +
.../core/uri/queryoption/SearchOptionImpl.java | 37 +
.../core/uri/queryoption/SelectItemImpl.java | 84 +
.../core/uri/queryoption/SelectOptionImpl.java | 50 +
.../core/uri/queryoption/SkipOptionImpl.java | 41 +
.../uri/queryoption/SkipTokenOptionImpl.java | 41 +
.../uri/queryoption/SystemQueryOptionImpl.java | 42 +
.../core/uri/queryoption/TopOptionImpl.java | 42 +
.../uri/queryoption/expression/AliasImpl.java | 44 +
.../uri/queryoption/expression/BinaryImpl.java | 70 +
.../queryoption/expression/EnumerationImpl.java | 60 +
.../queryoption/expression/ExpressionImpl.java | 25 +
.../queryoption/expression/LambdaRefImpl.java | 46 +
.../uri/queryoption/expression/LiteralImpl.java | 58 +
.../uri/queryoption/expression/MemberImpl.java | 99 +
.../queryoption/expression/MethodCallImpl.java | 70 +
.../queryoption/expression/TypeLiteralImpl.java | 47 +
.../uri/queryoption/expression/UnaryImpl.java | 58 +
.../core/edm/provider/EdmActionImplTest.java | 158 +
.../edm/provider/EdmActionImportImplTest.java | 105 +
.../edm/provider/EdmComplexTypeImplTest.java | 165 +
.../provider/EdmEntityContainerImplTest.java | 207 +
.../core/edm/provider/EdmEntitySetImplTest.java | 84 +
.../edm/provider/EdmEntityTypeImplTest.java | 278 +
.../server/core/edm/provider/EdmEnumTest.java | 179 +
.../core/edm/provider/EdmFunctionImplTest.java | 77 +
.../edm/provider/EdmFunctionImportImplTest.java | 87 +
.../edm/provider/EdmKeyPropertyRefImplTest.java | 143 +
.../core/edm/provider/EdmMemberImplTest.java | 41 +
.../core/edm/provider/EdmNamedImplTest.java | 42 +
.../provider/EdmNavigationPropertyImplTest.java | 146 +
.../core/edm/provider/EdmParameterImplTest.java | 142 +
.../core/edm/provider/EdmPropertyImplTest.java | 157 +
.../EdmProviderImplOverloadingTest.java | 199 +
.../core/edm/provider/EdmProviderImplTest.java | 232 +
.../edm/provider/EdmReturnTypeImplTest.java | 131 +
.../provider/EdmServiceMetadataImplTest.java | 189 +
.../core/edm/provider/EdmSingletonImplTest.java | 132 +
.../edm/provider/EdmTypeDefinitionImplTest.java | 75 +
.../core/edm/provider/EdmTypeImplTest.java | 45 +
.../edm/provider/PrimitiveTypeBaseTest.java | 117 +
.../server/core/testutil/EdmTechProvider.java | 1976 +++++++
.../core/testutil/EdmTechTestProvider.java | 94 +
.../olingo/server/core/uri/RawUriTest.java | 151 +
.../olingo/server/core/uri/UriInfoImplTest.java | 204 +
.../server/core/uri/UriResourceImplTest.java | 523 ++
.../core/uri/antlr/TestFullResourcePath.java | 5104 ++++++++++++++++++
.../olingo/server/core/uri/antlr/TestLexer.java | 251 +
.../core/uri/antlr/TestUriParserImpl.java | 1128 ++++
.../core/uri/queryoption/QueryOptionTest.java | 321 ++
.../queryoption/expression/ExpressionTest.java | 249 +
.../core/uri/testutil/ExpandValidator.java | 232 +
.../core/uri/testutil/FilterTreeToText.java | 154 +
.../core/uri/testutil/FilterValidator.java | 534 ++
.../core/uri/testutil/ParseTreeToText.java | 82 +
.../core/uri/testutil/ParserValidator.java | 162 +
.../core/uri/testutil/ParserWithLogging.java | 56 +
.../core/uri/testutil/ResourceValidator.java | 595 ++
.../core/uri/testutil/TestErrorLogger.java | 105 +
.../core/uri/testutil/TokenValidator.java | 194 +
.../core/uri/testutil/UriLexerWithTrace.java | 85 +
.../server/core/uri/testutil/UriValidator.java | 258 +
.../server/core/uri/testutil/Validator.java | 23 +
odata4-lib/odata4-client-api/pom.xml | 54 -
.../olingo/odata4/client/api/Configuration.java | 183 -
.../olingo/odata4/client/api/Constants.java | 217 -
.../olingo/odata4/client/api/ODataClient.java | 55 -
.../odata4/client/api/ODataConstants.java | 219 -
.../olingo/odata4/client/api/ODataError.java | 67 -
.../olingo/odata4/client/api/ODataV3Client.java | 39 -
.../olingo/odata4/client/api/ODataV4Client.java | 39 -
.../client/api/UnsupportedInV3Exception.java | 31 -
.../odata4/client/api/V3Configuration.java | 44 -
.../odata4/client/api/V4Configuration.java | 24 -
.../odata4/client/api/data/ServiceDocument.java | 138 -
.../client/api/data/ServiceDocumentItem.java | 30 -
.../api/deserializer/AnnotationProperty.java | 24 -
.../api/deserializer/ClientException.java | 36 -
.../client/api/deserializer/ComplexValue.java | 35 -
.../odata4/client/api/deserializer/Entity.java | 59 -
.../client/api/deserializer/EntitySet.java | 34 -
.../api/deserializer/NavigationProperty.java | 27 -
.../client/api/deserializer/Property.java | 24 -
.../odata4/client/api/deserializer/Reader.java | 30 -
.../api/deserializer/StructuralProperty.java | 30 -
.../odata4/client/api/deserializer/Value.java | 28 -
.../odata4/client/api/domain/EdmSimpleType.java | 288 -
.../client/api/domain/ODataCollectionValue.java | 98 -
.../client/api/domain/ODataComplexValue.java | 97 -
.../odata4/client/api/domain/ODataDuration.java | 79 -
.../client/api/domain/ODataGeospatialValue.java | 486 --
.../client/api/domain/ODataInvokeResult.java | 30 -
.../client/api/domain/ODataPrimitiveValue.java | 376 --
.../odata4/client/api/domain/ODataProperty.java | 192 -
.../client/api/domain/ODataServiceDocument.java | 183 -
.../client/api/domain/ODataTimestamp.java | 138 -
.../odata4/client/api/domain/ODataValue.java | 111 -
.../domain/geospatial/ComposedGeospatial.java | 75 -
.../api/domain/geospatial/Geospatial.java | 156 -
.../domain/geospatial/GeospatialCollection.java | 47 -
.../api/domain/geospatial/LineString.java | 38 -
.../api/domain/geospatial/MultiLineString.java | 38 -
.../api/domain/geospatial/MultiPoint.java | 38 -
.../api/domain/geospatial/MultiPolygon.java | 38 -
.../client/api/domain/geospatial/Point.java | 77 -
.../client/api/domain/geospatial/Polygon.java | 72 -
.../odata4/client/api/edm/ConcurrencyMode.java | 26 -
.../client/api/edm/StoreGeneratedPattern.java | 27 -
.../client/api/edm/xml/CommonAnnotations.java | 26 -
.../api/edm/xml/CommonFunctionImport.java | 22 -
.../api/edm/xml/CommonNavigationProperty.java | 22 -
.../client/api/edm/xml/CommonParameter.java | 33 -
.../client/api/edm/xml/CommonProperty.java | 39 -
.../odata4/client/api/edm/xml/ComplexType.java | 32 -
.../odata4/client/api/edm/xml/DataServices.java | 30 -
.../olingo/odata4/client/api/edm/xml/Edmx.java | 26 -
.../client/api/edm/xml/EntityContainer.java | 40 -
.../odata4/client/api/edm/xml/EntityKey.java | 26 -
.../odata4/client/api/edm/xml/EntitySet.java | 25 -
.../odata4/client/api/edm/xml/EntityType.java | 32 -
.../odata4/client/api/edm/xml/EnumType.java | 34 -
.../odata4/client/api/edm/xml/Member.java | 26 -
.../olingo/odata4/client/api/edm/xml/Named.java | 24 -
.../odata4/client/api/edm/xml/OnDelete.java | 24 -
.../client/api/edm/xml/OnDeleteAction.java | 28 -
.../odata4/client/api/edm/xml/PropertyRef.java | 25 -
.../odata4/client/api/edm/xml/Schema.java | 74 -
.../odata4/client/api/edm/xml/XMLMetadata.java | 59 -
.../client/api/edm/xml/v3/Annotations.java | 29 -
.../client/api/edm/xml/v3/Association.java | 30 -
.../client/api/edm/xml/v3/AssociationEnd.java | 32 -
.../client/api/edm/xml/v3/AssociationSet.java | 29 -
.../api/edm/xml/v3/AssociationSetEnd.java | 26 -
.../client/api/edm/xml/v3/FunctionImport.java | 43 -
.../api/edm/xml/v3/NavigationProperty.java | 29 -
.../odata4/client/api/edm/xml/v3/Parameter.java | 24 -
.../client/api/edm/xml/v3/ParameterMode.java | 27 -
.../odata4/client/api/edm/xml/v3/Property.java | 48 -
.../client/api/edm/xml/v3/PropertyValue.java | 43 -
.../api/edm/xml/v3/ReferentialConstraint.java | 26 -
.../edm/xml/v3/ReferentialConstraintRole.java | 30 -
.../client/api/edm/xml/v3/TypeAnnotation.java | 31 -
.../odata4/client/api/edm/xml/v3/Using.java | 27 -
.../client/api/edm/xml/v3/ValueAnnotation.java | 45 -
.../odata4/client/api/edm/xml/v3/ValueTerm.java | 26 -
.../odata4/client/api/edm/xml/v4/Action.java | 36 -
.../client/api/edm/xml/v4/ActionImport.java | 24 -
.../client/api/edm/xml/v4/AnnotatedEdmItem.java | 24 -
.../client/api/edm/xml/v4/Annotation.java | 33 -
.../client/api/edm/xml/v4/Annotations.java | 29 -
.../client/api/edm/xml/v4/BindingTarget.java | 27 -
.../client/api/edm/xml/v4/CSDLElement.java | 37 -
.../client/api/edm/xml/v4/ComplexType.java | 43 -
.../odata4/client/api/edm/xml/v4/Edmx.java | 26 -
.../client/api/edm/xml/v4/EntityContainer.java | 44 -
.../odata4/client/api/edm/xml/v4/EntitySet.java | 24 -
.../client/api/edm/xml/v4/EntityType.java | 23 -
.../odata4/client/api/edm/xml/v4/Function.java | 24 -
.../client/api/edm/xml/v4/FunctionImport.java | 28 -
.../odata4/client/api/edm/xml/v4/Include.java | 26 -
.../api/edm/xml/v4/IncludeAnnotations.java | 28 -
.../api/edm/xml/v4/NavigationProperty.java | 39 -
.../edm/xml/v4/NavigationPropertyBinding.java | 27 -
.../client/api/edm/xml/v4/OperationImport.java | 28 -
.../odata4/client/api/edm/xml/v4/Parameter.java | 24 -
.../odata4/client/api/edm/xml/v4/Property.java | 25 -
.../odata4/client/api/edm/xml/v4/Reference.java | 33 -
.../api/edm/xml/v4/ReferentialConstraint.java | 27 -
.../client/api/edm/xml/v4/ReturnType.java | 34 -
.../odata4/client/api/edm/xml/v4/Schema.java | 64 -
.../odata4/client/api/edm/xml/v4/Singleton.java | 25 -
.../odata4/client/api/edm/xml/v4/Term.java | 43 -
.../client/api/edm/xml/v4/TypeDefinition.java | 39 -
.../client/api/edm/xml/v4/XMLMetadata.java | 36 -
.../xml/v4/annotation/ConstExprConstruct.java | 56 -
.../edm/xml/v4/annotation/DynExprConstruct.java | 23 -
.../edm/xml/v4/annotation/ExprConstruct.java | 23 -
.../odata4/client/api/format/ODataFormat.java | 97 -
.../client/api/format/ODataMediaFormat.java | 71 -
.../client/api/format/ODataPubFormat.java | 97 -
.../client/api/format/ODataValueFormat.java | 76 -
.../client/api/http/HttpClientException.java | 68 -
.../client/api/http/HttpClientFactory.java | 30 -
.../odata4/client/api/http/HttpMethod.java | 33 -
.../client/api/http/HttpUriRequestFactory.java | 30 -
.../client/api/http/NoContentException.java | 36 -
.../odata4/client/api/op/ODataBinder.java | 121 -
.../odata4/client/api/op/ODataDeserializer.java | 93 -
.../odata4/client/api/op/ODataReader.java | 103 -
.../odata4/client/api/op/ODataSerializer.java | 118 -
.../client/api/op/ODataV3Deserializer.java | 23 -
.../client/api/op/ODataV4Deserializer.java | 29 -
.../odata4/client/api/uri/QueryOption.java | 95 -
.../odata4/client/api/uri/SegmentType.java | 66 -
.../odata4/client/api/uri/URIBuilder.java | 224 -
.../odata4/client/api/uri/V3URIBuilder.java | 47 -
.../odata4/client/api/uri/V4URIBuilder.java | 87 -
.../odata4/client/api/uri/filter/FilterArg.java | 30 -
.../client/api/uri/filter/FilterArgFactory.java | 83 -
.../client/api/uri/filter/FilterFactory.java | 61 -
.../odata4/client/api/uri/filter/URIFilter.java | 32 -
.../api/uri/filter/V3FilterArgFactory.java | 25 -
.../client/api/uri/filter/V3FilterFactory.java | 26 -
.../api/uri/filter/V4FilterArgFactory.java | 55 -
.../client/api/uri/filter/V4FilterFactory.java | 32 -
.../odata4/client/api/utils/XMLUtils.java | 176 -
odata4-lib/odata4-client-core/pom.xml | 98 -
.../client/core/AbstractConfiguration.java | 197 -
.../odata4/client/core/AbstractODataClient.java | 37 -
.../odata4/client/core/ODataClientFactory.java | 37 -
.../odata4/client/core/ODataV3ClientImpl.java | 146 -
.../odata4/client/core/ODataV4ClientImpl.java | 146 -
.../odata4/client/core/V3ConfigurationImpl.java | 57 -
.../odata4/client/core/V4ConfigurationImpl.java | 31 -
.../core/data/AbstractServiceDocument.java | 145 -
.../data/JSONServiceDocumentDeserializer.java | 82 -
.../core/data/ODataJacksonDeserializer.java | 43 -
.../core/data/ODataJacksonSerializer.java | 43 -
.../core/data/ServiceDocumentItemImpl.java | 78 -
.../data/XMLServiceDocumentDeserializer.java | 118 -
.../core/data/v3/JSONServiceDocumentImpl.java | 65 -
.../core/data/v3/XMLServiceDocumentImpl.java | 46 -
.../core/data/v4/AbstractServiceDocument.java | 88 -
.../core/data/v4/JSONServiceDocumentImpl.java | 41 -
.../core/data/v4/XMLServiceDocumentImpl.java | 28 -
.../deserializer/AnnotationPropertyImpl.java | 53 -
.../core/deserializer/ComplexValueImpl.java | 82 -
.../client/core/deserializer/EntityImpl.java | 126 -
.../core/deserializer/EntitySetBuilder.java | 72 -
.../client/core/deserializer/EntitySetImpl.java | 120 -
.../client/core/deserializer/JsonReader.java | 89 -
.../deserializer/NavigationPropertyImpl.java | 89 -
.../core/deserializer/PrimitiveValue.java | 51 -
.../core/deserializer/PropertyCollection.java | 96 -
.../deserializer/PropertyCollectionBuilder.java | 220 -
.../deserializer/StructuralPropertyImpl.java | 83 -
.../edm/AbstractEdmServiceMetadataImpl.java | 98 -
.../odata4/client/core/edm/EdmActionImpl.java | 37 -
.../client/core/edm/EdmActionImportImpl.java | 44 -
.../client/core/edm/EdmBindingTargetImpl.java | 78 -
.../odata4/client/core/edm/EdmClientImpl.java | 373 --
.../client/core/edm/EdmComplexTypeImpl.java | 66 -
.../client/core/edm/EdmEntityContainerImpl.java | 123 -
.../client/core/edm/EdmEntitySetImpl.java | 35 -
.../client/core/edm/EdmEntityTypeImpl.java | 79 -
.../odata4/client/core/edm/EdmEnumTypeImpl.java | 95 -
.../odata4/client/core/edm/EdmFunctionImpl.java | 44 -
.../client/core/edm/EdmFunctionImportImpl.java | 45 -
.../client/core/edm/EdmKeyPropertyRefImpl.java | 49 -
.../core/edm/EdmNavigationPropertyImpl.java | 73 -
.../client/core/edm/EdmOperationImpl.java | 60 -
.../client/core/edm/EdmOperationImportImpl.java | 34 -
.../client/core/edm/EdmParameterImpl.java | 73 -
.../odata4/client/core/edm/EdmPropertyImpl.java | 90 -
.../client/core/edm/EdmReturnTypeImpl.java | 67 -
.../client/core/edm/EdmSingletonImpl.java | 35 -
.../core/edm/EdmStructuredTypeHelperImpl.java | 71 -
.../client/core/edm/EdmTypeDefinitionImpl.java | 73 -
.../odata4/client/core/edm/EdmTypeInfo.java | 174 -
.../core/edm/v3/EdmActionImportProxy.java | 45 -
.../client/core/edm/v3/EdmActionProxy.java | 39 -
.../client/core/edm/v3/EdmEntitySetProxy.java | 101 -
.../core/edm/v3/EdmFunctionImportProxy.java | 46 -
.../client/core/edm/v3/EdmFunctionProxy.java | 43 -
.../client/core/edm/v3/EdmOperationProxy.java | 64 -
.../core/edm/v3/EdmServiceMetadataImpl.java | 97 -
.../client/core/edm/v3/ReturnTypeProxy.java | 62 -
.../core/edm/v3/V3FunctionImportUtils.java | 36 -
.../core/edm/v4/EdmServiceMetadataImpl.java | 104 -
.../core/edm/xml/AbstractAnnotations.java | 51 -
.../core/edm/xml/AbstractComplexType.java | 52 -
.../core/edm/xml/AbstractDataServices.java | 50 -
.../client/core/edm/xml/AbstractEdmItem.java | 61 -
.../client/core/edm/xml/AbstractEdmx.java | 51 -
.../core/edm/xml/AbstractEntityContainer.java | 103 -
.../client/core/edm/xml/AbstractEntitySet.java | 51 -
.../client/core/edm/xml/AbstractEntityType.java | 86 -
.../client/core/edm/xml/AbstractEnumType.java | 95 -
.../client/core/edm/xml/AbstractMember.java | 51 -
.../edm/xml/AbstractNavigationProperty.java | 39 -
.../client/core/edm/xml/AbstractParameter.java | 94 -
.../client/core/edm/xml/AbstractProperty.java | 127 -
.../client/core/edm/xml/AbstractSchema.java | 69 -
.../core/edm/xml/AbstractXMLMetadata.java | 95 -
.../core/edm/xml/DataServicesDeserializer.java | 64 -
.../client/core/edm/xml/EdmxDeserializer.java | 67 -
.../client/core/edm/xml/EntityKeyImpl.java | 39 -
.../client/core/edm/xml/OnDeleteImpl.java | 41 -
.../core/edm/xml/ParameterDeserializer.java | 70 -
.../core/edm/xml/PropertyDeserializer.java | 127 -
.../client/core/edm/xml/PropertyRefImpl.java | 52 -
.../edm/xml/v3/AnnotationsDeserializer.java | 55 -
.../client/core/edm/xml/v3/AnnotationsImpl.java | 48 -
.../edm/xml/v3/AssociationDeserializer.java | 53 -
.../core/edm/xml/v3/AssociationEndImpl.java | 77 -
.../client/core/edm/xml/v3/AssociationImpl.java | 62 -
.../edm/xml/v3/AssociationSetDeserializer.java | 52 -
.../core/edm/xml/v3/AssociationSetEndImpl.java | 52 -
.../core/edm/xml/v3/AssociationSetImpl.java | 61 -
.../client/core/edm/xml/v3/ComplexTypeImpl.java | 54 -
.../core/edm/xml/v3/DataServicesImpl.java | 37 -
.../odata4/client/core/edm/xml/v3/EdmxImpl.java | 32 -
.../core/edm/xml/v3/EntityContainerImpl.java | 68 -
.../client/core/edm/xml/v3/EntitySetImpl.java | 27 -
.../client/core/edm/xml/v3/EntityTypeImpl.java | 53 -
.../client/core/edm/xml/v3/EnumTypeImpl.java | 37 -
.../edm/xml/v3/FunctionImportDeserializer.java | 67 -
.../core/edm/xml/v3/FunctionImportImpl.java | 138 -
.../client/core/edm/xml/v3/MemberImpl.java | 27 -
.../core/edm/xml/v3/NavigationPropertyImpl.java | 65 -
.../client/core/edm/xml/v3/ParameterImpl.java | 40 -
.../client/core/edm/xml/v3/PropertyImpl.java | 141 -
.../core/edm/xml/v3/PropertyValueImpl.java | 127 -
.../edm/xml/v3/ReferentialConstraintImpl.java | 56 -
.../ReferentialConstraintRoleDeserializer.java | 51 -
.../xml/v3/ReferentialConstraintRoleImpl.java | 49 -
.../client/core/edm/xml/v3/SchemaImpl.java | 137 -
.../edm/xml/v3/TypeAnnotationDeserializer.java | 52 -
.../core/edm/xml/v3/TypeAnnotationImpl.java | 62 -
.../client/core/edm/xml/v3/UsingImpl.java | 52 -
.../core/edm/xml/v3/ValueAnnotationImpl.java | 139 -
.../client/core/edm/xml/v3/ValueTermImpl.java | 52 -
.../client/core/edm/xml/v3/XMLMetadataImpl.java | 31 -
.../edm/xml/v4/AbstractAnnotatedEdmItem.java | 44 -
.../core/edm/xml/v4/ActionDeserializer.java | 60 -
.../client/core/edm/xml/v4/ActionImpl.java | 89 -
.../core/edm/xml/v4/ActionImportImpl.java | 65 -
.../core/edm/xml/v4/AnnotationDeserializer.java | 57 -
.../client/core/edm/xml/v4/AnnotationImpl.java | 76 -
.../edm/xml/v4/AnnotationsDeserializer.java | 53 -
.../client/core/edm/xml/v4/AnnotationsImpl.java | 49 -
.../client/core/edm/xml/v4/ComplexTypeImpl.java | 101 -
.../core/edm/xml/v4/DataServicesImpl.java | 37 -
.../odata4/client/core/edm/xml/v4/EdmxImpl.java | 43 -
.../core/edm/xml/v4/EntityContainerImpl.java | 128 -
.../client/core/edm/xml/v4/EntitySetImpl.java | 61 -
.../client/core/edm/xml/v4/EntityTypeImpl.java | 68 -
.../client/core/edm/xml/v4/EnumTypeImpl.java | 40 -
.../core/edm/xml/v4/FunctionDeserializer.java | 62 -
.../client/core/edm/xml/v4/FunctionImpl.java | 40 -
.../core/edm/xml/v4/FunctionImportImpl.java | 92 -
.../core/edm/xml/v4/IncludeAnnotationsImpl.java | 65 -
.../client/core/edm/xml/v4/IncludeImpl.java | 53 -
.../client/core/edm/xml/v4/MemberImpl.java | 44 -
.../xml/v4/NavigationPropertyBindingImpl.java | 53 -
.../xml/v4/NavigationPropertyDeserializer.java | 67 -
.../core/edm/xml/v4/NavigationPropertyImpl.java | 108 -
.../client/core/edm/xml/v4/ParameterImpl.java | 39 -
.../client/core/edm/xml/v4/PropertyImpl.java | 41 -
.../core/edm/xml/v4/ReferenceDeserializer.java | 58 -
.../client/core/edm/xml/v4/ReferenceImpl.java | 68 -
.../edm/xml/v4/ReferentialConstraintImpl.java | 52 -
.../core/edm/xml/v4/ReturnTypeDeserializer.java | 61 -
.../client/core/edm/xml/v4/ReturnTypeImpl.java | 96 -
.../client/core/edm/xml/v4/SchemaImpl.java | 180 -
.../core/edm/xml/v4/SingletonDeserializer.java | 57 -
.../client/core/edm/xml/v4/SingletonImpl.java | 61 -
.../core/edm/xml/v4/TermDeserializer.java | 76 -
.../odata4/client/core/edm/xml/v4/TermImpl.java | 138 -
.../edm/xml/v4/TypeDefinitionDeserializer.java | 65 -
.../core/edm/xml/v4/TypeDefinitionImpl.java | 117 -
.../client/core/edm/xml/v4/XMLMetadataImpl.java | 55 -
.../annotation/AbstractElOrAttrConstruct.java | 37 -
.../annotation/AnnotatedDynExprConstruct.java | 38 -
.../edm/xml/v4/annotation/AnnotationPath.java | 25 -
.../core/edm/xml/v4/annotation/Apply.java | 53 -
.../xml/v4/annotation/ApplyDeserializer.java | 55 -
.../client/core/edm/xml/v4/annotation/Cast.java | 90 -
.../edm/xml/v4/annotation/CastDeserializer.java | 62 -
.../core/edm/xml/v4/annotation/Collection.java | 37 -
.../v4/annotation/CollectionDeserializer.java | 50 -
.../v4/annotation/ConstExprConstructImpl.java | 51 -
.../DynExprConstructDeserializer.java | 145 -
.../xml/v4/annotation/DynExprConstructImpl.java | 29 -
.../xml/v4/annotation/DynExprDoubleParamOp.java | 73 -
.../xml/v4/annotation/DynExprSingleParamOp.java | 69 -
.../xml/v4/annotation/ExprConstructImpl.java | 28 -
.../client/core/edm/xml/v4/annotation/If.java | 57 -
.../client/core/edm/xml/v4/annotation/IsOf.java | 90 -
.../edm/xml/v4/annotation/IsOfDeserializer.java | 62 -
.../edm/xml/v4/annotation/LabeledElement.java | 49 -
.../annotation/LabeledElementDeserializer.java | 53 -
.../v4/annotation/LabeledElementReference.java | 25 -
.../v4/annotation/NavigationPropertyPath.java | 25 -
.../client/core/edm/xml/v4/annotation/Null.java | 28 -
.../edm/xml/v4/annotation/NullDeserializer.java | 49 -
.../client/core/edm/xml/v4/annotation/Path.java | 25 -
.../edm/xml/v4/annotation/PropertyPath.java | 25 -
.../edm/xml/v4/annotation/PropertyValue.java | 49 -
.../annotation/PropertyValueDeserializer.java | 55 -
.../core/edm/xml/v4/annotation/Record.java | 46 -
.../xml/v4/annotation/RecordDeserializer.java | 53 -
.../core/edm/xml/v4/annotation/UrlRef.java | 39 -
.../xml/v4/annotation/UrlRefDeserializer.java | 50 -
.../AbstractBasicAuthHttpClientFactory.java | 50 -
.../http/AbstractNTLMAuthHttpClientFactory.java | 62 -
.../core/http/DefaultHttpClientFactory.java | 39 -
.../core/http/DefaultHttpUriRequestFactory.java | 68 -
.../odata4/client/core/http/HttpMerge.java | 70 -
.../odata4/client/core/http/HttpPatch.java | 70 -
.../core/op/impl/AbstractEdmDeserializer.java | 69 -
.../core/op/impl/AbstractJacksonTool.java | 83 -
.../core/op/impl/AbstractODataBinder.java | 581 --
.../core/op/impl/AbstractODataDeserializer.java | 177 -
.../core/op/impl/AbstractODataReader.java | 138 -
.../core/op/impl/AbstractODataSerializer.java | 160 -
.../core/op/impl/ComplexTypeDeserializer.java | 81 -
.../op/impl/EntityContainerDeserializer.java | 100 -
.../core/op/impl/EntityKeyDeserializer.java | 48 -
.../core/op/impl/EntitySetDeserializer.java | 68 -
.../core/op/impl/EntityTypeDeserializer.java | 90 -
.../core/op/impl/EnumTypeDeserializer.java | 71 -
.../op/impl/InjectableSerializerProvider.java | 43 -
.../client/core/op/impl/ODataV3BinderImpl.java | 37 -
.../core/op/impl/ODataV3DeserializerImpl.java | 69 -
.../client/core/op/impl/ODataV3ReaderImpl.java | 47 -
.../core/op/impl/ODataV3SerializerImpl.java | 32 -
.../client/core/op/impl/ODataV4BinderImpl.java | 62 -
.../core/op/impl/ODataV4DeserializerImpl.java | 70 -
.../client/core/op/impl/ODataV4ReaderImpl.java | 47 -
.../core/op/impl/ODataV4SerializerImpl.java | 32 -
.../client/core/op/impl/SchemaDeserializer.java | 147 -
.../client/core/uri/AbstractURIBuilder.java | 273 -
.../olingo/odata4/client/core/uri/URIUtils.java | 195 -
.../client/core/uri/V3URIBuilderImpl.java | 93 -
.../client/core/uri/V4URIBuilderImpl.java | 101 -
.../uri/filter/AbstractComparingFilter.java | 45 -
.../uri/filter/AbstractFilterArgFactory.java | 178 -
.../core/uri/filter/AbstractFilterFactory.java | 108 -
.../client/core/uri/filter/AndFilter.java | 42 -
.../odata4/client/core/uri/filter/EqFilter.java | 33 -
.../client/core/uri/filter/FilterConst.java | 41 -
.../client/core/uri/filter/FilterFunction.java | 48 -
.../client/core/uri/filter/FilterLambda.java | 46 -
.../client/core/uri/filter/FilterLiteral.java | 41 -
.../odata4/client/core/uri/filter/FilterOp.java | 45 -
.../client/core/uri/filter/FilterProperty.java | 40 -
.../odata4/client/core/uri/filter/GeFilter.java | 33 -
.../odata4/client/core/uri/filter/GtFilter.java | 33 -
.../client/core/uri/filter/HasFilter.java | 34 -
.../odata4/client/core/uri/filter/LeFilter.java | 33 -
.../odata4/client/core/uri/filter/LtFilter.java | 33 -
.../client/core/uri/filter/MatchFilter.java | 36 -
.../odata4/client/core/uri/filter/NeFilter.java | 33 -
.../client/core/uri/filter/NotFilter.java | 35 -
.../odata4/client/core/uri/filter/OrFilter.java | 42 -
.../core/uri/filter/V3FilterArgFactoryImpl.java | 31 -
.../core/uri/filter/V3FilterFactoryImpl.java | 33 -
.../core/uri/filter/V4FilterArgFactoryImpl.java | 107 -
.../core/uri/filter/V4FilterFactoryImpl.java | 46 -
.../client/core/xml/AbstractDOMParser.java | 46 -
.../client/core/xml/AndroidDOMParserImpl.java | 50 -
.../client/core/xml/DefaultDOMParserImpl.java | 78 -
.../odata4/client/core/xml/XMLParser.java | 37 -
.../olingo/odata4/client/core/AbstractTest.java | 58 -
.../odata4/client/core/ODataClientTest.java | 40 -
.../deserializer/JsonReaderPerformance.java | 75 -
.../core/deserializer/JsonReaderTest.java | 371 --
.../client/core/v3/FilterFactoryTest.java | 166 -
.../odata4/client/core/v3/MetadataTest.java | 223 -
.../client/core/v3/ServiceDocumentTest.java | 57 -
.../odata4/client/core/v3/URIBuilderTest.java | 130 -
.../client/core/v4/FilterFactoryTest.java | 84 -
.../odata4/client/core/v4/MetadataTest.java | 282 -
.../client/core/v4/ServiceDocumentTest.java | 67 -
.../odata4/client/core/v4/URIBuilderTest.java | 133 -
.../src/test/resources/complexProperty.json | 8 -
.../src/test/resources/fullEntity.json | 22 -
.../src/test/resources/fullEntitySet.json | 29 -
.../resources/fullEntitySetWithTwoEntities.json | 49 -
...fullEntityWithCollectionOfComplexValues.json | 28 -
.../src/test/resources/minimalEntity.json | 21 -
.../olingo/odata4/client/core/v3/metadata.xml | 721 ---
.../client/core/v3/northwind-metadata.xml | 22 -
.../odata4/client/core/v3/serviceDocument.json | 33 -
.../odata4/client/core/v3/serviceDocument.xml | 49 -
.../odata4/client/core/v4/demo-metadata.xml | 163 -
.../odata4/client/core/v4/fromdoc1-metadata.xml | 126 -
.../odata4/client/core/v4/fromdoc2-metadata.xml | 54 -
.../odata4/client/core/v4/fromdoc3-metadata.xml | 131 -
.../olingo/odata4/client/core/v4/metadata.xml | 232 -
.../client/core/v4/northwind-metadata.xml | 471 --
.../odata4/client/core/v4/serviceDocument.json | 32 -
.../odata4/client/core/v4/serviceDocument.xml | 46 -
.../src/test/resources/primitiveNullValue.json | 3 -
.../test/resources/setOfComplexProperties.json | 13 -
.../resources/setOfPrimitiveProperties.json | 8 -
odata4-lib/odata4-commons-api/pom.xml | 39 -
.../commons/api/ODataApplicationException.java | 37 -
.../odata4/commons/api/ODataException.java | 37 -
.../api/ODataNotImplementedException.java | 33 -
.../olingo/odata4/commons/api/edm/Edm.java | 111 -
.../odata4/commons/api/edm/EdmAction.java | 26 -
.../odata4/commons/api/edm/EdmActionImport.java | 27 -
.../commons/api/edm/EdmActionImportInfo.java | 40 -
.../odata4/commons/api/edm/EdmAnnotatable.java | 30 -
.../odata4/commons/api/edm/EdmAnnotations.java | 24 -
.../commons/api/edm/EdmBindingTarget.java | 48 -
.../odata4/commons/api/edm/EdmComplexType.java | 31 -
.../odata4/commons/api/edm/EdmElement.java | 27 -
.../commons/api/edm/EdmEntityContainer.java | 66 -
.../odata4/commons/api/edm/EdmEntitySet.java | 29 -
.../commons/api/edm/EdmEntitySetInfo.java | 47 -
.../odata4/commons/api/edm/EdmEntityType.java | 64 -
.../odata4/commons/api/edm/EdmEnumType.java | 43 -
.../odata4/commons/api/edm/EdmException.java | 37 -
.../odata4/commons/api/edm/EdmFunction.java | 31 -
.../commons/api/edm/EdmFunctionImport.java | 30 -
.../commons/api/edm/EdmFunctionImportInfo.java | 40 -
.../commons/api/edm/EdmKeyPropertyRef.java | 43 -
.../odata4/commons/api/edm/EdmMappable.java | 32 -
.../odata4/commons/api/edm/EdmMapping.java | 53 -
.../odata4/commons/api/edm/EdmMember.java | 30 -
.../olingo/odata4/commons/api/edm/EdmNamed.java | 30 -
.../commons/api/edm/EdmNavigationProperty.java | 40 -
.../odata4/commons/api/edm/EdmOperation.java | 57 -
.../commons/api/edm/EdmOperationImport.java | 36 -
.../commons/api/edm/EdmOperationImportInfo.java | 31 -
.../odata4/commons/api/edm/EdmParameter.java | 45 -
.../commons/api/edm/EdmPrimitiveType.java | 166 -
.../api/edm/EdmPrimitiveTypeException.java | 32 -
.../odata4/commons/api/edm/EdmProperty.java | 71 -
.../odata4/commons/api/edm/EdmReturnType.java | 45 -
.../commons/api/edm/EdmServiceMetadata.java | 59 -
.../odata4/commons/api/edm/EdmSingleton.java | 26 -
.../commons/api/edm/EdmSingletonInfo.java | 45 -
.../commons/api/edm/EdmStructuredType.java | 82 -
.../olingo/odata4/commons/api/edm/EdmTerm.java | 50 -
.../olingo/odata4/commons/api/edm/EdmType.java | 40 -
.../commons/api/edm/EdmTypeDefinition.java | 52 -
.../olingo/odata4/commons/api/edm/EdmTyped.java | 37 -
.../commons/api/edm/FullQualifiedName.java | 84 -
.../olingo/odata4/commons/api/edm/Target.java | 71 -
.../api/edm/constants/EdmContentKind.java | 30 -
.../commons/api/edm/constants/EdmOnDelete.java | 25 -
.../api/edm/constants/EdmTargetPath.java | 50 -
.../commons/api/edm/constants/EdmTypeKind.java | 28 -
.../api/edm/constants/ODataServiceVersion.java | 140 -
.../odata4/commons/api/edm/package-info.java | 19 -
odata4-lib/odata4-commons-core/pom.xml | 46 -
.../core/edm/AbstractEdmBindingTarget.java | 55 -
.../core/edm/AbstractEdmComplexType.java | 50 -
.../core/edm/AbstractEdmEntityContainer.java | 101 -
.../commons/core/edm/AbstractEdmEntityType.java | 113 -
.../commons/core/edm/AbstractEdmEnumType.java | 205 -
.../commons/core/edm/AbstractEdmImpl.java | 252 -
.../core/edm/AbstractEdmKeyPropertyRef.java | 80 -
.../core/edm/AbstractEdmNavigationProperty.java | 76 -
.../commons/core/edm/AbstractEdmOperation.java | 113 -
.../core/edm/AbstractEdmOperationImport.java | 63 -
.../commons/core/edm/AbstractEdmParameter.java | 87 -
.../commons/core/edm/AbstractEdmProperty.java | 70 -
.../commons/core/edm/AbstractEdmReturnType.java | 85 -
.../core/edm/AbstractEdmStructuredType.java | 128 -
.../core/edm/AbstractEdmTypeDefinition.java | 107 -
.../odata4/commons/core/edm/ActionMapKey.java | 67 -
.../core/edm/EdmActionImportInfoImpl.java | 45 -
.../odata4/commons/core/edm/EdmElementImpl.java | 29 -
.../commons/core/edm/EdmEntitySetInfoImpl.java | 52 -
.../core/edm/EdmFunctionImportInfoImpl.java | 45 -
.../odata4/commons/core/edm/EdmMemberImpl.java | 38 -
.../odata4/commons/core/edm/EdmNamedImpl.java | 40 -
.../core/edm/EdmOperationImportInfoImpl.java | 36 -
.../commons/core/edm/EdmSingletonInfoImpl.java | 52 -
.../core/edm/EdmStructuredTypeHelper.java | 30 -
.../odata4/commons/core/edm/EdmTypeImpl.java | 48 -
.../odata4/commons/core/edm/FunctionMapKey.java | 113 -
.../primitivetype/AbstractPrimitiveType.java | 116 -
.../core/edm/primitivetype/EdmBinary.java | 117 -
.../core/edm/primitivetype/EdmBoolean.java | 81 -
.../commons/core/edm/primitivetype/EdmByte.java | 101 -
.../commons/core/edm/primitivetype/EdmDate.java | 95 -
.../edm/primitivetype/EdmDateTimeOffset.java | 239 -
.../core/edm/primitivetype/EdmDecimal.java | 200 -
.../core/edm/primitivetype/EdmDouble.java | 146 -
.../core/edm/primitivetype/EdmDuration.java | 141 -
.../commons/core/edm/primitivetype/EdmGuid.java | 88 -
.../core/edm/primitivetype/EdmInt16.java | 99 -
.../core/edm/primitivetype/EdmInt32.java | 100 -
.../core/edm/primitivetype/EdmInt64.java | 135 -
.../commons/core/edm/primitivetype/EdmNull.java | 75 -
.../edm/primitivetype/EdmPrimitiveTypeKind.java | 95 -
.../core/edm/primitivetype/EdmSByte.java | 95 -
.../core/edm/primitivetype/EdmSingle.java | 148 -
.../core/edm/primitivetype/EdmString.java | 108 -
.../core/edm/primitivetype/EdmTimeOfDay.java | 107 -
.../primitivetype/SingletonPrimitiveType.java | 52 -
.../commons/core/edm/primitivetype/Uint7.java | 66 -
.../commons/core/edm/ActionMapKeyTest.java | 101 -
.../commons/core/edm/EdmImplCachingTest.java | 388 --
.../commons/core/edm/EdmImplCallCreateTest.java | 267 -
.../commons/core/edm/FunctionMapKeyTest.java | 251 -
.../primitivetype/CommonPrimitiveTypeTest.java | 172 -
.../core/edm/primitivetype/EdmBinaryTest.java | 105 -
.../core/edm/primitivetype/EdmBooleanTest.java | 63 -
.../core/edm/primitivetype/EdmByteTest.java | 84 -
.../core/edm/primitivetype/EdmDateTest.java | 92 -
.../primitivetype/EdmDateTimeOffsetTest.java | 124 -
.../core/edm/primitivetype/EdmDecimalTest.java | 130 -
.../core/edm/primitivetype/EdmDoubleTest.java | 130 -
.../core/edm/primitivetype/EdmDurationTest.java | 104 -
.../core/edm/primitivetype/EdmGuidTest.java | 67 -
.../core/edm/primitivetype/EdmInt16Test.java | 86 -
.../core/edm/primitivetype/EdmInt32Test.java | 87 -
.../core/edm/primitivetype/EdmInt64Test.java | 94 -
.../core/edm/primitivetype/EdmNullTest.java | 49 -
.../core/edm/primitivetype/EdmSByteTest.java | 80 -
.../core/edm/primitivetype/EdmSingleTest.java | 136 -
.../core/edm/primitivetype/EdmStringTest.java | 77 -
.../edm/primitivetype/EdmTimeOfDayTest.java | 92 -
.../primitivetype/PrimitiveTypeBaseTest.java | 119 -
.../core/edm/primitivetype/UInt7Test.java | 33 -
odata4-lib/odata4-fit/pom.xml | 48 -
odata4-lib/odata4-ref/pom.xml | 50 -
odata4-lib/odata4-server-api/pom.xml | 45 -
.../odata4/server/api/edm/provider/Action.java | 54 -
.../server/api/edm/provider/ActionImport.java | 48 -
.../server/api/edm/provider/AliasInfo.java | 45 -
.../server/api/edm/provider/Annotation.java | 72 -
.../server/api/edm/provider/BindingTarget.java | 60 -
.../server/api/edm/provider/ComplexType.java | 62 -
.../server/api/edm/provider/EdmProvider.java | 182 -
.../api/edm/provider/EntityContainer.java | 93 -
.../api/edm/provider/EntityContainerInfo.java | 47 -
.../server/api/edm/provider/EntitySet.java | 55 -
.../server/api/edm/provider/EntitySetPath.java | 45 -
.../server/api/edm/provider/EntityType.java | 84 -
.../server/api/edm/provider/EnumMember.java | 49 -
.../server/api/edm/provider/EnumType.java | 73 -
.../server/api/edm/provider/Expression.java | 24 -
.../server/api/edm/provider/Function.java | 65 -
.../server/api/edm/provider/FunctionImport.java | 64 -
.../odata4/server/api/edm/provider/Mapping.java | 96 -
.../api/edm/provider/NavigationProperty.java | 118 -
.../edm/provider/NavigationPropertyBinding.java | 46 -
.../server/api/edm/provider/Operation.java | 81 -
.../api/edm/provider/OperationImport.java | 47 -
.../server/api/edm/provider/Parameter.java | 113 -
.../server/api/edm/provider/Property.java | 148 -
.../server/api/edm/provider/PropertyRef.java | 55 -
.../api/edm/provider/ReferentialConstraint.java | 46 -
.../server/api/edm/provider/ReturnType.java | 91 -
.../odata4/server/api/edm/provider/Schema.java | 135 -
.../server/api/edm/provider/Singleton.java | 44 -
.../server/api/edm/provider/StructuredType.java | 93 -
.../odata4/server/api/edm/provider/Term.java | 150 -
.../server/api/edm/provider/TypeDefinition.java | 94 -
.../olingo/odata4/server/api/uri/UriInfo.java | 48 -
.../odata4/server/api/uri/UriInfoAll.java | 28 -
.../odata4/server/api/uri/UriInfoBatch.java | 27 -
.../odata4/server/api/uri/UriInfoCrossjoin.java | 34 -
.../odata4/server/api/uri/UriInfoEntityId.java | 68 -
.../odata4/server/api/uri/UriInfoKind.java | 67 -
.../odata4/server/api/uri/UriInfoMetadata.java | 39 -
.../odata4/server/api/uri/UriInfoResource.java | 118 -
.../odata4/server/api/uri/UriInfoService.java | 27 -
.../odata4/server/api/uri/UriParameter.java | 53 -
.../odata4/server/api/uri/UriResource.java | 35 -
.../server/api/uri/UriResourceAction.java | 42 -
.../api/uri/UriResourceComplexProperty.java | 41 -
.../odata4/server/api/uri/UriResourceCount.java | 27 -
.../server/api/uri/UriResourceEntitySet.java | 58 -
.../server/api/uri/UriResourceFunction.java | 66 -
.../odata4/server/api/uri/UriResourceIt.java | 38 -
.../odata4/server/api/uri/UriResourceKind.java | 115 -
.../server/api/uri/UriResourceLambdaAll.java | 39 -
.../server/api/uri/UriResourceLambdaAny.java | 39 -
.../api/uri/UriResourceLambdaVariable.java | 33 -
.../server/api/uri/UriResourceNavigation.java | 51 -
.../server/api/uri/UriResourcePartTyped.java | 43 -
.../api/uri/UriResourcePrimitiveProperty.java | 27 -
.../server/api/uri/UriResourceProperty.java | 33 -
.../odata4/server/api/uri/UriResourceRef.java | 28 -
.../odata4/server/api/uri/UriResourceRoot.java | 28 -
.../server/api/uri/UriResourceSingleton.java | 46 -
.../odata4/server/api/uri/UriResourceValue.java | 27 -
.../api/uri/queryoption/AliasQueryOption.java | 27 -
.../server/api/uri/queryoption/CountOption.java | 25 -
.../api/uri/queryoption/CustomQueryOption.java | 23 -
.../uri/queryoption/ExceptionVisitExpand.java | 25 -
.../server/api/uri/queryoption/ExpandItem.java | 53 -
.../api/uri/queryoption/ExpandOption.java | 27 -
.../api/uri/queryoption/FilterOption.java | 26 -
.../api/uri/queryoption/FormatOption.java | 25 -
.../server/api/uri/queryoption/IdOption.java | 25 -
.../api/uri/queryoption/LevelsExpandOption.java | 27 -
.../server/api/uri/queryoption/OrderByItem.java | 33 -
.../api/uri/queryoption/OrderByOption.java | 27 -
.../server/api/uri/queryoption/QueryOption.java | 27 -
.../api/uri/queryoption/SearchOption.java | 27 -
.../server/api/uri/queryoption/SelectItem.java | 37 -
.../api/uri/queryoption/SelectOption.java | 27 -
.../server/api/uri/queryoption/SkipOption.java | 25 -
.../api/uri/queryoption/SkipTokenOption.java | 25 -
.../uri/queryoption/SupportedQueryOptions.java | 45 -
.../api/uri/queryoption/SystemQueryOption.java | 25 -
.../server/api/uri/queryoption/TopOption.java | 25 -
.../queryoption/expression/AliasExpression.java | 25 -
.../expression/BinaryExpression.java | 29 -
.../expression/BinaryOperatorKind.java | 57 -
.../uri/queryoption/expression/Enumeration.java | 31 -
.../uri/queryoption/expression/Expression.java | 23 -
.../expression/ExpressionVisitException.java | 25 -
.../expression/ExpressionVisitor.java | 57 -
.../uri/queryoption/expression/LambdaRef.java | 25 -
.../api/uri/queryoption/expression/Literal.java | 29 -
.../api/uri/queryoption/expression/Member.java | 36 -
.../uri/queryoption/expression/MethodCall.java | 29 -
.../queryoption/expression/MethodCallKind.java | 58 -
.../uri/queryoption/expression/TypeLiteral.java | 27 -
.../queryoption/expression/UnaryOperator.java | 27 -
.../expression/UnaryOperatorKind.java | 44 -
.../expression/VisitableExression.java | 47 -
.../uri/queryoption/search/SearchBinary.java | 29 -
.../search/SearchBinaryOperatorKind.java | 45 -
.../queryoption/search/SearchExpression.java | 23 -
.../api/uri/queryoption/search/SearchTerm.java | 25 -
.../api/uri/queryoption/search/SearchUnary.java | 25 -
.../search/SearchUnaryOperatorKind.java | 43 -
odata4-lib/odata4-server-core/pom.xml | 84 -
.../odata4/server/core/uri/antlr/UriLexer.g4 | 404 --
.../odata4/server/core/uri/antlr/UriParser.g4 | 439 --
.../server/core/edm/provider/EdmActionImpl.java | 36 -
.../core/edm/provider/EdmActionImportImpl.java | 43 -
.../core/edm/provider/EdmBindingTargetImpl.java | 77 -
.../core/edm/provider/EdmComplexTypeImpl.java | 58 -
.../edm/provider/EdmEntityContainerImpl.java | 111 -
.../core/edm/provider/EdmEntitySetImpl.java | 32 -
.../core/edm/provider/EdmEntityTypeImpl.java | 87 -
.../core/edm/provider/EdmEnumTypeImpl.java | 61 -
.../core/edm/provider/EdmFunctionImpl.java | 56 -
.../edm/provider/EdmFunctionImportImpl.java | 45 -
.../edm/provider/EdmKeyPropertyRefImpl.java | 48 -
.../edm/provider/EdmNavigationPropertyImpl.java | 71 -
.../core/edm/provider/EdmOperationImpl.java | 67 -
.../edm/provider/EdmOperationImportImpl.java | 33 -
.../core/edm/provider/EdmParameterImpl.java | 65 -
.../core/edm/provider/EdmPropertyImpl.java | 87 -
.../core/edm/provider/EdmProviderImpl.java | 287 -
.../core/edm/provider/EdmReturnTypeImpl.java | 59 -
.../edm/provider/EdmServiceMetadataImpl.java | 190 -
.../core/edm/provider/EdmSingletonImpl.java | 31 -
.../provider/EdmStructuredTypeHelperImpl.java | 72 -
.../edm/provider/EdmTypeDefinitionImpl.java | 74 -
.../odata4/server/core/uri/UriInfoImpl.java | 296 -
.../server/core/uri/UriParameterImpl.java | 82 -
.../server/core/uri/UriResourceActionImpl.java | 77 -
.../uri/UriResourceComplexPropertyImpl.java | 70 -
.../server/core/uri/UriResourceCountImpl.java | 35 -
.../core/uri/UriResourceEntitySetImpl.java | 66 -
.../core/uri/UriResourceFunctionImpl.java | 111 -
.../odata4/server/core/uri/UriResourceImpl.java | 39 -
.../server/core/uri/UriResourceItImpl.java | 65 -
.../core/uri/UriResourceLambdaAllImpl.java | 73 -
.../core/uri/UriResourceLambdaAnyImpl.java | 72 -
.../core/uri/UriResourceLambdaVarImpl.java | 70 -
.../uri/UriResourceNavigationPropertyImpl.java | 63 -
.../uri/UriResourcePrimitivePropertyImpl.java | 59 -
.../server/core/uri/UriResourceRefImpl.java | 36 -
.../server/core/uri/UriResourceRootImpl.java | 62 -
.../core/uri/UriResourceSingletonImpl.java | 71 -
.../uri/UriResourceStartingTypeFilterImpl.java | 66 -
.../server/core/uri/UriResourceTypedImpl.java | 60 -
.../server/core/uri/UriResourceValueImpl.java | 36 -
.../core/uri/UriResourceWithKeysImpl.java | 99 -
.../uri/parser/CheckFullContextListener.java | 60 -
.../odata4/server/core/uri/parser/Parser.java | 442 --
.../odata4/server/core/uri/parser/RawUri.java | 46 -
.../server/core/uri/parser/UriContext.java | 80 -
.../server/core/uri/parser/UriDecoder.java | 137 -
.../core/uri/parser/UriParseTreeVisitor.java | 2111 --------
.../core/uri/parser/UriParserException.java | 35 -
.../uri/parser/UriParserSemanticException.java | 33 -
.../uri/parser/UriParserSyntaxException.java | 36 -
.../uri/queryoption/AliasQueryOptionImpl.java | 38 -
.../core/uri/queryoption/CountOptionImpl.java | 42 -
.../uri/queryoption/CustomQueryOptionImpl.java | 25 -
.../core/uri/queryoption/ExpandItemImpl.java | 176 -
.../core/uri/queryoption/ExpandOptionImpl.java | 49 -
.../core/uri/queryoption/FilterOptionImpl.java | 43 -
.../core/uri/queryoption/FormatOptionImpl.java | 41 -
.../core/uri/queryoption/IdOptionImpl.java | 40 -
.../core/uri/queryoption/LevelsOptionImpl.java | 53 -
.../core/uri/queryoption/OrderByItemImpl.java | 49 -
.../core/uri/queryoption/OrderByOptionImpl.java | 50 -
.../core/uri/queryoption/QueryOptionImpl.java | 47 -
.../core/uri/queryoption/SearchOptionImpl.java | 37 -
.../core/uri/queryoption/SelectItemImpl.java | 84 -
.../core/uri/queryoption/SelectOptionImpl.java | 50 -
.../core/uri/queryoption/SkipOptionImpl.java | 41 -
.../uri/queryoption/SkipTokenOptionImpl.java | 41 -
.../uri/queryoption/SystemQueryOptionImpl.java | 42 -
.../core/uri/queryoption/TopOptionImpl.java | 42 -
.../uri/queryoption/expression/AliasImpl.java | 44 -
.../uri/queryoption/expression/BinaryImpl.java | 70 -
.../queryoption/expression/EnumerationImpl.java | 60 -
.../queryoption/expression/ExpressionImpl.java | 25 -
.../queryoption/expression/LambdaRefImpl.java | 46 -
.../uri/queryoption/expression/LiteralImpl.java | 58 -
.../uri/queryoption/expression/MemberImpl.java | 99 -
.../queryoption/expression/MethodCallImpl.java | 70 -
.../queryoption/expression/TypeLiteralImpl.java | 47 -
.../uri/queryoption/expression/UnaryImpl.java | 58 -
.../core/edm/provider/EdmActionImplTest.java | 156 -
.../edm/provider/EdmActionImportImplTest.java | 103 -
.../edm/provider/EdmComplexTypeImplTest.java | 163 -
.../provider/EdmEntityContainerImplTest.java | 205 -
.../core/edm/provider/EdmEntitySetImplTest.java | 81 -
.../edm/provider/EdmEntityTypeImplTest.java | 276 -
.../server/core/edm/provider/EdmEnumTest.java | 177 -
.../core/edm/provider/EdmFunctionImplTest.java | 75 -
.../edm/provider/EdmFunctionImportImplTest.java | 84 -
.../edm/provider/EdmKeyPropertyRefImplTest.java | 142 -
.../core/edm/provider/EdmMemberImplTest.java | 39 -
.../core/edm/provider/EdmNamedImplTest.java | 42 -
.../provider/EdmNavigationPropertyImplTest.java | 144 -
.../core/edm/provider/EdmParameterImplTest.java | 140 -
.../core/edm/provider/EdmPropertyImplTest.java | 155 -
.../EdmProviderImplOverloadingTest.java | 198 -
.../core/edm/provider/EdmProviderImplTest.java | 231 -
.../edm/provider/EdmReturnTypeImplTest.java | 129 -
.../provider/EdmServiceMetadataImplTest.java | 188 -
.../core/edm/provider/EdmSingletonImplTest.java | 129 -
.../edm/provider/EdmTypeDefinitionImplTest.java | 73 -
.../core/edm/provider/EdmTypeImplTest.java | 45 -
.../edm/provider/PrimitiveTypeBaseTest.java | 117 -
.../server/core/testutil/EdmTechProvider.java | 1976 -------
.../core/testutil/EdmTechTestProvider.java | 94 -
.../odata4/server/core/uri/RawUriTest.java | 151 -
.../odata4/server/core/uri/UriInfoImplTest.java | 201 -
.../server/core/uri/UriResourceImplTest.java | 504 --
.../core/uri/antlr/TestFullResourcePath.java | 5104 ------------------
.../odata4/server/core/uri/antlr/TestLexer.java | 250 -
.../core/uri/antlr/TestUriParserImpl.java | 1128 ----
.../core/uri/queryoption/QueryOptionTest.java | 303 --
.../queryoption/expression/ExpressionTest.java | 239 -
.../core/uri/testutil/ExpandValidator.java | 232 -
.../core/uri/testutil/FilterTreeToText.java | 154 -
.../core/uri/testutil/FilterValidator.java | 534 --
.../core/uri/testutil/ParseTreeToText.java | 82 -
.../core/uri/testutil/ParserValidator.java | 162 -
.../core/uri/testutil/ParserWithLogging.java | 56 -
.../core/uri/testutil/ResourceValidator.java | 595 --
.../core/uri/testutil/TestErrorLogger.java | 105 -
.../core/uri/testutil/TokenValidator.java | 194 -
.../core/uri/testutil/UriLexerWithTrace.java | 85 -
.../server/core/uri/testutil/UriValidator.java | 258 -
.../server/core/uri/testutil/Validator.java | 23 -
odata4-lib/pom.xml | 48 -
pom.xml | 5 +-
1573 files changed, 70237 insertions(+), 69835 deletions(-)
----------------------------------------------------------------------
[4/6] Merge from master
Posted by il...@apache.org.
http://git-wip-us.apache.org/repos/asf/incubator-olingo-odata4/blob/f70d3f0b/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/PropertyDeserializer.java
----------------------------------------------------------------------
diff --cc lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/PropertyDeserializer.java
index 0000000,89bdfcf..ce8e4aa
mode 000000,100644..100644
--- a/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/PropertyDeserializer.java
+++ b/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/PropertyDeserializer.java
@@@ -1,0 -1,104 +1,129 @@@
+ /*
+ * 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.client.core.edm.xml;
+
+ import com.fasterxml.jackson.core.JsonParser;
+ import com.fasterxml.jackson.core.JsonProcessingException;
+ import com.fasterxml.jackson.core.JsonToken;
+ import com.fasterxml.jackson.databind.DeserializationContext;
+
+ import java.io.IOException;
+
+ import org.apache.commons.lang3.BooleanUtils;
+ import org.apache.olingo.client.core.edm.xml.v4.AnnotationImpl;
+ import org.apache.olingo.client.core.op.impl.AbstractEdmDeserializer;
-import org.apache.olingo.commons.api.edm.constants.ConcurrencyMode;
+ import org.apache.olingo.commons.api.edm.constants.EdmContentKind;
+ import org.apache.olingo.commons.api.edm.constants.ODataServiceVersion;
-import org.apache.olingo.commons.api.edm.constants.StoreGeneratedPattern;
++import org.apache.olingo.odata4.client.api.edm.ConcurrencyMode;
++import org.apache.olingo.odata4.client.api.edm.StoreGeneratedPattern;
+
+ public class PropertyDeserializer extends AbstractEdmDeserializer<AbstractProperty> {
+
+ @Override
+ protected AbstractProperty doDeserialize(final JsonParser jp, final DeserializationContext ctxt)
+ throws IOException, JsonProcessingException {
+
+ final AbstractProperty property = ODataServiceVersion.V30 == client.getServiceVersion()
+ ? new org.apache.olingo.client.core.edm.xml.v3.PropertyImpl()
+ : new org.apache.olingo.client.core.edm.xml.v4.PropertyImpl();
+
+ for (; jp.getCurrentToken() != JsonToken.END_OBJECT; jp.nextToken()) {
+ final JsonToken token = jp.getCurrentToken();
+ if (token == JsonToken.FIELD_NAME) {
+ if ("Name".equals(jp.getCurrentName())) {
+ property.setName(jp.nextTextValue());
+ } else if ("Type".equals(jp.getCurrentName())) {
+ property.setType(jp.nextTextValue());
+ } else if ("Nullable".equals(jp.getCurrentName())) {
+ property.setNullable(BooleanUtils.toBoolean(jp.nextTextValue()));
+ } else if ("DefaultValue".equals(jp.getCurrentName())) {
+ property.setDefaultValue(jp.nextTextValue());
+ } else if ("MaxLength".equals(jp.getCurrentName())) {
+ final String maxLenght = jp.nextTextValue();
+ property.setMaxLength(maxLenght.equalsIgnoreCase("max") ? Integer.MAX_VALUE : Integer.valueOf(maxLenght));
+ } else if ("FixedLength".equals(jp.getCurrentName())) {
- property.setFixedLength(BooleanUtils.toBoolean(jp.nextTextValue()));
++ if (property instanceof org.apache.olingo.client.core.edm.xml.v3.PropertyImpl) {
++ ((org.apache.olingo.client.core.edm.xml.v3.PropertyImpl) property).
++ setFixedLength(BooleanUtils.toBoolean(jp.nextTextValue()));
++ }
+ } else if ("Precision".equals(jp.getCurrentName())) {
+ property.setPrecision(Integer.valueOf(jp.nextTextValue()));
+ } else if ("Scale".equals(jp.getCurrentName())) {
- property.setScale(Integer.valueOf(jp.nextTextValue()));
++ final String scale = jp.nextTextValue();
++ property.setScale(scale.equalsIgnoreCase("variable") ? 0 : Integer.valueOf(scale));
+ } else if ("Unicode".equals(jp.getCurrentName())) {
+ property.setUnicode(BooleanUtils.toBoolean(jp.nextTextValue()));
+ } else if ("Collation".equals(jp.getCurrentName())) {
- property.setCollation(jp.nextTextValue());
++ if (property instanceof org.apache.olingo.client.core.edm.xml.v3.PropertyImpl) {
++ ((org.apache.olingo.client.core.edm.xml.v3.PropertyImpl) property).
++ setCollation(jp.nextTextValue());
++ }
+ } else if ("SRID".equals(jp.getCurrentName())) {
+ property.setSrid(jp.nextTextValue());
+ } else if ("ConcurrencyMode".equals(jp.getCurrentName())) {
- property.setConcurrencyMode(ConcurrencyMode.valueOf(jp.nextTextValue()));
++ if (property instanceof org.apache.olingo.client.core.edm.xml.v3.PropertyImpl) {
++ ((org.apache.olingo.client.core.edm.xml.v3.PropertyImpl) property).
++ setConcurrencyMode(ConcurrencyMode.valueOf(jp.nextTextValue()));
++ }
+ } else if ("StoreGeneratedPattern".equals(jp.getCurrentName())) {
- property.setStoreGeneratedPattern(StoreGeneratedPattern.valueOf(jp.nextTextValue()));
++ if (property instanceof org.apache.olingo.client.core.edm.xml.v3.PropertyImpl) {
++ ((org.apache.olingo.client.core.edm.xml.v3.PropertyImpl) property).
++ setStoreGeneratedPattern(StoreGeneratedPattern.valueOf(jp.nextTextValue()));
++ }
+ } else if ("FC_SourcePath".equals(jp.getCurrentName())) {
- ((org.apache.olingo.client.core.edm.xml.v3.PropertyImpl) property).
- setFcSourcePath(jp.nextTextValue());
++ if (property instanceof org.apache.olingo.client.core.edm.xml.v3.PropertyImpl) {
++ ((org.apache.olingo.client.core.edm.xml.v3.PropertyImpl) property).
++ setFcSourcePath(jp.nextTextValue());
++ }
+ } else if ("FC_TargetPath".equals(jp.getCurrentName())) {
- ((org.apache.olingo.client.core.edm.xml.v3.PropertyImpl) property).
- setFcTargetPath(jp.nextTextValue());
++ if (property instanceof org.apache.olingo.client.core.edm.xml.v3.PropertyImpl) {
++ ((org.apache.olingo.client.core.edm.xml.v3.PropertyImpl) property).
++ setFcTargetPath(jp.nextTextValue());
++ }
+ } else if ("FC_ContentKind".equals(jp.getCurrentName())) {
- ((org.apache.olingo.client.core.edm.xml.v3.PropertyImpl) property).
- setFcContentKind(EdmContentKind.valueOf(jp.nextTextValue()));
++ if (property instanceof org.apache.olingo.client.core.edm.xml.v3.PropertyImpl) {
++ ((org.apache.olingo.client.core.edm.xml.v3.PropertyImpl) property).
++ setFcContentKind(EdmContentKind.valueOf(jp.nextTextValue()));
++ }
+ } else if ("FC_NsPrefix".equals(jp.getCurrentName())) {
- ((org.apache.olingo.client.core.edm.xml.v3.PropertyImpl) property).
- setFcNSPrefix(jp.nextTextValue());
++ if (property instanceof org.apache.olingo.client.core.edm.xml.v3.PropertyImpl) {
++ ((org.apache.olingo.client.core.edm.xml.v3.PropertyImpl) property).
++ setFcNSPrefix(jp.nextTextValue());
++ }
+ } else if ("FC_NsUri".equals(jp.getCurrentName())) {
- ((org.apache.olingo.client.core.edm.xml.v3.PropertyImpl) property).
- setFcNSURI(jp.nextTextValue());
++ if (property instanceof org.apache.olingo.client.core.edm.xml.v3.PropertyImpl) {
++ ((org.apache.olingo.client.core.edm.xml.v3.PropertyImpl) property).
++ setFcNSURI(jp.nextTextValue());
++ }
+ } else if ("FC_KeepInContent".equals(jp.getCurrentName())) {
- ((org.apache.olingo.client.core.edm.xml.v3.PropertyImpl) property).
- setFcKeepInContent(BooleanUtils.toBoolean(jp.nextTextValue()));
++ if (property instanceof org.apache.olingo.client.core.edm.xml.v3.PropertyImpl) {
++ ((org.apache.olingo.client.core.edm.xml.v3.PropertyImpl) property).
++ setFcKeepInContent(BooleanUtils.toBoolean(jp.nextTextValue()));
++ }
+ } else if ("Annotation".equals(jp.getCurrentName())) {
+ ((org.apache.olingo.client.core.edm.xml.v4.PropertyImpl) property).
+ setAnnotation(jp.readValueAs(AnnotationImpl.class));
+ }
+ }
+ }
+
+ return property;
+ }
+
+ }
http://git-wip-us.apache.org/repos/asf/incubator-olingo-odata4/blob/f70d3f0b/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/v3/PropertyImpl.java
----------------------------------------------------------------------
diff --cc lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/v3/PropertyImpl.java
index 0000000,c2fc43c..53b3230
mode 000000,100644..100644
--- a/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/v3/PropertyImpl.java
+++ b/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/v3/PropertyImpl.java
@@@ -1,0 -1,95 +1,141 @@@
+ /*
+ * 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.client.core.edm.xml.v3;
+
+ import org.apache.olingo.client.api.edm.xml.v3.Property;
+ import org.apache.olingo.client.core.edm.xml.AbstractProperty;
+ import org.apache.olingo.commons.api.edm.constants.EdmContentKind;
++import org.apache.olingo.odata4.client.api.edm.ConcurrencyMode;
++import org.apache.olingo.odata4.client.api.edm.StoreGeneratedPattern;
+
+ public class PropertyImpl extends AbstractProperty implements Property {
+
+ private static final long serialVersionUID = 6224524803474652100L;
+
++ private String collation;
++
++ private boolean fixedLength;
++
++ private ConcurrencyMode concurrencyMode;
++
++ private StoreGeneratedPattern storeGeneratedPattern = StoreGeneratedPattern.None;
++
+ private String fcSourcePath;
+
+ private String fcTargetPath;
+
+ private EdmContentKind fcContentKind = EdmContentKind.text;
+
+ private String fcNSPrefix;
+
+ private String fcNSURI;
+
+ private boolean fcKeepInContent = true;
+
+ @Override
++ public boolean isFixedLength() {
++ return fixedLength;
++ }
++
++ public void setFixedLength(final boolean fixedLength) {
++ this.fixedLength = fixedLength;
++ }
++
++ @Override
++ public String getCollation() {
++ return collation;
++ }
++
++ public void setCollation(final String collation) {
++ this.collation = collation;
++ }
++
++ @Override
++ public ConcurrencyMode getConcurrencyMode() {
++ return concurrencyMode;
++ }
++
++ public void setConcurrencyMode(final ConcurrencyMode concurrencyMode) {
++ this.concurrencyMode = concurrencyMode;
++ }
++
++ @Override
++ public StoreGeneratedPattern getStoreGeneratedPattern() {
++ return storeGeneratedPattern;
++ }
++
++ public void setStoreGeneratedPattern(final StoreGeneratedPattern storeGeneratedPattern) {
++ this.storeGeneratedPattern = storeGeneratedPattern;
++ }
++
++ @Override
+ public String getFcSourcePath() {
+ return fcSourcePath;
+ }
+
+ public void setFcSourcePath(final String fcSourcePath) {
+ this.fcSourcePath = fcSourcePath;
+ }
+
+ @Override
+ public String getFcTargetPath() {
+ return fcTargetPath;
+ }
+
+ public void setFcTargetPath(final String fcTargetPath) {
+ this.fcTargetPath = fcTargetPath;
+ }
+
+ @Override
+ public EdmContentKind getFcContentKind() {
+ return fcContentKind;
+ }
+
+ public void setFcContentKind(final EdmContentKind fcContentKind) {
+ this.fcContentKind = fcContentKind;
+ }
+
+ @Override
+ public String getFcNSPrefix() {
+ return fcNSPrefix;
+ }
+
+ public void setFcNSPrefix(final String fcNSPrefix) {
+ this.fcNSPrefix = fcNSPrefix;
+ }
+
+ @Override
+ public String getFcNSURI() {
+ return fcNSURI;
+ }
+
+ public void setFcNSURI(final String fcNSURI) {
+ this.fcNSURI = fcNSURI;
+ }
+
+ @Override
+ public boolean isFcKeepInContent() {
+ return fcKeepInContent;
+ }
+
+ public void setFcKeepInContent(final boolean fcKeepInContent) {
+ this.fcKeepInContent = fcKeepInContent;
+ }
+
+ }
http://git-wip-us.apache.org/repos/asf/incubator-olingo-odata4/blob/f70d3f0b/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/v4/ReturnTypeDeserializer.java
----------------------------------------------------------------------
diff --cc lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/v4/ReturnTypeDeserializer.java
index 0000000,f51a850..89c4070
mode 000000,100644..100644
--- a/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/v4/ReturnTypeDeserializer.java
+++ b/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/v4/ReturnTypeDeserializer.java
@@@ -1,0 -1,62 +1,63 @@@
+ /*
+ * 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.client.core.edm.xml.v4;
+
+ import com.fasterxml.jackson.core.JsonParser;
+ import com.fasterxml.jackson.core.JsonProcessingException;
+ import com.fasterxml.jackson.core.JsonToken;
+ import com.fasterxml.jackson.databind.DeserializationContext;
+
+ import java.io.IOException;
+
+ import org.apache.commons.lang3.BooleanUtils;
+ import org.apache.olingo.client.core.op.impl.AbstractEdmDeserializer;
+
+ public class ReturnTypeDeserializer extends AbstractEdmDeserializer<ReturnTypeImpl> {
+
+ @Override
+ protected ReturnTypeImpl doDeserialize(final JsonParser jp, final DeserializationContext ctxt)
+ throws IOException, JsonProcessingException {
+
+ final ReturnTypeImpl returnType = new ReturnTypeImpl();
+
+ for (; jp.getCurrentToken() != JsonToken.END_OBJECT; jp.nextToken()) {
+ final JsonToken token = jp.getCurrentToken();
+ if (token == JsonToken.FIELD_NAME) {
+ if ("Type".equals(jp.getCurrentName())) {
+ returnType.setType(jp.nextTextValue());
+ } else if ("Nullable".equals(jp.getCurrentName())) {
+ returnType.setNullable(BooleanUtils.toBoolean(jp.nextTextValue()));
+ } else if ("MaxLength".equals(jp.getCurrentName())) {
+ final String maxLenght = jp.nextTextValue();
+ returnType.setMaxLength(maxLenght.equalsIgnoreCase("max") ? Integer.MAX_VALUE : Integer.valueOf(maxLenght));
+ } else if ("Precision".equals(jp.getCurrentName())) {
+ returnType.setPrecision(Integer.valueOf(jp.nextTextValue()));
+ } else if ("Scale".equals(jp.getCurrentName())) {
- returnType.setScale(Integer.valueOf(jp.nextTextValue()));
++ final String scale = jp.nextTextValue();
++ returnType.setScale(scale.equalsIgnoreCase("variable") ? 0 : Integer.valueOf(scale));
+ } else if ("SRID".equals(jp.getCurrentName())) {
+ returnType.setSrid(jp.nextTextValue());
+ }
+ }
+ }
+
+ return returnType;
+ }
+
+ }
http://git-wip-us.apache.org/repos/asf/incubator-olingo-odata4/blob/f70d3f0b/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/v4/TermDeserializer.java
----------------------------------------------------------------------
diff --cc lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/v4/TermDeserializer.java
index 0000000,9d4e803..f1b756e
mode 000000,100644..100644
--- a/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/v4/TermDeserializer.java
+++ b/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/v4/TermDeserializer.java
@@@ -1,0 -1,77 +1,78 @@@
+ /*
+ * 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.client.core.edm.xml.v4;
+
+ import com.fasterxml.jackson.core.JsonParser;
+ import com.fasterxml.jackson.core.JsonProcessingException;
+ import com.fasterxml.jackson.core.JsonToken;
+ import com.fasterxml.jackson.databind.DeserializationContext;
+
+ import java.io.IOException;
+
+ import org.apache.commons.lang3.BooleanUtils;
+ import org.apache.commons.lang3.StringUtils;
+ import org.apache.olingo.client.api.edm.xml.v4.CSDLElement;
+ import org.apache.olingo.client.core.op.impl.AbstractEdmDeserializer;
+
+ public class TermDeserializer extends AbstractEdmDeserializer<TermImpl> {
+
+ @Override
+ protected TermImpl doDeserialize(final JsonParser jp, final DeserializationContext ctxt)
+ throws IOException, JsonProcessingException {
+
+ final TermImpl term = new TermImpl();
+
+ for (; jp.getCurrentToken() != JsonToken.END_OBJECT; jp.nextToken()) {
+ final JsonToken token = jp.getCurrentToken();
+ if (token == JsonToken.FIELD_NAME) {
+ if ("Name".equals(jp.getCurrentName())) {
+ term.setName(jp.nextTextValue());
+ } else if ("Type".equals(jp.getCurrentName())) {
+ term.setType(jp.nextTextValue());
+ } else if ("BaseTerm".equals(jp.getCurrentName())) {
+ term.setBaseTerm(jp.nextTextValue());
+ } else if ("DefaultValue".equals(jp.getCurrentName())) {
+ term.setDefaultValue(jp.nextTextValue());
+ } else if ("Nullable".equals(jp.getCurrentName())) {
+ term.setNullable(BooleanUtils.toBoolean(jp.nextTextValue()));
+ } else if ("MaxLength".equals(jp.getCurrentName())) {
+ final String maxLenght = jp.nextTextValue();
+ term.setMaxLength(maxLenght.equalsIgnoreCase("max") ? Integer.MAX_VALUE : Integer.valueOf(maxLenght));
+ } else if ("Precision".equals(jp.getCurrentName())) {
+ term.setPrecision(Integer.valueOf(jp.nextTextValue()));
+ } else if ("Scale".equals(jp.getCurrentName())) {
- term.setScale(Integer.valueOf(jp.nextTextValue()));
++ final String scale = jp.nextTextValue();
++ term.setScale(scale.equalsIgnoreCase("variable") ? 0 : Integer.valueOf(scale));
+ } else if ("SRID".equals(jp.getCurrentName())) {
+ term.setSrid(jp.nextTextValue());
+ } else if ("AppliesTo".equals(jp.getCurrentName())) {
+ for (String split : StringUtils.split(jp.nextTextValue())) {
+ term.getAppliesTo().add(CSDLElement.valueOf(split));
+ }
+ } else if ("Annotation".equals(jp.getCurrentName())) {
+ jp.nextToken();
+ term.setAnnotation(jp.readValueAs(AnnotationImpl.class));
+ }
+ }
+ }
+
+ return term;
+ }
+
+ }
http://git-wip-us.apache.org/repos/asf/incubator-olingo-odata4/blob/f70d3f0b/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/v4/TypeDefinitionDeserializer.java
----------------------------------------------------------------------
diff --cc lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/v4/TypeDefinitionDeserializer.java
index 0000000,f951c77..28dee4d
mode 000000,100644..100644
--- a/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/v4/TypeDefinitionDeserializer.java
+++ b/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/v4/TypeDefinitionDeserializer.java
@@@ -1,0 -1,66 +1,67 @@@
+ /*
+ * 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.client.core.edm.xml.v4;
+
+ import com.fasterxml.jackson.core.JsonParser;
+ import com.fasterxml.jackson.core.JsonProcessingException;
+ import com.fasterxml.jackson.core.JsonToken;
+ import com.fasterxml.jackson.databind.DeserializationContext;
+
+ import java.io.IOException;
+
+ import org.apache.commons.lang3.BooleanUtils;
+ import org.apache.olingo.client.core.op.impl.AbstractEdmDeserializer;
+
+ public class TypeDefinitionDeserializer extends AbstractEdmDeserializer<TypeDefinitionImpl> {
+
+ @Override
+ protected TypeDefinitionImpl doDeserialize(final JsonParser jp, final DeserializationContext ctxt)
+ throws IOException, JsonProcessingException {
+
+ final TypeDefinitionImpl typeDefinition = new TypeDefinitionImpl();
+
+ for (; jp.getCurrentToken() != JsonToken.END_OBJECT; jp.nextToken()) {
+ final JsonToken token = jp.getCurrentToken();
+ if (token == JsonToken.FIELD_NAME) {
+ if ("Name".equals(jp.getCurrentName())) {
+ typeDefinition.setName(jp.nextTextValue());
+ } else if ("UnderlyingType".equals(jp.getCurrentName())) {
+ typeDefinition.setUnderlyingType(jp.nextTextValue());
+ } else if ("MaxLength".equals(jp.getCurrentName())) {
+ typeDefinition.setMaxLength(jp.nextIntValue(0));
+ } else if ("Unicode".equals(jp.getCurrentName())) {
+ typeDefinition.setUnicode(BooleanUtils.toBoolean(jp.nextTextValue()));
+ } else if ("Precision".equals(jp.getCurrentName())) {
+ typeDefinition.setPrecision(jp.nextIntValue(0));
+ } else if ("Scale".equals(jp.getCurrentName())) {
- typeDefinition.setScale(jp.nextIntValue(0));
++ final String scale = jp.nextTextValue();
++ typeDefinition.setScale(scale.equalsIgnoreCase("variable") ? 0 : Integer.valueOf(scale));
+ } else if ("SRID".equals(jp.getCurrentName())) {
+ typeDefinition.setSrid(jp.nextTextValue());
+ } else if ("Annotation".equals(jp.getCurrentName())) {
+ jp.nextToken();
+ typeDefinition.getAnnotations().add(jp.readValueAs(AnnotationImpl.class));
+ }
+ }
+ }
+
+ return typeDefinition;
+ }
+
+ }
http://git-wip-us.apache.org/repos/asf/incubator-olingo-odata4/blob/f70d3f0b/lib/client-core/src/test/java/org/apache/olingo/client/core/v4/MetadataTest.java
----------------------------------------------------------------------
diff --cc lib/client-core/src/test/java/org/apache/olingo/client/core/v4/MetadataTest.java
index 0000000,f183ff3..78e925a
mode 000000,100644..100644
--- a/lib/client-core/src/test/java/org/apache/olingo/client/core/v4/MetadataTest.java
+++ b/lib/client-core/src/test/java/org/apache/olingo/client/core/v4/MetadataTest.java
@@@ -1,0 -1,286 +1,282 @@@
+ /*
+ * 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.client.core.v4;
+
+ import static org.junit.Assert.assertEquals;
+ import static org.junit.Assert.assertNotNull;
+ import static org.junit.Assert.assertNull;
+ import static org.junit.Assert.assertFalse;
+ import static org.junit.Assert.assertTrue;
+
+ import org.apache.olingo.client.api.ODataV4Client;
+ import org.apache.olingo.client.api.edm.xml.v4.Annotation;
+ import org.apache.olingo.client.api.edm.xml.v4.Annotations;
+ import org.apache.olingo.client.api.edm.xml.v4.ComplexType;
+ import org.apache.olingo.client.api.edm.xml.v4.EntityContainer;
+ import org.apache.olingo.client.api.edm.xml.v4.EntityType;
+ import org.apache.olingo.client.api.edm.xml.v4.Function;
+ import org.apache.olingo.client.api.edm.xml.v4.FunctionImport;
+ import org.apache.olingo.client.api.edm.xml.v4.Schema;
+ import org.apache.olingo.client.api.edm.xml.v4.Singleton;
+ import org.apache.olingo.client.api.edm.xml.v4.XMLMetadata;
+ import org.apache.olingo.client.core.AbstractTest;
+ import org.apache.olingo.client.core.edm.xml.v4.annotation.Apply;
+ import org.apache.olingo.client.core.edm.xml.v4.annotation.Collection;
+ import org.apache.olingo.client.core.edm.xml.v4.annotation.ConstExprConstructImpl;
+ import org.apache.olingo.client.core.edm.xml.v4.annotation.Path;
+ import org.apache.olingo.commons.api.edm.Edm;
+ import org.apache.olingo.commons.api.edm.EdmAction;
+ import org.apache.olingo.commons.api.edm.EdmComplexType;
+ import org.apache.olingo.commons.api.edm.EdmEntityContainer;
+ import org.apache.olingo.commons.api.edm.EdmEntitySet;
+ import org.apache.olingo.commons.api.edm.EdmEntityType;
+ import org.apache.olingo.commons.api.edm.EdmEnumType;
+ import org.apache.olingo.commons.api.edm.EdmFunction;
+ import org.apache.olingo.commons.api.edm.EdmFunctionImport;
+ import org.apache.olingo.commons.api.edm.EdmFunctionImportInfo;
+ import org.apache.olingo.commons.api.edm.FullQualifiedName;
+ import org.apache.olingo.commons.api.edm.constants.EdmTypeKind;
-import org.apache.olingo.commons.api.edm.constants.StoreGeneratedPattern;
+ import org.apache.olingo.commons.core.edm.primitivetype.EdmPrimitiveTypeKind;
+ import org.junit.Test;
+
+ public class MetadataTest extends AbstractTest {
+
+ @Override
+ protected ODataV4Client getClient() {
+ return v4Client;
+ }
+
+ @Test
+ public void parse() {
+ final Edm edm = getClient().getReader().
+ readMetadata(getClass().getResourceAsStream("metadata.xml"));
+ assertNotNull(edm);
+
+ // 1. Enum
+ final EdmEnumType responseEnumType = edm.getEnumType(
+ new FullQualifiedName("Microsoft.Exchange.Services.OData.Model", "ResponseType"));
+ assertNotNull(responseEnumType);
+ assertEquals(6, responseEnumType.getMemberNames().size());
+ assertEquals("3", responseEnumType.getMember("Accepted").getValue());
+ assertEquals(EdmTypeKind.ENUM, responseEnumType.getKind());
+
+ // 2. Complex
+ final EdmComplexType responseStatus = edm.getComplexType(
+ new FullQualifiedName("Microsoft.Exchange.Services.OData.Model", "ResponseStatus"));
+ assertNotNull(responseStatus);
+ assertTrue(responseStatus.getNavigationPropertyNames().isEmpty());
+ assertEquals("Recipient", responseStatus.getBaseType().getName());
+ assertEquals(EdmPrimitiveTypeKind.DateTimeOffset.getEdmPrimitiveTypeInstance(),
+ responseStatus.getProperty("Time").getType());
+
+ // 3. Entity
+ final EdmEntityType user = edm.getEntityType(
+ new FullQualifiedName("Microsoft.Exchange.Services.OData.Model", "User"));
+ assertNotNull(user);
+ final EdmEntityType entity = edm.getEntityType(
+ new FullQualifiedName("Microsoft.Exchange.Services.OData.Model", "Entity"));
+ assertEquals(entity, user.getBaseType());
+ assertFalse(user.getPropertyNames().isEmpty());
+ assertFalse(user.getNavigationPropertyNames().isEmpty());
+ final EdmEntityType folder = edm.getEntityType(
+ new FullQualifiedName("Microsoft.Exchange.Services.OData.Model", "Folder"));
+ assertEquals(folder, user.getNavigationProperty("Inbox").getType());
+
+ // 4. Action
+ final EdmAction move = edm.getAction(
+ new FullQualifiedName("Microsoft.Exchange.Services.OData.Model", "Move"),
+ new FullQualifiedName("Microsoft.Exchange.Services.OData.Model", "Folder"),
+ false);
+ assertNotNull(move);
+ assertTrue(move.isBound());
+ assertEquals(2, move.getParameterNames().size());
+ assertEquals(
+ EdmPrimitiveTypeKind.String.getEdmPrimitiveTypeInstance(), move.getParameter("DestinationId").getType());
+
+ // 5. EntityContainer
+ final EdmEntityContainer container = edm.getEntityContainer(
+ new FullQualifiedName("Microsoft.Exchange.Services.OData.Model", "EntityContainer"));
+ assertNotNull(container);
+ final EdmEntitySet users = container.getEntitySet("Users");
+ assertNotNull(users);
+ assertEquals(edm.getEntityType(new FullQualifiedName(container.getNamespace(), "User")),
+ users.getEntityType());
+ assertEquals(container.getEntitySet("Folders"), users.getRelatedBindingTarget("Folders"));
+ }
+
+ @Test
+ public void demo() {
+ final XMLMetadata metadata = getClient().getDeserializer().
+ toMetadata(getClass().getResourceAsStream("demo-metadata.xml"));
+ assertNotNull(metadata);
+
+ assertFalse(metadata.getSchema(0).getAnnotationsList().isEmpty());
+ final Annotations annots = metadata.getSchema(0).getAnnotationsList("ODataDemo.DemoService/Suppliers");
+ assertNotNull(annots);
+ assertFalse(annots.getAnnotations().isEmpty());
+ assertEquals(ConstExprConstructImpl.Type.String,
+ annots.getAnnotation("Org.OData.Publication.V1.PrivacyPolicyUrl").getConstExpr().getType());
+ assertEquals("http://www.odata.org/",
+ annots.getAnnotation("Org.OData.Publication.V1.PrivacyPolicyUrl").getConstExpr().getValue());
+ }
+
+ @Test
+ public void multipleSchemas() {
+ final XMLMetadata metadata = getClient().getDeserializer().
+ toMetadata(getClass().getResourceAsStream("northwind-metadata.xml"));
+ assertNotNull(metadata);
+
+ final Schema first = metadata.getSchema("NorthwindModel");
+ assertNotNull(first);
+
+ final Schema second = metadata.getSchema("ODataWebExperimental.Northwind.Model");
+ assertNotNull(second);
+
- assertEquals(StoreGeneratedPattern.Identity,
- first.getEntityType("Category").getProperty("CategoryID").getStoreGeneratedPattern());
-
+ final EntityContainer entityContainer = second.getEntityContainer();
+ assertNotNull(entityContainer);
+ assertEquals("NorthwindEntities", entityContainer.getName());
+ assertTrue(entityContainer.isLazyLoadingEnabled());
+ }
+
+ /**
+ * Tests Example 85 from CSDL specification.
+ */
+ @Test
+ public void fromdoc1() {
+ final XMLMetadata metadata = getClient().getDeserializer().
+ toMetadata(getClass().getResourceAsStream("fromdoc1-metadata.xml"));
+ assertNotNull(metadata);
+
+ assertFalse(metadata.getReferences().isEmpty());
+ assertEquals("Org.OData.Measures.V1", metadata.getReferences().get(1).getIncludes().get(0).getNamespace());
+
+ final EntityType product = metadata.getSchema(0).getEntityType("Product");
+ assertTrue(product.isHasStream());
+ assertEquals("UoM.ISOCurrency", product.getProperty("Price").getAnnotation().getTerm());
+ assertEquals("Products", product.getNavigationProperty("Supplier").getPartner());
+
+ final EntityType category = metadata.getSchema(0).getEntityType("Category");
+ assertNotNull(category);
+
+ final ComplexType address = metadata.getSchema(0).getComplexType("Address");
+ assertFalse(address.getNavigationProperty("Country").getReferentialConstraints().isEmpty());
+ assertEquals("Name",
+ address.getNavigationProperty("Country").getReferentialConstraints().get(0).getReferencedProperty());
+
+ final Function productsByRating = metadata.getSchema(0).getFunctions("ProductsByRating").get(0);
+ assertNotNull(productsByRating.getParameter("Rating"));
+ assertEquals("Edm.Int32", productsByRating.getParameter("Rating").getType());
+ assertEquals("Collection(ODataDemo.Product)", productsByRating.getReturnType().getType());
+
+ final Singleton contoso = metadata.getSchema(0).getEntityContainer().getSingleton("Contoso");
+ assertNotNull(contoso);
+ assertFalse(contoso.getNavigationPropertyBindings().isEmpty());
+ assertEquals("Products", contoso.getNavigationPropertyBindings().get(0).getPath());
+
+ final FunctionImport functionImport = metadata.getSchema(0).getEntityContainer().
+ getFunctionImport("ProductsByRating");
+ assertNotNull(functionImport);
+ assertEquals(metadata.getSchema(0).getNamespace() + "." + productsByRating.getName(),
+ functionImport.getFunction());
+
+ // Now let's go high-level
+ final Edm edm = getClient().getReader().
+ readMetadata(getClass().getResourceAsStream("fromdoc1-metadata.xml"));
+ assertNotNull(edm);
+
+ final EdmFunctionImportInfo fiInfo = edm.getServiceMetadata().getFunctionImportInfos().get(0);
+ final EdmEntityContainer demoService = edm.getEntityContainer(
+ new FullQualifiedName(metadata.getSchema(0).getNamespace(), fiInfo.getEntityContainerName()));
+ assertNotNull(demoService);
+ final EdmFunctionImport fi = demoService.getFunctionImport(fiInfo.getFunctionImportName());
+ assertNotNull(fi);
+ assertEquals(demoService.getEntitySet("Products"), fi.getReturnedEntitySet());
+
+ final EdmFunction function = edm.getFunction(
+ new FullQualifiedName(metadata.getSchema(0).getNamespace(), "ProductsByRating"),
+ null, Boolean.FALSE, null);
+ assertNotNull(function);
+ assertEquals(function.getName(), fi.getFunction(null).getName());
+ assertEquals(function.getNamespace(), fi.getFunction(null).getNamespace());
+ assertEquals(function.getParameterNames(), fi.getFunction(null).getParameterNames());
+ assertEquals(function.getReturnType().getType().getName(),
+ fi.getFunction(null).getReturnType().getType().getName());
+ assertEquals(function.getReturnType().getType().getNamespace(),
+ fi.getFunction(null).getReturnType().getType().getNamespace());
+ }
+
+ /**
+ * Tests Example 86 from CSDL specification.
+ */
+ @Test
+ public void fromdoc2() {
+ final XMLMetadata metadata = getClient().getDeserializer().
+ toMetadata(getClass().getResourceAsStream("fromdoc2-metadata.xml"));
+ assertNotNull(metadata);
+
+ // Check displayName
+ final Annotation displayName = metadata.getSchema(0).getAnnotationsList("ODataDemo.Supplier").
+ getAnnotation("Vocabulary1.DisplayName");
+ assertNotNull(displayName);
+ assertNull(displayName.getConstExpr());
+ assertNotNull(displayName.getDynExpr());
+
+ assertTrue(displayName.getDynExpr() instanceof Apply);
+ final Apply apply = (Apply) displayName.getDynExpr();
+ assertEquals(Apply.CANONICAL_FUNCTION_CONCAT, apply.getFunction());
+ assertEquals(3, apply.getParameters().size());
+
+ final Path firstArg = new Path();
+ firstArg.setValue("Name");
+ assertEquals(firstArg, apply.getParameters().get(0));
+
+ final ConstExprConstructImpl secondArg = new ConstExprConstructImpl();
+ secondArg.setType(ConstExprConstructImpl.Type.String);
+ secondArg.setValue(" in ");
+ assertEquals(secondArg, apply.getParameters().get(1));
+
+ final Path thirdArg = new Path();
+ thirdArg.setValue("Address/CountryName");
+ assertEquals(thirdArg, apply.getParameters().get(2));
+
+ // Check Tags
+ final Annotation tags = metadata.getSchema(0).getAnnotationsList("ODataDemo.Product").
+ getAnnotation("Vocabulary1.Tags");
+ assertNotNull(tags);
+ assertNull(tags.getConstExpr());
+ assertNotNull(tags.getDynExpr());
+
+ assertTrue(tags.getDynExpr() instanceof Collection);
+ final Collection collection = (Collection) tags.getDynExpr();
+ assertEquals(1, collection.getItems().size());
+ assertEquals(ConstExprConstructImpl.Type.String, ((ConstExprConstructImpl) collection.getItems().get(0)).getType());
+ assertEquals("MasterData", ((ConstExprConstructImpl) collection.getItems().get(0)).getValue());
+ }
+
+ /**
+ * Various annotation examples taken from CSDL specification.
+ */
+ @Test
+ public void fromdoc3() {
+ final Edm metadata = getClient().getReader().
+ readMetadata(getClass().getResourceAsStream("fromdoc3-metadata.xml"));
+ assertNotNull(metadata);
+ }
+
+ }
http://git-wip-us.apache.org/repos/asf/incubator-olingo-odata4/blob/f70d3f0b/lib/commons-api/src/main/java/org/apache/olingo/commons/api/edm/EdmPrimitiveType.java
----------------------------------------------------------------------
diff --cc lib/commons-api/src/main/java/org/apache/olingo/commons/api/edm/EdmPrimitiveType.java
index 0000000,7ce5c9a..d5b7e6d
mode 000000,100644..100644
--- a/lib/commons-api/src/main/java/org/apache/olingo/commons/api/edm/EdmPrimitiveType.java
+++ b/lib/commons-api/src/main/java/org/apache/olingo/commons/api/edm/EdmPrimitiveType.java
@@@ -1,0 -1,166 +1,166 @@@
+ /*
+ * 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.commons.api.edm;
+
+ /**
+ * EdmPrimitiveType is a primitive type as defined in the Entity Data Model (EDM).
+ * <br/>
+ * There are methods to convert EDM primitive types from and to Java objects, respectively. The following Java types are
+ * supported:
+ * <table frame="hsides" rules="groups">
+ * <thead>
+ * <tr><th>EDM primitive type</th><th>Java types</th></tr>
+ * </thead>
+ * <tbody>
+ * <tr><td>Binary</td><td>byte[], {@link Byte}[]</td></tr>
+ * <tr><td>Boolean</td><td>{@link Boolean}</td></tr>
+ * <tr><td>Byte</td><td>{@link Short}, {@link Byte}, {@link Integer}, {@link Long}, {@link java.math.BigInteger}
+ * </td></tr>
+ * <tr><td>Date</td><td>{@link java.util.Calendar}, {@link java.util.Date}, {@link Long}</td></tr>
+ * <tr><td>DateTimeOffset</td><td>{@link java.util.Calendar}, {@link java.util.Date}, {@link Long}</td></tr>
+ * <tr><td>Decimal</td><td>{@link java.math.BigDecimal}, {@link java.math.BigInteger}, {@link Double}, {@link Float},
+ * {@link Byte}, {@link Short}, {@link Integer}, {@link Long}</td></tr>
+ * <tr><td>Double</td><td>{@link Double}, {@link Float}, {@link java.math.BigDecimal}, {@link Byte}, {@link Short},
+ * {@link Integer}, {@link Long}</td></tr>
+ * <tr><td>Duration</td><td>{@link java.math.BigDecimal}, {@link java.math.BigInteger}, {@link Double}, {@link Float},
+ * {@link Byte}, {@link Short}, {@link Integer}, {@link Long}</td></tr>
+ * <tr><td>Guid</td><td>{@link java.util.UUID}</td></tr>
+ * <tr><td>Int16</td><td>{@link Short}, {@link Byte}, {@link Integer}, {@link Long}, {@link java.math.BigInteger}
+ * </td></tr>
+ * <tr><td>Int32</td><td>{@link Integer}, {@link Byte}, {@link Short}, {@link Long}, {@link java.math.BigInteger}
+ * </td></tr>
+ * <tr><td>Int64</td><td>{@link Long}, {@link Byte}, {@link Short}, {@link Integer}, {@link java.math.BigInteger}
+ * </td></tr>
+ * <tr><td>SByte</td><td>{@link Byte}, {@link Short}, {@link Integer}, {@link Long}, {@link java.math.BigInteger}
+ * </td></tr>
+ * <tr><td>Single</td><td>{@link Float}, {@link Double}, {@link java.math.BigDecimal}, {@link Byte}, {@link Short},
+ * {@link Integer}, {@link Long}</td></tr>
+ * <tr><td>String</td><td>{@link String}</td></tr>
+ * <tr><td>TimeOfDay</td><td>{@link java.util.Calendar}, {@link java.util.Date}, {@link Long}</td></tr>
+ * </tbody>
+ * </table>
+ * <p>
+ * The first Java type is the default type for the respective EDM primitive type.
+ * </p>
+ * <p>
+ * For all EDM primitive types, the <code>Nullable</code> facet is taken into account. For <code>Binary</code> and
+ * <code>String</code>, <code>MaxLength</code> is also applicable. For <code>String</code>, the facet
+ * <code>Unicode</code> is considered additionally. The EDM primitive types <code>DateTimeOffset</code>,
+ * <code>Decimal</code>, <code>Duration</code>, and <code>TimeOfDay</code> can have a <code>Precision</code> facet.
+ * Additionally, <code>Decimal</code> can have the facet <code>Scale</code>.
+ * </p>
+ */
+ public interface EdmPrimitiveType extends EdmType {
+
- static final String EDM_NAMESPACE = "Edm";
++ String EDM_NAMESPACE = "Edm";
+
- static final String SYSTEM_NAMESPACE = "System";
++ String SYSTEM_NAMESPACE = "System";
+
+ /**
+ * Checks type compatibility.
+ *
+ * @param primitiveType the {@link EdmPrimitiveType} to be tested for compatibility
+ * @return <code>true</code> if the provided type is compatible to this type
+ */
+ boolean isCompatible(EdmPrimitiveType primitiveType);
+
+ /**
+ * Returns the default Java type for this EDM primitive type as described in the documentation of
+ * {@link EdmPrimitiveType}.
+ *
+ * @return the default Java type
+ */
+ Class<?> getDefaultType();
+
+ /**
+ * Validates literal value.
+ *
+ * @param value the literal value
+ * @param isNullable whether the <code>null</code> value is allowed
+ * @param maxLength the maximum length
+ * @param precision the precision
+ * @param scale the scale
+ * @param isUnicode whether non-ASCII characters are allowed (relevant only for Edm.String)
+ * @return <code>true</code> if the validation is successful
+ */
+ boolean validate(String value,
+ Boolean isNullable, Integer maxLength, Integer precision, Integer scale, Boolean isUnicode);
+
+ /**
+ * Converts literal representation of value to system data type.
+ *
+ * @param value the literal representation of value
+ * @param isNullable whether the <code>null</code> value is allowed
+ * @param maxLength the maximum length
+ * @param precision the precision
+ * @param scale the scale
+ * @param isUnicode whether non-ASCII characters are allowed (relevant only for Edm.String)
+ * @param returnType the class of the returned value; it must be one of the list in the documentation of
+ * {@link EdmPrimitiveType}
+ * @throws EdmPrimitiveTypeException
+ * @return the value as an instance of the class the parameter <code>returnType</code> indicates
+ */
+ <T> T valueOfString(String value,
+ Boolean isNullable, Integer maxLength, Integer precision, Integer scale, Boolean isUnicode,
+ Class<T> returnType) throws EdmPrimitiveTypeException;
+
+ /**
+ * Converts system data type to literal representation of value.
+ * <p>
+ * Returns <code>null</code> if value is <code>null</code> and <code>null</code> is an allowed value.
+ * </p>
+ *
+ * @param value the Java value as Object; its type must be one of the list in the documentation of
+ * {@link EdmPrimitiveType}
+ * @param isNullable whether the <code>null</code> value is allowed
+ * @param maxLength the maximum length
+ * @param precision the precision
+ * @param scale the scale
+ * @param isUnicode whether non-ASCII characters are allowed (relevant only for Edm.String)
+ * @throws EdmPrimitiveTypeException
+ * @return literal representation as String
+ */
+ String valueToString(Object value,
+ Boolean isNullable, Integer maxLength, Integer precision, Integer scale, Boolean isUnicode)
+ throws EdmPrimitiveTypeException;
+
+ /**
+ * Converts default literal representation to URI literal representation.
+ * <p>
+ * Returns <code>null</code> if the literal is <code>null</code>. Does not perform any validation.
+ * </p>
+ *
+ * @param literal the literal in default representation
+ * @return URI literal representation as String
+ */
+ String toUriLiteral(String literal);
+
+ /**
+ * Converts URI literal representation to default literal representation.
+ * <p>
+ * Returns <code>null</code> if the literal is <code>null</code>. Checks the presence of a required prefix and of
+ * required surrounding quotation marks but does not perform any further validation.
+ * </p>
+ *
+ * @param literal the literal in URI representation
+ * @return default literal representation as String
+ * @throws EdmPrimitiveTypeException if a required prefix or required surrounding quotation marks are missing
+ */
+ String fromUriLiteral(String literal) throws EdmPrimitiveTypeException;
+ }
http://git-wip-us.apache.org/repos/asf/incubator-olingo-odata4/blob/f70d3f0b/lib/commons-core/src/main/java/org/apache/olingo/commons/core/edm/primitivetype/EdmDuration.java
----------------------------------------------------------------------
diff --cc lib/commons-core/src/main/java/org/apache/olingo/commons/core/edm/primitivetype/EdmDuration.java
index 0000000,fab05a7..87944c0
mode 000000,100644..100644
--- a/lib/commons-core/src/main/java/org/apache/olingo/commons/core/edm/primitivetype/EdmDuration.java
+++ b/lib/commons-core/src/main/java/org/apache/olingo/commons/core/edm/primitivetype/EdmDuration.java
@@@ -1,0 -1,140 +1,141 @@@
+ /*
+ * 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.commons.core.edm.primitivetype;
+
+ import java.math.BigDecimal;
+ import java.math.BigInteger;
+ import java.util.regex.Matcher;
+ import java.util.regex.Pattern;
+
+ import org.apache.olingo.commons.api.edm.EdmPrimitiveTypeException;
+
+ public final class EdmDuration extends SingletonPrimitiveType {
+
+ private static final Pattern PATTERN = Pattern.compile(
+ "[-+]?P(?:(\\p{Digit}+)D)?(?:T(?:(\\p{Digit}+)H)?(?:(\\p{Digit}+)M)?"
+ + "(?:(\\p{Digit}+(?:\\.(?:\\p{Digit}+?)0*)?)S)?)?");
+
+ private static final EdmDuration INSTANCE = new EdmDuration();
+
+ {
+ uriPrefix = "duration'";
+ uriSuffix = "'";
+ }
+
+ public static EdmDuration getInstance() {
+ return INSTANCE;
+ }
+
+ @Override
+ public Class<?> getDefaultType() {
+ return BigDecimal.class;
+ }
+
+ @Override
+ protected <T> T internalValueOfString(final String value,
+ final Boolean isNullable, final Integer maxLength, final Integer precision,
+ final Integer scale, final Boolean isUnicode, final Class<T> returnType) throws EdmPrimitiveTypeException {
++
+ final Matcher matcher = PATTERN.matcher(value);
+ if (!matcher.matches()
+ || matcher.group(1) == null && matcher.group(2) == null && matcher.group(3) == null
+ && matcher.group(4) == null) {
+ throw new EdmPrimitiveTypeException(
+ "EdmPrimitiveTypeException.LITERAL_ILLEGAL_CONTENT.addContent(literal)");
+ }
+
+ BigDecimal result = (matcher.group(1) == null ? BigDecimal.ZERO
+ : new BigDecimal(matcher.group(1)).multiply(BigDecimal.valueOf(24 * 60 * 60))).
+ add(matcher.group(2) == null ? BigDecimal.ZERO
+ : new BigDecimal(matcher.group(2)).multiply(BigDecimal.valueOf(60 * 60))).
+ add(matcher.group(3) == null ? BigDecimal.ZERO
+ : new BigDecimal(matcher.group(3)).multiply(BigDecimal.valueOf(60))).
+ add(matcher.group(4) == null ? BigDecimal.ZERO : new BigDecimal(matcher.group(4)));
+
+ if (result.scale() <= (precision == null ? 0 : precision)) {
- result = value.startsWith("-") ? result.negate() : result;
++ result = value.charAt(0) == '-' ? result.negate() : result;
+ } else {
+ throw new EdmPrimitiveTypeException(
+ "EdmPrimitiveTypeException.LITERAL_FACETS_NOT_MATCHED.addContent(literal, facets)");
+ }
+
+ try {
+ return EdmDecimal.convertDecimal(result, returnType);
+ } catch (final IllegalArgumentException e) {
+ throw new EdmPrimitiveTypeException(
+ "EdmPrimitiveTypeException.LITERAL_UNCONVERTIBLE_TO_VALUE_TYPE.addContent(value, returnType), e");
+ } catch (final ClassCastException e) {
+ throw new EdmPrimitiveTypeException(
+ "EdmPrimitiveTypeException.VALUE_TYPE_NOT_SUPPORTED.addContent(returnType), e");
+ }
+ }
+
+ @Override
+ protected <T> String internalValueToString(final T value,
+ final Boolean isNullable, final Integer maxLength, final Integer precision,
+ final Integer scale, final Boolean isUnicode) throws EdmPrimitiveTypeException {
+
+ BigDecimal valueDecimal;
+ if (value instanceof BigDecimal) {
+ valueDecimal = (BigDecimal) value;
+ } else if (value instanceof Byte || value instanceof Short || value instanceof Integer || value instanceof Long) {
+ valueDecimal = BigDecimal.valueOf(((Number) value).longValue());
+ } else if (value instanceof BigInteger) {
+ valueDecimal = new BigDecimal((BigInteger) value);
+ } else {
+ throw new EdmPrimitiveTypeException(
+ "EdmPrimitiveTypeException.VALUE_TYPE_NOT_SUPPORTED.addContent(value.getClass())");
+ }
+
+ if (valueDecimal.scale() > (precision == null ? 0 : precision)) {
+ throw new EdmPrimitiveTypeException(
+ "EdmPrimitiveTypeException.VALUE_FACETS_NOT_MATCHED.addContent(value, facets)");
+ }
+
+ final StringBuilder result = new StringBuilder();
+ if (valueDecimal.signum() == -1) {
+ result.append('-');
+ valueDecimal = valueDecimal.negate();
+ }
+ result.append('P');
+ BigInteger seconds = valueDecimal.toBigInteger();
+ final BigInteger days = seconds.divide(BigInteger.valueOf(24 * 60 * 60));
+ if (!days.equals(BigInteger.ZERO)) {
+ result.append(days.toString());
+ result.append('D');
+ }
+ result.append('T');
+ seconds = seconds.subtract(days.multiply(BigInteger.valueOf(24 * 60 * 60)));
+ final BigInteger hours = seconds.divide(BigInteger.valueOf(60 * 60));
+ if (!hours.equals(BigInteger.ZERO)) {
+ result.append(hours.toString());
+ result.append('H');
+ }
+ seconds = seconds.subtract(hours.multiply(BigInteger.valueOf(60 * 60)));
+ final BigInteger minutes = seconds.divide(BigInteger.valueOf(60));
+ if (!minutes.equals(BigInteger.ZERO)) {
+ result.append(minutes.toString());
+ result.append('M');
+ }
+ result.append(valueDecimal.remainder(BigDecimal.valueOf(60)).toPlainString());
+ result.append('S');
+
+ return result.toString();
+ }
+ }
http://git-wip-us.apache.org/repos/asf/incubator-olingo-odata4/blob/f70d3f0b/lib/commons-core/src/main/java/org/apache/olingo/commons/core/edm/primitivetype/EdmPrimitiveTypeKind.java
----------------------------------------------------------------------
diff --cc lib/commons-core/src/main/java/org/apache/olingo/commons/core/edm/primitivetype/EdmPrimitiveTypeKind.java
index 0000000,b0deeef..e368607
mode 000000,100644..100644
--- a/lib/commons-core/src/main/java/org/apache/olingo/commons/core/edm/primitivetype/EdmPrimitiveTypeKind.java
+++ b/lib/commons-core/src/main/java/org/apache/olingo/commons/core/edm/primitivetype/EdmPrimitiveTypeKind.java
@@@ -1,0 -1,98 +1,95 @@@
+ /*
+ * 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.commons.core.edm.primitivetype;
+
+ import org.apache.olingo.commons.api.edm.EdmPrimitiveType;
+ import org.apache.olingo.commons.api.edm.FullQualifiedName;
+
+ //TODO: Should we delete this typekind and use a facade?
+ public enum EdmPrimitiveTypeKind {
+
+ Binary, Boolean, Byte, Date, DateTimeOffset, Decimal, Double, Duration, Guid,
+ Int16, Int32, Int64, SByte, Single, String, TimeOfDay;
+
+ /**
+ * Returns the {@link FullQualifiedName} for this type kind.
+ *
+ * @return {@link FullQualifiedName}
+ */
+ public FullQualifiedName getFullQualifiedName() {
+ return new FullQualifiedName(EdmPrimitiveType.EDM_NAMESPACE, toString());
+ }
+
+ /**
+ * Returns an instance for this {@link EdmPrimitiveTypeKind} in the form of {@link EdmPrimitiveType}.
+ *
+ * @return {@link EdmPrimitiveType} instance
+ */
+ public EdmPrimitiveType getEdmPrimitiveTypeInstance() {
+ switch (this) {
+ case Binary:
+ return EdmBinary.getInstance();
+ case Boolean:
+ return EdmBoolean.getInstance();
+ case Byte:
+ return EdmByte.getInstance();
+ case Date:
+ return EdmDate.getInstance();
+ case DateTimeOffset:
+ return EdmDateTimeOffset.getInstance();
+ case Decimal:
+ return EdmDecimal.getInstance();
+ case Double:
+ return EdmDouble.getInstance();
+ case Duration:
+ return EdmDuration.getInstance();
+ case Guid:
+ return EdmGuid.getInstance();
+ case Int16:
+ return EdmInt16.getInstance();
+ case Int32:
+ return EdmInt32.getInstance();
+ case Int64:
+ return EdmInt64.getInstance();
+ case SByte:
+ return EdmSByte.getInstance();
+ case Single:
+ return EdmSingle.getInstance();
+ case String:
+ return EdmString.getInstance();
+ case TimeOfDay:
+ return EdmTimeOfDay.getInstance();
+ default:
+ throw new RuntimeException("Wrong type:" + this);
+ }
+ }
+
+ /**
+ * Gets <tt>EdmPrimitiveTypeKind</tt> from a full string (e.g. 'Edm.Int32').
+ *
+ * @param value string value type.
+ * @return <tt>EdmPrimitiveTypeKind</tt> object.
+ */
- public static EdmPrimitiveTypeKind fromString(final String value) {
- final String noNsValue = value.substring(4);
- for (EdmPrimitiveTypeKind edmSimpleType : EdmPrimitiveTypeKind.values()) {
- if (edmSimpleType.name().equals(noNsValue)) {
- return edmSimpleType;
- }
++ public static EdmPrimitiveTypeKind valueOfFQN(final String value) {
++ if (!value.startsWith(EdmPrimitiveType.EDM_NAMESPACE + ".")) {
++ throw new IllegalArgumentException(value + " does not look like an Edm primitive type");
+ }
- throw new IllegalArgumentException(value);
++ return valueOf(value.substring(4));
+ }
+ }
[3/6] git commit: Pruning some structural properties from V4 which
were erroneously left in the common interfaces
Posted by il...@apache.org.
Pruning some structural properties from V4 which were erroneously left in the common interfaces
Project: http://git-wip-us.apache.org/repos/asf/incubator-olingo-odata4/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-olingo-odata4/commit/7f7a68e8
Tree: http://git-wip-us.apache.org/repos/asf/incubator-olingo-odata4/tree/7f7a68e8
Diff: http://git-wip-us.apache.org/repos/asf/incubator-olingo-odata4/diff/7f7a68e8
Branch: refs/heads/master
Commit: 7f7a68e8cbf912ba427da8299875f1954281eaaa
Parents: 027e135
Author: Francesco Chicchiriccò <il...@apache.org>
Authored: Mon Mar 10 10:29:57 2014 +0100
Committer: Francesco Chicchiriccò <il...@apache.org>
Committed: Mon Mar 10 10:29:57 2014 +0100
----------------------------------------------------------------------
.../odata4/client/api/edm/ConcurrencyMode.java | 26 ++++++++
.../client/api/edm/StoreGeneratedPattern.java | 27 +++++++++
.../client/api/edm/xml/CommonProperty.java | 10 ----
.../odata4/client/api/edm/xml/v3/Property.java | 10 ++++
.../client/core/edm/xml/AbstractProperty.java | 46 --------------
.../core/edm/xml/ParameterDeserializer.java | 3 +-
.../core/edm/xml/PropertyDeserializer.java | 63 ++++++++++++++------
.../client/core/edm/xml/v3/PropertyImpl.java | 46 ++++++++++++++
.../core/edm/xml/v4/ReturnTypeDeserializer.java | 3 +-
.../core/edm/xml/v4/TermDeserializer.java | 3 +-
.../edm/xml/v4/TypeDefinitionDeserializer.java | 3 +-
.../odata4/client/core/v4/MetadataTest.java | 4 --
.../api/edm/constants/ConcurrencyMode.java | 26 --------
.../edm/constants/StoreGeneratedPattern.java | 27 ---------
14 files changed, 161 insertions(+), 136 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/incubator-olingo-odata4/blob/7f7a68e8/odata4-lib/odata4-client-api/src/main/java/org/apache/olingo/odata4/client/api/edm/ConcurrencyMode.java
----------------------------------------------------------------------
diff --git a/odata4-lib/odata4-client-api/src/main/java/org/apache/olingo/odata4/client/api/edm/ConcurrencyMode.java b/odata4-lib/odata4-client-api/src/main/java/org/apache/olingo/odata4/client/api/edm/ConcurrencyMode.java
new file mode 100644
index 0000000..90a8f7b
--- /dev/null
+++ b/odata4-lib/odata4-client-api/src/main/java/org/apache/olingo/odata4/client/api/edm/ConcurrencyMode.java
@@ -0,0 +1,26 @@
+/*
+ * 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.odata4.client.api.edm;
+
+public enum ConcurrencyMode {
+
+ None,
+ Fixed
+
+}
http://git-wip-us.apache.org/repos/asf/incubator-olingo-odata4/blob/7f7a68e8/odata4-lib/odata4-client-api/src/main/java/org/apache/olingo/odata4/client/api/edm/StoreGeneratedPattern.java
----------------------------------------------------------------------
diff --git a/odata4-lib/odata4-client-api/src/main/java/org/apache/olingo/odata4/client/api/edm/StoreGeneratedPattern.java b/odata4-lib/odata4-client-api/src/main/java/org/apache/olingo/odata4/client/api/edm/StoreGeneratedPattern.java
new file mode 100644
index 0000000..c081bdf
--- /dev/null
+++ b/odata4-lib/odata4-client-api/src/main/java/org/apache/olingo/odata4/client/api/edm/StoreGeneratedPattern.java
@@ -0,0 +1,27 @@
+/*
+ * 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.odata4.client.api.edm;
+
+public enum StoreGeneratedPattern {
+
+ None,
+ Identity,
+ Computed
+
+}
http://git-wip-us.apache.org/repos/asf/incubator-olingo-odata4/blob/7f7a68e8/odata4-lib/odata4-client-api/src/main/java/org/apache/olingo/odata4/client/api/edm/xml/CommonProperty.java
----------------------------------------------------------------------
diff --git a/odata4-lib/odata4-client-api/src/main/java/org/apache/olingo/odata4/client/api/edm/xml/CommonProperty.java b/odata4-lib/odata4-client-api/src/main/java/org/apache/olingo/odata4/client/api/edm/xml/CommonProperty.java
index 7f51af7..e4936d6 100644
--- a/odata4-lib/odata4-client-api/src/main/java/org/apache/olingo/odata4/client/api/edm/xml/CommonProperty.java
+++ b/odata4-lib/odata4-client-api/src/main/java/org/apache/olingo/odata4/client/api/edm/xml/CommonProperty.java
@@ -18,9 +18,6 @@
*/
package org.apache.olingo.odata4.client.api.edm.xml;
-import org.apache.olingo.odata4.commons.api.edm.constants.ConcurrencyMode;
-import org.apache.olingo.odata4.commons.api.edm.constants.StoreGeneratedPattern;
-
public interface CommonProperty extends Named {
String getType();
@@ -31,19 +28,12 @@ public interface CommonProperty extends Named {
Integer getMaxLength();
- boolean isFixedLength();
-
Integer getPrecision();
Integer getScale();
boolean isUnicode();
- String getCollation();
-
String getSrid();
- ConcurrencyMode getConcurrencyMode();
-
- StoreGeneratedPattern getStoreGeneratedPattern();
}
http://git-wip-us.apache.org/repos/asf/incubator-olingo-odata4/blob/7f7a68e8/odata4-lib/odata4-client-api/src/main/java/org/apache/olingo/odata4/client/api/edm/xml/v3/Property.java
----------------------------------------------------------------------
diff --git a/odata4-lib/odata4-client-api/src/main/java/org/apache/olingo/odata4/client/api/edm/xml/v3/Property.java b/odata4-lib/odata4-client-api/src/main/java/org/apache/olingo/odata4/client/api/edm/xml/v3/Property.java
index 950e562..6eed418 100644
--- a/odata4-lib/odata4-client-api/src/main/java/org/apache/olingo/odata4/client/api/edm/xml/v3/Property.java
+++ b/odata4-lib/odata4-client-api/src/main/java/org/apache/olingo/odata4/client/api/edm/xml/v3/Property.java
@@ -19,10 +19,20 @@
package org.apache.olingo.odata4.client.api.edm.xml.v3;
import org.apache.olingo.odata4.client.api.edm.xml.CommonProperty;
+import org.apache.olingo.odata4.client.api.edm.ConcurrencyMode;
import org.apache.olingo.odata4.commons.api.edm.constants.EdmContentKind;
+import org.apache.olingo.odata4.client.api.edm.StoreGeneratedPattern;
public interface Property extends CommonProperty {
+ String getCollation();
+
+ boolean isFixedLength();
+
+ ConcurrencyMode getConcurrencyMode();
+
+ StoreGeneratedPattern getStoreGeneratedPattern();
+
String getFcSourcePath();
String getFcTargetPath();
http://git-wip-us.apache.org/repos/asf/incubator-olingo-odata4/blob/7f7a68e8/odata4-lib/odata4-client-core/src/main/java/org/apache/olingo/odata4/client/core/edm/xml/AbstractProperty.java
----------------------------------------------------------------------
diff --git a/odata4-lib/odata4-client-core/src/main/java/org/apache/olingo/odata4/client/core/edm/xml/AbstractProperty.java b/odata4-lib/odata4-client-core/src/main/java/org/apache/olingo/odata4/client/core/edm/xml/AbstractProperty.java
index 78cdc4b..1b43423 100644
--- a/odata4-lib/odata4-client-core/src/main/java/org/apache/olingo/odata4/client/core/edm/xml/AbstractProperty.java
+++ b/odata4-lib/odata4-client-core/src/main/java/org/apache/olingo/odata4/client/core/edm/xml/AbstractProperty.java
@@ -20,8 +20,6 @@ package org.apache.olingo.odata4.client.core.edm.xml;
import com.fasterxml.jackson.databind.annotation.JsonDeserialize;
import org.apache.olingo.odata4.client.api.edm.xml.CommonProperty;
-import org.apache.olingo.odata4.commons.api.edm.constants.ConcurrencyMode;
-import org.apache.olingo.odata4.commons.api.edm.constants.StoreGeneratedPattern;
@JsonDeserialize(using = PropertyDeserializer.class)
public abstract class AbstractProperty extends AbstractEdmItem implements CommonProperty {
@@ -38,22 +36,14 @@ public abstract class AbstractProperty extends AbstractEdmItem implements Common
private Integer maxLength;
- private boolean fixedLength;
-
private Integer precision;
private Integer scale;
private boolean unicode = true;
- private String collation;
-
private String srid;
- private ConcurrencyMode concurrencyMode;
-
- private StoreGeneratedPattern storeGeneratedPattern = StoreGeneratedPattern.None;
-
@Override
public String getName() {
return name;
@@ -100,15 +90,6 @@ public abstract class AbstractProperty extends AbstractEdmItem implements Common
}
@Override
- public boolean isFixedLength() {
- return fixedLength;
- }
-
- public void setFixedLength(final boolean fixedLength) {
- this.fixedLength = fixedLength;
- }
-
- @Override
public Integer getPrecision() {
return precision;
}
@@ -136,15 +117,6 @@ public abstract class AbstractProperty extends AbstractEdmItem implements Common
}
@Override
- public String getCollation() {
- return collation;
- }
-
- public void setCollation(final String collation) {
- this.collation = collation;
- }
-
- @Override
public String getSrid() {
return srid;
}
@@ -152,22 +124,4 @@ public abstract class AbstractProperty extends AbstractEdmItem implements Common
public void setSrid(final String srid) {
this.srid = srid;
}
-
- @Override
- public ConcurrencyMode getConcurrencyMode() {
- return concurrencyMode;
- }
-
- public void setConcurrencyMode(final ConcurrencyMode concurrencyMode) {
- this.concurrencyMode = concurrencyMode;
- }
-
- @Override
- public StoreGeneratedPattern getStoreGeneratedPattern() {
- return storeGeneratedPattern;
- }
-
- public void setStoreGeneratedPattern(final StoreGeneratedPattern storeGeneratedPattern) {
- this.storeGeneratedPattern = storeGeneratedPattern;
- }
}
http://git-wip-us.apache.org/repos/asf/incubator-olingo-odata4/blob/7f7a68e8/odata4-lib/odata4-client-core/src/main/java/org/apache/olingo/odata4/client/core/edm/xml/ParameterDeserializer.java
----------------------------------------------------------------------
diff --git a/odata4-lib/odata4-client-core/src/main/java/org/apache/olingo/odata4/client/core/edm/xml/ParameterDeserializer.java b/odata4-lib/odata4-client-core/src/main/java/org/apache/olingo/odata4/client/core/edm/xml/ParameterDeserializer.java
index e8bd47a..c7809e4 100644
--- a/odata4-lib/odata4-client-core/src/main/java/org/apache/olingo/odata4/client/core/edm/xml/ParameterDeserializer.java
+++ b/odata4-lib/odata4-client-core/src/main/java/org/apache/olingo/odata4/client/core/edm/xml/ParameterDeserializer.java
@@ -53,7 +53,8 @@ public class ParameterDeserializer extends AbstractEdmDeserializer<AbstractParam
} else if ("Precision".equals(jp.getCurrentName())) {
parameter.setPrecision(Integer.valueOf(jp.nextTextValue()));
} else if ("Scale".equals(jp.getCurrentName())) {
- parameter.setScale(Integer.valueOf(jp.nextTextValue()));
+ final String scale = jp.nextTextValue();
+ parameter.setScale(scale.equalsIgnoreCase("variable") ? 0 : Integer.valueOf(scale));
} else if ("Mode".equals(jp.getCurrentName())) {
((org.apache.olingo.odata4.client.core.edm.xml.v3.ParameterImpl) parameter).
setMode(ParameterMode.valueOf(jp.nextTextValue()));
http://git-wip-us.apache.org/repos/asf/incubator-olingo-odata4/blob/7f7a68e8/odata4-lib/odata4-client-core/src/main/java/org/apache/olingo/odata4/client/core/edm/xml/PropertyDeserializer.java
----------------------------------------------------------------------
diff --git a/odata4-lib/odata4-client-core/src/main/java/org/apache/olingo/odata4/client/core/edm/xml/PropertyDeserializer.java b/odata4-lib/odata4-client-core/src/main/java/org/apache/olingo/odata4/client/core/edm/xml/PropertyDeserializer.java
index f45b510..9b5ecc6 100644
--- a/odata4-lib/odata4-client-core/src/main/java/org/apache/olingo/odata4/client/core/edm/xml/PropertyDeserializer.java
+++ b/odata4-lib/odata4-client-core/src/main/java/org/apache/olingo/odata4/client/core/edm/xml/PropertyDeserializer.java
@@ -26,10 +26,10 @@ import java.io.IOException;
import org.apache.commons.lang3.BooleanUtils;
import org.apache.olingo.odata4.client.core.edm.xml.v4.AnnotationImpl;
import org.apache.olingo.odata4.client.core.op.impl.AbstractEdmDeserializer;
-import org.apache.olingo.odata4.commons.api.edm.constants.ConcurrencyMode;
+import org.apache.olingo.odata4.client.api.edm.ConcurrencyMode;
import org.apache.olingo.odata4.commons.api.edm.constants.EdmContentKind;
import org.apache.olingo.odata4.commons.api.edm.constants.ODataServiceVersion;
-import org.apache.olingo.odata4.commons.api.edm.constants.StoreGeneratedPattern;
+import org.apache.olingo.odata4.client.api.edm.StoreGeneratedPattern;
public class PropertyDeserializer extends AbstractEdmDeserializer<AbstractProperty> {
@@ -56,39 +56,64 @@ public class PropertyDeserializer extends AbstractEdmDeserializer<AbstractProper
final String maxLenght = jp.nextTextValue();
property.setMaxLength(maxLenght.equalsIgnoreCase("max") ? Integer.MAX_VALUE : Integer.valueOf(maxLenght));
} else if ("FixedLength".equals(jp.getCurrentName())) {
- property.setFixedLength(BooleanUtils.toBoolean(jp.nextTextValue()));
+ if (property instanceof org.apache.olingo.odata4.client.core.edm.xml.v3.PropertyImpl) {
+ ((org.apache.olingo.odata4.client.core.edm.xml.v3.PropertyImpl) property).
+ setFixedLength(BooleanUtils.toBoolean(jp.nextTextValue()));
+ }
} else if ("Precision".equals(jp.getCurrentName())) {
property.setPrecision(Integer.valueOf(jp.nextTextValue()));
} else if ("Scale".equals(jp.getCurrentName())) {
- property.setScale(Integer.valueOf(jp.nextTextValue()));
+ final String scale = jp.nextTextValue();
+ property.setScale(scale.equalsIgnoreCase("variable") ? 0 : Integer.valueOf(scale));
} else if ("Unicode".equals(jp.getCurrentName())) {
property.setUnicode(BooleanUtils.toBoolean(jp.nextTextValue()));
} else if ("Collation".equals(jp.getCurrentName())) {
- property.setCollation(jp.nextTextValue());
+ if (property instanceof org.apache.olingo.odata4.client.core.edm.xml.v3.PropertyImpl) {
+ ((org.apache.olingo.odata4.client.core.edm.xml.v3.PropertyImpl) property).
+ setCollation(jp.nextTextValue());
+ }
} else if ("SRID".equals(jp.getCurrentName())) {
property.setSrid(jp.nextTextValue());
} else if ("ConcurrencyMode".equals(jp.getCurrentName())) {
- property.setConcurrencyMode(ConcurrencyMode.valueOf(jp.nextTextValue()));
+ if (property instanceof org.apache.olingo.odata4.client.core.edm.xml.v3.PropertyImpl) {
+ ((org.apache.olingo.odata4.client.core.edm.xml.v3.PropertyImpl) property).
+ setConcurrencyMode(ConcurrencyMode.valueOf(jp.nextTextValue()));
+ }
} else if ("StoreGeneratedPattern".equals(jp.getCurrentName())) {
- property.setStoreGeneratedPattern(StoreGeneratedPattern.valueOf(jp.nextTextValue()));
+ if (property instanceof org.apache.olingo.odata4.client.core.edm.xml.v3.PropertyImpl) {
+ ((org.apache.olingo.odata4.client.core.edm.xml.v3.PropertyImpl) property).
+ setStoreGeneratedPattern(StoreGeneratedPattern.valueOf(jp.nextTextValue()));
+ }
} else if ("FC_SourcePath".equals(jp.getCurrentName())) {
- ((org.apache.olingo.odata4.client.core.edm.xml.v3.PropertyImpl) property).
- setFcSourcePath(jp.nextTextValue());
+ if (property instanceof org.apache.olingo.odata4.client.core.edm.xml.v3.PropertyImpl) {
+ ((org.apache.olingo.odata4.client.core.edm.xml.v3.PropertyImpl) property).
+ setFcSourcePath(jp.nextTextValue());
+ }
} else if ("FC_TargetPath".equals(jp.getCurrentName())) {
- ((org.apache.olingo.odata4.client.core.edm.xml.v3.PropertyImpl) property).
- setFcTargetPath(jp.nextTextValue());
+ if (property instanceof org.apache.olingo.odata4.client.core.edm.xml.v3.PropertyImpl) {
+ ((org.apache.olingo.odata4.client.core.edm.xml.v3.PropertyImpl) property).
+ setFcTargetPath(jp.nextTextValue());
+ }
} else if ("FC_ContentKind".equals(jp.getCurrentName())) {
- ((org.apache.olingo.odata4.client.core.edm.xml.v3.PropertyImpl) property).
- setFcContentKind(EdmContentKind.valueOf(jp.nextTextValue()));
+ if (property instanceof org.apache.olingo.odata4.client.core.edm.xml.v3.PropertyImpl) {
+ ((org.apache.olingo.odata4.client.core.edm.xml.v3.PropertyImpl) property).
+ setFcContentKind(EdmContentKind.valueOf(jp.nextTextValue()));
+ }
} else if ("FC_NsPrefix".equals(jp.getCurrentName())) {
- ((org.apache.olingo.odata4.client.core.edm.xml.v3.PropertyImpl) property).
- setFcNSPrefix(jp.nextTextValue());
+ if (property instanceof org.apache.olingo.odata4.client.core.edm.xml.v3.PropertyImpl) {
+ ((org.apache.olingo.odata4.client.core.edm.xml.v3.PropertyImpl) property).
+ setFcNSPrefix(jp.nextTextValue());
+ }
} else if ("FC_NsUri".equals(jp.getCurrentName())) {
- ((org.apache.olingo.odata4.client.core.edm.xml.v3.PropertyImpl) property).
- setFcNSURI(jp.nextTextValue());
+ if (property instanceof org.apache.olingo.odata4.client.core.edm.xml.v3.PropertyImpl) {
+ ((org.apache.olingo.odata4.client.core.edm.xml.v3.PropertyImpl) property).
+ setFcNSURI(jp.nextTextValue());
+ }
} else if ("FC_KeepInContent".equals(jp.getCurrentName())) {
- ((org.apache.olingo.odata4.client.core.edm.xml.v3.PropertyImpl) property).
- setFcKeepInContent(BooleanUtils.toBoolean(jp.nextTextValue()));
+ if (property instanceof org.apache.olingo.odata4.client.core.edm.xml.v3.PropertyImpl) {
+ ((org.apache.olingo.odata4.client.core.edm.xml.v3.PropertyImpl) property).
+ setFcKeepInContent(BooleanUtils.toBoolean(jp.nextTextValue()));
+ }
} else if ("Annotation".equals(jp.getCurrentName())) {
((org.apache.olingo.odata4.client.core.edm.xml.v4.PropertyImpl) property).
setAnnotation(jp.readValueAs(AnnotationImpl.class));
http://git-wip-us.apache.org/repos/asf/incubator-olingo-odata4/blob/7f7a68e8/odata4-lib/odata4-client-core/src/main/java/org/apache/olingo/odata4/client/core/edm/xml/v3/PropertyImpl.java
----------------------------------------------------------------------
diff --git a/odata4-lib/odata4-client-core/src/main/java/org/apache/olingo/odata4/client/core/edm/xml/v3/PropertyImpl.java b/odata4-lib/odata4-client-core/src/main/java/org/apache/olingo/odata4/client/core/edm/xml/v3/PropertyImpl.java
index 352f8f0..3522019 100644
--- a/odata4-lib/odata4-client-core/src/main/java/org/apache/olingo/odata4/client/core/edm/xml/v3/PropertyImpl.java
+++ b/odata4-lib/odata4-client-core/src/main/java/org/apache/olingo/odata4/client/core/edm/xml/v3/PropertyImpl.java
@@ -20,12 +20,22 @@ package org.apache.olingo.odata4.client.core.edm.xml.v3;
import org.apache.olingo.odata4.client.api.edm.xml.v3.Property;
import org.apache.olingo.odata4.client.core.edm.xml.AbstractProperty;
+import org.apache.olingo.odata4.client.api.edm.ConcurrencyMode;
import org.apache.olingo.odata4.commons.api.edm.constants.EdmContentKind;
+import org.apache.olingo.odata4.client.api.edm.StoreGeneratedPattern;
public class PropertyImpl extends AbstractProperty implements Property {
private static final long serialVersionUID = 6224524803474652100L;
+ private String collation;
+
+ private boolean fixedLength;
+
+ private ConcurrencyMode concurrencyMode;
+
+ private StoreGeneratedPattern storeGeneratedPattern = StoreGeneratedPattern.None;
+
private String fcSourcePath;
private String fcTargetPath;
@@ -39,6 +49,42 @@ public class PropertyImpl extends AbstractProperty implements Property {
private boolean fcKeepInContent = true;
@Override
+ public boolean isFixedLength() {
+ return fixedLength;
+ }
+
+ public void setFixedLength(final boolean fixedLength) {
+ this.fixedLength = fixedLength;
+ }
+
+ @Override
+ public String getCollation() {
+ return collation;
+ }
+
+ public void setCollation(final String collation) {
+ this.collation = collation;
+ }
+
+ @Override
+ public ConcurrencyMode getConcurrencyMode() {
+ return concurrencyMode;
+ }
+
+ public void setConcurrencyMode(final ConcurrencyMode concurrencyMode) {
+ this.concurrencyMode = concurrencyMode;
+ }
+
+ @Override
+ public StoreGeneratedPattern getStoreGeneratedPattern() {
+ return storeGeneratedPattern;
+ }
+
+ public void setStoreGeneratedPattern(final StoreGeneratedPattern storeGeneratedPattern) {
+ this.storeGeneratedPattern = storeGeneratedPattern;
+ }
+
+ @Override
public String getFcSourcePath() {
return fcSourcePath;
}
http://git-wip-us.apache.org/repos/asf/incubator-olingo-odata4/blob/7f7a68e8/odata4-lib/odata4-client-core/src/main/java/org/apache/olingo/odata4/client/core/edm/xml/v4/ReturnTypeDeserializer.java
----------------------------------------------------------------------
diff --git a/odata4-lib/odata4-client-core/src/main/java/org/apache/olingo/odata4/client/core/edm/xml/v4/ReturnTypeDeserializer.java b/odata4-lib/odata4-client-core/src/main/java/org/apache/olingo/odata4/client/core/edm/xml/v4/ReturnTypeDeserializer.java
index d3e426f..7b66602 100644
--- a/odata4-lib/odata4-client-core/src/main/java/org/apache/olingo/odata4/client/core/edm/xml/v4/ReturnTypeDeserializer.java
+++ b/odata4-lib/odata4-client-core/src/main/java/org/apache/olingo/odata4/client/core/edm/xml/v4/ReturnTypeDeserializer.java
@@ -47,7 +47,8 @@ public class ReturnTypeDeserializer extends AbstractEdmDeserializer<ReturnTypeIm
} else if ("Precision".equals(jp.getCurrentName())) {
returnType.setPrecision(Integer.valueOf(jp.nextTextValue()));
} else if ("Scale".equals(jp.getCurrentName())) {
- returnType.setScale(Integer.valueOf(jp.nextTextValue()));
+ final String scale = jp.nextTextValue();
+ returnType.setScale(scale.equalsIgnoreCase("variable") ? 0 : Integer.valueOf(scale));
} else if ("SRID".equals(jp.getCurrentName())) {
returnType.setSrid(jp.nextTextValue());
}
http://git-wip-us.apache.org/repos/asf/incubator-olingo-odata4/blob/7f7a68e8/odata4-lib/odata4-client-core/src/main/java/org/apache/olingo/odata4/client/core/edm/xml/v4/TermDeserializer.java
----------------------------------------------------------------------
diff --git a/odata4-lib/odata4-client-core/src/main/java/org/apache/olingo/odata4/client/core/edm/xml/v4/TermDeserializer.java b/odata4-lib/odata4-client-core/src/main/java/org/apache/olingo/odata4/client/core/edm/xml/v4/TermDeserializer.java
index c8fed65..3c9848e 100644
--- a/odata4-lib/odata4-client-core/src/main/java/org/apache/olingo/odata4/client/core/edm/xml/v4/TermDeserializer.java
+++ b/odata4-lib/odata4-client-core/src/main/java/org/apache/olingo/odata4/client/core/edm/xml/v4/TermDeserializer.java
@@ -55,7 +55,8 @@ public class TermDeserializer extends AbstractEdmDeserializer<TermImpl> {
} else if ("Precision".equals(jp.getCurrentName())) {
term.setPrecision(Integer.valueOf(jp.nextTextValue()));
} else if ("Scale".equals(jp.getCurrentName())) {
- term.setScale(Integer.valueOf(jp.nextTextValue()));
+ final String scale = jp.nextTextValue();
+ term.setScale(scale.equalsIgnoreCase("variable") ? 0 : Integer.valueOf(scale));
} else if ("SRID".equals(jp.getCurrentName())) {
term.setSrid(jp.nextTextValue());
} else if ("AppliesTo".equals(jp.getCurrentName())) {
http://git-wip-us.apache.org/repos/asf/incubator-olingo-odata4/blob/7f7a68e8/odata4-lib/odata4-client-core/src/main/java/org/apache/olingo/odata4/client/core/edm/xml/v4/TypeDefinitionDeserializer.java
----------------------------------------------------------------------
diff --git a/odata4-lib/odata4-client-core/src/main/java/org/apache/olingo/odata4/client/core/edm/xml/v4/TypeDefinitionDeserializer.java b/odata4-lib/odata4-client-core/src/main/java/org/apache/olingo/odata4/client/core/edm/xml/v4/TypeDefinitionDeserializer.java
index 07d2589..3ca692f 100644
--- a/odata4-lib/odata4-client-core/src/main/java/org/apache/olingo/odata4/client/core/edm/xml/v4/TypeDefinitionDeserializer.java
+++ b/odata4-lib/odata4-client-core/src/main/java/org/apache/olingo/odata4/client/core/edm/xml/v4/TypeDefinitionDeserializer.java
@@ -48,7 +48,8 @@ public class TypeDefinitionDeserializer extends AbstractEdmDeserializer<TypeDefi
} else if ("Precision".equals(jp.getCurrentName())) {
typeDefinition.setPrecision(jp.nextIntValue(0));
} else if ("Scale".equals(jp.getCurrentName())) {
- typeDefinition.setScale(jp.nextIntValue(0));
+ final String scale = jp.nextTextValue();
+ typeDefinition.setScale(scale.equalsIgnoreCase("variable") ? 0 : Integer.valueOf(scale));
} else if ("SRID".equals(jp.getCurrentName())) {
typeDefinition.setSrid(jp.nextTextValue());
} else if ("Annotation".equals(jp.getCurrentName())) {
http://git-wip-us.apache.org/repos/asf/incubator-olingo-odata4/blob/7f7a68e8/odata4-lib/odata4-client-core/src/test/java/org/apache/olingo/odata4/client/core/v4/MetadataTest.java
----------------------------------------------------------------------
diff --git a/odata4-lib/odata4-client-core/src/test/java/org/apache/olingo/odata4/client/core/v4/MetadataTest.java b/odata4-lib/odata4-client-core/src/test/java/org/apache/olingo/odata4/client/core/v4/MetadataTest.java
index 2f9f4e7..135f4d0 100644
--- a/odata4-lib/odata4-client-core/src/test/java/org/apache/olingo/odata4/client/core/v4/MetadataTest.java
+++ b/odata4-lib/odata4-client-core/src/test/java/org/apache/olingo/odata4/client/core/v4/MetadataTest.java
@@ -52,7 +52,6 @@ import org.apache.olingo.odata4.commons.api.edm.EdmFunctionImport;
import org.apache.olingo.odata4.commons.api.edm.EdmFunctionImportInfo;
import org.apache.olingo.odata4.commons.api.edm.FullQualifiedName;
import org.apache.olingo.odata4.commons.api.edm.constants.EdmTypeKind;
-import org.apache.olingo.odata4.commons.api.edm.constants.StoreGeneratedPattern;
import org.apache.olingo.odata4.commons.core.edm.primitivetype.EdmPrimitiveTypeKind;
import org.junit.Test;
@@ -149,9 +148,6 @@ public class MetadataTest extends AbstractTest {
final Schema second = metadata.getSchema("ODataWebExperimental.Northwind.Model");
assertNotNull(second);
- assertEquals(StoreGeneratedPattern.Identity,
- first.getEntityType("Category").getProperty("CategoryID").getStoreGeneratedPattern());
-
final EntityContainer entityContainer = second.getEntityContainer();
assertNotNull(entityContainer);
assertEquals("NorthwindEntities", entityContainer.getName());
http://git-wip-us.apache.org/repos/asf/incubator-olingo-odata4/blob/7f7a68e8/odata4-lib/odata4-commons-api/src/main/java/org/apache/olingo/odata4/commons/api/edm/constants/ConcurrencyMode.java
----------------------------------------------------------------------
diff --git a/odata4-lib/odata4-commons-api/src/main/java/org/apache/olingo/odata4/commons/api/edm/constants/ConcurrencyMode.java b/odata4-lib/odata4-commons-api/src/main/java/org/apache/olingo/odata4/commons/api/edm/constants/ConcurrencyMode.java
deleted file mode 100644
index 335ae8d..0000000
--- a/odata4-lib/odata4-commons-api/src/main/java/org/apache/olingo/odata4/commons/api/edm/constants/ConcurrencyMode.java
+++ /dev/null
@@ -1,26 +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.odata4.commons.api.edm.constants;
-
-public enum ConcurrencyMode {
-
- None,
- Fixed
-
-}
http://git-wip-us.apache.org/repos/asf/incubator-olingo-odata4/blob/7f7a68e8/odata4-lib/odata4-commons-api/src/main/java/org/apache/olingo/odata4/commons/api/edm/constants/StoreGeneratedPattern.java
----------------------------------------------------------------------
diff --git a/odata4-lib/odata4-commons-api/src/main/java/org/apache/olingo/odata4/commons/api/edm/constants/StoreGeneratedPattern.java b/odata4-lib/odata4-commons-api/src/main/java/org/apache/olingo/odata4/commons/api/edm/constants/StoreGeneratedPattern.java
deleted file mode 100644
index 3dad36b..0000000
--- a/odata4-lib/odata4-commons-api/src/main/java/org/apache/olingo/odata4/commons/api/edm/constants/StoreGeneratedPattern.java
+++ /dev/null
@@ -1,27 +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.odata4.commons.api.edm.constants;
-
-public enum StoreGeneratedPattern {
-
- None,
- Identity,
- Computed
-
-}