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/06/02 18:51:48 UTC
[3/4] Aligning package name with folder structure
(org.apache.olingo.fit.proxy.v4.demo.odatademo)
http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/cc518254/fit/src/test/java/org/apache/olingo/fit/proxy/v4/demo/odatademo/types/Customer.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/proxy/v4/demo/odatademo/types/Customer.java b/fit/src/test/java/org/apache/olingo/fit/proxy/v4/demo/odatademo/types/Customer.java
new file mode 100644
index 0000000..9702144
--- /dev/null
+++ b/fit/src/test/java/org/apache/olingo/fit/proxy/v4/demo/odatademo/types/Customer.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.fit.proxy.v4.demo.odatademo.types;
+
+import org.apache.olingo.client.api.http.HttpMethod;
+import org.apache.olingo.ext.proxy.api.annotations.AnnotationsForProperty;
+import org.apache.olingo.ext.proxy.api.annotations.AnnotationsForNavigationProperty;
+import org.apache.olingo.ext.proxy.api.annotations.Namespace;
+import org.apache.olingo.ext.proxy.api.annotations.EntityType;
+import org.apache.olingo.ext.proxy.api.annotations.EntitySet;
+import org.apache.olingo.ext.proxy.api.annotations.Key;
+import org.apache.olingo.ext.proxy.api.annotations.KeyRef;
+import org.apache.olingo.ext.proxy.api.annotations.NavigationProperty;
+import org.apache.olingo.ext.proxy.api.annotations.Property;
+import org.apache.olingo.ext.proxy.api.annotations.Operation;
+import org.apache.olingo.ext.proxy.api.annotations.Parameter;
+import org.apache.olingo.ext.proxy.api.Annotatable;
+import org.apache.olingo.ext.proxy.api.AbstractOpenType;
+import org.apache.olingo.ext.proxy.api.OperationType;
+import org.apache.olingo.ext.proxy.api.AbstractEntitySet;
+import org.apache.olingo.commons.api.edm.constants.EdmContentKind;
+import org.apache.olingo.client.api.edm.ConcurrencyMode;
+import org.apache.olingo.fit.proxy.v4.demo.odatademo.*;
+import org.apache.olingo.fit.proxy.v4.demo.odatademo.types.*;
+
+import org.apache.olingo.commons.api.edm.geo.Geospatial;
+import org.apache.olingo.commons.api.edm.geo.GeospatialCollection;
+import org.apache.olingo.commons.api.edm.geo.LineString;
+import org.apache.olingo.commons.api.edm.geo.MultiLineString;
+import org.apache.olingo.commons.api.edm.geo.MultiPoint;
+import org.apache.olingo.commons.api.edm.geo.MultiPolygon;
+import org.apache.olingo.commons.api.edm.geo.Point;
+import org.apache.olingo.commons.api.edm.geo.Polygon;
+
+
+@org.apache.olingo.ext.proxy.api.annotations.Namespace("ODataDemo")
+@org.apache.olingo.ext.proxy.api.annotations.EntityType(name = "Customer",
+ openType = false,
+ hasStream = false,
+ isAbstract = false,
+ baseType = "ODataDemo.Person")
+public interface Customer
+ extends Annotatable,org.apache.olingo.fit.proxy.v4.demo.odatademo.types.Person {
+
+
+ @Key
+ @org.apache.olingo.ext.proxy.api.annotations.Property(name = "ID",
+ type = "Edm.Int32",
+ nullable = false,
+ defaultValue = "",
+ maxLenght = Integer.MAX_VALUE,
+ fixedLenght = false,
+ precision = 0,
+ scale = 0,
+ unicode = true,
+ collation = "",
+ srid = "",
+ concurrencyMode = ConcurrencyMode.None,
+ fcSourcePath = "",
+ fcTargetPath = "",
+ fcContentKind = EdmContentKind.text,
+ fcNSPrefix = "",
+ fcNSURI = "",
+ fcKeepInContent = false)
+ java.lang.Integer getID();
+
+ void setID(java.lang.Integer _iD);
+
+
+ @org.apache.olingo.ext.proxy.api.annotations.Property(name = "Name",
+ type = "Edm.String",
+ nullable = true,
+ defaultValue = "",
+ maxLenght = Integer.MAX_VALUE,
+ fixedLenght = false,
+ precision = 0,
+ scale = 0,
+ unicode = true,
+ collation = "",
+ srid = "",
+ concurrencyMode = ConcurrencyMode.None,
+ fcSourcePath = "",
+ fcTargetPath = "",
+ fcContentKind = EdmContentKind.text,
+ fcNSPrefix = "",
+ fcNSURI = "",
+ fcKeepInContent = false)
+ java.lang.String getName();
+
+ void setName(java.lang.String _name);
+
+
+ @org.apache.olingo.ext.proxy.api.annotations.Property(name = "TotalExpense",
+ type = "Edm.Decimal",
+ nullable = false,
+ defaultValue = "",
+ maxLenght = Integer.MAX_VALUE,
+ fixedLenght = false,
+ precision = 0,
+ scale = 0,
+ unicode = true,
+ collation = "",
+ srid = "",
+ concurrencyMode = ConcurrencyMode.None,
+ fcSourcePath = "",
+ fcTargetPath = "",
+ fcContentKind = EdmContentKind.text,
+ fcNSPrefix = "",
+ fcNSURI = "",
+ fcKeepInContent = false)
+ java.math.BigDecimal getTotalExpense();
+
+ void setTotalExpense(java.math.BigDecimal _totalExpense);
+
+
+
+ @org.apache.olingo.ext.proxy.api.annotations.NavigationProperty(name = "PersonDetail",
+ type = "ODataDemo.PersonDetail",
+ targetSchema = "ODataDemo",
+ targetContainer = "DemoService",
+ targetEntitySet = "PersonDetails",
+ containsTarget = false)
+ org.apache.olingo.fit.proxy.v4.demo.odatademo.types.PersonDetail getPersonDetail();
+
+ void setPersonDetail(org.apache.olingo.fit.proxy.v4.demo.odatademo.types.PersonDetail _personDetail);
+
+
+
+ ComplexFactory factory();
+
+ interface ComplexFactory extends org.apache.olingo.fit.proxy.v4.demo.odatademo.types.Person.ComplexFactory{
+ }
+
+ Annotations annotations();
+
+ interface Annotations extends org.apache.olingo.fit.proxy.v4.demo.odatademo.types.Person.Annotations{
+
+ @org.apache.olingo.ext.proxy.api.annotations.AnnotationsForProperty(name = "ID",
+ type = "Edm.Int32")
+ Annotatable getIDAnnotations();
+
+ @org.apache.olingo.ext.proxy.api.annotations.AnnotationsForProperty(name = "Name",
+ type = "Edm.String")
+ Annotatable getNameAnnotations();
+
+ @org.apache.olingo.ext.proxy.api.annotations.AnnotationsForProperty(name = "TotalExpense",
+ type = "Edm.Decimal")
+ Annotatable getTotalExpenseAnnotations();
+
+
+
+ @org.apache.olingo.ext.proxy.api.annotations.AnnotationsForNavigationProperty(name = "PersonDetail",
+ type = "ODataDemo.PersonDetail")
+ Annotatable getPersonDetailAnnotations();
+ }
+
+}
http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/cc518254/fit/src/test/java/org/apache/olingo/fit/proxy/v4/demo/odatademo/types/CustomerCollection.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/proxy/v4/demo/odatademo/types/CustomerCollection.java b/fit/src/test/java/org/apache/olingo/fit/proxy/v4/demo/odatademo/types/CustomerCollection.java
new file mode 100644
index 0000000..ea397c8
--- /dev/null
+++ b/fit/src/test/java/org/apache/olingo/fit/proxy/v4/demo/odatademo/types/CustomerCollection.java
@@ -0,0 +1,52 @@
+/*
+ * 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.fit.proxy.v4.demo.odatademo.types;
+
+import org.apache.olingo.client.api.http.HttpMethod;
+import org.apache.olingo.ext.proxy.api.AbstractEntityCollection;
+import org.apache.olingo.ext.proxy.api.AbstractTerm;
+import org.apache.olingo.ext.proxy.api.OperationType;
+import org.apache.olingo.ext.proxy.api.annotations.Operation;
+import org.apache.olingo.ext.proxy.api.annotations.Parameter;
+import org.apache.olingo.fit.proxy.v4.demo.odatademo.*;
+import org.apache.olingo.fit.proxy.v4.demo.odatademo.types.*;
+
+import org.apache.olingo.commons.api.edm.geo.Geospatial;
+import org.apache.olingo.commons.api.edm.geo.GeospatialCollection;
+import org.apache.olingo.commons.api.edm.geo.LineString;
+import org.apache.olingo.commons.api.edm.geo.MultiLineString;
+import org.apache.olingo.commons.api.edm.geo.MultiPoint;
+import org.apache.olingo.commons.api.edm.geo.MultiPolygon;
+import org.apache.olingo.commons.api.edm.geo.Point;
+import org.apache.olingo.commons.api.edm.geo.Polygon;
+import java.math.BigDecimal;
+import java.net.URI;
+import java.util.UUID;
+import java.io.Serializable;
+import java.util.Collection;
+import java.util.Calendar;
+import javax.xml.datatype.Duration;
+
+public interface CustomerCollection extends AbstractEntityCollection<org.apache.olingo.fit.proxy.v4.demo.odatademo.types.Customer> {
+
+ Object getAnnotation(Class<? extends AbstractTerm> term);
+
+ Collection<Class<? extends AbstractTerm>> getAnnotationTerms();
+}
http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/cc518254/fit/src/test/java/org/apache/olingo/fit/proxy/v4/demo/odatademo/types/Employee.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/proxy/v4/demo/odatademo/types/Employee.java b/fit/src/test/java/org/apache/olingo/fit/proxy/v4/demo/odatademo/types/Employee.java
new file mode 100644
index 0000000..86b9167
--- /dev/null
+++ b/fit/src/test/java/org/apache/olingo/fit/proxy/v4/demo/odatademo/types/Employee.java
@@ -0,0 +1,228 @@
+/*
+ * 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.fit.proxy.v4.demo.odatademo.types;
+
+import org.apache.olingo.client.api.http.HttpMethod;
+import org.apache.olingo.ext.proxy.api.annotations.AnnotationsForProperty;
+import org.apache.olingo.ext.proxy.api.annotations.AnnotationsForNavigationProperty;
+import org.apache.olingo.ext.proxy.api.annotations.Namespace;
+import org.apache.olingo.ext.proxy.api.annotations.EntityType;
+import org.apache.olingo.ext.proxy.api.annotations.EntitySet;
+import org.apache.olingo.ext.proxy.api.annotations.Key;
+import org.apache.olingo.ext.proxy.api.annotations.KeyRef;
+import org.apache.olingo.ext.proxy.api.annotations.NavigationProperty;
+import org.apache.olingo.ext.proxy.api.annotations.Property;
+import org.apache.olingo.ext.proxy.api.annotations.Operation;
+import org.apache.olingo.ext.proxy.api.annotations.Parameter;
+import org.apache.olingo.ext.proxy.api.Annotatable;
+import org.apache.olingo.ext.proxy.api.AbstractOpenType;
+import org.apache.olingo.ext.proxy.api.OperationType;
+import org.apache.olingo.ext.proxy.api.AbstractEntitySet;
+import org.apache.olingo.commons.api.edm.constants.EdmContentKind;
+import org.apache.olingo.client.api.edm.ConcurrencyMode;
+import org.apache.olingo.fit.proxy.v4.demo.odatademo.*;
+import org.apache.olingo.fit.proxy.v4.demo.odatademo.types.*;
+
+import org.apache.olingo.commons.api.edm.geo.Geospatial;
+import org.apache.olingo.commons.api.edm.geo.GeospatialCollection;
+import org.apache.olingo.commons.api.edm.geo.LineString;
+import org.apache.olingo.commons.api.edm.geo.MultiLineString;
+import org.apache.olingo.commons.api.edm.geo.MultiPoint;
+import org.apache.olingo.commons.api.edm.geo.MultiPolygon;
+import org.apache.olingo.commons.api.edm.geo.Point;
+import org.apache.olingo.commons.api.edm.geo.Polygon;
+
+
+@org.apache.olingo.ext.proxy.api.annotations.Namespace("ODataDemo")
+@org.apache.olingo.ext.proxy.api.annotations.EntityType(name = "Employee",
+ openType = false,
+ hasStream = false,
+ isAbstract = false,
+ baseType = "ODataDemo.Person")
+public interface Employee
+ extends Annotatable,org.apache.olingo.fit.proxy.v4.demo.odatademo.types.Person {
+
+
+ @Key
+ @org.apache.olingo.ext.proxy.api.annotations.Property(name = "ID",
+ type = "Edm.Int32",
+ nullable = false,
+ defaultValue = "",
+ maxLenght = Integer.MAX_VALUE,
+ fixedLenght = false,
+ precision = 0,
+ scale = 0,
+ unicode = true,
+ collation = "",
+ srid = "",
+ concurrencyMode = ConcurrencyMode.None,
+ fcSourcePath = "",
+ fcTargetPath = "",
+ fcContentKind = EdmContentKind.text,
+ fcNSPrefix = "",
+ fcNSURI = "",
+ fcKeepInContent = false)
+ java.lang.Integer getID();
+
+ void setID(java.lang.Integer _iD);
+
+
+ @org.apache.olingo.ext.proxy.api.annotations.Property(name = "Name",
+ type = "Edm.String",
+ nullable = true,
+ defaultValue = "",
+ maxLenght = Integer.MAX_VALUE,
+ fixedLenght = false,
+ precision = 0,
+ scale = 0,
+ unicode = true,
+ collation = "",
+ srid = "",
+ concurrencyMode = ConcurrencyMode.None,
+ fcSourcePath = "",
+ fcTargetPath = "",
+ fcContentKind = EdmContentKind.text,
+ fcNSPrefix = "",
+ fcNSURI = "",
+ fcKeepInContent = false)
+ java.lang.String getName();
+
+ void setName(java.lang.String _name);
+
+
+ @org.apache.olingo.ext.proxy.api.annotations.Property(name = "EmployeeID",
+ type = "Edm.Int64",
+ nullable = false,
+ defaultValue = "",
+ maxLenght = Integer.MAX_VALUE,
+ fixedLenght = false,
+ precision = 0,
+ scale = 0,
+ unicode = true,
+ collation = "",
+ srid = "",
+ concurrencyMode = ConcurrencyMode.None,
+ fcSourcePath = "",
+ fcTargetPath = "",
+ fcContentKind = EdmContentKind.text,
+ fcNSPrefix = "",
+ fcNSURI = "",
+ fcKeepInContent = false)
+ java.lang.Long getEmployeeID();
+
+ void setEmployeeID(java.lang.Long _employeeID);
+
+
+ @org.apache.olingo.ext.proxy.api.annotations.Property(name = "HireDate",
+ type = "Edm.DateTimeOffset",
+ nullable = false,
+ defaultValue = "",
+ maxLenght = Integer.MAX_VALUE,
+ fixedLenght = false,
+ precision = 0,
+ scale = 0,
+ unicode = true,
+ collation = "",
+ srid = "",
+ concurrencyMode = ConcurrencyMode.None,
+ fcSourcePath = "",
+ fcTargetPath = "",
+ fcContentKind = EdmContentKind.text,
+ fcNSPrefix = "",
+ fcNSURI = "",
+ fcKeepInContent = false)
+ java.util.Calendar getHireDate();
+
+ void setHireDate(java.util.Calendar _hireDate);
+
+
+ @org.apache.olingo.ext.proxy.api.annotations.Property(name = "Salary",
+ type = "Edm.Single",
+ nullable = false,
+ defaultValue = "",
+ maxLenght = Integer.MAX_VALUE,
+ fixedLenght = false,
+ precision = 0,
+ scale = 0,
+ unicode = true,
+ collation = "",
+ srid = "",
+ concurrencyMode = ConcurrencyMode.None,
+ fcSourcePath = "",
+ fcTargetPath = "",
+ fcContentKind = EdmContentKind.text,
+ fcNSPrefix = "",
+ fcNSURI = "",
+ fcKeepInContent = false)
+ java.lang.Float getSalary();
+
+ void setSalary(java.lang.Float _salary);
+
+
+
+ @org.apache.olingo.ext.proxy.api.annotations.NavigationProperty(name = "PersonDetail",
+ type = "ODataDemo.PersonDetail",
+ targetSchema = "ODataDemo",
+ targetContainer = "DemoService",
+ targetEntitySet = "PersonDetails",
+ containsTarget = false)
+ org.apache.olingo.fit.proxy.v4.demo.odatademo.types.PersonDetail getPersonDetail();
+
+ void setPersonDetail(org.apache.olingo.fit.proxy.v4.demo.odatademo.types.PersonDetail _personDetail);
+
+
+
+ ComplexFactory factory();
+
+ interface ComplexFactory extends org.apache.olingo.fit.proxy.v4.demo.odatademo.types.Person.ComplexFactory{
+ }
+
+ Annotations annotations();
+
+ interface Annotations extends org.apache.olingo.fit.proxy.v4.demo.odatademo.types.Person.Annotations{
+
+ @org.apache.olingo.ext.proxy.api.annotations.AnnotationsForProperty(name = "ID",
+ type = "Edm.Int32")
+ Annotatable getIDAnnotations();
+
+ @org.apache.olingo.ext.proxy.api.annotations.AnnotationsForProperty(name = "Name",
+ type = "Edm.String")
+ Annotatable getNameAnnotations();
+
+ @org.apache.olingo.ext.proxy.api.annotations.AnnotationsForProperty(name = "EmployeeID",
+ type = "Edm.Int64")
+ Annotatable getEmployeeIDAnnotations();
+
+ @org.apache.olingo.ext.proxy.api.annotations.AnnotationsForProperty(name = "HireDate",
+ type = "Edm.DateTimeOffset")
+ Annotatable getHireDateAnnotations();
+
+ @org.apache.olingo.ext.proxy.api.annotations.AnnotationsForProperty(name = "Salary",
+ type = "Edm.Single")
+ Annotatable getSalaryAnnotations();
+
+
+
+ @org.apache.olingo.ext.proxy.api.annotations.AnnotationsForNavigationProperty(name = "PersonDetail",
+ type = "ODataDemo.PersonDetail")
+ Annotatable getPersonDetailAnnotations();
+ }
+
+}
http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/cc518254/fit/src/test/java/org/apache/olingo/fit/proxy/v4/demo/odatademo/types/EmployeeCollection.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/proxy/v4/demo/odatademo/types/EmployeeCollection.java b/fit/src/test/java/org/apache/olingo/fit/proxy/v4/demo/odatademo/types/EmployeeCollection.java
new file mode 100644
index 0000000..f619ee5
--- /dev/null
+++ b/fit/src/test/java/org/apache/olingo/fit/proxy/v4/demo/odatademo/types/EmployeeCollection.java
@@ -0,0 +1,52 @@
+/*
+ * 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.fit.proxy.v4.demo.odatademo.types;
+
+import org.apache.olingo.client.api.http.HttpMethod;
+import org.apache.olingo.ext.proxy.api.AbstractEntityCollection;
+import org.apache.olingo.ext.proxy.api.AbstractTerm;
+import org.apache.olingo.ext.proxy.api.OperationType;
+import org.apache.olingo.ext.proxy.api.annotations.Operation;
+import org.apache.olingo.ext.proxy.api.annotations.Parameter;
+import org.apache.olingo.fit.proxy.v4.demo.odatademo.*;
+import org.apache.olingo.fit.proxy.v4.demo.odatademo.types.*;
+
+import org.apache.olingo.commons.api.edm.geo.Geospatial;
+import org.apache.olingo.commons.api.edm.geo.GeospatialCollection;
+import org.apache.olingo.commons.api.edm.geo.LineString;
+import org.apache.olingo.commons.api.edm.geo.MultiLineString;
+import org.apache.olingo.commons.api.edm.geo.MultiPoint;
+import org.apache.olingo.commons.api.edm.geo.MultiPolygon;
+import org.apache.olingo.commons.api.edm.geo.Point;
+import org.apache.olingo.commons.api.edm.geo.Polygon;
+import java.math.BigDecimal;
+import java.net.URI;
+import java.util.UUID;
+import java.io.Serializable;
+import java.util.Collection;
+import java.util.Calendar;
+import javax.xml.datatype.Duration;
+
+public interface EmployeeCollection extends AbstractEntityCollection<org.apache.olingo.fit.proxy.v4.demo.odatademo.types.Employee> {
+
+ Object getAnnotation(Class<? extends AbstractTerm> term);
+
+ Collection<Class<? extends AbstractTerm>> getAnnotationTerms();
+}
http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/cc518254/fit/src/test/java/org/apache/olingo/fit/proxy/v4/demo/odatademo/types/FeaturedProduct.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/proxy/v4/demo/odatademo/types/FeaturedProduct.java b/fit/src/test/java/org/apache/olingo/fit/proxy/v4/demo/odatademo/types/FeaturedProduct.java
new file mode 100644
index 0000000..65c94fe
--- /dev/null
+++ b/fit/src/test/java/org/apache/olingo/fit/proxy/v4/demo/odatademo/types/FeaturedProduct.java
@@ -0,0 +1,330 @@
+/*
+ * 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.fit.proxy.v4.demo.odatademo.types;
+
+import org.apache.olingo.client.api.http.HttpMethod;
+import org.apache.olingo.ext.proxy.api.annotations.AnnotationsForProperty;
+import org.apache.olingo.ext.proxy.api.annotations.AnnotationsForNavigationProperty;
+import org.apache.olingo.ext.proxy.api.annotations.Namespace;
+import org.apache.olingo.ext.proxy.api.annotations.EntityType;
+import org.apache.olingo.ext.proxy.api.annotations.EntitySet;
+import org.apache.olingo.ext.proxy.api.annotations.Key;
+import org.apache.olingo.ext.proxy.api.annotations.KeyRef;
+import org.apache.olingo.ext.proxy.api.annotations.NavigationProperty;
+import org.apache.olingo.ext.proxy.api.annotations.Property;
+import org.apache.olingo.ext.proxy.api.annotations.Operation;
+import org.apache.olingo.ext.proxy.api.annotations.Parameter;
+import org.apache.olingo.ext.proxy.api.Annotatable;
+import org.apache.olingo.ext.proxy.api.AbstractOpenType;
+import org.apache.olingo.ext.proxy.api.OperationType;
+import org.apache.olingo.ext.proxy.api.AbstractEntitySet;
+import org.apache.olingo.commons.api.edm.constants.EdmContentKind;
+import org.apache.olingo.client.api.edm.ConcurrencyMode;
+import org.apache.olingo.fit.proxy.v4.demo.odatademo.*;
+import org.apache.olingo.fit.proxy.v4.demo.odatademo.types.*;
+
+import org.apache.olingo.commons.api.edm.geo.Geospatial;
+import org.apache.olingo.commons.api.edm.geo.GeospatialCollection;
+import org.apache.olingo.commons.api.edm.geo.LineString;
+import org.apache.olingo.commons.api.edm.geo.MultiLineString;
+import org.apache.olingo.commons.api.edm.geo.MultiPoint;
+import org.apache.olingo.commons.api.edm.geo.MultiPolygon;
+import org.apache.olingo.commons.api.edm.geo.Point;
+import org.apache.olingo.commons.api.edm.geo.Polygon;
+
+
+@org.apache.olingo.ext.proxy.api.annotations.Namespace("ODataDemo")
+@org.apache.olingo.ext.proxy.api.annotations.EntityType(name = "FeaturedProduct",
+ openType = false,
+ hasStream = false,
+ isAbstract = false,
+ baseType = "ODataDemo.Product")
+public interface FeaturedProduct
+ extends Annotatable,org.apache.olingo.fit.proxy.v4.demo.odatademo.types.Product {
+
+
+ @Key
+ @org.apache.olingo.ext.proxy.api.annotations.Property(name = "ID",
+ type = "Edm.Int32",
+ nullable = false,
+ defaultValue = "",
+ maxLenght = Integer.MAX_VALUE,
+ fixedLenght = false,
+ precision = 0,
+ scale = 0,
+ unicode = true,
+ collation = "",
+ srid = "",
+ concurrencyMode = ConcurrencyMode.None,
+ fcSourcePath = "",
+ fcTargetPath = "",
+ fcContentKind = EdmContentKind.text,
+ fcNSPrefix = "",
+ fcNSURI = "",
+ fcKeepInContent = false)
+ java.lang.Integer getID();
+
+ void setID(java.lang.Integer _iD);
+
+
+ @org.apache.olingo.ext.proxy.api.annotations.Property(name = "Name",
+ type = "Edm.String",
+ nullable = true,
+ defaultValue = "",
+ maxLenght = Integer.MAX_VALUE,
+ fixedLenght = false,
+ precision = 0,
+ scale = 0,
+ unicode = true,
+ collation = "",
+ srid = "",
+ concurrencyMode = ConcurrencyMode.None,
+ fcSourcePath = "",
+ fcTargetPath = "",
+ fcContentKind = EdmContentKind.text,
+ fcNSPrefix = "",
+ fcNSURI = "",
+ fcKeepInContent = false)
+ java.lang.String getName();
+
+ void setName(java.lang.String _name);
+
+
+ @org.apache.olingo.ext.proxy.api.annotations.Property(name = "Description",
+ type = "Edm.String",
+ nullable = true,
+ defaultValue = "",
+ maxLenght = Integer.MAX_VALUE,
+ fixedLenght = false,
+ precision = 0,
+ scale = 0,
+ unicode = true,
+ collation = "",
+ srid = "",
+ concurrencyMode = ConcurrencyMode.None,
+ fcSourcePath = "",
+ fcTargetPath = "",
+ fcContentKind = EdmContentKind.text,
+ fcNSPrefix = "",
+ fcNSURI = "",
+ fcKeepInContent = false)
+ java.lang.String getDescription();
+
+ void setDescription(java.lang.String _description);
+
+
+ @org.apache.olingo.ext.proxy.api.annotations.Property(name = "ReleaseDate",
+ type = "Edm.DateTimeOffset",
+ nullable = false,
+ defaultValue = "",
+ maxLenght = Integer.MAX_VALUE,
+ fixedLenght = false,
+ precision = 0,
+ scale = 0,
+ unicode = true,
+ collation = "",
+ srid = "",
+ concurrencyMode = ConcurrencyMode.None,
+ fcSourcePath = "",
+ fcTargetPath = "",
+ fcContentKind = EdmContentKind.text,
+ fcNSPrefix = "",
+ fcNSURI = "",
+ fcKeepInContent = false)
+ java.util.Calendar getReleaseDate();
+
+ void setReleaseDate(java.util.Calendar _releaseDate);
+
+
+ @org.apache.olingo.ext.proxy.api.annotations.Property(name = "DiscontinuedDate",
+ type = "Edm.DateTimeOffset",
+ nullable = true,
+ defaultValue = "",
+ maxLenght = Integer.MAX_VALUE,
+ fixedLenght = false,
+ precision = 0,
+ scale = 0,
+ unicode = true,
+ collation = "",
+ srid = "",
+ concurrencyMode = ConcurrencyMode.None,
+ fcSourcePath = "",
+ fcTargetPath = "",
+ fcContentKind = EdmContentKind.text,
+ fcNSPrefix = "",
+ fcNSURI = "",
+ fcKeepInContent = false)
+ java.util.Calendar getDiscontinuedDate();
+
+ void setDiscontinuedDate(java.util.Calendar _discontinuedDate);
+
+
+ @org.apache.olingo.ext.proxy.api.annotations.Property(name = "Rating",
+ type = "Edm.Int16",
+ nullable = false,
+ defaultValue = "",
+ maxLenght = Integer.MAX_VALUE,
+ fixedLenght = false,
+ precision = 0,
+ scale = 0,
+ unicode = true,
+ collation = "",
+ srid = "",
+ concurrencyMode = ConcurrencyMode.None,
+ fcSourcePath = "",
+ fcTargetPath = "",
+ fcContentKind = EdmContentKind.text,
+ fcNSPrefix = "",
+ fcNSURI = "",
+ fcKeepInContent = false)
+ java.lang.Short getRating();
+
+ void setRating(java.lang.Short _rating);
+
+
+ @org.apache.olingo.ext.proxy.api.annotations.Property(name = "Price",
+ type = "Edm.Double",
+ nullable = false,
+ defaultValue = "",
+ maxLenght = Integer.MAX_VALUE,
+ fixedLenght = false,
+ precision = 0,
+ scale = 0,
+ unicode = true,
+ collation = "",
+ srid = "",
+ concurrencyMode = ConcurrencyMode.None,
+ fcSourcePath = "",
+ fcTargetPath = "",
+ fcContentKind = EdmContentKind.text,
+ fcNSPrefix = "",
+ fcNSURI = "",
+ fcKeepInContent = false)
+ java.lang.Double getPrice();
+
+ void setPrice(java.lang.Double _price);
+
+
+
+ @org.apache.olingo.ext.proxy.api.annotations.NavigationProperty(name = "Categories",
+ type = "ODataDemo.Category",
+ targetSchema = "ODataDemo",
+ targetContainer = "DemoService",
+ targetEntitySet = "Categories",
+ containsTarget = false)
+ org.apache.olingo.fit.proxy.v4.demo.odatademo.types.CategoryCollection getCategories();
+
+ void setCategories(org.apache.olingo.fit.proxy.v4.demo.odatademo.types.CategoryCollection _categories);
+
+ @org.apache.olingo.ext.proxy.api.annotations.NavigationProperty(name = "Supplier",
+ type = "ODataDemo.Supplier",
+ targetSchema = "ODataDemo",
+ targetContainer = "DemoService",
+ targetEntitySet = "Suppliers",
+ containsTarget = false)
+ org.apache.olingo.fit.proxy.v4.demo.odatademo.types.Supplier getSupplier();
+
+ void setSupplier(org.apache.olingo.fit.proxy.v4.demo.odatademo.types.Supplier _supplier);
+
+ @org.apache.olingo.ext.proxy.api.annotations.NavigationProperty(name = "ProductDetail",
+ type = "ODataDemo.ProductDetail",
+ targetSchema = "ODataDemo",
+ targetContainer = "DemoService",
+ targetEntitySet = "ProductDetails",
+ containsTarget = false)
+ org.apache.olingo.fit.proxy.v4.demo.odatademo.types.ProductDetail getProductDetail();
+
+ void setProductDetail(org.apache.olingo.fit.proxy.v4.demo.odatademo.types.ProductDetail _productDetail);
+
+ @org.apache.olingo.ext.proxy.api.annotations.NavigationProperty(name = "Advertisement",
+ type = "ODataDemo.Advertisement",
+ targetSchema = "ODataDemo",
+ targetContainer = "DemoService",
+ targetEntitySet = "Advertisements",
+ containsTarget = false)
+ org.apache.olingo.fit.proxy.v4.demo.odatademo.types.Advertisement getAdvertisement();
+
+ void setAdvertisement(org.apache.olingo.fit.proxy.v4.demo.odatademo.types.Advertisement _advertisement);
+
+
+ @Override
+ Operations operations();
+
+ interface Operations extends org.apache.olingo.fit.proxy.v4.demo.odatademo.types.Product.Operations{
+
+ }
+
+ ComplexFactory factory();
+
+ interface ComplexFactory extends org.apache.olingo.fit.proxy.v4.demo.odatademo.types.Product.ComplexFactory{
+ }
+
+ Annotations annotations();
+
+ interface Annotations extends org.apache.olingo.fit.proxy.v4.demo.odatademo.types.Product.Annotations{
+
+ @org.apache.olingo.ext.proxy.api.annotations.AnnotationsForProperty(name = "ID",
+ type = "Edm.Int32")
+ Annotatable getIDAnnotations();
+
+ @org.apache.olingo.ext.proxy.api.annotations.AnnotationsForProperty(name = "Name",
+ type = "Edm.String")
+ Annotatable getNameAnnotations();
+
+ @org.apache.olingo.ext.proxy.api.annotations.AnnotationsForProperty(name = "Description",
+ type = "Edm.String")
+ Annotatable getDescriptionAnnotations();
+
+ @org.apache.olingo.ext.proxy.api.annotations.AnnotationsForProperty(name = "ReleaseDate",
+ type = "Edm.DateTimeOffset")
+ Annotatable getReleaseDateAnnotations();
+
+ @org.apache.olingo.ext.proxy.api.annotations.AnnotationsForProperty(name = "DiscontinuedDate",
+ type = "Edm.DateTimeOffset")
+ Annotatable getDiscontinuedDateAnnotations();
+
+ @org.apache.olingo.ext.proxy.api.annotations.AnnotationsForProperty(name = "Rating",
+ type = "Edm.Int16")
+ Annotatable getRatingAnnotations();
+
+ @org.apache.olingo.ext.proxy.api.annotations.AnnotationsForProperty(name = "Price",
+ type = "Edm.Double")
+ Annotatable getPriceAnnotations();
+
+
+
+ @org.apache.olingo.ext.proxy.api.annotations.AnnotationsForNavigationProperty(name = "Categories",
+ type = "ODataDemo.Category")
+ Annotatable getCategoriesAnnotations();
+
+ @org.apache.olingo.ext.proxy.api.annotations.AnnotationsForNavigationProperty(name = "Supplier",
+ type = "ODataDemo.Supplier")
+ Annotatable getSupplierAnnotations();
+
+ @org.apache.olingo.ext.proxy.api.annotations.AnnotationsForNavigationProperty(name = "ProductDetail",
+ type = "ODataDemo.ProductDetail")
+ Annotatable getProductDetailAnnotations();
+
+ @org.apache.olingo.ext.proxy.api.annotations.AnnotationsForNavigationProperty(name = "Advertisement",
+ type = "ODataDemo.Advertisement")
+ Annotatable getAdvertisementAnnotations();
+ }
+
+}
http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/cc518254/fit/src/test/java/org/apache/olingo/fit/proxy/v4/demo/odatademo/types/FeaturedProductCollection.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/proxy/v4/demo/odatademo/types/FeaturedProductCollection.java b/fit/src/test/java/org/apache/olingo/fit/proxy/v4/demo/odatademo/types/FeaturedProductCollection.java
new file mode 100644
index 0000000..e3c0a70
--- /dev/null
+++ b/fit/src/test/java/org/apache/olingo/fit/proxy/v4/demo/odatademo/types/FeaturedProductCollection.java
@@ -0,0 +1,52 @@
+/*
+ * 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.fit.proxy.v4.demo.odatademo.types;
+
+import org.apache.olingo.client.api.http.HttpMethod;
+import org.apache.olingo.ext.proxy.api.AbstractEntityCollection;
+import org.apache.olingo.ext.proxy.api.AbstractTerm;
+import org.apache.olingo.ext.proxy.api.OperationType;
+import org.apache.olingo.ext.proxy.api.annotations.Operation;
+import org.apache.olingo.ext.proxy.api.annotations.Parameter;
+import org.apache.olingo.fit.proxy.v4.demo.odatademo.*;
+import org.apache.olingo.fit.proxy.v4.demo.odatademo.types.*;
+
+import org.apache.olingo.commons.api.edm.geo.Geospatial;
+import org.apache.olingo.commons.api.edm.geo.GeospatialCollection;
+import org.apache.olingo.commons.api.edm.geo.LineString;
+import org.apache.olingo.commons.api.edm.geo.MultiLineString;
+import org.apache.olingo.commons.api.edm.geo.MultiPoint;
+import org.apache.olingo.commons.api.edm.geo.MultiPolygon;
+import org.apache.olingo.commons.api.edm.geo.Point;
+import org.apache.olingo.commons.api.edm.geo.Polygon;
+import java.math.BigDecimal;
+import java.net.URI;
+import java.util.UUID;
+import java.io.Serializable;
+import java.util.Collection;
+import java.util.Calendar;
+import javax.xml.datatype.Duration;
+
+public interface FeaturedProductCollection extends AbstractEntityCollection<org.apache.olingo.fit.proxy.v4.demo.odatademo.types.FeaturedProduct> {
+
+ Object getAnnotation(Class<? extends AbstractTerm> term);
+
+ Collection<Class<? extends AbstractTerm>> getAnnotationTerms();
+}
http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/cc518254/fit/src/test/java/org/apache/olingo/fit/proxy/v4/demo/odatademo/types/Person.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/proxy/v4/demo/odatademo/types/Person.java b/fit/src/test/java/org/apache/olingo/fit/proxy/v4/demo/odatademo/types/Person.java
new file mode 100644
index 0000000..45ed75c
--- /dev/null
+++ b/fit/src/test/java/org/apache/olingo/fit/proxy/v4/demo/odatademo/types/Person.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.fit.proxy.v4.demo.odatademo.types;
+
+import org.apache.olingo.client.api.http.HttpMethod;
+import org.apache.olingo.ext.proxy.api.annotations.AnnotationsForProperty;
+import org.apache.olingo.ext.proxy.api.annotations.AnnotationsForNavigationProperty;
+import org.apache.olingo.ext.proxy.api.annotations.Namespace;
+import org.apache.olingo.ext.proxy.api.annotations.EntityType;
+import org.apache.olingo.ext.proxy.api.annotations.EntitySet;
+import org.apache.olingo.ext.proxy.api.annotations.Key;
+import org.apache.olingo.ext.proxy.api.annotations.KeyRef;
+import org.apache.olingo.ext.proxy.api.annotations.NavigationProperty;
+import org.apache.olingo.ext.proxy.api.annotations.Property;
+import org.apache.olingo.ext.proxy.api.annotations.Operation;
+import org.apache.olingo.ext.proxy.api.annotations.Parameter;
+import org.apache.olingo.ext.proxy.api.Annotatable;
+import org.apache.olingo.ext.proxy.api.AbstractOpenType;
+import org.apache.olingo.ext.proxy.api.OperationType;
+import org.apache.olingo.ext.proxy.api.AbstractEntitySet;
+import org.apache.olingo.commons.api.edm.constants.EdmContentKind;
+import org.apache.olingo.client.api.edm.ConcurrencyMode;
+import org.apache.olingo.fit.proxy.v4.demo.odatademo.*;
+import org.apache.olingo.fit.proxy.v4.demo.odatademo.types.*;
+
+import org.apache.olingo.commons.api.edm.geo.Geospatial;
+import org.apache.olingo.commons.api.edm.geo.GeospatialCollection;
+import org.apache.olingo.commons.api.edm.geo.LineString;
+import org.apache.olingo.commons.api.edm.geo.MultiLineString;
+import org.apache.olingo.commons.api.edm.geo.MultiPoint;
+import org.apache.olingo.commons.api.edm.geo.MultiPolygon;
+import org.apache.olingo.commons.api.edm.geo.Point;
+import org.apache.olingo.commons.api.edm.geo.Polygon;
+
+
+@org.apache.olingo.ext.proxy.api.annotations.Namespace("ODataDemo")
+@org.apache.olingo.ext.proxy.api.annotations.EntityType(name = "Person",
+ openType = false,
+ hasStream = false,
+ isAbstract = false)
+public interface Person
+ extends Annotatable,java.io.Serializable {
+
+
+ @Key
+ @org.apache.olingo.ext.proxy.api.annotations.Property(name = "ID",
+ type = "Edm.Int32",
+ nullable = false,
+ defaultValue = "",
+ maxLenght = Integer.MAX_VALUE,
+ fixedLenght = false,
+ precision = 0,
+ scale = 0,
+ unicode = true,
+ collation = "",
+ srid = "",
+ concurrencyMode = ConcurrencyMode.None,
+ fcSourcePath = "",
+ fcTargetPath = "",
+ fcContentKind = EdmContentKind.text,
+ fcNSPrefix = "",
+ fcNSURI = "",
+ fcKeepInContent = false)
+ java.lang.Integer getID();
+
+ void setID(java.lang.Integer _iD);
+
+
+ @org.apache.olingo.ext.proxy.api.annotations.Property(name = "Name",
+ type = "Edm.String",
+ nullable = true,
+ defaultValue = "",
+ maxLenght = Integer.MAX_VALUE,
+ fixedLenght = false,
+ precision = 0,
+ scale = 0,
+ unicode = true,
+ collation = "",
+ srid = "",
+ concurrencyMode = ConcurrencyMode.None,
+ fcSourcePath = "",
+ fcTargetPath = "",
+ fcContentKind = EdmContentKind.text,
+ fcNSPrefix = "",
+ fcNSURI = "",
+ fcKeepInContent = false)
+ java.lang.String getName();
+
+ void setName(java.lang.String _name);
+
+
+
+ @org.apache.olingo.ext.proxy.api.annotations.NavigationProperty(name = "PersonDetail",
+ type = "ODataDemo.PersonDetail",
+ targetSchema = "ODataDemo",
+ targetContainer = "DemoService",
+ targetEntitySet = "PersonDetails",
+ containsTarget = false)
+ org.apache.olingo.fit.proxy.v4.demo.odatademo.types.PersonDetail getPersonDetail();
+
+ void setPersonDetail(org.apache.olingo.fit.proxy.v4.demo.odatademo.types.PersonDetail _personDetail);
+
+
+
+ ComplexFactory factory();
+
+ interface ComplexFactory {
+ }
+
+ Annotations annotations();
+
+ interface Annotations {
+
+ @org.apache.olingo.ext.proxy.api.annotations.AnnotationsForProperty(name = "ID",
+ type = "Edm.Int32")
+ Annotatable getIDAnnotations();
+
+ @org.apache.olingo.ext.proxy.api.annotations.AnnotationsForProperty(name = "Name",
+ type = "Edm.String")
+ Annotatable getNameAnnotations();
+
+
+
+ @org.apache.olingo.ext.proxy.api.annotations.AnnotationsForNavigationProperty(name = "PersonDetail",
+ type = "ODataDemo.PersonDetail")
+ Annotatable getPersonDetailAnnotations();
+ }
+
+}
http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/cc518254/fit/src/test/java/org/apache/olingo/fit/proxy/v4/demo/odatademo/types/PersonCollection.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/proxy/v4/demo/odatademo/types/PersonCollection.java b/fit/src/test/java/org/apache/olingo/fit/proxy/v4/demo/odatademo/types/PersonCollection.java
new file mode 100644
index 0000000..c397f29
--- /dev/null
+++ b/fit/src/test/java/org/apache/olingo/fit/proxy/v4/demo/odatademo/types/PersonCollection.java
@@ -0,0 +1,52 @@
+/*
+ * 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.fit.proxy.v4.demo.odatademo.types;
+
+import org.apache.olingo.client.api.http.HttpMethod;
+import org.apache.olingo.ext.proxy.api.AbstractEntityCollection;
+import org.apache.olingo.ext.proxy.api.AbstractTerm;
+import org.apache.olingo.ext.proxy.api.OperationType;
+import org.apache.olingo.ext.proxy.api.annotations.Operation;
+import org.apache.olingo.ext.proxy.api.annotations.Parameter;
+import org.apache.olingo.fit.proxy.v4.demo.odatademo.*;
+import org.apache.olingo.fit.proxy.v4.demo.odatademo.types.*;
+
+import org.apache.olingo.commons.api.edm.geo.Geospatial;
+import org.apache.olingo.commons.api.edm.geo.GeospatialCollection;
+import org.apache.olingo.commons.api.edm.geo.LineString;
+import org.apache.olingo.commons.api.edm.geo.MultiLineString;
+import org.apache.olingo.commons.api.edm.geo.MultiPoint;
+import org.apache.olingo.commons.api.edm.geo.MultiPolygon;
+import org.apache.olingo.commons.api.edm.geo.Point;
+import org.apache.olingo.commons.api.edm.geo.Polygon;
+import java.math.BigDecimal;
+import java.net.URI;
+import java.util.UUID;
+import java.io.Serializable;
+import java.util.Collection;
+import java.util.Calendar;
+import javax.xml.datatype.Duration;
+
+public interface PersonCollection extends AbstractEntityCollection<org.apache.olingo.fit.proxy.v4.demo.odatademo.types.Person> {
+
+ Object getAnnotation(Class<? extends AbstractTerm> term);
+
+ Collection<Class<? extends AbstractTerm>> getAnnotationTerms();
+}
http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/cc518254/fit/src/test/java/org/apache/olingo/fit/proxy/v4/demo/odatademo/types/PersonDetail.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/proxy/v4/demo/odatademo/types/PersonDetail.java b/fit/src/test/java/org/apache/olingo/fit/proxy/v4/demo/odatademo/types/PersonDetail.java
new file mode 100644
index 0000000..ff7231d
--- /dev/null
+++ b/fit/src/test/java/org/apache/olingo/fit/proxy/v4/demo/odatademo/types/PersonDetail.java
@@ -0,0 +1,258 @@
+/*
+ * 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.fit.proxy.v4.demo.odatademo.types;
+
+import org.apache.olingo.client.api.http.HttpMethod;
+import org.apache.olingo.ext.proxy.api.annotations.AnnotationsForProperty;
+import org.apache.olingo.ext.proxy.api.annotations.AnnotationsForNavigationProperty;
+import org.apache.olingo.ext.proxy.api.annotations.Namespace;
+import org.apache.olingo.ext.proxy.api.annotations.EntityType;
+import org.apache.olingo.ext.proxy.api.annotations.EntitySet;
+import org.apache.olingo.ext.proxy.api.annotations.Key;
+import org.apache.olingo.ext.proxy.api.annotations.KeyRef;
+import org.apache.olingo.ext.proxy.api.annotations.NavigationProperty;
+import org.apache.olingo.ext.proxy.api.annotations.Property;
+import org.apache.olingo.ext.proxy.api.annotations.Operation;
+import org.apache.olingo.ext.proxy.api.annotations.Parameter;
+import org.apache.olingo.ext.proxy.api.Annotatable;
+import org.apache.olingo.ext.proxy.api.AbstractOpenType;
+import org.apache.olingo.ext.proxy.api.OperationType;
+import org.apache.olingo.ext.proxy.api.AbstractEntitySet;
+import org.apache.olingo.commons.api.edm.constants.EdmContentKind;
+import org.apache.olingo.client.api.edm.ConcurrencyMode;
+import org.apache.olingo.fit.proxy.v4.demo.odatademo.*;
+import org.apache.olingo.fit.proxy.v4.demo.odatademo.types.*;
+
+import org.apache.olingo.commons.api.edm.geo.Geospatial;
+import org.apache.olingo.commons.api.edm.geo.GeospatialCollection;
+import org.apache.olingo.commons.api.edm.geo.LineString;
+import org.apache.olingo.commons.api.edm.geo.MultiLineString;
+import org.apache.olingo.commons.api.edm.geo.MultiPoint;
+import org.apache.olingo.commons.api.edm.geo.MultiPolygon;
+import org.apache.olingo.commons.api.edm.geo.Point;
+import org.apache.olingo.commons.api.edm.geo.Polygon;
+
+
+@org.apache.olingo.ext.proxy.api.annotations.Namespace("ODataDemo")
+@org.apache.olingo.ext.proxy.api.annotations.EntityType(name = "PersonDetail",
+ openType = false,
+ hasStream = false,
+ isAbstract = false)
+public interface PersonDetail
+ extends Annotatable,java.io.Serializable {
+
+
+ @Key
+ @org.apache.olingo.ext.proxy.api.annotations.Property(name = "PersonID",
+ type = "Edm.Int32",
+ nullable = false,
+ defaultValue = "",
+ maxLenght = Integer.MAX_VALUE,
+ fixedLenght = false,
+ precision = 0,
+ scale = 0,
+ unicode = true,
+ collation = "",
+ srid = "",
+ concurrencyMode = ConcurrencyMode.None,
+ fcSourcePath = "",
+ fcTargetPath = "",
+ fcContentKind = EdmContentKind.text,
+ fcNSPrefix = "",
+ fcNSURI = "",
+ fcKeepInContent = false)
+ java.lang.Integer getPersonID();
+
+ void setPersonID(java.lang.Integer _personID);
+
+
+ @org.apache.olingo.ext.proxy.api.annotations.Property(name = "Age",
+ type = "Edm.Byte",
+ nullable = false,
+ defaultValue = "",
+ maxLenght = Integer.MAX_VALUE,
+ fixedLenght = false,
+ precision = 0,
+ scale = 0,
+ unicode = true,
+ collation = "",
+ srid = "",
+ concurrencyMode = ConcurrencyMode.None,
+ fcSourcePath = "",
+ fcTargetPath = "",
+ fcContentKind = EdmContentKind.text,
+ fcNSPrefix = "",
+ fcNSURI = "",
+ fcKeepInContent = false)
+ java.lang.Short getAge();
+
+ void setAge(java.lang.Short _age);
+
+
+ @org.apache.olingo.ext.proxy.api.annotations.Property(name = "Gender",
+ type = "Edm.Boolean",
+ nullable = false,
+ defaultValue = "",
+ maxLenght = Integer.MAX_VALUE,
+ fixedLenght = false,
+ precision = 0,
+ scale = 0,
+ unicode = true,
+ collation = "",
+ srid = "",
+ concurrencyMode = ConcurrencyMode.None,
+ fcSourcePath = "",
+ fcTargetPath = "",
+ fcContentKind = EdmContentKind.text,
+ fcNSPrefix = "",
+ fcNSURI = "",
+ fcKeepInContent = false)
+ java.lang.Boolean getGender();
+
+ void setGender(java.lang.Boolean _gender);
+
+
+ @org.apache.olingo.ext.proxy.api.annotations.Property(name = "Phone",
+ type = "Edm.String",
+ nullable = true,
+ defaultValue = "",
+ maxLenght = Integer.MAX_VALUE,
+ fixedLenght = false,
+ precision = 0,
+ scale = 0,
+ unicode = true,
+ collation = "",
+ srid = "",
+ concurrencyMode = ConcurrencyMode.None,
+ fcSourcePath = "",
+ fcTargetPath = "",
+ fcContentKind = EdmContentKind.text,
+ fcNSPrefix = "",
+ fcNSURI = "",
+ fcKeepInContent = false)
+ java.lang.String getPhone();
+
+ void setPhone(java.lang.String _phone);
+
+
+ @org.apache.olingo.ext.proxy.api.annotations.Property(name = "Address",
+ type = "ODataDemo.Address",
+ nullable = true,
+ defaultValue = "",
+ maxLenght = Integer.MAX_VALUE,
+ fixedLenght = false,
+ precision = 0,
+ scale = 0,
+ unicode = true,
+ collation = "",
+ srid = "",
+ concurrencyMode = ConcurrencyMode.None,
+ fcSourcePath = "",
+ fcTargetPath = "",
+ fcContentKind = EdmContentKind.text,
+ fcNSPrefix = "",
+ fcNSURI = "",
+ fcKeepInContent = false)
+ org.apache.olingo.fit.proxy.v4.demo.odatademo.types.Address getAddress();
+
+ void setAddress(org.apache.olingo.fit.proxy.v4.demo.odatademo.types.Address _address);
+
+
+ @org.apache.olingo.ext.proxy.api.annotations.Property(name = "Photo",
+ type = "Edm.Stream",
+ nullable = false,
+ defaultValue = "",
+ maxLenght = Integer.MAX_VALUE,
+ fixedLenght = false,
+ precision = 0,
+ scale = 0,
+ unicode = true,
+ collation = "",
+ srid = "",
+ concurrencyMode = ConcurrencyMode.None,
+ fcSourcePath = "",
+ fcTargetPath = "",
+ fcContentKind = EdmContentKind.text,
+ fcNSPrefix = "",
+ fcNSURI = "",
+ fcKeepInContent = false)
+ java.io.InputStream getPhoto();
+
+ void setPhoto(java.io.InputStream _photo);
+
+
+
+ @org.apache.olingo.ext.proxy.api.annotations.NavigationProperty(name = "Person",
+ type = "ODataDemo.Person",
+ targetSchema = "ODataDemo",
+ targetContainer = "DemoService",
+ targetEntitySet = "Persons",
+ containsTarget = false)
+ org.apache.olingo.fit.proxy.v4.demo.odatademo.types.Person getPerson();
+
+ void setPerson(org.apache.olingo.fit.proxy.v4.demo.odatademo.types.Person _person);
+
+
+
+ ComplexFactory factory();
+
+ interface ComplexFactory {
+ @org.apache.olingo.ext.proxy.api.annotations.Property(name = "Address",
+ type = "ODataDemo.Address")
+ org.apache.olingo.fit.proxy.v4.demo.odatademo.types.Address newAddress();
+
+ }
+
+ Annotations annotations();
+
+ interface Annotations {
+
+ @org.apache.olingo.ext.proxy.api.annotations.AnnotationsForProperty(name = "PersonID",
+ type = "Edm.Int32")
+ Annotatable getPersonIDAnnotations();
+
+ @org.apache.olingo.ext.proxy.api.annotations.AnnotationsForProperty(name = "Age",
+ type = "Edm.Byte")
+ Annotatable getAgeAnnotations();
+
+ @org.apache.olingo.ext.proxy.api.annotations.AnnotationsForProperty(name = "Gender",
+ type = "Edm.Boolean")
+ Annotatable getGenderAnnotations();
+
+ @org.apache.olingo.ext.proxy.api.annotations.AnnotationsForProperty(name = "Phone",
+ type = "Edm.String")
+ Annotatable getPhoneAnnotations();
+
+ @org.apache.olingo.ext.proxy.api.annotations.AnnotationsForProperty(name = "Address",
+ type = "ODataDemo.Address")
+ Annotatable getAddressAnnotations();
+
+ @org.apache.olingo.ext.proxy.api.annotations.AnnotationsForProperty(name = "Photo",
+ type = "Edm.Stream")
+ Annotatable getPhotoAnnotations();
+
+
+
+ @org.apache.olingo.ext.proxy.api.annotations.AnnotationsForNavigationProperty(name = "Person",
+ type = "ODataDemo.Person")
+ Annotatable getPersonAnnotations();
+ }
+
+}
http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/cc518254/fit/src/test/java/org/apache/olingo/fit/proxy/v4/demo/odatademo/types/PersonDetailCollection.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/proxy/v4/demo/odatademo/types/PersonDetailCollection.java b/fit/src/test/java/org/apache/olingo/fit/proxy/v4/demo/odatademo/types/PersonDetailCollection.java
new file mode 100644
index 0000000..bb4dfd1
--- /dev/null
+++ b/fit/src/test/java/org/apache/olingo/fit/proxy/v4/demo/odatademo/types/PersonDetailCollection.java
@@ -0,0 +1,52 @@
+/*
+ * 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.fit.proxy.v4.demo.odatademo.types;
+
+import org.apache.olingo.client.api.http.HttpMethod;
+import org.apache.olingo.ext.proxy.api.AbstractEntityCollection;
+import org.apache.olingo.ext.proxy.api.AbstractTerm;
+import org.apache.olingo.ext.proxy.api.OperationType;
+import org.apache.olingo.ext.proxy.api.annotations.Operation;
+import org.apache.olingo.ext.proxy.api.annotations.Parameter;
+import org.apache.olingo.fit.proxy.v4.demo.odatademo.*;
+import org.apache.olingo.fit.proxy.v4.demo.odatademo.types.*;
+
+import org.apache.olingo.commons.api.edm.geo.Geospatial;
+import org.apache.olingo.commons.api.edm.geo.GeospatialCollection;
+import org.apache.olingo.commons.api.edm.geo.LineString;
+import org.apache.olingo.commons.api.edm.geo.MultiLineString;
+import org.apache.olingo.commons.api.edm.geo.MultiPoint;
+import org.apache.olingo.commons.api.edm.geo.MultiPolygon;
+import org.apache.olingo.commons.api.edm.geo.Point;
+import org.apache.olingo.commons.api.edm.geo.Polygon;
+import java.math.BigDecimal;
+import java.net.URI;
+import java.util.UUID;
+import java.io.Serializable;
+import java.util.Collection;
+import java.util.Calendar;
+import javax.xml.datatype.Duration;
+
+public interface PersonDetailCollection extends AbstractEntityCollection<org.apache.olingo.fit.proxy.v4.demo.odatademo.types.PersonDetail> {
+
+ Object getAnnotation(Class<? extends AbstractTerm> term);
+
+ Collection<Class<? extends AbstractTerm>> getAnnotationTerms();
+}
http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/cc518254/fit/src/test/java/org/apache/olingo/fit/proxy/v4/demo/odatademo/types/Product.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/proxy/v4/demo/odatademo/types/Product.java b/fit/src/test/java/org/apache/olingo/fit/proxy/v4/demo/odatademo/types/Product.java
new file mode 100644
index 0000000..af46c8d
--- /dev/null
+++ b/fit/src/test/java/org/apache/olingo/fit/proxy/v4/demo/odatademo/types/Product.java
@@ -0,0 +1,321 @@
+/*
+ * 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.fit.proxy.v4.demo.odatademo.types;
+
+import org.apache.olingo.client.api.http.HttpMethod;
+import org.apache.olingo.ext.proxy.api.annotations.AnnotationsForProperty;
+import org.apache.olingo.ext.proxy.api.annotations.AnnotationsForNavigationProperty;
+import org.apache.olingo.ext.proxy.api.annotations.Namespace;
+import org.apache.olingo.ext.proxy.api.annotations.EntityType;
+import org.apache.olingo.ext.proxy.api.annotations.EntitySet;
+import org.apache.olingo.ext.proxy.api.annotations.Key;
+import org.apache.olingo.ext.proxy.api.annotations.KeyRef;
+import org.apache.olingo.ext.proxy.api.annotations.NavigationProperty;
+import org.apache.olingo.ext.proxy.api.annotations.Property;
+import org.apache.olingo.ext.proxy.api.annotations.Operation;
+import org.apache.olingo.ext.proxy.api.annotations.Parameter;
+import org.apache.olingo.ext.proxy.api.Annotatable;
+import org.apache.olingo.ext.proxy.api.AbstractOpenType;
+import org.apache.olingo.ext.proxy.api.OperationType;
+import org.apache.olingo.ext.proxy.api.AbstractEntitySet;
+import org.apache.olingo.commons.api.edm.constants.EdmContentKind;
+import org.apache.olingo.client.api.edm.ConcurrencyMode;
+import org.apache.olingo.fit.proxy.v4.demo.odatademo.*;
+import org.apache.olingo.fit.proxy.v4.demo.odatademo.types.*;
+
+import org.apache.olingo.commons.api.edm.geo.Geospatial;
+import org.apache.olingo.commons.api.edm.geo.GeospatialCollection;
+import org.apache.olingo.commons.api.edm.geo.LineString;
+import org.apache.olingo.commons.api.edm.geo.MultiLineString;
+import org.apache.olingo.commons.api.edm.geo.MultiPoint;
+import org.apache.olingo.commons.api.edm.geo.MultiPolygon;
+import org.apache.olingo.commons.api.edm.geo.Point;
+import org.apache.olingo.commons.api.edm.geo.Polygon;
+
+
+@org.apache.olingo.ext.proxy.api.annotations.Namespace("ODataDemo")
+@org.apache.olingo.ext.proxy.api.annotations.EntityType(name = "Product",
+ openType = false,
+ hasStream = false,
+ isAbstract = false)
+public interface Product
+ extends Annotatable,java.io.Serializable {
+
+
+ @Key
+ @org.apache.olingo.ext.proxy.api.annotations.Property(name = "ID",
+ type = "Edm.Int32",
+ nullable = false,
+ defaultValue = "",
+ maxLenght = Integer.MAX_VALUE,
+ fixedLenght = false,
+ precision = 0,
+ scale = 0,
+ unicode = true,
+ collation = "",
+ srid = "",
+ concurrencyMode = ConcurrencyMode.None,
+ fcSourcePath = "",
+ fcTargetPath = "",
+ fcContentKind = EdmContentKind.text,
+ fcNSPrefix = "",
+ fcNSURI = "",
+ fcKeepInContent = false)
+ java.lang.Integer getID();
+
+ void setID(java.lang.Integer _iD);
+
+
+ @org.apache.olingo.ext.proxy.api.annotations.Property(name = "Name",
+ type = "Edm.String",
+ nullable = true,
+ defaultValue = "",
+ maxLenght = Integer.MAX_VALUE,
+ fixedLenght = false,
+ precision = 0,
+ scale = 0,
+ unicode = true,
+ collation = "",
+ srid = "",
+ concurrencyMode = ConcurrencyMode.None,
+ fcSourcePath = "",
+ fcTargetPath = "",
+ fcContentKind = EdmContentKind.text,
+ fcNSPrefix = "",
+ fcNSURI = "",
+ fcKeepInContent = false)
+ java.lang.String getName();
+
+ void setName(java.lang.String _name);
+
+
+ @org.apache.olingo.ext.proxy.api.annotations.Property(name = "Description",
+ type = "Edm.String",
+ nullable = true,
+ defaultValue = "",
+ maxLenght = Integer.MAX_VALUE,
+ fixedLenght = false,
+ precision = 0,
+ scale = 0,
+ unicode = true,
+ collation = "",
+ srid = "",
+ concurrencyMode = ConcurrencyMode.None,
+ fcSourcePath = "",
+ fcTargetPath = "",
+ fcContentKind = EdmContentKind.text,
+ fcNSPrefix = "",
+ fcNSURI = "",
+ fcKeepInContent = false)
+ java.lang.String getDescription();
+
+ void setDescription(java.lang.String _description);
+
+
+ @org.apache.olingo.ext.proxy.api.annotations.Property(name = "ReleaseDate",
+ type = "Edm.DateTimeOffset",
+ nullable = false,
+ defaultValue = "",
+ maxLenght = Integer.MAX_VALUE,
+ fixedLenght = false,
+ precision = 0,
+ scale = 0,
+ unicode = true,
+ collation = "",
+ srid = "",
+ concurrencyMode = ConcurrencyMode.None,
+ fcSourcePath = "",
+ fcTargetPath = "",
+ fcContentKind = EdmContentKind.text,
+ fcNSPrefix = "",
+ fcNSURI = "",
+ fcKeepInContent = false)
+ java.util.Calendar getReleaseDate();
+
+ void setReleaseDate(java.util.Calendar _releaseDate);
+
+
+ @org.apache.olingo.ext.proxy.api.annotations.Property(name = "DiscontinuedDate",
+ type = "Edm.DateTimeOffset",
+ nullable = true,
+ defaultValue = "",
+ maxLenght = Integer.MAX_VALUE,
+ fixedLenght = false,
+ precision = 0,
+ scale = 0,
+ unicode = true,
+ collation = "",
+ srid = "",
+ concurrencyMode = ConcurrencyMode.None,
+ fcSourcePath = "",
+ fcTargetPath = "",
+ fcContentKind = EdmContentKind.text,
+ fcNSPrefix = "",
+ fcNSURI = "",
+ fcKeepInContent = false)
+ java.util.Calendar getDiscontinuedDate();
+
+ void setDiscontinuedDate(java.util.Calendar _discontinuedDate);
+
+
+ @org.apache.olingo.ext.proxy.api.annotations.Property(name = "Rating",
+ type = "Edm.Int16",
+ nullable = false,
+ defaultValue = "",
+ maxLenght = Integer.MAX_VALUE,
+ fixedLenght = false,
+ precision = 0,
+ scale = 0,
+ unicode = true,
+ collation = "",
+ srid = "",
+ concurrencyMode = ConcurrencyMode.None,
+ fcSourcePath = "",
+ fcTargetPath = "",
+ fcContentKind = EdmContentKind.text,
+ fcNSPrefix = "",
+ fcNSURI = "",
+ fcKeepInContent = false)
+ java.lang.Short getRating();
+
+ void setRating(java.lang.Short _rating);
+
+
+ @org.apache.olingo.ext.proxy.api.annotations.Property(name = "Price",
+ type = "Edm.Double",
+ nullable = false,
+ defaultValue = "",
+ maxLenght = Integer.MAX_VALUE,
+ fixedLenght = false,
+ precision = 0,
+ scale = 0,
+ unicode = true,
+ collation = "",
+ srid = "",
+ concurrencyMode = ConcurrencyMode.None,
+ fcSourcePath = "",
+ fcTargetPath = "",
+ fcContentKind = EdmContentKind.text,
+ fcNSPrefix = "",
+ fcNSURI = "",
+ fcKeepInContent = false)
+ java.lang.Double getPrice();
+
+ void setPrice(java.lang.Double _price);
+
+
+
+ @org.apache.olingo.ext.proxy.api.annotations.NavigationProperty(name = "Categories",
+ type = "ODataDemo.Category",
+ targetSchema = "ODataDemo",
+ targetContainer = "DemoService",
+ targetEntitySet = "Categories",
+ containsTarget = false)
+ org.apache.olingo.fit.proxy.v4.demo.odatademo.types.CategoryCollection getCategories();
+
+ void setCategories(org.apache.olingo.fit.proxy.v4.demo.odatademo.types.CategoryCollection _categories);
+
+ @org.apache.olingo.ext.proxy.api.annotations.NavigationProperty(name = "Supplier",
+ type = "ODataDemo.Supplier",
+ targetSchema = "ODataDemo",
+ targetContainer = "DemoService",
+ targetEntitySet = "Suppliers",
+ containsTarget = false)
+ org.apache.olingo.fit.proxy.v4.demo.odatademo.types.Supplier getSupplier();
+
+ void setSupplier(org.apache.olingo.fit.proxy.v4.demo.odatademo.types.Supplier _supplier);
+
+ @org.apache.olingo.ext.proxy.api.annotations.NavigationProperty(name = "ProductDetail",
+ type = "ODataDemo.ProductDetail",
+ targetSchema = "ODataDemo",
+ targetContainer = "DemoService",
+ targetEntitySet = "ProductDetails",
+ containsTarget = false)
+ org.apache.olingo.fit.proxy.v4.demo.odatademo.types.ProductDetail getProductDetail();
+
+ void setProductDetail(org.apache.olingo.fit.proxy.v4.demo.odatademo.types.ProductDetail _productDetail);
+
+
+ Operations operations();
+
+ interface Operations {
+
+ @org.apache.olingo.ext.proxy.api.annotations.Operation(name = "Discount",
+ type = OperationType.ACTION,
+ returnType = "Edm.Double")
+ java.lang.Double discount(
+ @Parameter(name = "discountPercentage", type = "Edm.Int32", nullable = false) java.lang.Integer discountPercentage
+ );
+
+ }
+
+ ComplexFactory factory();
+
+ interface ComplexFactory {
+ }
+
+ Annotations annotations();
+
+ interface Annotations {
+
+ @org.apache.olingo.ext.proxy.api.annotations.AnnotationsForProperty(name = "ID",
+ type = "Edm.Int32")
+ Annotatable getIDAnnotations();
+
+ @org.apache.olingo.ext.proxy.api.annotations.AnnotationsForProperty(name = "Name",
+ type = "Edm.String")
+ Annotatable getNameAnnotations();
+
+ @org.apache.olingo.ext.proxy.api.annotations.AnnotationsForProperty(name = "Description",
+ type = "Edm.String")
+ Annotatable getDescriptionAnnotations();
+
+ @org.apache.olingo.ext.proxy.api.annotations.AnnotationsForProperty(name = "ReleaseDate",
+ type = "Edm.DateTimeOffset")
+ Annotatable getReleaseDateAnnotations();
+
+ @org.apache.olingo.ext.proxy.api.annotations.AnnotationsForProperty(name = "DiscontinuedDate",
+ type = "Edm.DateTimeOffset")
+ Annotatable getDiscontinuedDateAnnotations();
+
+ @org.apache.olingo.ext.proxy.api.annotations.AnnotationsForProperty(name = "Rating",
+ type = "Edm.Int16")
+ Annotatable getRatingAnnotations();
+
+ @org.apache.olingo.ext.proxy.api.annotations.AnnotationsForProperty(name = "Price",
+ type = "Edm.Double")
+ Annotatable getPriceAnnotations();
+
+
+
+ @org.apache.olingo.ext.proxy.api.annotations.AnnotationsForNavigationProperty(name = "Categories",
+ type = "ODataDemo.Category")
+ Annotatable getCategoriesAnnotations();
+
+ @org.apache.olingo.ext.proxy.api.annotations.AnnotationsForNavigationProperty(name = "Supplier",
+ type = "ODataDemo.Supplier")
+ Annotatable getSupplierAnnotations();
+
+ @org.apache.olingo.ext.proxy.api.annotations.AnnotationsForNavigationProperty(name = "ProductDetail",
+ type = "ODataDemo.ProductDetail")
+ Annotatable getProductDetailAnnotations();
+ }
+
+}
http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/cc518254/fit/src/test/java/org/apache/olingo/fit/proxy/v4/demo/odatademo/types/ProductCollection.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/proxy/v4/demo/odatademo/types/ProductCollection.java b/fit/src/test/java/org/apache/olingo/fit/proxy/v4/demo/odatademo/types/ProductCollection.java
new file mode 100644
index 0000000..c65cef7
--- /dev/null
+++ b/fit/src/test/java/org/apache/olingo/fit/proxy/v4/demo/odatademo/types/ProductCollection.java
@@ -0,0 +1,52 @@
+/*
+ * 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.fit.proxy.v4.demo.odatademo.types;
+
+import org.apache.olingo.client.api.http.HttpMethod;
+import org.apache.olingo.ext.proxy.api.AbstractEntityCollection;
+import org.apache.olingo.ext.proxy.api.AbstractTerm;
+import org.apache.olingo.ext.proxy.api.OperationType;
+import org.apache.olingo.ext.proxy.api.annotations.Operation;
+import org.apache.olingo.ext.proxy.api.annotations.Parameter;
+import org.apache.olingo.fit.proxy.v4.demo.odatademo.*;
+import org.apache.olingo.fit.proxy.v4.demo.odatademo.types.*;
+
+import org.apache.olingo.commons.api.edm.geo.Geospatial;
+import org.apache.olingo.commons.api.edm.geo.GeospatialCollection;
+import org.apache.olingo.commons.api.edm.geo.LineString;
+import org.apache.olingo.commons.api.edm.geo.MultiLineString;
+import org.apache.olingo.commons.api.edm.geo.MultiPoint;
+import org.apache.olingo.commons.api.edm.geo.MultiPolygon;
+import org.apache.olingo.commons.api.edm.geo.Point;
+import org.apache.olingo.commons.api.edm.geo.Polygon;
+import java.math.BigDecimal;
+import java.net.URI;
+import java.util.UUID;
+import java.io.Serializable;
+import java.util.Collection;
+import java.util.Calendar;
+import javax.xml.datatype.Duration;
+
+public interface ProductCollection extends AbstractEntityCollection<org.apache.olingo.fit.proxy.v4.demo.odatademo.types.Product> {
+
+ Object getAnnotation(Class<? extends AbstractTerm> term);
+
+ Collection<Class<? extends AbstractTerm>> getAnnotationTerms();
+}
http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/cc518254/fit/src/test/java/org/apache/olingo/fit/proxy/v4/demo/odatademo/types/ProductDetail.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/proxy/v4/demo/odatademo/types/ProductDetail.java b/fit/src/test/java/org/apache/olingo/fit/proxy/v4/demo/odatademo/types/ProductDetail.java
new file mode 100644
index 0000000..875da63
--- /dev/null
+++ b/fit/src/test/java/org/apache/olingo/fit/proxy/v4/demo/odatademo/types/ProductDetail.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.fit.proxy.v4.demo.odatademo.types;
+
+import org.apache.olingo.client.api.http.HttpMethod;
+import org.apache.olingo.ext.proxy.api.annotations.AnnotationsForProperty;
+import org.apache.olingo.ext.proxy.api.annotations.AnnotationsForNavigationProperty;
+import org.apache.olingo.ext.proxy.api.annotations.Namespace;
+import org.apache.olingo.ext.proxy.api.annotations.EntityType;
+import org.apache.olingo.ext.proxy.api.annotations.EntitySet;
+import org.apache.olingo.ext.proxy.api.annotations.Key;
+import org.apache.olingo.ext.proxy.api.annotations.KeyRef;
+import org.apache.olingo.ext.proxy.api.annotations.NavigationProperty;
+import org.apache.olingo.ext.proxy.api.annotations.Property;
+import org.apache.olingo.ext.proxy.api.annotations.Operation;
+import org.apache.olingo.ext.proxy.api.annotations.Parameter;
+import org.apache.olingo.ext.proxy.api.Annotatable;
+import org.apache.olingo.ext.proxy.api.AbstractOpenType;
+import org.apache.olingo.ext.proxy.api.OperationType;
+import org.apache.olingo.ext.proxy.api.AbstractEntitySet;
+import org.apache.olingo.commons.api.edm.constants.EdmContentKind;
+import org.apache.olingo.client.api.edm.ConcurrencyMode;
+import org.apache.olingo.fit.proxy.v4.demo.odatademo.*;
+import org.apache.olingo.fit.proxy.v4.demo.odatademo.types.*;
+
+import org.apache.olingo.commons.api.edm.geo.Geospatial;
+import org.apache.olingo.commons.api.edm.geo.GeospatialCollection;
+import org.apache.olingo.commons.api.edm.geo.LineString;
+import org.apache.olingo.commons.api.edm.geo.MultiLineString;
+import org.apache.olingo.commons.api.edm.geo.MultiPoint;
+import org.apache.olingo.commons.api.edm.geo.MultiPolygon;
+import org.apache.olingo.commons.api.edm.geo.Point;
+import org.apache.olingo.commons.api.edm.geo.Polygon;
+
+
+@org.apache.olingo.ext.proxy.api.annotations.Namespace("ODataDemo")
+@org.apache.olingo.ext.proxy.api.annotations.EntityType(name = "ProductDetail",
+ openType = false,
+ hasStream = false,
+ isAbstract = false)
+public interface ProductDetail
+ extends Annotatable,java.io.Serializable {
+
+
+ @Key
+ @org.apache.olingo.ext.proxy.api.annotations.Property(name = "ProductID",
+ type = "Edm.Int32",
+ nullable = false,
+ defaultValue = "",
+ maxLenght = Integer.MAX_VALUE,
+ fixedLenght = false,
+ precision = 0,
+ scale = 0,
+ unicode = true,
+ collation = "",
+ srid = "",
+ concurrencyMode = ConcurrencyMode.None,
+ fcSourcePath = "",
+ fcTargetPath = "",
+ fcContentKind = EdmContentKind.text,
+ fcNSPrefix = "",
+ fcNSURI = "",
+ fcKeepInContent = false)
+ java.lang.Integer getProductID();
+
+ void setProductID(java.lang.Integer _productID);
+
+
+ @org.apache.olingo.ext.proxy.api.annotations.Property(name = "Details",
+ type = "Edm.String",
+ nullable = true,
+ defaultValue = "",
+ maxLenght = Integer.MAX_VALUE,
+ fixedLenght = false,
+ precision = 0,
+ scale = 0,
+ unicode = true,
+ collation = "",
+ srid = "",
+ concurrencyMode = ConcurrencyMode.None,
+ fcSourcePath = "",
+ fcTargetPath = "",
+ fcContentKind = EdmContentKind.text,
+ fcNSPrefix = "",
+ fcNSURI = "",
+ fcKeepInContent = false)
+ java.lang.String getDetails();
+
+ void setDetails(java.lang.String _details);
+
+
+
+ @org.apache.olingo.ext.proxy.api.annotations.NavigationProperty(name = "Product",
+ type = "ODataDemo.Product",
+ targetSchema = "ODataDemo",
+ targetContainer = "DemoService",
+ targetEntitySet = "Products",
+ containsTarget = false)
+ org.apache.olingo.fit.proxy.v4.demo.odatademo.types.Product getProduct();
+
+ void setProduct(org.apache.olingo.fit.proxy.v4.demo.odatademo.types.Product _product);
+
+
+
+ ComplexFactory factory();
+
+ interface ComplexFactory {
+ }
+
+ Annotations annotations();
+
+ interface Annotations {
+
+ @org.apache.olingo.ext.proxy.api.annotations.AnnotationsForProperty(name = "ProductID",
+ type = "Edm.Int32")
+ Annotatable getProductIDAnnotations();
+
+ @org.apache.olingo.ext.proxy.api.annotations.AnnotationsForProperty(name = "Details",
+ type = "Edm.String")
+ Annotatable getDetailsAnnotations();
+
+
+
+ @org.apache.olingo.ext.proxy.api.annotations.AnnotationsForNavigationProperty(name = "Product",
+ type = "ODataDemo.Product")
+ Annotatable getProductAnnotations();
+ }
+
+}
http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/cc518254/fit/src/test/java/org/apache/olingo/fit/proxy/v4/demo/odatademo/types/ProductDetailCollection.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/proxy/v4/demo/odatademo/types/ProductDetailCollection.java b/fit/src/test/java/org/apache/olingo/fit/proxy/v4/demo/odatademo/types/ProductDetailCollection.java
new file mode 100644
index 0000000..a90c3fa
--- /dev/null
+++ b/fit/src/test/java/org/apache/olingo/fit/proxy/v4/demo/odatademo/types/ProductDetailCollection.java
@@ -0,0 +1,52 @@
+/*
+ * 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.fit.proxy.v4.demo.odatademo.types;
+
+import org.apache.olingo.client.api.http.HttpMethod;
+import org.apache.olingo.ext.proxy.api.AbstractEntityCollection;
+import org.apache.olingo.ext.proxy.api.AbstractTerm;
+import org.apache.olingo.ext.proxy.api.OperationType;
+import org.apache.olingo.ext.proxy.api.annotations.Operation;
+import org.apache.olingo.ext.proxy.api.annotations.Parameter;
+import org.apache.olingo.fit.proxy.v4.demo.odatademo.*;
+import org.apache.olingo.fit.proxy.v4.demo.odatademo.types.*;
+
+import org.apache.olingo.commons.api.edm.geo.Geospatial;
+import org.apache.olingo.commons.api.edm.geo.GeospatialCollection;
+import org.apache.olingo.commons.api.edm.geo.LineString;
+import org.apache.olingo.commons.api.edm.geo.MultiLineString;
+import org.apache.olingo.commons.api.edm.geo.MultiPoint;
+import org.apache.olingo.commons.api.edm.geo.MultiPolygon;
+import org.apache.olingo.commons.api.edm.geo.Point;
+import org.apache.olingo.commons.api.edm.geo.Polygon;
+import java.math.BigDecimal;
+import java.net.URI;
+import java.util.UUID;
+import java.io.Serializable;
+import java.util.Collection;
+import java.util.Calendar;
+import javax.xml.datatype.Duration;
+
+public interface ProductDetailCollection extends AbstractEntityCollection<org.apache.olingo.fit.proxy.v4.demo.odatademo.types.ProductDetail> {
+
+ Object getAnnotation(Class<? extends AbstractTerm> term);
+
+ Collection<Class<? extends AbstractTerm>> getAnnotationTerms();
+}