You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@olingo.apache.org by mi...@apache.org on 2015/04/28 12:52:38 UTC
[09/11] olingo-odata4 git commit: [OLINGO-564] Renamed
'edm.provider.*' classes
http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/2318953c/lib/commons-api/src/main/java/org/apache/olingo/commons/api/edm/provider/CsdlEntityType.java
----------------------------------------------------------------------
diff --git a/lib/commons-api/src/main/java/org/apache/olingo/commons/api/edm/provider/CsdlEntityType.java b/lib/commons-api/src/main/java/org/apache/olingo/commons/api/edm/provider/CsdlEntityType.java
new file mode 100644
index 0000000..fad6e7a
--- /dev/null
+++ b/lib/commons-api/src/main/java/org/apache/olingo/commons/api/edm/provider/CsdlEntityType.java
@@ -0,0 +1,92 @@
+/*
+ * 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.provider;
+
+import java.util.List;
+
+import org.apache.olingo.commons.api.edm.FullQualifiedName;
+
+public class CsdlEntityType extends CsdlStructuralType {
+
+ private static final long serialVersionUID = -1564752618679704024L;
+
+ private List<CsdlPropertyRef> key;
+
+ private boolean hasStream = false;
+
+ public boolean hasStream() {
+ return hasStream;
+ }
+
+ public CsdlEntityType setHasStream(final boolean hasStream) {
+ this.hasStream = hasStream;
+ return this;
+ }
+
+ public List<CsdlPropertyRef> getKey() {
+ return key;
+ }
+
+ public CsdlEntityType setKey(final List<CsdlPropertyRef> key) {
+ this.key = key;
+ return this;
+ }
+
+ @Override
+ public CsdlEntityType setName(final String name) {
+ this.name = name;
+ return this;
+ }
+
+ @Override
+ public CsdlEntityType setOpenType(final boolean isOpenType) {
+ this.isOpenType = isOpenType;
+ return this;
+ }
+
+ @Override
+ public CsdlEntityType setBaseType(final String baseType) {
+ this.baseType = new FullQualifiedName(baseType);
+ return this;
+ }
+
+ @Override
+ public CsdlEntityType setBaseType(final FullQualifiedName baseType) {
+ this.baseType = baseType;
+ return this;
+ }
+
+ @Override
+ public CsdlEntityType setAbstract(final boolean isAbstract) {
+ this.isAbstract = isAbstract;
+ return this;
+ }
+
+ @Override
+ public CsdlEntityType setProperties(final List<CsdlProperty> properties) {
+ this.properties = properties;
+ return this;
+ }
+
+ @Override
+ public CsdlEntityType setNavigationProperties(final List<CsdlNavigationProperty> navigationProperties) {
+ this.navigationProperties = navigationProperties;
+ return this;
+ }
+}
http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/2318953c/lib/commons-api/src/main/java/org/apache/olingo/commons/api/edm/provider/CsdlEnumMember.java
----------------------------------------------------------------------
diff --git a/lib/commons-api/src/main/java/org/apache/olingo/commons/api/edm/provider/CsdlEnumMember.java b/lib/commons-api/src/main/java/org/apache/olingo/commons/api/edm/provider/CsdlEnumMember.java
new file mode 100644
index 0000000..8f11bf0
--- /dev/null
+++ b/lib/commons-api/src/main/java/org/apache/olingo/commons/api/edm/provider/CsdlEnumMember.java
@@ -0,0 +1,57 @@
+/*
+ * 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.provider;
+
+import java.util.ArrayList;
+import java.util.List;
+
+public class CsdlEnumMember extends CsdlAbstractEdmItem implements CsdlNamed, CsdlAnnotatable {
+
+ private static final long serialVersionUID = 5618984420582832094L;
+
+ private String name;
+
+ private String value;
+
+ private final List<CsdlAnnotation> annotations = new ArrayList<CsdlAnnotation>();
+
+ public String getName() {
+ return name;
+ }
+
+ public CsdlEnumMember setName(final String name) {
+ this.name = name;
+ return this;
+ }
+
+ public String getValue() {
+ return value;
+ }
+
+ public CsdlEnumMember setValue(final String value) {
+ this.value = value;
+ return this;
+ }
+
+ @Override
+ public List<CsdlAnnotation> getAnnotations() {
+ return annotations;
+ }
+
+}
http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/2318953c/lib/commons-api/src/main/java/org/apache/olingo/commons/api/edm/provider/CsdlEnumType.java
----------------------------------------------------------------------
diff --git a/lib/commons-api/src/main/java/org/apache/olingo/commons/api/edm/provider/CsdlEnumType.java b/lib/commons-api/src/main/java/org/apache/olingo/commons/api/edm/provider/CsdlEnumType.java
new file mode 100644
index 0000000..314ac04
--- /dev/null
+++ b/lib/commons-api/src/main/java/org/apache/olingo/commons/api/edm/provider/CsdlEnumType.java
@@ -0,0 +1,113 @@
+/*
+ * 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.provider;
+
+import java.util.ArrayList;
+import java.util.List;
+
+import org.apache.olingo.commons.api.edm.FullQualifiedName;
+
+public class CsdlEnumType extends CsdlAbstractEdmItem implements CsdlNamed, CsdlAnnotatable {
+
+ private static final long serialVersionUID = -718032622783883403L;
+
+ private String name;
+
+ private boolean isFlags;
+
+ private FullQualifiedName underlyingType;
+
+ private List<CsdlEnumMember> members = new ArrayList<CsdlEnumMember>();
+
+ private final List<CsdlAnnotation> annotations = new ArrayList<CsdlAnnotation>();
+
+ public String getName() {
+ return name;
+ }
+
+ public CsdlEnumType setName(final String name) {
+ this.name = name;
+ return this;
+ }
+
+ public boolean isFlags() {
+ return isFlags;
+ }
+
+ public CsdlEnumType setFlags(final boolean isFlags) {
+ this.isFlags = isFlags;
+ return this;
+ }
+
+ public String getUnderlyingType() {
+ if(underlyingType != null){
+ return underlyingType.getFullQualifiedNameAsString();
+ }
+ return null;
+ }
+
+ public CsdlEnumType setUnderlyingType(final String underlyingType) {
+ this.underlyingType = new FullQualifiedName(underlyingType);
+ return this;
+ }
+
+ public CsdlEnumType setUnderlyingType(final FullQualifiedName underlyingType) {
+ this.underlyingType = underlyingType;
+ return this;
+ }
+
+
+ public List<CsdlEnumMember> getMembers() {
+ return members;
+ }
+
+ public CsdlEnumMember getMember(final String name) {
+ CsdlEnumMember result = null;
+ if (getMembers() != null) {
+ for (CsdlEnumMember member : getMembers()) {
+ if (name.equals(member.getName())) {
+ result = member;
+ }
+ }
+ }
+ return result;
+ }
+
+ public CsdlEnumMember getMember(final Integer value) {
+ CsdlEnumMember result = null;
+ if (getMembers() != null) {
+ for (CsdlEnumMember member : getMembers()) {
+ if (String.valueOf(value).equals(member.getValue())) {
+ result = member;
+ }
+ }
+ }
+ return result;
+ }
+
+ public CsdlEnumType setMembers(final List<CsdlEnumMember> members) {
+ this.members = members;
+ return this;
+ }
+
+ @Override
+ public List<CsdlAnnotation> getAnnotations() {
+ return annotations;
+ }
+}
http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/2318953c/lib/commons-api/src/main/java/org/apache/olingo/commons/api/edm/provider/CsdlExpression.java
----------------------------------------------------------------------
diff --git a/lib/commons-api/src/main/java/org/apache/olingo/commons/api/edm/provider/CsdlExpression.java b/lib/commons-api/src/main/java/org/apache/olingo/commons/api/edm/provider/CsdlExpression.java
new file mode 100644
index 0000000..cb3f765
--- /dev/null
+++ b/lib/commons-api/src/main/java/org/apache/olingo/commons/api/edm/provider/CsdlExpression.java
@@ -0,0 +1,23 @@
+/*
+ * 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.provider;
+
+public class CsdlExpression {
+//TODO: Expression implementation
+}
http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/2318953c/lib/commons-api/src/main/java/org/apache/olingo/commons/api/edm/provider/CsdlFunction.java
----------------------------------------------------------------------
diff --git a/lib/commons-api/src/main/java/org/apache/olingo/commons/api/edm/provider/CsdlFunction.java b/lib/commons-api/src/main/java/org/apache/olingo/commons/api/edm/provider/CsdlFunction.java
new file mode 100644
index 0000000..38b32c7
--- /dev/null
+++ b/lib/commons-api/src/main/java/org/apache/olingo/commons/api/edm/provider/CsdlFunction.java
@@ -0,0 +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.commons.api.edm.provider;
+
+import java.util.List;
+
+public class CsdlFunction extends CsdlOperation {
+
+ private static final long serialVersionUID = 673858921468578957L;
+
+ private boolean isComposable = false;
+
+ public boolean isComposable() {
+ return isComposable;
+ }
+
+ public CsdlFunction setComposable(final boolean isComposable) {
+ this.isComposable = isComposable;
+ return this;
+ }
+
+ @Override
+ public CsdlFunction setName(final String name) {
+ this.name = name;
+ return this;
+ }
+
+ @Override
+ public CsdlFunction setBound(final boolean isBound) {
+ this.isBound = isBound;
+ return this;
+ }
+
+ @Override
+ public CsdlFunction setEntitySetPath(final String entitySetPath) {
+ this.entitySetPath = entitySetPath;
+ return this;
+ }
+
+ @Override
+ public CsdlFunction setParameters(final List<CsdlParameter> parameters) {
+ this.parameters = parameters;
+ return this;
+ }
+
+ @Override
+ public CsdlFunction setReturnType(final CsdlReturnType returnType) {
+ this.returnType = returnType;
+ return this;
+ }
+}
http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/2318953c/lib/commons-api/src/main/java/org/apache/olingo/commons/api/edm/provider/CsdlFunctionImport.java
----------------------------------------------------------------------
diff --git a/lib/commons-api/src/main/java/org/apache/olingo/commons/api/edm/provider/CsdlFunctionImport.java b/lib/commons-api/src/main/java/org/apache/olingo/commons/api/edm/provider/CsdlFunctionImport.java
new file mode 100644
index 0000000..ed14759
--- /dev/null
+++ b/lib/commons-api/src/main/java/org/apache/olingo/commons/api/edm/provider/CsdlFunctionImport.java
@@ -0,0 +1,77 @@
+/*
+ * 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.provider;
+
+import org.apache.olingo.commons.api.edm.FullQualifiedName;
+
+
+public class CsdlFunctionImport extends CsdlOperationImport {
+
+ private static final long serialVersionUID = 8479762299534736719L;
+
+ private FullQualifiedName function;
+
+ //Default include in service document is false for function imports
+ private boolean includeInServiceDocument;
+
+ @Override
+ public String getName() {
+ return name;
+ }
+
+ @Override
+ public CsdlFunctionImport setName(final String name) {
+ this.name = name;
+ return this;
+ }
+
+ @Override
+ public CsdlFunctionImport setEntitySet(final String entitySet) {
+ this.entitySet = entitySet;
+ return this;
+ }
+
+ public String getFunction() {
+ return function.getFullQualifiedNameAsString();
+ }
+
+ public FullQualifiedName getFunctionFQN() {
+ return function;
+ }
+
+
+ public CsdlFunctionImport setFunction(final FullQualifiedName function) {
+ this.function = function;
+ return this;
+ }
+
+ public CsdlFunctionImport setFunction(final String function) {
+ this.function = new FullQualifiedName(function);
+ return this;
+ }
+
+ public boolean isIncludeInServiceDocument() {
+ return includeInServiceDocument;
+ }
+
+ public CsdlFunctionImport setIncludeInServiceDocument(final boolean includeInServiceDocument) {
+ this.includeInServiceDocument = includeInServiceDocument;
+ return this;
+ }
+}
http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/2318953c/lib/commons-api/src/main/java/org/apache/olingo/commons/api/edm/provider/CsdlMapping.java
----------------------------------------------------------------------
diff --git a/lib/commons-api/src/main/java/org/apache/olingo/commons/api/edm/provider/CsdlMapping.java b/lib/commons-api/src/main/java/org/apache/olingo/commons/api/edm/provider/CsdlMapping.java
new file mode 100644
index 0000000..32bc782
--- /dev/null
+++ b/lib/commons-api/src/main/java/org/apache/olingo/commons/api/edm/provider/CsdlMapping.java
@@ -0,0 +1,50 @@
+/*
+ * 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.provider;
+
+import org.apache.olingo.commons.api.edm.EdmMapping;
+
+/**
+ * Content of this class does not appear within the CSDL metadata document. This class is used to perform server
+ * internal mapping for edm primitive types to java types.
+ */
+public class CsdlMapping implements EdmMapping {
+
+ private Class<?> mappedJavaClass;
+
+ /**
+ * Sets the class to be used during deserialization to transform an EDM primitive type into this java class. To see
+ * which classes work for which primitive type refer to {@link org.apache.olingo.commons.api.edm.EdmPrimitiveType}.
+ * @param mappedJavaClass class to which is mapped
+ * @return this for method chaining
+ */
+ public CsdlMapping setMappedJavaClass(Class<?> mappedJavaClass) {
+ this.mappedJavaClass = mappedJavaClass;
+ return this;
+ }
+
+ /* (non-Javadoc)
+ * @see org.apache.olingo.commons.api.edm.EdmMapping#getMappedJavaClass()
+ */
+ @Override
+ public Class<?> getMappedJavaClass() {
+ return mappedJavaClass;
+ }
+
+}
http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/2318953c/lib/commons-api/src/main/java/org/apache/olingo/commons/api/edm/provider/CsdlNamed.java
----------------------------------------------------------------------
diff --git a/lib/commons-api/src/main/java/org/apache/olingo/commons/api/edm/provider/CsdlNamed.java b/lib/commons-api/src/main/java/org/apache/olingo/commons/api/edm/provider/CsdlNamed.java
new file mode 100644
index 0000000..24a5803
--- /dev/null
+++ b/lib/commons-api/src/main/java/org/apache/olingo/commons/api/edm/provider/CsdlNamed.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.commons.api.edm.provider;
+
+import java.io.Serializable;
+
+public interface CsdlNamed extends Serializable {
+
+ String getName();
+}
http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/2318953c/lib/commons-api/src/main/java/org/apache/olingo/commons/api/edm/provider/CsdlNavigationProperty.java
----------------------------------------------------------------------
diff --git a/lib/commons-api/src/main/java/org/apache/olingo/commons/api/edm/provider/CsdlNavigationProperty.java b/lib/commons-api/src/main/java/org/apache/olingo/commons/api/edm/provider/CsdlNavigationProperty.java
new file mode 100644
index 0000000..16fc68e
--- /dev/null
+++ b/lib/commons-api/src/main/java/org/apache/olingo/commons/api/edm/provider/CsdlNavigationProperty.java
@@ -0,0 +1,138 @@
+/*
+ * 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.provider;
+
+import java.util.ArrayList;
+import java.util.List;
+
+import org.apache.olingo.commons.api.edm.FullQualifiedName;
+
+public class CsdlNavigationProperty extends CsdlAbstractEdmItem implements CsdlNamed, CsdlAnnotatable {
+
+ private static final long serialVersionUID = -788021920718310799L;
+
+ private String name;
+
+ private FullQualifiedName type;
+
+ private boolean isCollection;
+
+ private String partner;
+
+ private boolean containsTarget = false;
+
+ private List<CsdlReferentialConstraint> referentialConstraints = new ArrayList<CsdlReferentialConstraint>();
+
+ // Facets
+ private boolean nullable = true;
+
+ private CsdlOnDelete onDelete;
+
+ private List<CsdlAnnotation> annotations = new ArrayList<CsdlAnnotation>();
+
+ public String getName() {
+ return name;
+ }
+
+ public boolean isCollection() {
+ return isCollection;
+ }
+
+ public CsdlNavigationProperty setCollection(final boolean isCollection) {
+ this.isCollection = isCollection;
+ return this;
+ }
+
+ public CsdlNavigationProperty setName(final String name) {
+ this.name = name;
+ return this;
+ }
+
+ public FullQualifiedName getTypeFQN() {
+ return type;
+ }
+
+ public String getType() {
+ if(type != null){
+ return type.getFullQualifiedNameAsString();
+ }
+ return null;
+ }
+
+ public CsdlNavigationProperty setType(final FullQualifiedName type) {
+ this.type = type;
+ return this;
+ }
+
+ public CsdlNavigationProperty setType(final String type) {
+ this.type = new FullQualifiedName(type);
+ return this;
+ }
+
+ public String getPartner() {
+ return partner;
+ }
+
+ public CsdlNavigationProperty setPartner(final String partner) {
+ this.partner = partner;
+ return this;
+ }
+
+ public boolean isContainsTarget() {
+ return containsTarget;
+ }
+
+ public CsdlNavigationProperty setContainsTarget(final boolean containsTarget) {
+ this.containsTarget = containsTarget;
+ return this;
+ }
+
+ public List<CsdlReferentialConstraint> getReferentialConstraints() {
+ return referentialConstraints;
+ }
+
+ public CsdlNavigationProperty setReferentialConstraints(
+ final List<CsdlReferentialConstraint> referentialConstraints) {
+ this.referentialConstraints = referentialConstraints;
+ return this;
+ }
+
+ public Boolean isNullable() {
+ return nullable;
+ }
+
+ public CsdlNavigationProperty setNullable(final Boolean nullable) {
+ this.nullable = nullable;
+ return this;
+ }
+
+ public CsdlOnDelete getOnDelete() {
+ return onDelete;
+ }
+
+ public CsdlNavigationProperty setOnDelete(final CsdlOnDelete onDelete) {
+ this.onDelete = onDelete;
+ return this;
+ }
+
+ @Override
+ public List<CsdlAnnotation> getAnnotations() {
+ return annotations;
+ }
+}
http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/2318953c/lib/commons-api/src/main/java/org/apache/olingo/commons/api/edm/provider/CsdlNavigationPropertyBinding.java
----------------------------------------------------------------------
diff --git a/lib/commons-api/src/main/java/org/apache/olingo/commons/api/edm/provider/CsdlNavigationPropertyBinding.java b/lib/commons-api/src/main/java/org/apache/olingo/commons/api/edm/provider/CsdlNavigationPropertyBinding.java
new file mode 100644
index 0000000..ce14ead
--- /dev/null
+++ b/lib/commons-api/src/main/java/org/apache/olingo/commons/api/edm/provider/CsdlNavigationPropertyBinding.java
@@ -0,0 +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.commons.api.edm.provider;
+
+
+public class CsdlNavigationPropertyBinding extends CsdlAbstractEdmItem {
+
+ private static final long serialVersionUID = 770380971233808502L;
+
+ private String path;
+
+ private String target;
+
+ public String getPath() {
+ return path;
+ }
+
+ public CsdlNavigationPropertyBinding setPath(final String path) {
+ this.path = path;
+ return this;
+ }
+
+ public String getTarget() {
+ return target;
+ }
+
+ public CsdlNavigationPropertyBinding setTarget(final String target) {
+ this.target = target;
+ return this;
+ }
+}
http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/2318953c/lib/commons-api/src/main/java/org/apache/olingo/commons/api/edm/provider/CsdlOnDelete.java
----------------------------------------------------------------------
diff --git a/lib/commons-api/src/main/java/org/apache/olingo/commons/api/edm/provider/CsdlOnDelete.java b/lib/commons-api/src/main/java/org/apache/olingo/commons/api/edm/provider/CsdlOnDelete.java
new file mode 100644
index 0000000..1b03ba8
--- /dev/null
+++ b/lib/commons-api/src/main/java/org/apache/olingo/commons/api/edm/provider/CsdlOnDelete.java
@@ -0,0 +1,38 @@
+/*
+ * 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.provider;
+
+
+
+public class CsdlOnDelete extends CsdlAbstractEdmItem {
+
+ private static final long serialVersionUID = -7130889202653716784L;
+
+ private CsdlOnDeleteAction action = CsdlOnDeleteAction.None;
+
+ public CsdlOnDeleteAction getAction() {
+ return action;
+ }
+
+ public CsdlOnDelete setAction(final CsdlOnDeleteAction action) {
+ this.action = action;
+ return this;
+ }
+
+}
http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/2318953c/lib/commons-api/src/main/java/org/apache/olingo/commons/api/edm/provider/CsdlOnDeleteAction.java
----------------------------------------------------------------------
diff --git a/lib/commons-api/src/main/java/org/apache/olingo/commons/api/edm/provider/CsdlOnDeleteAction.java b/lib/commons-api/src/main/java/org/apache/olingo/commons/api/edm/provider/CsdlOnDeleteAction.java
new file mode 100644
index 0000000..822f0ce
--- /dev/null
+++ b/lib/commons-api/src/main/java/org/apache/olingo/commons/api/edm/provider/CsdlOnDeleteAction.java
@@ -0,0 +1,28 @@
+/*
+ * 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.provider;
+
+public enum CsdlOnDeleteAction {
+
+ Cascade,
+ None,
+ SetNull,
+ SetDefault
+
+}
http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/2318953c/lib/commons-api/src/main/java/org/apache/olingo/commons/api/edm/provider/CsdlOperation.java
----------------------------------------------------------------------
diff --git a/lib/commons-api/src/main/java/org/apache/olingo/commons/api/edm/provider/CsdlOperation.java b/lib/commons-api/src/main/java/org/apache/olingo/commons/api/edm/provider/CsdlOperation.java
new file mode 100644
index 0000000..e7cd6af
--- /dev/null
+++ b/lib/commons-api/src/main/java/org/apache/olingo/commons/api/edm/provider/CsdlOperation.java
@@ -0,0 +1,92 @@
+/*
+ * 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.provider;
+
+import java.util.ArrayList;
+import java.util.List;
+
+public abstract class CsdlOperation extends CsdlAbstractEdmItem implements CsdlNamed, CsdlAnnotatable {
+
+ private static final long serialVersionUID = -3842411084067064086L;
+
+ protected String name;
+
+ protected boolean isBound = false;
+
+ protected String entitySetPath;
+
+ protected List<CsdlParameter> parameters = new ArrayList<CsdlParameter>();
+
+ protected CsdlReturnType returnType;
+
+ protected final List<CsdlAnnotation> annotations = new ArrayList<CsdlAnnotation>();
+
+ public String getName() {
+ return name;
+ }
+
+ public CsdlOperation setName(final String name) {
+ this.name = name;
+ return this;
+ }
+
+ public boolean isBound() {
+ return isBound;
+ }
+
+ public CsdlOperation setBound(final boolean isBound) {
+ this.isBound = isBound;
+ return this;
+ }
+
+ public String getEntitySetPath() {
+ return entitySetPath;
+ }
+
+ public CsdlOperation setEntitySetPath(final String entitySetPath) {
+ this.entitySetPath = entitySetPath;
+ return this;
+ }
+
+ public List<CsdlParameter> getParameters() {
+ return parameters;
+ }
+
+ public CsdlParameter getParameter(String name) {
+ return getOneByName(name, getParameters());
+ }
+
+ public CsdlOperation setParameters(final List<CsdlParameter> parameters) {
+ this.parameters = parameters;
+ return this;
+ }
+
+ public CsdlReturnType getReturnType() {
+ return returnType;
+ }
+
+ public CsdlOperation setReturnType(final CsdlReturnType returnType) {
+ this.returnType = returnType;
+ return this;
+ }
+
+ public List<CsdlAnnotation> getAnnotations() {
+ return annotations;
+ }
+}
http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/2318953c/lib/commons-api/src/main/java/org/apache/olingo/commons/api/edm/provider/CsdlOperationImport.java
----------------------------------------------------------------------
diff --git a/lib/commons-api/src/main/java/org/apache/olingo/commons/api/edm/provider/CsdlOperationImport.java b/lib/commons-api/src/main/java/org/apache/olingo/commons/api/edm/provider/CsdlOperationImport.java
new file mode 100644
index 0000000..af21471
--- /dev/null
+++ b/lib/commons-api/src/main/java/org/apache/olingo/commons/api/edm/provider/CsdlOperationImport.java
@@ -0,0 +1,54 @@
+/*
+ * 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.provider;
+
+import java.util.ArrayList;
+import java.util.List;
+
+public abstract class CsdlOperationImport extends CsdlAbstractEdmItem implements CsdlNamed, CsdlAnnotatable {
+
+ private static final long serialVersionUID = -8928186067970681061L;
+
+ protected String name;
+ protected String entitySet;
+ protected final List<CsdlAnnotation> annotations = new ArrayList<CsdlAnnotation>();
+
+ public String getName() {
+ return name;
+ }
+
+ public CsdlOperationImport setName(final String name) {
+ this.name = name;
+ return this;
+ }
+
+ public String getEntitySet() {
+ return entitySet;
+ }
+
+ public CsdlOperationImport setEntitySet(final String entitySet) {
+ this.entitySet = entitySet;
+ return this;
+ }
+
+ @Override
+ public List<CsdlAnnotation> getAnnotations() {
+ return annotations;
+ }
+}
http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/2318953c/lib/commons-api/src/main/java/org/apache/olingo/commons/api/edm/provider/CsdlParameter.java
----------------------------------------------------------------------
diff --git a/lib/commons-api/src/main/java/org/apache/olingo/commons/api/edm/provider/CsdlParameter.java b/lib/commons-api/src/main/java/org/apache/olingo/commons/api/edm/provider/CsdlParameter.java
new file mode 100644
index 0000000..15c2c3a
--- /dev/null
+++ b/lib/commons-api/src/main/java/org/apache/olingo/commons/api/edm/provider/CsdlParameter.java
@@ -0,0 +1,146 @@
+/*
+ * 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.provider;
+
+import java.util.ArrayList;
+import java.util.List;
+
+import org.apache.olingo.commons.api.edm.FullQualifiedName;
+import org.apache.olingo.commons.api.edm.geo.SRID;
+
+public class CsdlParameter extends CsdlAbstractEdmItem implements CsdlNamed, CsdlAnnotatable {
+
+ private static final long serialVersionUID = -7360900923880732015L;
+
+ private String name;
+
+ private FullQualifiedName type;
+
+ private boolean isCollection;
+
+ private CsdlMapping mapping;
+
+ // Facets
+ private boolean nullable = true;
+
+ private Integer maxLength;
+
+ private Integer precision;
+
+ private Integer scale;
+
+ private SRID srid;
+
+ private final List<CsdlAnnotation> annotations = new ArrayList<CsdlAnnotation>();
+
+ public String getName() {
+ return name;
+ }
+
+ public CsdlParameter setName(final String name) {
+ this.name = name;
+ return this;
+ }
+
+ public String getType() {
+ return type.getFullQualifiedNameAsString();
+ }
+
+ public FullQualifiedName getTypeFQN() {
+ return type;
+ }
+
+ public CsdlParameter setType(final String type) {
+ this.type = new FullQualifiedName(type);
+ return this;
+ }
+
+ public CsdlParameter setType(final FullQualifiedName type) {
+ this.type = type;
+ return this;
+ }
+
+ public boolean isCollection() {
+ return isCollection;
+ }
+
+ public CsdlParameter setCollection(final boolean isCollection) {
+ this.isCollection = isCollection;
+ return this;
+ }
+
+ public boolean isNullable() {
+ return nullable;
+ }
+
+ public CsdlParameter setNullable(final boolean nullable) {
+ this.nullable = nullable;
+ return this;
+ }
+
+ public Integer getMaxLength() {
+ return maxLength;
+ }
+
+ public CsdlParameter setMaxLength(final Integer maxLength) {
+ this.maxLength = maxLength;
+ return this;
+ }
+
+ public Integer getPrecision() {
+ return precision;
+ }
+
+ public CsdlParameter setPrecision(final Integer precision) {
+ this.precision = precision;
+ return this;
+ }
+
+ public Integer getScale() {
+ return scale;
+ }
+
+ public CsdlParameter setScale(final Integer scale) {
+ this.scale = scale;
+ return this;
+ }
+
+ public SRID getSrid() {
+ return srid;
+ }
+
+ public CsdlParameter setSrid(final SRID srid) {
+ this.srid = srid;
+ return this;
+ }
+
+ @Override
+ public List<CsdlAnnotation> getAnnotations() {
+ return annotations;
+ }
+
+ public CsdlMapping getMapping() {
+ return mapping;
+ }
+
+ public CsdlParameter setMapping(final CsdlMapping mapping) {
+ this.mapping = mapping;
+ return this;
+ }
+}
http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/2318953c/lib/commons-api/src/main/java/org/apache/olingo/commons/api/edm/provider/CsdlProperty.java
----------------------------------------------------------------------
diff --git a/lib/commons-api/src/main/java/org/apache/olingo/commons/api/edm/provider/CsdlProperty.java b/lib/commons-api/src/main/java/org/apache/olingo/commons/api/edm/provider/CsdlProperty.java
new file mode 100644
index 0000000..42f7b65
--- /dev/null
+++ b/lib/commons-api/src/main/java/org/apache/olingo/commons/api/edm/provider/CsdlProperty.java
@@ -0,0 +1,180 @@
+/*
+ * 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.provider;
+
+import java.util.ArrayList;
+import java.util.List;
+
+import org.apache.olingo.commons.api.edm.FullQualifiedName;
+import org.apache.olingo.commons.api.edm.geo.SRID;
+
+public class CsdlProperty extends CsdlAbstractEdmItem implements CsdlNamed, CsdlAnnotatable {
+
+ private static final long serialVersionUID = -4224390853690843450L;
+
+ private String name;
+
+ private String type;
+
+ private boolean collection;
+
+ private String mimeType;
+
+ private CsdlMapping mapping;
+
+ // Facets
+ private String defaultValue;
+
+ private boolean nullable = true;
+
+ private Integer maxLength;
+
+ private Integer precision;
+
+ private Integer scale;
+
+ private boolean unicode = true;
+
+ private SRID srid;
+
+ private List<CsdlAnnotation> annotations = new ArrayList<CsdlAnnotation>();
+
+
+ public String getName() {
+ return name;
+ }
+
+ public CsdlProperty setName(final String name) {
+ this.name = name;
+ return this;
+ }
+
+ public String getType() {
+ return type;
+ }
+
+ public CsdlProperty setType(final String type) {
+ this.type = type;
+ return this;
+ }
+
+ public FullQualifiedName getTypeAsFQNObject(){
+ return new FullQualifiedName(type);
+ }
+
+ public CsdlProperty setType(FullQualifiedName fqnName){
+ this.type = fqnName.getFullQualifiedNameAsString();
+ return this;
+ }
+
+ public boolean isCollection() {
+ return collection;
+ }
+
+ public CsdlProperty setCollection(final boolean isCollection) {
+ collection = isCollection;
+ return this;
+ }
+
+ public String getDefaultValue() {
+ return defaultValue;
+ }
+
+ public CsdlProperty setDefaultValue(final String defaultValue) {
+ this.defaultValue = defaultValue;
+ return this;
+ }
+
+ public boolean isNullable() {
+ return nullable;
+ }
+
+ public CsdlProperty setNullable(final boolean nullable) {
+ this.nullable = nullable;
+ return this;
+ }
+
+ public Integer getMaxLength() {
+ return maxLength;
+ }
+
+ public CsdlProperty setMaxLength(final Integer maxLength) {
+ this.maxLength = maxLength;
+ return this;
+ }
+
+ public Integer getPrecision() {
+ return precision;
+ }
+
+ public CsdlProperty setPrecision(final Integer precision) {
+ this.precision = precision;
+ return this;
+ }
+
+ public Integer getScale() {
+ return scale;
+ }
+
+ public CsdlProperty setScale(final Integer scale) {
+ this.scale = scale;
+ return this;
+ }
+
+ public boolean isUnicode() {
+ return unicode;
+ }
+
+ public CsdlProperty setUnicode(final boolean unicode) {
+ this.unicode = unicode;
+ return this;
+ }
+
+ public String getMimeType() {
+ return mimeType;
+ }
+
+ public CsdlProperty setMimeType(final String mimeType) {
+ this.mimeType = mimeType;
+ return this;
+ }
+
+ public CsdlMapping getMapping() {
+ return mapping;
+ }
+
+ public CsdlProperty setMapping(final CsdlMapping mapping) {
+ this.mapping = mapping;
+ return this;
+ }
+
+ @Override
+ public List<CsdlAnnotation> getAnnotations() {
+ return annotations;
+ }
+
+ public CsdlProperty setSrid(final SRID srid) {
+ this.srid = srid;
+ return this;
+ }
+
+ public SRID getSrid() {
+ return srid;
+ }
+}
http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/2318953c/lib/commons-api/src/main/java/org/apache/olingo/commons/api/edm/provider/CsdlPropertyRef.java
----------------------------------------------------------------------
diff --git a/lib/commons-api/src/main/java/org/apache/olingo/commons/api/edm/provider/CsdlPropertyRef.java b/lib/commons-api/src/main/java/org/apache/olingo/commons/api/edm/provider/CsdlPropertyRef.java
new file mode 100644
index 0000000..a57ce4e
--- /dev/null
+++ b/lib/commons-api/src/main/java/org/apache/olingo/commons/api/edm/provider/CsdlPropertyRef.java
@@ -0,0 +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.commons.api.edm.provider;
+
+public class CsdlPropertyRef extends CsdlAbstractEdmItem implements CsdlNamed {
+
+ private static final long serialVersionUID = 9082892362895660037L;
+
+ private String name;
+
+ private String alias;
+
+ public String getName() {
+ return name;
+ }
+
+ public CsdlPropertyRef setName(final String name) {
+ this.name = name;
+ return this;
+ }
+
+ public String getAlias() {
+ return alias;
+ }
+
+ public CsdlPropertyRef setAlias(final String alias) {
+ this.alias = alias;
+ return this;
+ }
+}
http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/2318953c/lib/commons-api/src/main/java/org/apache/olingo/commons/api/edm/provider/CsdlReferentialConstraint.java
----------------------------------------------------------------------
diff --git a/lib/commons-api/src/main/java/org/apache/olingo/commons/api/edm/provider/CsdlReferentialConstraint.java b/lib/commons-api/src/main/java/org/apache/olingo/commons/api/edm/provider/CsdlReferentialConstraint.java
new file mode 100644
index 0000000..7c06724
--- /dev/null
+++ b/lib/commons-api/src/main/java/org/apache/olingo/commons/api/edm/provider/CsdlReferentialConstraint.java
@@ -0,0 +1,56 @@
+/*
+ * 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.provider;
+
+import java.util.ArrayList;
+import java.util.List;
+
+public class CsdlReferentialConstraint extends CsdlAbstractEdmItem implements CsdlAnnotatable {
+
+ private static final long serialVersionUID = -7467707499798840075L;
+
+ private String property;
+
+ private String referencedProperty;
+
+ private final List<CsdlAnnotation> annotations = new ArrayList<CsdlAnnotation>();
+
+ public String getProperty() {
+ return property;
+ }
+
+ public CsdlReferentialConstraint setProperty(final String property) {
+ this.property = property;
+ return this;
+ }
+
+ public String getReferencedProperty() {
+ return referencedProperty;
+ }
+
+ public CsdlReferentialConstraint setReferencedProperty(final String referencedProperty) {
+ this.referencedProperty = referencedProperty;
+ return this;
+ }
+
+ @Override
+ public List<CsdlAnnotation> getAnnotations() {
+ return annotations;
+ }
+}
http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/2318953c/lib/commons-api/src/main/java/org/apache/olingo/commons/api/edm/provider/CsdlReturnType.java
----------------------------------------------------------------------
diff --git a/lib/commons-api/src/main/java/org/apache/olingo/commons/api/edm/provider/CsdlReturnType.java b/lib/commons-api/src/main/java/org/apache/olingo/commons/api/edm/provider/CsdlReturnType.java
new file mode 100644
index 0000000..f0d5e9e
--- /dev/null
+++ b/lib/commons-api/src/main/java/org/apache/olingo/commons/api/edm/provider/CsdlReturnType.java
@@ -0,0 +1,114 @@
+/*
+ * 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.provider;
+
+import org.apache.olingo.commons.api.edm.FullQualifiedName;
+import org.apache.olingo.commons.api.edm.geo.SRID;
+
+public class CsdlReturnType extends CsdlAbstractEdmItem {
+
+ private static final long serialVersionUID = 4816954124986010965L;
+
+ private FullQualifiedName type;
+
+ private boolean isCollection;
+
+ // facets
+ private boolean nullable = true;
+
+ private Integer maxLength;
+
+ private Integer precision;
+
+ private Integer scale;
+
+ private SRID srid;
+
+ public String getType() {
+ return type.getFullQualifiedNameAsString();
+ }
+
+ public FullQualifiedName getTypeFQN() {
+ return type;
+ }
+
+ public CsdlReturnType setType(final String type) {
+ this.type = new FullQualifiedName(type);
+ return this;
+ }
+
+ public CsdlReturnType setType(final FullQualifiedName type) {
+ this.type = type;
+ return this;
+ }
+
+ public boolean isCollection() {
+ return isCollection;
+ }
+
+ public CsdlReturnType setCollection(final boolean isCollection) {
+ this.isCollection = isCollection;
+ return this;
+ }
+
+ public boolean isNullable() {
+ return nullable;
+ }
+
+ public CsdlReturnType setNullable(final boolean nullable) {
+ this.nullable = nullable;
+ return this;
+ }
+
+ public Integer getMaxLength() {
+ return maxLength;
+ }
+
+ public CsdlReturnType setMaxLength(final Integer maxLength) {
+ this.maxLength = maxLength;
+ return this;
+ }
+
+ public Integer getPrecision() {
+ return precision;
+ }
+
+ public CsdlReturnType setPrecision(final Integer precision) {
+ this.precision = precision;
+ return this;
+ }
+
+ public Integer getScale() {
+ return scale;
+ }
+
+ public CsdlReturnType setScale(final Integer scale) {
+ this.scale = scale;
+ return this;
+ }
+
+ public SRID getSrid() {
+ return srid;
+ }
+
+ public CsdlReturnType setSrid(final SRID srid) {
+ this.srid = srid;
+ return this;
+ }
+}
http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/2318953c/lib/commons-api/src/main/java/org/apache/olingo/commons/api/edm/provider/CsdlSchema.java
----------------------------------------------------------------------
diff --git a/lib/commons-api/src/main/java/org/apache/olingo/commons/api/edm/provider/CsdlSchema.java b/lib/commons-api/src/main/java/org/apache/olingo/commons/api/edm/provider/CsdlSchema.java
new file mode 100644
index 0000000..8300eaa
--- /dev/null
+++ b/lib/commons-api/src/main/java/org/apache/olingo/commons/api/edm/provider/CsdlSchema.java
@@ -0,0 +1,265 @@
+/*
+ * 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.provider;
+
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
+public class CsdlSchema extends CsdlAbstractEdmItem implements CsdlAnnotatable {
+
+ private static final long serialVersionUID = -1527213201328056750L;
+
+ private String namespace;
+
+ private String alias;
+
+ private List<CsdlEnumType> enumTypes = new ArrayList<CsdlEnumType>();
+
+ private List<CsdlTypeDefinition> typeDefinitions = new ArrayList<CsdlTypeDefinition>();
+
+ private List<CsdlEntityType> entityTypes = new ArrayList<CsdlEntityType>();
+
+ private List<CsdlComplexType> complexTypes = new ArrayList<CsdlComplexType>();
+
+ private List<CsdlAction> actions = new ArrayList<CsdlAction>();
+
+ private List<CsdlFunction> functions = new ArrayList<CsdlFunction>();
+
+ private CsdlEntityContainer entityContainer;
+
+ private List<CsdlTerm> terms = new ArrayList<CsdlTerm>();
+
+ private final List<CsdlAnnotations> annotationGroups = new ArrayList<CsdlAnnotations>();
+
+ private final List<CsdlAnnotation> annotations = new ArrayList<CsdlAnnotation>();
+
+ private Map<String, CsdlAnnotatable> annotatables;
+
+
+ public String getNamespace() {
+ return namespace;
+ }
+
+ public CsdlSchema setNamespace(final String namespace) {
+ this.namespace = namespace;
+ return this;
+ }
+
+ public String getAlias() {
+ return alias;
+ }
+
+ public CsdlSchema setAlias(final String alias) {
+ this.alias = alias;
+ return this;
+ }
+
+ public List<CsdlEnumType> getEnumTypes() {
+ return enumTypes;
+ }
+
+ public CsdlEnumType getEnumType(final String name) {
+ return getOneByName(name, getEnumTypes());
+ }
+
+ public CsdlSchema setEnumTypes(final List<CsdlEnumType> enumTypes) {
+ this.enumTypes = enumTypes;
+ return this;
+ }
+
+ public List<CsdlTypeDefinition> getTypeDefinitions() {
+ return typeDefinitions;
+ }
+
+ public CsdlTypeDefinition getTypeDefinition(final String name) {
+ return getOneByName(name, getTypeDefinitions());
+ }
+
+ public CsdlSchema setTypeDefinitions(final List<CsdlTypeDefinition> typeDefinitions) {
+ this.typeDefinitions = typeDefinitions;
+ return this;
+ }
+
+ public List<CsdlEntityType> getEntityTypes() {
+ return entityTypes;
+ }
+
+ public CsdlEntityType getEntityType(final String name) {
+ return getOneByName(name, getEntityTypes());
+ }
+
+ public CsdlSchema setEntityTypes(final List<CsdlEntityType> entityTypes) {
+ this.entityTypes = entityTypes;
+ return this;
+ }
+
+ public List<CsdlComplexType> getComplexTypes() {
+ return complexTypes;
+ }
+
+ public CsdlComplexType getComplexType(final String name) {
+ return getOneByName(name, getComplexTypes());
+ }
+
+ public CsdlSchema setComplexTypes(final List<CsdlComplexType> complexTypes) {
+ this.complexTypes = complexTypes;
+ return this;
+ }
+
+ public List<CsdlAction> getActions() {
+ return actions;
+ }
+
+ /**
+ * All actions with the given name
+ * @param name
+ * @return a list of actions
+ */
+ public List<CsdlAction> getActions(final String name) {
+ return getAllByName(name, getActions());
+ }
+
+ public CsdlSchema setActions(final List<CsdlAction> actions) {
+ this.actions = actions;
+ return this;
+ }
+
+ public List<CsdlFunction> getFunctions() {
+ return functions;
+ }
+
+ /**
+ * All functions with the given name
+ * @param name
+ * @return a list of functions
+ */
+ public List<CsdlFunction> getFunctions(final String name) {
+ return getAllByName(name, getFunctions());
+ }
+
+ public CsdlSchema setFunctions(final List<CsdlFunction> functions) {
+ this.functions = functions;
+ return this;
+ }
+
+ public CsdlEntityContainer getEntityContainer() {
+ return entityContainer;
+ }
+
+ public CsdlSchema setEntityContainer(final CsdlEntityContainer entityContainer) {
+ this.entityContainer = entityContainer;
+ return this;
+ }
+
+ public List<CsdlTerm> getTerms() {
+ return terms;
+ }
+
+ public CsdlTerm getTerm(final String name) {
+ return getOneByName(name, getTerms());
+ }
+
+
+ public CsdlSchema setTerms(final List<CsdlTerm> terms) {
+ this.terms = terms;
+ return this;
+ }
+
+ public List<CsdlAnnotations> getAnnotationGroups() {
+ return annotationGroups;
+ }
+
+ public CsdlAnnotations getAnnotationGroup(final String target) {
+ CsdlAnnotations result = null;
+ for (CsdlAnnotations annots : getAnnotationGroups()) {
+ if (target.equals(annots.getTarget())) {
+ result = annots;
+ }
+ }
+ return result;
+ }
+
+ public CsdlAnnotation getAnnotation(final String term) {
+ CsdlAnnotation result = null;
+ for (CsdlAnnotation annot : getAnnotations()) {
+ if (term.equals(annot.getTerm())) {
+ result = annot;
+ }
+ }
+ return result;
+ }
+
+ public List<CsdlAnnotation> getAnnotations() {
+ return annotations;
+ }
+
+ public Map<String, CsdlAnnotatable> getAnnotatables() {
+ if (annotatables == null) {
+ annotatables = new HashMap<String, CsdlAnnotatable>();
+ for (CsdlAnnotations annotationGroup : getAnnotationGroups()) {
+ annotatables.put(null, annotationGroup);
+ }
+ for (CsdlAnnotation annotation : getAnnotations()) {
+ annotatables.put(annotation.getTerm(), annotation);
+ }
+ for (CsdlAction action : getActions()) {
+ annotatables.put(action.getName(), action);
+ }
+ for (CsdlComplexType complexType : getComplexTypes()) {
+ annotatables.put(complexType.getName(), complexType);
+ }
+ for (CsdlEntityType entityType : getEntityTypes()) {
+ annotatables.put(entityType.getName(), entityType);
+ }
+ for (CsdlEnumType enumType : getEnumTypes()) {
+ annotatables.put(enumType.getName(), enumType);
+ }
+ for (CsdlFunction function : getFunctions()) {
+ annotatables.put(function.getName(), function);
+ }
+ for (CsdlTerm term : getTerms()) {
+ annotatables.put(term.getName(), term);
+ }
+ for (CsdlTypeDefinition typedef : getTypeDefinitions()) {
+ annotatables.put(typedef.getName(), typedef);
+ }
+ if (entityContainer != null) {
+ annotatables.put(entityContainer.getName(), entityContainer);
+ for (CsdlAnnotation annotation : entityContainer.getAnnotations()) {
+ annotatables.put(annotation.getTerm(), annotation);
+ }
+ for (CsdlActionImport actionImport : entityContainer.getActionImports()) {
+ annotatables.put(actionImport.getName(), actionImport);
+ }
+ for (CsdlFunctionImport functionImport : entityContainer.getFunctionImports()) {
+ annotatables.put(functionImport.getName(), functionImport);
+ }
+ for (CsdlEntitySet entitySet : entityContainer.getEntitySets()) {
+ annotatables.put(entitySet.getName(), entitySet);
+ }
+ for (CsdlSingleton singleton : entityContainer.getSingletons()) {
+ annotatables.put(singleton.getName(), singleton);
+ }
+ }
+ }
+ return annotatables;
+ }
+}
http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/2318953c/lib/commons-api/src/main/java/org/apache/olingo/commons/api/edm/provider/CsdlSingleton.java
----------------------------------------------------------------------
diff --git a/lib/commons-api/src/main/java/org/apache/olingo/commons/api/edm/provider/CsdlSingleton.java b/lib/commons-api/src/main/java/org/apache/olingo/commons/api/edm/provider/CsdlSingleton.java
new file mode 100644
index 0000000..c5ca253
--- /dev/null
+++ b/lib/commons-api/src/main/java/org/apache/olingo/commons/api/edm/provider/CsdlSingleton.java
@@ -0,0 +1,53 @@
+/*
+ * 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.provider;
+
+import java.util.List;
+
+import org.apache.olingo.commons.api.edm.FullQualifiedName;
+
+public class CsdlSingleton extends CsdlBindingTarget {
+
+ private static final long serialVersionUID = -3997943079062565895L;
+
+ @Override
+ public CsdlSingleton setName(final String name) {
+ this.name = name;
+ return this;
+ }
+
+ @Override
+ public CsdlSingleton setType(final String type) {
+ this.type = new FullQualifiedName(type);
+ return this;
+ }
+
+ @Override
+ public CsdlSingleton setType(final FullQualifiedName type) {
+ this.type = type;
+ return this;
+ }
+
+ @Override
+ public CsdlSingleton setNavigationPropertyBindings(
+ final List<CsdlNavigationPropertyBinding> navigationPropertyBindings) {
+ this.navigationPropertyBindings = navigationPropertyBindings;
+ return this;
+ }
+}
http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/2318953c/lib/commons-api/src/main/java/org/apache/olingo/commons/api/edm/provider/CsdlStructuralType.java
----------------------------------------------------------------------
diff --git a/lib/commons-api/src/main/java/org/apache/olingo/commons/api/edm/provider/CsdlStructuralType.java b/lib/commons-api/src/main/java/org/apache/olingo/commons/api/edm/provider/CsdlStructuralType.java
new file mode 100644
index 0000000..fdadf48
--- /dev/null
+++ b/lib/commons-api/src/main/java/org/apache/olingo/commons/api/edm/provider/CsdlStructuralType.java
@@ -0,0 +1,122 @@
+/*
+ * 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.provider;
+
+import java.util.ArrayList;
+import java.util.List;
+
+import org.apache.olingo.commons.api.edm.FullQualifiedName;
+
+public abstract class CsdlStructuralType extends CsdlAbstractEdmItem implements CsdlNamed, CsdlAnnotatable {
+
+ private static final long serialVersionUID = 8662852373514258646L;
+
+ protected String name;
+
+ protected boolean isOpenType = false;
+
+ protected FullQualifiedName baseType;
+
+ protected boolean isAbstract;
+
+ protected List<CsdlProperty> properties = new ArrayList<CsdlProperty>();
+
+ protected List<CsdlNavigationProperty> navigationProperties = new ArrayList<CsdlNavigationProperty>();
+
+ protected final List<CsdlAnnotation> annotations = new ArrayList<CsdlAnnotation>();
+
+ public String getName() {
+ return name;
+ }
+
+ public CsdlStructuralType setName(final String name) {
+ this.name = name;
+ return this;
+ }
+
+ public boolean isOpenType() {
+ return isOpenType;
+ }
+
+ public CsdlStructuralType setOpenType(final boolean isOpenType) {
+ this.isOpenType = isOpenType;
+ return this;
+ }
+
+ public String getBaseType() {
+ if (baseType != null) {
+ return baseType.getFullQualifiedNameAsString();
+ }
+ return null;
+ }
+
+ public FullQualifiedName getBaseTypeFQN() {
+ return baseType;
+ }
+
+ public CsdlStructuralType setBaseType(final String baseType) {
+ this.baseType = new FullQualifiedName(baseType);
+ return this;
+ }
+
+ public CsdlStructuralType setBaseType(final FullQualifiedName baseType) {
+ this.baseType = baseType;
+ return this;
+ }
+
+ public boolean isAbstract() {
+ return isAbstract;
+ }
+
+ public CsdlStructuralType setAbstract(final boolean isAbstract) {
+ this.isAbstract = isAbstract;
+ return this;
+ }
+
+ public List<CsdlProperty> getProperties() {
+ return properties;
+ }
+
+ public CsdlProperty getProperty(String name) {
+ return getOneByName(name, properties);
+ }
+
+ public CsdlStructuralType setProperties(final List<CsdlProperty> properties) {
+ this.properties = properties;
+ return this;
+ }
+
+ public List<CsdlNavigationProperty> getNavigationProperties() {
+ return navigationProperties;
+ }
+
+ public CsdlNavigationProperty getNavigationProperty(String name) {
+ return getOneByName(name, navigationProperties);
+ }
+
+ public CsdlStructuralType setNavigationProperties(final List<CsdlNavigationProperty> navigationProperties) {
+ this.navigationProperties = navigationProperties;
+ return this;
+ }
+
+ @Override
+ public List<CsdlAnnotation> getAnnotations() {
+ return annotations;
+ }
+}
http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/2318953c/lib/commons-api/src/main/java/org/apache/olingo/commons/api/edm/provider/CsdlTerm.java
----------------------------------------------------------------------
diff --git a/lib/commons-api/src/main/java/org/apache/olingo/commons/api/edm/provider/CsdlTerm.java b/lib/commons-api/src/main/java/org/apache/olingo/commons/api/edm/provider/CsdlTerm.java
new file mode 100644
index 0000000..ace5e36
--- /dev/null
+++ b/lib/commons-api/src/main/java/org/apache/olingo/commons/api/edm/provider/CsdlTerm.java
@@ -0,0 +1,162 @@
+/*
+ * 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.provider;
+
+import java.util.ArrayList;
+import java.util.List;
+
+import org.apache.olingo.commons.api.edm.geo.SRID;
+
+public class CsdlTerm extends CsdlAbstractEdmItem implements CsdlNamed, CsdlAnnotatable {
+
+ private static final long serialVersionUID = 3843929000407818103L;
+
+ private String name;
+
+ private String type;
+
+ private String baseTerm;
+
+ private List<String> appliesTo = new ArrayList<String>();
+
+ private boolean isCollection;
+
+ // Facets
+ private String defaultValue;
+
+ private boolean nullable = true;
+
+ private Integer maxLength;
+
+ private Integer precision;
+
+ private Integer scale;
+
+ private SRID srid;
+
+ private List<CsdlAnnotation> annotations = new ArrayList<CsdlAnnotation>();
+
+ public String getName() {
+ return name;
+ }
+
+ public CsdlTerm setName(final String name) {
+ this.name = name;
+ return this;
+ }
+
+ public String getType() {
+ return type;
+ }
+
+ public CsdlTerm setType(final String type) {
+ this.type = type;
+ return this;
+ }
+
+ public String getBaseTerm() {
+ return baseTerm;
+ }
+
+ public CsdlTerm setBaseTerm(final String baseTerm) {
+ this.baseTerm = baseTerm;
+ return this;
+ }
+
+ public List<String> getAppliesTo() {
+ return appliesTo;
+ }
+
+ public CsdlTerm setAppliesTo(final List<String> appliesTo) {
+ this.appliesTo = appliesTo;
+ return this;
+ }
+
+ public boolean isCollection() {
+ return isCollection;
+ }
+
+ public CsdlTerm setCollection(final boolean isCollection) {
+ this.isCollection = isCollection;
+ return this;
+ }
+
+ public String getDefaultValue() {
+ return defaultValue;
+ }
+
+ public CsdlTerm setDefaultValue(final String defaultValue) {
+ this.defaultValue = defaultValue;
+ return this;
+ }
+
+ public boolean isNullable() {
+ return nullable;
+ }
+
+ public CsdlTerm setNullable(final boolean nullable) {
+ this.nullable = nullable;
+ return this;
+ }
+
+ public Integer getMaxLength() {
+ return maxLength;
+ }
+
+ public CsdlTerm setMaxLength(final Integer maxLength) {
+ this.maxLength = maxLength;
+ return this;
+ }
+
+ public Integer getPrecision() {
+ return precision;
+ }
+
+ public CsdlTerm setPrecision(final Integer precision) {
+ this.precision = precision;
+ return this;
+ }
+
+ public Integer getScale() {
+ return scale;
+ }
+
+ public CsdlTerm setScale(final Integer scale) {
+ this.scale = scale;
+ return this;
+ }
+
+ public List<CsdlAnnotation> getAnnotations() {
+ return annotations;
+ }
+
+ public CsdlTerm setAnnotations(final List<CsdlAnnotation> annotations) {
+ this.annotations = annotations;
+ return this;
+ }
+
+ public SRID getSrid() {
+ return srid;
+ }
+
+ public CsdlTerm setSrid(final SRID srid) {
+ this.srid = srid;
+ return this;
+ }
+}
http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/2318953c/lib/commons-api/src/main/java/org/apache/olingo/commons/api/edm/provider/CsdlTypeDefinition.java
----------------------------------------------------------------------
diff --git a/lib/commons-api/src/main/java/org/apache/olingo/commons/api/edm/provider/CsdlTypeDefinition.java b/lib/commons-api/src/main/java/org/apache/olingo/commons/api/edm/provider/CsdlTypeDefinition.java
new file mode 100644
index 0000000..705c040
--- /dev/null
+++ b/lib/commons-api/src/main/java/org/apache/olingo/commons/api/edm/provider/CsdlTypeDefinition.java
@@ -0,0 +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.commons.api.edm.provider;
+
+import java.util.ArrayList;
+import java.util.List;
+
+import org.apache.olingo.commons.api.edm.FullQualifiedName;
+import org.apache.olingo.commons.api.edm.geo.SRID;
+
+public class CsdlTypeDefinition extends CsdlAbstractEdmItem implements CsdlNamed, CsdlAnnotatable {
+
+ private static final long serialVersionUID = 3718980071229613048L;
+
+ private String name;
+
+ private FullQualifiedName underlyingType;
+
+ // Facets
+ private Integer maxLength;
+
+ private Integer precision;
+
+ private Integer scale;
+
+ private boolean unicode = true;
+
+ private SRID srid;
+
+ private final List<CsdlAnnotation> annotations = new ArrayList<CsdlAnnotation>();
+
+ public String getName() {
+ return name;
+ }
+
+ public CsdlTypeDefinition setName(final String name) {
+ this.name = name;
+ return this;
+ }
+
+ public String getUnderlyingType() {
+ if(underlyingType != null){
+ return underlyingType.getFullQualifiedNameAsString();
+ }
+ return null;
+ }
+
+ public CsdlTypeDefinition setUnderlyingType(final String underlyingType) {
+ this.underlyingType = new FullQualifiedName(underlyingType);
+ return this;
+ }
+
+ public CsdlTypeDefinition setUnderlyingType(final FullQualifiedName underlyingType) {
+ this.underlyingType = underlyingType;
+ return this;
+ }
+
+ public Integer getMaxLength() {
+ return maxLength;
+ }
+
+ public CsdlTypeDefinition setMaxLength(final Integer maxLength) {
+ this.maxLength = maxLength;
+ return this;
+ }
+
+ public Integer getPrecision() {
+ return precision;
+ }
+
+ public CsdlTypeDefinition setPrecision(final Integer precision) {
+ this.precision = precision;
+ return this;
+ }
+
+ public Integer getScale() {
+ return scale;
+ }
+
+ public CsdlTypeDefinition setScale(final Integer scale) {
+ this.scale = scale;
+ return this;
+ }
+
+ public boolean isUnicode() {
+ return unicode;
+ }
+
+ public CsdlTypeDefinition setUnicode(final boolean unicode) {
+ this.unicode = unicode;
+ return this;
+ }
+
+ public SRID getSrid() {
+ return srid;
+ }
+
+ public CsdlTypeDefinition setSrid(final SRID srid) {
+ this.srid = srid;
+ return this;
+ }
+
+ @Override
+ public List<CsdlAnnotation> getAnnotations() {
+ return annotations;
+ }
+}
http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/2318953c/lib/commons-api/src/main/java/org/apache/olingo/commons/api/edm/provider/EdmProvider.java
----------------------------------------------------------------------
diff --git a/lib/commons-api/src/main/java/org/apache/olingo/commons/api/edm/provider/EdmProvider.java b/lib/commons-api/src/main/java/org/apache/olingo/commons/api/edm/provider/EdmProvider.java
deleted file mode 100644
index f3511d7..0000000
--- a/lib/commons-api/src/main/java/org/apache/olingo/commons/api/edm/provider/EdmProvider.java
+++ /dev/null
@@ -1,177 +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.commons.api.edm.provider;
-
-import java.util.List;
-
-import org.apache.olingo.commons.api.ODataException;
-import org.apache.olingo.commons.api.edm.FullQualifiedName;
-
-public interface EdmProvider {
-
- /**
- * This method should return an {@link EnumType} or <b>null</b> if nothing is found
- *
- * @param enumTypeName
- * @return {@link EnumType} for given name
- * @throws ODataException
- */
- public EnumType getEnumType(final FullQualifiedName enumTypeName) throws ODataException;
-
- /**
- * This method should return an {@link TypeDefinition} or <b>null</b> if nothing is found
- *
- * @param typeDefinitionName
- * @return {@link TypeDefinition} for given name
- * @throws ODataException
- */
- public TypeDefinition getTypeDefinition(final FullQualifiedName typeDefinitionName) throws ODataException;
-
- /**
- * This method should return an {@link EntityType} or <b>null</b> if nothing is found
- *
- * @param entityTypeName
- * @return {@link EntityType} for the given name
- * @throws ODataException
- */
- public EntityType getEntityType(final FullQualifiedName entityTypeName) throws ODataException;
-
- /**
- * This method should return a {@link ComplexType} or <b>null</b> if nothing is found.
- *
- * @param complexTypeName
- * @return {@link ComplexType} for the given name
- * @throws ODataException
- */
- public ComplexType getComplexType(final FullQualifiedName complexTypeName) throws ODataException;
-
- /**
- * This method should return a list of all {@link Action} for the FullQualifiedname or <b>null</b> if nothing is found
- *
- * @param actionName
- * @return List of {@link Action} or null
- * @throws ODataException
- */
- public List<Action> getActions(final FullQualifiedName actionName) throws ODataException;
-
- /**
- * This method should return a list of all {@link Function} for the FullQualifiedname or <b>null</b> if nothing is
- * found
- *
- * @param functionName
- * @return List of {@link Function} or null
- * @throws ODataException
- */
- public List<Function> getFunctions(final FullQualifiedName functionName) throws ODataException;
-
- /**
- * This method should return a {@link Term} for the FullQualifiedName or <b>null</b> if nothing is found.
- * @param termName the name of the Term
- * @return {@link Term} or null
- * @throws ODataException
- */
- public Term getTerm(final FullQualifiedName termName) throws ODataException;
-
- /**
- * This method should return an {@link EntitySet} or <b>null</b> if nothing is found
- *
- * @param entityContainer this EntitySet is contained in
- * @param entitySetName
- * @return {@link EntitySet} for the given container and entityset name
- * @throws ODataException
- */
- public EntitySet getEntitySet(final FullQualifiedName entityContainer, final String entitySetName)
- throws ODataException;
-
- /**
- * This method should return an {@link Singleton} or <b>null</b> if nothing is found
- *
- * @param entityContainer this Singleton is contained in
- * @param singletonName
- * @return {@link Singleton} for given container and singleton name
- * @throws ODataException
- */
- public Singleton getSingleton(final FullQualifiedName entityContainer, final String singletonName)
- throws ODataException;
-
- /**
- * This method should return an {@link ActionImport} or <b>null</b> if nothing is found
- *
- * @param entityContainer this ActionImport is contained in
- * @param actionImportName
- * @return {@link ActionImport} for the given container and ActionImport name
- * @throws ODataException
- */
- public ActionImport getActionImport(final FullQualifiedName entityContainer, final String actionImportName)
- throws ODataException;
-
- /**
- * This method should return a {@link FunctionImport} or <b>null</b> if nothing is found
- *
- * @param entityContainer this FunctionImport is contained in
- * @param functionImportName
- * @return {@link FunctionImport} for the given container name and function import name
- * @throws ODataException
- */
- public FunctionImport getFunctionImport(final FullQualifiedName entityContainer, final String functionImportName)
- throws ODataException;
-
- /**
- * This method should return an {@link EntityContainerInfo} or <b>null</b> if nothing is found
- *
- * @param entityContainerName (null for default container)
- * @return {@link EntityContainerInfo} for the given name
- * @throws ODataException
- */
- public EntityContainerInfo getEntityContainerInfo(final FullQualifiedName entityContainerName) throws ODataException;
-
- /**
- * This method should return a list of all namespaces which have an alias
- *
- * @return List of alias info
- * @throws ODataException
- */
- public List<AliasInfo> getAliasInfos() throws ODataException;
-
- /**
- * This method should return a collection of all {@link Schema}
- *
- * @return List<{@link Schema}>
- * @throws ODataException
- */
- public List<Schema> getSchemas() throws ODataException;
-
- /**
- * Returns the entity container of this edm
- * @return {@link EntityContainer} of this edm
- */
- public EntityContainer getEntityContainer() throws ODataException;
-
- /**
- * @param targetName
- * @return {@link Annotations} group for the given Target
- */
- public Annotations getAnnotationsGroup(FullQualifiedName targetName) throws ODataException;
-
- /**
- * @param annotatedName
- * @return Annotatble element by target name
- */
- public Annotatable getAnnoatatable(FullQualifiedName annotatedName) throws ODataException;
-}
http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/2318953c/lib/commons-api/src/main/java/org/apache/olingo/commons/api/edm/provider/EntityContainer.java
----------------------------------------------------------------------
diff --git a/lib/commons-api/src/main/java/org/apache/olingo/commons/api/edm/provider/EntityContainer.java b/lib/commons-api/src/main/java/org/apache/olingo/commons/api/edm/provider/EntityContainer.java
deleted file mode 100644
index 802da48..0000000
--- a/lib/commons-api/src/main/java/org/apache/olingo/commons/api/edm/provider/EntityContainer.java
+++ /dev/null
@@ -1,159 +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.commons.api.edm.provider;
-
-import java.util.ArrayList;
-import java.util.List;
-
-import org.apache.olingo.commons.api.edm.FullQualifiedName;
-
-public class EntityContainer extends AbstractEdmItem implements Named, Annotatable {
-
- private static final long serialVersionUID = 5384682515007129458L;
-
- private String name;
-
- private FullQualifiedName extendsContainer;
-
- private List<EntitySet> entitySets = new ArrayList<EntitySet>();
-
- private List<ActionImport> actionImports = new ArrayList<ActionImport>();
-
- private List<FunctionImport> functionImports = new ArrayList<FunctionImport>();
-
- private List<Singleton> singletons = new ArrayList<Singleton>();
-
- private final List<Annotation> annotations = new ArrayList<Annotation>();
-
- // Annotations
- public String getName() {
- return name;
- }
-
- public EntityContainer setName(final String name) {
- this.name = name;
- return this;
- }
-
- public String getExtendsContainer() {
- if (extendsContainer != null) {
- return extendsContainer.getFullQualifiedNameAsString();
- }
- return null;
- }
-
- public FullQualifiedName getExtendsContainerFQN() {
- return extendsContainer;
- }
-
- public EntityContainer setExtendsContainer(final String extendsContainer) {
- this.extendsContainer = new FullQualifiedName(extendsContainer);
- return this;
- }
-
- public List<EntitySet> getEntitySets() {
- return entitySets;
- }
-
- public EntitySet getEntitySet(final String name) {
- return getOneByName(name, getEntitySets());
- }
-
- public EntityContainer setEntitySets(final List<EntitySet> entitySets) {
- this.entitySets = entitySets;
- return this;
- }
-
- public List<ActionImport> getActionImports() {
- return actionImports;
- }
-
- /**
- * Gets the first action import with given name.
- *
- * @param name name.
- * @return action import.
- */
- public ActionImport getActionImport(final String name) {
- return getOneByName(name, getActionImports());
- }
-
- /**
- * Gets all action imports with given name.
- *
- * @param name name.
- * @return action imports.
- */
- public List<ActionImport> getActionImports(final String name) {
- return getAllByName(name, getActionImports());
- }
-
- public EntityContainer setActionImports(final List<ActionImport> actionImports) {
- this.actionImports = actionImports;
- return this;
- }
-
- public List<FunctionImport> getFunctionImports() {
- return functionImports;
- }
-
- /**
- * Gets the first function import with given name.
- *
- * @param name name.
- * @return function import.
- */
- public FunctionImport getFunctionImport(final String name) {
- return getOneByName(name, getFunctionImports());
- }
-
- /**
- * Gets all function imports with given name.
- *
- * @param name name.
- * @return function imports.
- */
- public List<FunctionImport> getFunctionImports(final String name) {
- return getAllByName(name, getFunctionImports());
- }
-
- public EntityContainer setFunctionImports(final List<FunctionImport> functionImports) {
- this.functionImports = functionImports;
- return this;
- }
-
- public List<Singleton> getSingletons() {
- return singletons;
- }
-
- public Singleton getSingleton(final String name) {
- return getOneByName(name, getSingletons());
- }
-
- public EntityContainer setSingletons(final List<Singleton> singletons) {
- this.singletons = singletons;
- return this;
- }
-
- @Override
- public List<Annotation> getAnnotations() {
- return annotations;
- }
-
-}