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/09/01 14:45:19 UTC

[17/31] olingo-odata4 git commit: [OLINGO-659] Removed v4 from package and class names

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/78a9539e/fit/src/test/java/org/apache/olingo/fit/proxy/staticservice/microsoft/test/odata/services/odatawcfservice/types/HomeAddressComposableInvoker.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/proxy/staticservice/microsoft/test/odata/services/odatawcfservice/types/HomeAddressComposableInvoker.java b/fit/src/test/java/org/apache/olingo/fit/proxy/staticservice/microsoft/test/odata/services/odatawcfservice/types/HomeAddressComposableInvoker.java
new file mode 100644
index 0000000..dcff261
--- /dev/null
+++ b/fit/src/test/java/org/apache/olingo/fit/proxy/staticservice/microsoft/test/odata/services/odatawcfservice/types/HomeAddressComposableInvoker.java
@@ -0,0 +1,93 @@
+/*
+ * 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.staticservice.microsoft.test.odata.services.odatawcfservice.types;
+
+// CHECKSTYLE:OFF (Maven checkstyle)
+
+public interface HomeAddressComposableInvoker
+    extends org.apache.olingo.ext.proxy.api.StructuredComposableInvoker<HomeAddress, HomeAddress.Operations>
+{
+
+  @Override
+  HomeAddressComposableInvoker select(String... select);
+
+  @Override
+  HomeAddressComposableInvoker expand(String... expand);
+
+  @org.apache.olingo.ext.proxy.api.annotations.Property(name = "Street",
+      type = "Edm.String",
+      nullable = false,
+      defaultValue = "",
+      maxLenght = Integer.MAX_VALUE,
+      fixedLenght = false,
+      precision = 0,
+      scale = 0,
+      unicode = true,
+      collation = "",
+      srid = "")
+  java.lang.String getStreet();
+
+  void setStreet(java.lang.String _street);
+
+  @org.apache.olingo.ext.proxy.api.annotations.Property(name = "City",
+      type = "Edm.String",
+      nullable = false,
+      defaultValue = "",
+      maxLenght = Integer.MAX_VALUE,
+      fixedLenght = false,
+      precision = 0,
+      scale = 0,
+      unicode = true,
+      collation = "",
+      srid = "")
+  java.lang.String getCity();
+
+  void setCity(java.lang.String _city);
+
+  @org.apache.olingo.ext.proxy.api.annotations.Property(name = "PostalCode",
+      type = "Edm.String",
+      nullable = false,
+      defaultValue = "",
+      maxLenght = Integer.MAX_VALUE,
+      fixedLenght = false,
+      precision = 0,
+      scale = 0,
+      unicode = true,
+      collation = "",
+      srid = "")
+  java.lang.String getPostalCode();
+
+  void setPostalCode(java.lang.String _postalCode);
+
+  @org.apache.olingo.ext.proxy.api.annotations.Property(name = "FamilyName",
+      type = "Edm.String",
+      nullable = true,
+      defaultValue = "",
+      maxLenght = Integer.MAX_VALUE,
+      fixedLenght = false,
+      precision = 0,
+      scale = 0,
+      unicode = true,
+      collation = "",
+      srid = "")
+  java.lang.String getFamilyName();
+
+  void setFamilyName(java.lang.String _familyName);
+
+}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/78a9539e/fit/src/test/java/org/apache/olingo/fit/proxy/staticservice/microsoft/test/odata/services/odatawcfservice/types/IsBoss.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/proxy/staticservice/microsoft/test/odata/services/odatawcfservice/types/IsBoss.java b/fit/src/test/java/org/apache/olingo/fit/proxy/staticservice/microsoft/test/odata/services/odatawcfservice/types/IsBoss.java
new file mode 100644
index 0000000..358460e
--- /dev/null
+++ b/fit/src/test/java/org/apache/olingo/fit/proxy/staticservice/microsoft/test/odata/services/odatawcfservice/types/IsBoss.java
@@ -0,0 +1,31 @@
+/*
+ * 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.staticservice.microsoft.test.odata.services.odatawcfservice.types;
+
+// CHECKSTYLE:OFF (Maven checkstyle)
+import org.apache.olingo.ext.proxy.api.AbstractTerm;
+
+// CHECKSTYLE:ON (Maven checkstyle)
+
+@org.apache.olingo.ext.proxy.api.annotations.Namespace("Microsoft.Test.OData.Services.ODataWCFService")
+@org.apache.olingo.ext.proxy.api.annotations.Term(name = "IsBoss",
+    type = "Edm.Boolean")
+public interface IsBoss extends AbstractTerm {
+  // No additional methods needed for now.
+}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/78a9539e/fit/src/test/java/org/apache/olingo/fit/proxy/staticservice/microsoft/test/odata/services/odatawcfservice/types/LabourUnion.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/proxy/staticservice/microsoft/test/odata/services/odatawcfservice/types/LabourUnion.java b/fit/src/test/java/org/apache/olingo/fit/proxy/staticservice/microsoft/test/odata/services/odatawcfservice/types/LabourUnion.java
new file mode 100644
index 0000000..39d42d4
--- /dev/null
+++ b/fit/src/test/java/org/apache/olingo/fit/proxy/staticservice/microsoft/test/odata/services/odatawcfservice/types/LabourUnion.java
@@ -0,0 +1,87 @@
+/*
+ * 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.staticservice.microsoft.test.odata.services.odatawcfservice.types;
+
+// CHECKSTYLE:OFF (Maven checkstyle)
+import org.apache.olingo.ext.proxy.api.annotations.Key;
+
+// CHECKSTYLE:ON (Maven checkstyle)
+
+@org.apache.olingo.ext.proxy.api.annotations.Namespace("Microsoft.Test.OData.Services.ODataWCFService")
+@org.apache.olingo.ext.proxy.api.annotations.EntityType(name = "LabourUnion",
+    openType = false,
+    hasStream = false,
+    isAbstract = false)
+public interface LabourUnion
+    extends org.apache.olingo.ext.proxy.api.Annotatable,
+    org.apache.olingo.ext.proxy.api.EntityType<LabourUnion>,
+    org.apache.olingo.ext.proxy.api.StructuredQuery<LabourUnion> {
+
+  @Key
+  @org.apache.olingo.ext.proxy.api.annotations.Property(name = "LabourUnionID",
+      type = "Edm.Int32",
+      nullable = false,
+      defaultValue = "",
+      maxLenght = Integer.MAX_VALUE,
+      fixedLenght = false,
+      precision = 0,
+      scale = 0,
+      unicode = true,
+      collation = "",
+      srid = "")
+  java.lang.Integer getLabourUnionID();
+
+  void setLabourUnionID(java.lang.Integer _labourUnionID);
+
+  @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 = "")
+  java.lang.String getName();
+
+  void setName(java.lang.String _name);
+
+  Operations operations();
+
+  interface Operations extends org.apache.olingo.ext.proxy.api.Operations {
+    // No additional methods needed for now.
+  }
+
+  Annotations annotations();
+
+  interface Annotations {
+
+    @org.apache.olingo.ext.proxy.api.annotations.AnnotationsForProperty(name = "LabourUnionID",
+        type = "Edm.Int32")
+    org.apache.olingo.ext.proxy.api.Annotatable getLabourUnionIDAnnotations();
+
+    @org.apache.olingo.ext.proxy.api.annotations.AnnotationsForProperty(name = "Name",
+        type = "Edm.String")
+    org.apache.olingo.ext.proxy.api.Annotatable getNameAnnotations();
+
+  }
+
+}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/78a9539e/fit/src/test/java/org/apache/olingo/fit/proxy/staticservice/microsoft/test/odata/services/odatawcfservice/types/LabourUnionCollection.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/proxy/staticservice/microsoft/test/odata/services/odatawcfservice/types/LabourUnionCollection.java b/fit/src/test/java/org/apache/olingo/fit/proxy/staticservice/microsoft/test/odata/services/odatawcfservice/types/LabourUnionCollection.java
new file mode 100644
index 0000000..2c50f3d
--- /dev/null
+++ b/fit/src/test/java/org/apache/olingo/fit/proxy/staticservice/microsoft/test/odata/services/odatawcfservice/types/LabourUnionCollection.java
@@ -0,0 +1,41 @@
+/*
+ * 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.staticservice.microsoft.test.odata.services.odatawcfservice.types;
+
+// CHECKSTYLE:OFF (Maven checkstyle)
+import java.util.Collection;
+// CHECKSTYLE:ON (Maven checkstyle)
+
+import org.apache.olingo.ext.proxy.api.AbstractTerm;
+
+public interface LabourUnionCollection
+    extends
+    org.apache.olingo.ext.proxy.api.StructuredCollectionQuery<LabourUnionCollection>,
+org.apache.olingo.ext.proxy.api.EntityCollection<LabourUnion, LabourUnionCollection, LabourUnionCollection> {
+
+  Operations operations();
+
+  interface Operations extends org.apache.olingo.ext.proxy.api.Operations {
+    // No additional methods needed for now.
+  }
+
+  Object getAnnotation(Class<? extends AbstractTerm> term);
+
+  Collection<Class<? extends AbstractTerm>> getAnnotationTerms();
+}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/78a9539e/fit/src/test/java/org/apache/olingo/fit/proxy/staticservice/microsoft/test/odata/services/odatawcfservice/types/LabourUnionCollectionComposableInvoker.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/proxy/staticservice/microsoft/test/odata/services/odatawcfservice/types/LabourUnionCollectionComposableInvoker.java b/fit/src/test/java/org/apache/olingo/fit/proxy/staticservice/microsoft/test/odata/services/odatawcfservice/types/LabourUnionCollectionComposableInvoker.java
new file mode 100644
index 0000000..9f735ed
--- /dev/null
+++ b/fit/src/test/java/org/apache/olingo/fit/proxy/staticservice/microsoft/test/odata/services/odatawcfservice/types/LabourUnionCollectionComposableInvoker.java
@@ -0,0 +1,32 @@
+/*
+ * 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.staticservice.microsoft.test.odata.services.odatawcfservice.types;
+
+// CHECKSTYLE:OFF (Maven checkstyle)
+
+public interface LabourUnionCollectionComposableInvoker
+    extends
+    org.apache.olingo.ext.proxy.api.StructuredCollectionComposableInvoker<LabourUnionCollection, LabourUnionCollection.Operations> {
+
+  @Override
+  LabourUnionCollectionComposableInvoker select(String... select);
+
+  @Override
+  LabourUnionCollectionComposableInvoker expand(String... expand);
+}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/78a9539e/fit/src/test/java/org/apache/olingo/fit/proxy/staticservice/microsoft/test/odata/services/odatawcfservice/types/LabourUnionComposableInvoker.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/proxy/staticservice/microsoft/test/odata/services/odatawcfservice/types/LabourUnionComposableInvoker.java b/fit/src/test/java/org/apache/olingo/fit/proxy/staticservice/microsoft/test/odata/services/odatawcfservice/types/LabourUnionComposableInvoker.java
new file mode 100644
index 0000000..7a96e1e
--- /dev/null
+++ b/fit/src/test/java/org/apache/olingo/fit/proxy/staticservice/microsoft/test/odata/services/odatawcfservice/types/LabourUnionComposableInvoker.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.fit.proxy.staticservice.microsoft.test.odata.services.odatawcfservice.types;
+
+// CHECKSTYLE:OFF (Maven checkstyle)
+import org.apache.olingo.ext.proxy.api.annotations.Key;
+
+// CHECKSTYLE:ON (Maven checkstyle)
+
+public interface LabourUnionComposableInvoker
+    extends org.apache.olingo.ext.proxy.api.StructuredComposableInvoker<LabourUnion, LabourUnion.Operations>
+{
+
+  @Override
+  LabourUnionComposableInvoker select(String... select);
+
+  @Override
+  LabourUnionComposableInvoker expand(String... expand);
+
+  @Key
+  @org.apache.olingo.ext.proxy.api.annotations.Property(name = "LabourUnionID",
+      type = "Edm.Int32",
+      nullable = false,
+      defaultValue = "",
+      maxLenght = Integer.MAX_VALUE,
+      fixedLenght = false,
+      precision = 0,
+      scale = 0,
+      unicode = true,
+      collation = "",
+      srid = "")
+  java.lang.Integer getLabourUnionID();
+
+  void setLabourUnionID(java.lang.Integer _labourUnionID);
+
+  @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 = "")
+  java.lang.String getName();
+
+  void setName(java.lang.String _name);
+
+}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/78a9539e/fit/src/test/java/org/apache/olingo/fit/proxy/staticservice/microsoft/test/odata/services/odatawcfservice/types/Order.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/proxy/staticservice/microsoft/test/odata/services/odatawcfservice/types/Order.java b/fit/src/test/java/org/apache/olingo/fit/proxy/staticservice/microsoft/test/odata/services/odatawcfservice/types/Order.java
new file mode 100644
index 0000000..6f9fbbe
--- /dev/null
+++ b/fit/src/test/java/org/apache/olingo/fit/proxy/staticservice/microsoft/test/odata/services/odatawcfservice/types/Order.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.staticservice.microsoft.test.odata.services.odatawcfservice.types;
+
+// CHECKSTYLE:OFF (Maven checkstyle)
+import org.apache.olingo.ext.proxy.api.annotations.Key;
+
+// CHECKSTYLE:ON (Maven checkstyle)
+
+@org.apache.olingo.ext.proxy.api.annotations.Namespace("Microsoft.Test.OData.Services.ODataWCFService")
+@org.apache.olingo.ext.proxy.api.annotations.EntityType(name = "Order",
+    openType = false,
+    hasStream = false,
+    isAbstract = false)
+public interface Order
+    extends org.apache.olingo.ext.proxy.api.Annotatable,
+    org.apache.olingo.ext.proxy.api.EntityType<Order>, org.apache.olingo.ext.proxy.api.StructuredQuery<Order> {
+
+  @Key
+  @org.apache.olingo.ext.proxy.api.annotations.Property(name = "OrderID",
+      type = "Edm.Int32",
+      nullable = false,
+      defaultValue = "",
+      maxLenght = Integer.MAX_VALUE,
+      fixedLenght = false,
+      precision = 0,
+      scale = 0,
+      unicode = true,
+      collation = "",
+      srid = "")
+  java.lang.Integer getOrderID();
+
+  void setOrderID(java.lang.Integer _orderID);
+
+  @org.apache.olingo.ext.proxy.api.annotations.Property(name = "OrderDate",
+      type = "Edm.DateTimeOffset",
+      nullable = false,
+      defaultValue = "",
+      maxLenght = Integer.MAX_VALUE,
+      fixedLenght = false,
+      precision = 0,
+      scale = 0,
+      unicode = true,
+      collation = "",
+      srid = "")
+  java.sql.Timestamp getOrderDate();
+
+  void setOrderDate(java.sql.Timestamp _orderDate);
+
+  @org.apache.olingo.ext.proxy.api.annotations.Property(name = "ShelfLife",
+      type = "Edm.Duration",
+      nullable = true,
+      defaultValue = "",
+      maxLenght = Integer.MAX_VALUE,
+      fixedLenght = false,
+      precision = 0,
+      scale = 0,
+      unicode = true,
+      collation = "",
+      srid = "")
+  java.math.BigDecimal getShelfLife();
+
+  void setShelfLife(java.math.BigDecimal _shelfLife);
+
+  @org.apache.olingo.ext.proxy.api.annotations.Property(name = "OrderShelfLifes",
+      type = "Edm.Duration",
+      nullable = true,
+      defaultValue = "",
+      maxLenght = Integer.MAX_VALUE,
+      fixedLenght = false,
+      precision = 0,
+      scale = 0,
+      unicode = true,
+      collation = "",
+      srid = "")
+  org.apache.olingo.ext.proxy.api.PrimitiveCollection<java.math.BigDecimal> getOrderShelfLifes();
+
+  void setOrderShelfLifes(org.apache.olingo.ext.proxy.api.PrimitiveCollection<java.math.BigDecimal> _orderShelfLifes);
+
+  @org.apache.olingo.ext.proxy.api.annotations.NavigationProperty(name = "LoggedInEmployee",
+      type = "Microsoft.Test.OData.Services.ODataWCFService.Employee",
+      targetSchema = "Microsoft.Test.OData.Services.ODataWCFService",
+      targetContainer = "InMemoryEntities",
+      targetEntitySet = "Employees",
+      containsTarget = false)
+  Employee
+      getLoggedInEmployee();
+
+      void
+      setLoggedInEmployee(
+          Employee _loggedInEmployee);
+
+  @org.apache.olingo.ext.proxy.api.annotations.NavigationProperty(name = "CustomerForOrder",
+      type = "Microsoft.Test.OData.Services.ODataWCFService.Customer",
+      targetSchema = "Microsoft.Test.OData.Services.ODataWCFService",
+      targetContainer = "InMemoryEntities",
+      targetEntitySet = "Customers",
+      containsTarget = false)
+  Customer
+      getCustomerForOrder();
+
+      void
+      setCustomerForOrder(
+          Customer _customerForOrder);
+
+  @org.apache.olingo.ext.proxy.api.annotations.NavigationProperty(name = "OrderDetails",
+      type = "Microsoft.Test.OData.Services.ODataWCFService.OrderDetail",
+      targetSchema = "Microsoft.Test.OData.Services.ODataWCFService",
+      targetContainer = "InMemoryEntities",
+      targetEntitySet = "OrderDetails",
+      containsTarget = false)
+  OrderDetailCollection
+      getOrderDetails();
+
+      void
+      setOrderDetails(
+          OrderDetailCollection _orderDetails);
+
+  Operations operations();
+
+  interface Operations extends org.apache.olingo.ext.proxy.api.Operations {
+    // No additional methods needed for now.
+  }
+
+  Annotations annotations();
+
+  interface Annotations {
+
+    @org.apache.olingo.ext.proxy.api.annotations.AnnotationsForProperty(name = "OrderID",
+        type = "Edm.Int32")
+    org.apache.olingo.ext.proxy.api.Annotatable getOrderIDAnnotations();
+
+    @org.apache.olingo.ext.proxy.api.annotations.AnnotationsForProperty(name = "OrderDate",
+        type = "Edm.DateTimeOffset")
+    org.apache.olingo.ext.proxy.api.Annotatable getOrderDateAnnotations();
+
+    @org.apache.olingo.ext.proxy.api.annotations.AnnotationsForProperty(name = "ShelfLife",
+        type = "Edm.Duration")
+    org.apache.olingo.ext.proxy.api.Annotatable getShelfLifeAnnotations();
+
+    @org.apache.olingo.ext.proxy.api.annotations.AnnotationsForProperty(name = "OrderShelfLifes",
+        type = "Edm.Duration")
+    org.apache.olingo.ext.proxy.api.Annotatable getOrderShelfLifesAnnotations();
+
+    @org.apache.olingo.ext.proxy.api.annotations.AnnotationsForNavigationProperty(name = "LoggedInEmployee",
+        type = "Microsoft.Test.OData.Services.ODataWCFService.Employee")
+    org.apache.olingo.ext.proxy.api.Annotatable getLoggedInEmployeeAnnotations();
+
+    @org.apache.olingo.ext.proxy.api.annotations.AnnotationsForNavigationProperty(name = "CustomerForOrder",
+        type = "Microsoft.Test.OData.Services.ODataWCFService.Customer")
+    org.apache.olingo.ext.proxy.api.Annotatable getCustomerForOrderAnnotations();
+
+    @org.apache.olingo.ext.proxy.api.annotations.AnnotationsForNavigationProperty(name = "OrderDetails",
+        type = "Microsoft.Test.OData.Services.ODataWCFService.OrderDetail")
+    org.apache.olingo.ext.proxy.api.Annotatable getOrderDetailsAnnotations();
+  }
+
+}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/78a9539e/fit/src/test/java/org/apache/olingo/fit/proxy/staticservice/microsoft/test/odata/services/odatawcfservice/types/OrderCollection.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/proxy/staticservice/microsoft/test/odata/services/odatawcfservice/types/OrderCollection.java b/fit/src/test/java/org/apache/olingo/fit/proxy/staticservice/microsoft/test/odata/services/odatawcfservice/types/OrderCollection.java
new file mode 100644
index 0000000..9b00746
--- /dev/null
+++ b/fit/src/test/java/org/apache/olingo/fit/proxy/staticservice/microsoft/test/odata/services/odatawcfservice/types/OrderCollection.java
@@ -0,0 +1,41 @@
+/*
+ * 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.staticservice.microsoft.test.odata.services.odatawcfservice.types;
+
+// CHECKSTYLE:OFF (Maven checkstyle)
+import java.util.Collection;
+// CHECKSTYLE:ON (Maven checkstyle)
+
+import org.apache.olingo.ext.proxy.api.AbstractTerm;
+
+public interface OrderCollection
+    extends
+    org.apache.olingo.ext.proxy.api.StructuredCollectionQuery<OrderCollection>,
+org.apache.olingo.ext.proxy.api.EntityCollection<Order, OrderCollection, OrderCollection> {
+
+  Operations operations();
+
+  interface Operations extends org.apache.olingo.ext.proxy.api.Operations {
+    // No additional methods needed for now.
+  }
+
+  Object getAnnotation(Class<? extends AbstractTerm> term);
+
+  Collection<Class<? extends AbstractTerm>> getAnnotationTerms();
+}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/78a9539e/fit/src/test/java/org/apache/olingo/fit/proxy/staticservice/microsoft/test/odata/services/odatawcfservice/types/OrderCollectionComposableInvoker.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/proxy/staticservice/microsoft/test/odata/services/odatawcfservice/types/OrderCollectionComposableInvoker.java b/fit/src/test/java/org/apache/olingo/fit/proxy/staticservice/microsoft/test/odata/services/odatawcfservice/types/OrderCollectionComposableInvoker.java
new file mode 100644
index 0000000..0279223
--- /dev/null
+++ b/fit/src/test/java/org/apache/olingo/fit/proxy/staticservice/microsoft/test/odata/services/odatawcfservice/types/OrderCollectionComposableInvoker.java
@@ -0,0 +1,32 @@
+/*
+ * 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.staticservice.microsoft.test.odata.services.odatawcfservice.types;
+
+// CHECKSTYLE:OFF (Maven checkstyle)
+
+public interface OrderCollectionComposableInvoker
+    extends
+    org.apache.olingo.ext.proxy.api.StructuredCollectionComposableInvoker<OrderCollection, OrderCollection.Operations> {
+
+  @Override
+  OrderCollectionComposableInvoker select(String... select);
+
+  @Override
+  OrderCollectionComposableInvoker expand(String... expand);
+}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/78a9539e/fit/src/test/java/org/apache/olingo/fit/proxy/staticservice/microsoft/test/odata/services/odatawcfservice/types/OrderComposableInvoker.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/proxy/staticservice/microsoft/test/odata/services/odatawcfservice/types/OrderComposableInvoker.java b/fit/src/test/java/org/apache/olingo/fit/proxy/staticservice/microsoft/test/odata/services/odatawcfservice/types/OrderComposableInvoker.java
new file mode 100644
index 0000000..bb3e80b
--- /dev/null
+++ b/fit/src/test/java/org/apache/olingo/fit/proxy/staticservice/microsoft/test/odata/services/odatawcfservice/types/OrderComposableInvoker.java
@@ -0,0 +1,136 @@
+/*
+ * 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.staticservice.microsoft.test.odata.services.odatawcfservice.types;
+
+// CHECKSTYLE:OFF (Maven checkstyle)
+import org.apache.olingo.ext.proxy.api.annotations.Key;
+
+// CHECKSTYLE:ON (Maven checkstyle)
+
+public interface OrderComposableInvoker
+    extends org.apache.olingo.ext.proxy.api.StructuredComposableInvoker<Order, Order.Operations>
+{
+
+  @Override
+  OrderComposableInvoker select(String... select);
+
+  @Override
+  OrderComposableInvoker expand(String... expand);
+
+  @Key
+  @org.apache.olingo.ext.proxy.api.annotations.Property(name = "OrderID",
+      type = "Edm.Int32",
+      nullable = false,
+      defaultValue = "",
+      maxLenght = Integer.MAX_VALUE,
+      fixedLenght = false,
+      precision = 0,
+      scale = 0,
+      unicode = true,
+      collation = "",
+      srid = "")
+  java.lang.Integer getOrderID();
+
+  void setOrderID(java.lang.Integer _orderID);
+
+  @org.apache.olingo.ext.proxy.api.annotations.Property(name = "OrderDate",
+      type = "Edm.DateTimeOffset",
+      nullable = false,
+      defaultValue = "",
+      maxLenght = Integer.MAX_VALUE,
+      fixedLenght = false,
+      precision = 0,
+      scale = 0,
+      unicode = true,
+      collation = "",
+      srid = "")
+  java.sql.Timestamp getOrderDate();
+
+  void setOrderDate(java.sql.Timestamp _orderDate);
+
+  @org.apache.olingo.ext.proxy.api.annotations.Property(name = "ShelfLife",
+      type = "Edm.Duration",
+      nullable = true,
+      defaultValue = "",
+      maxLenght = Integer.MAX_VALUE,
+      fixedLenght = false,
+      precision = 0,
+      scale = 0,
+      unicode = true,
+      collation = "",
+      srid = "")
+  java.math.BigDecimal getShelfLife();
+
+  void setShelfLife(java.math.BigDecimal _shelfLife);
+
+  @org.apache.olingo.ext.proxy.api.annotations.Property(name = "OrderShelfLifes",
+      type = "Edm.Duration",
+      nullable = true,
+      defaultValue = "",
+      maxLenght = Integer.MAX_VALUE,
+      fixedLenght = false,
+      precision = 0,
+      scale = 0,
+      unicode = true,
+      collation = "",
+      srid = "")
+  org.apache.olingo.ext.proxy.api.PrimitiveCollection<java.math.BigDecimal> getOrderShelfLifes();
+
+  void setOrderShelfLifes(org.apache.olingo.ext.proxy.api.PrimitiveCollection<java.math.BigDecimal> _orderShelfLifes);
+
+  @org.apache.olingo.ext.proxy.api.annotations.NavigationProperty(name = "LoggedInEmployee",
+      type = "Microsoft.Test.OData.Services.ODataWCFService.Employee",
+      targetSchema = "Microsoft.Test.OData.Services.ODataWCFService",
+      targetContainer = "InMemoryEntities",
+      targetEntitySet = "Employees",
+      containsTarget = false)
+  Employee
+      getLoggedInEmployee();
+
+      void
+      setLoggedInEmployee(
+          Employee _loggedInEmployee);
+
+  @org.apache.olingo.ext.proxy.api.annotations.NavigationProperty(name = "CustomerForOrder",
+      type = "Microsoft.Test.OData.Services.ODataWCFService.Customer",
+      targetSchema = "Microsoft.Test.OData.Services.ODataWCFService",
+      targetContainer = "InMemoryEntities",
+      targetEntitySet = "Customers",
+      containsTarget = false)
+  Customer
+      getCustomerForOrder();
+
+      void
+      setCustomerForOrder(
+          Customer _customerForOrder);
+
+  @org.apache.olingo.ext.proxy.api.annotations.NavigationProperty(name = "OrderDetails",
+      type = "Microsoft.Test.OData.Services.ODataWCFService.OrderDetail",
+      targetSchema = "Microsoft.Test.OData.Services.ODataWCFService",
+      targetContainer = "InMemoryEntities",
+      targetEntitySet = "OrderDetails",
+      containsTarget = false)
+  OrderDetailCollection
+      getOrderDetails();
+
+      void
+      setOrderDetails(
+          OrderDetailCollection _orderDetails);
+
+}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/78a9539e/fit/src/test/java/org/apache/olingo/fit/proxy/staticservice/microsoft/test/odata/services/odatawcfservice/types/OrderDetail.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/proxy/staticservice/microsoft/test/odata/services/odatawcfservice/types/OrderDetail.java b/fit/src/test/java/org/apache/olingo/fit/proxy/staticservice/microsoft/test/odata/services/odatawcfservice/types/OrderDetail.java
new file mode 100644
index 0000000..ff09261
--- /dev/null
+++ b/fit/src/test/java/org/apache/olingo/fit/proxy/staticservice/microsoft/test/odata/services/odatawcfservice/types/OrderDetail.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.fit.proxy.staticservice.microsoft.test.odata.services.odatawcfservice.types;
+
+// CHECKSTYLE:OFF (Maven checkstyle)
+import org.apache.olingo.ext.proxy.api.annotations.Key;
+import org.apache.olingo.ext.proxy.api.annotations.KeyRef;
+
+// CHECKSTYLE:ON (Maven checkstyle)
+
+@KeyRef(OrderDetailKey.class)
+@org.apache.olingo.ext.proxy.api.annotations.Namespace("Microsoft.Test.OData.Services.ODataWCFService")
+@org.apache.olingo.ext.proxy.api.annotations.EntityType(name = "OrderDetail",
+    openType = false,
+    hasStream = false,
+    isAbstract = false)
+public interface OrderDetail
+    extends org.apache.olingo.ext.proxy.api.Annotatable,
+    org.apache.olingo.ext.proxy.api.EntityType<OrderDetail>,
+    org.apache.olingo.ext.proxy.api.StructuredQuery<OrderDetail> {
+
+  @Key
+  @org.apache.olingo.ext.proxy.api.annotations.Property(name = "OrderID",
+      type = "Edm.Int32",
+      nullable = false,
+      defaultValue = "",
+      maxLenght = Integer.MAX_VALUE,
+      fixedLenght = false,
+      precision = 0,
+      scale = 0,
+      unicode = true,
+      collation = "",
+      srid = "")
+  java.lang.Integer getOrderID();
+
+  void setOrderID(java.lang.Integer _orderID);
+
+  @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 = "")
+  java.lang.Integer getProductID();
+
+  void setProductID(java.lang.Integer _productID);
+
+  @org.apache.olingo.ext.proxy.api.annotations.Property(name = "OrderPlaced",
+      type = "Edm.DateTimeOffset",
+      nullable = false,
+      defaultValue = "",
+      maxLenght = Integer.MAX_VALUE,
+      fixedLenght = false,
+      precision = 0,
+      scale = 0,
+      unicode = true,
+      collation = "",
+      srid = "")
+  java.sql.Timestamp getOrderPlaced();
+
+  void setOrderPlaced(java.sql.Timestamp _orderPlaced);
+
+  @org.apache.olingo.ext.proxy.api.annotations.Property(name = "Quantity",
+      type = "Edm.Int32",
+      nullable = false,
+      defaultValue = "",
+      maxLenght = Integer.MAX_VALUE,
+      fixedLenght = false,
+      precision = 0,
+      scale = 0,
+      unicode = true,
+      collation = "",
+      srid = "")
+  java.lang.Integer getQuantity();
+
+  void setQuantity(java.lang.Integer _quantity);
+
+  @org.apache.olingo.ext.proxy.api.annotations.Property(name = "UnitPrice",
+      type = "Edm.Single",
+      nullable = false,
+      defaultValue = "",
+      maxLenght = Integer.MAX_VALUE,
+      fixedLenght = false,
+      precision = 0,
+      scale = 0,
+      unicode = true,
+      collation = "",
+      srid = "")
+  java.lang.Float getUnitPrice();
+
+  void setUnitPrice(java.lang.Float _unitPrice);
+
+  @org.apache.olingo.ext.proxy.api.annotations.NavigationProperty(name = "ProductOrdered",
+      type = "Microsoft.Test.OData.Services.ODataWCFService.Product",
+      targetSchema = "Microsoft.Test.OData.Services.ODataWCFService",
+      targetContainer = "InMemoryEntities",
+      targetEntitySet = "Products",
+      containsTarget = false)
+  ProductCollection
+      getProductOrdered();
+
+      void
+      setProductOrdered(
+          ProductCollection _productOrdered);
+
+  @org.apache.olingo.ext.proxy.api.annotations.NavigationProperty(name = "AssociatedOrder",
+      type = "Microsoft.Test.OData.Services.ODataWCFService.Order",
+      targetSchema = "Microsoft.Test.OData.Services.ODataWCFService",
+      targetContainer = "InMemoryEntities",
+      targetEntitySet = "Orders",
+      containsTarget = false)
+  Order
+      getAssociatedOrder();
+
+      void
+      setAssociatedOrder(
+          Order _associatedOrder);
+
+  Operations operations();
+
+  interface Operations extends org.apache.olingo.ext.proxy.api.Operations {
+    // No additional methods needed for now.
+  }
+
+  Annotations annotations();
+
+  interface Annotations {
+
+    @org.apache.olingo.ext.proxy.api.annotations.AnnotationsForProperty(name = "OrderID",
+        type = "Edm.Int32")
+    org.apache.olingo.ext.proxy.api.Annotatable getOrderIDAnnotations();
+
+    @org.apache.olingo.ext.proxy.api.annotations.AnnotationsForProperty(name = "ProductID",
+        type = "Edm.Int32")
+    org.apache.olingo.ext.proxy.api.Annotatable getProductIDAnnotations();
+
+    @org.apache.olingo.ext.proxy.api.annotations.AnnotationsForProperty(name = "OrderPlaced",
+        type = "Edm.DateTimeOffset")
+    org.apache.olingo.ext.proxy.api.Annotatable getOrderPlacedAnnotations();
+
+    @org.apache.olingo.ext.proxy.api.annotations.AnnotationsForProperty(name = "Quantity",
+        type = "Edm.Int32")
+    org.apache.olingo.ext.proxy.api.Annotatable getQuantityAnnotations();
+
+    @org.apache.olingo.ext.proxy.api.annotations.AnnotationsForProperty(name = "UnitPrice",
+        type = "Edm.Single")
+    org.apache.olingo.ext.proxy.api.Annotatable getUnitPriceAnnotations();
+
+    @org.apache.olingo.ext.proxy.api.annotations.AnnotationsForNavigationProperty(name = "ProductOrdered",
+        type = "Microsoft.Test.OData.Services.ODataWCFService.Product")
+    org.apache.olingo.ext.proxy.api.Annotatable getProductOrderedAnnotations();
+
+    @org.apache.olingo.ext.proxy.api.annotations.AnnotationsForNavigationProperty(name = "AssociatedOrder",
+        type = "Microsoft.Test.OData.Services.ODataWCFService.Order")
+    org.apache.olingo.ext.proxy.api.Annotatable getAssociatedOrderAnnotations();
+  }
+
+}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/78a9539e/fit/src/test/java/org/apache/olingo/fit/proxy/staticservice/microsoft/test/odata/services/odatawcfservice/types/OrderDetailCollection.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/proxy/staticservice/microsoft/test/odata/services/odatawcfservice/types/OrderDetailCollection.java b/fit/src/test/java/org/apache/olingo/fit/proxy/staticservice/microsoft/test/odata/services/odatawcfservice/types/OrderDetailCollection.java
new file mode 100644
index 0000000..4c64a9a
--- /dev/null
+++ b/fit/src/test/java/org/apache/olingo/fit/proxy/staticservice/microsoft/test/odata/services/odatawcfservice/types/OrderDetailCollection.java
@@ -0,0 +1,41 @@
+/*
+ * 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.staticservice.microsoft.test.odata.services.odatawcfservice.types;
+
+// CHECKSTYLE:OFF (Maven checkstyle)
+import java.util.Collection;
+// CHECKSTYLE:ON (Maven checkstyle)
+
+import org.apache.olingo.ext.proxy.api.AbstractTerm;
+
+public interface OrderDetailCollection
+    extends
+    org.apache.olingo.ext.proxy.api.StructuredCollectionQuery<OrderDetailCollection>,
+org.apache.olingo.ext.proxy.api.EntityCollection<OrderDetail, OrderDetailCollection, OrderDetailCollection> {
+
+  Operations operations();
+
+  interface Operations extends org.apache.olingo.ext.proxy.api.Operations {
+    // No additional methods needed for now.
+  }
+
+  Object getAnnotation(Class<? extends AbstractTerm> term);
+
+  Collection<Class<? extends AbstractTerm>> getAnnotationTerms();
+}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/78a9539e/fit/src/test/java/org/apache/olingo/fit/proxy/staticservice/microsoft/test/odata/services/odatawcfservice/types/OrderDetailCollectionComposableInvoker.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/proxy/staticservice/microsoft/test/odata/services/odatawcfservice/types/OrderDetailCollectionComposableInvoker.java b/fit/src/test/java/org/apache/olingo/fit/proxy/staticservice/microsoft/test/odata/services/odatawcfservice/types/OrderDetailCollectionComposableInvoker.java
new file mode 100644
index 0000000..c423577
--- /dev/null
+++ b/fit/src/test/java/org/apache/olingo/fit/proxy/staticservice/microsoft/test/odata/services/odatawcfservice/types/OrderDetailCollectionComposableInvoker.java
@@ -0,0 +1,32 @@
+/*
+ * 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.staticservice.microsoft.test.odata.services.odatawcfservice.types;
+
+// CHECKSTYLE:OFF (Maven checkstyle)
+
+public interface OrderDetailCollectionComposableInvoker
+    extends
+    org.apache.olingo.ext.proxy.api.StructuredCollectionComposableInvoker<OrderDetailCollection, OrderDetailCollection.Operations> {
+
+  @Override
+  OrderDetailCollectionComposableInvoker select(String... select);
+
+  @Override
+  OrderDetailCollectionComposableInvoker expand(String... expand);
+}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/78a9539e/fit/src/test/java/org/apache/olingo/fit/proxy/staticservice/microsoft/test/odata/services/odatawcfservice/types/OrderDetailComposableInvoker.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/proxy/staticservice/microsoft/test/odata/services/odatawcfservice/types/OrderDetailComposableInvoker.java b/fit/src/test/java/org/apache/olingo/fit/proxy/staticservice/microsoft/test/odata/services/odatawcfservice/types/OrderDetailComposableInvoker.java
new file mode 100644
index 0000000..a5c3178
--- /dev/null
+++ b/fit/src/test/java/org/apache/olingo/fit/proxy/staticservice/microsoft/test/odata/services/odatawcfservice/types/OrderDetailComposableInvoker.java
@@ -0,0 +1,139 @@
+/*
+ * 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.staticservice.microsoft.test.odata.services.odatawcfservice.types;
+
+// CHECKSTYLE:OFF (Maven checkstyle)
+import org.apache.olingo.ext.proxy.api.annotations.Key;
+
+// CHECKSTYLE:ON (Maven checkstyle)
+
+public interface OrderDetailComposableInvoker
+    extends org.apache.olingo.ext.proxy.api.StructuredComposableInvoker<OrderDetail, OrderDetail.Operations>
+{
+
+  @Override
+  OrderDetailComposableInvoker select(String... select);
+
+  @Override
+  OrderDetailComposableInvoker expand(String... expand);
+
+  @Key
+  @org.apache.olingo.ext.proxy.api.annotations.Property(name = "OrderID",
+      type = "Edm.Int32",
+      nullable = false,
+      defaultValue = "",
+      maxLenght = Integer.MAX_VALUE,
+      fixedLenght = false,
+      precision = 0,
+      scale = 0,
+      unicode = true,
+      collation = "",
+      srid = "")
+  java.lang.Integer getOrderID();
+
+  void setOrderID(java.lang.Integer _orderID);
+
+  @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 = "")
+  java.lang.Integer getProductID();
+
+  void setProductID(java.lang.Integer _productID);
+
+  @org.apache.olingo.ext.proxy.api.annotations.Property(name = "OrderPlaced",
+      type = "Edm.DateTimeOffset",
+      nullable = false,
+      defaultValue = "",
+      maxLenght = Integer.MAX_VALUE,
+      fixedLenght = false,
+      precision = 0,
+      scale = 0,
+      unicode = true,
+      collation = "",
+      srid = "")
+  java.sql.Timestamp getOrderPlaced();
+
+  void setOrderPlaced(java.sql.Timestamp _orderPlaced);
+
+  @org.apache.olingo.ext.proxy.api.annotations.Property(name = "Quantity",
+      type = "Edm.Int32",
+      nullable = false,
+      defaultValue = "",
+      maxLenght = Integer.MAX_VALUE,
+      fixedLenght = false,
+      precision = 0,
+      scale = 0,
+      unicode = true,
+      collation = "",
+      srid = "")
+  java.lang.Integer getQuantity();
+
+  void setQuantity(java.lang.Integer _quantity);
+
+  @org.apache.olingo.ext.proxy.api.annotations.Property(name = "UnitPrice",
+      type = "Edm.Single",
+      nullable = false,
+      defaultValue = "",
+      maxLenght = Integer.MAX_VALUE,
+      fixedLenght = false,
+      precision = 0,
+      scale = 0,
+      unicode = true,
+      collation = "",
+      srid = "")
+  java.lang.Float getUnitPrice();
+
+  void setUnitPrice(java.lang.Float _unitPrice);
+
+  @org.apache.olingo.ext.proxy.api.annotations.NavigationProperty(name = "ProductOrdered",
+      type = "Microsoft.Test.OData.Services.ODataWCFService.Product",
+      targetSchema = "Microsoft.Test.OData.Services.ODataWCFService",
+      targetContainer = "InMemoryEntities",
+      targetEntitySet = "Products",
+      containsTarget = false)
+  ProductCollection
+      getProductOrdered();
+
+      void
+      setProductOrdered(
+          ProductCollection _productOrdered);
+
+  @org.apache.olingo.ext.proxy.api.annotations.NavigationProperty(name = "AssociatedOrder",
+      type = "Microsoft.Test.OData.Services.ODataWCFService.Order",
+      targetSchema = "Microsoft.Test.OData.Services.ODataWCFService",
+      targetContainer = "InMemoryEntities",
+      targetEntitySet = "Orders",
+      containsTarget = false)
+  Order
+      getAssociatedOrder();
+
+      void
+      setAssociatedOrder(
+          Order _associatedOrder);
+
+}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/78a9539e/fit/src/test/java/org/apache/olingo/fit/proxy/staticservice/microsoft/test/odata/services/odatawcfservice/types/OrderDetailKey.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/proxy/staticservice/microsoft/test/odata/services/odatawcfservice/types/OrderDetailKey.java b/fit/src/test/java/org/apache/olingo/fit/proxy/staticservice/microsoft/test/odata/services/odatawcfservice/types/OrderDetailKey.java
new file mode 100644
index 0000000..b9658cd
--- /dev/null
+++ b/fit/src/test/java/org/apache/olingo/fit/proxy/staticservice/microsoft/test/odata/services/odatawcfservice/types/OrderDetailKey.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.fit.proxy.staticservice.microsoft.test.odata.services.odatawcfservice.types;
+
+// CHECKSTYLE:OFF (Maven checkstyle)
+import org.apache.olingo.ext.proxy.api.AbstractEntityKey;
+
+// CHECKSTYLE:ON (Maven checkstyle)
+import org.apache.olingo.ext.proxy.api.annotations.CompoundKeyElement;
+
+@org.apache.olingo.ext.proxy.api.annotations.CompoundKey
+public class OrderDetailKey extends AbstractEntityKey {
+
+  private static final long serialVersionUID = -4068508671802176607L;
+
+  private java.lang.Integer _orderID;
+
+  @CompoundKeyElement(name = "OrderID", position = 0)
+  public java.lang.Integer getOrderID() {
+    return _orderID;
+  }
+
+  public void setOrderID(final java.lang.Integer _orderID) {
+    this._orderID = _orderID;
+  }
+
+  private java.lang.Integer _productID;
+
+  @CompoundKeyElement(name = "ProductID", position = 1)
+  public java.lang.Integer getProductID() {
+    return _productID;
+  }
+
+  public void setProductID(final java.lang.Integer _productID) {
+    this._productID = _productID;
+  }
+}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/78a9539e/fit/src/test/java/org/apache/olingo/fit/proxy/staticservice/microsoft/test/odata/services/odatawcfservice/types/PaymentInstrument.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/proxy/staticservice/microsoft/test/odata/services/odatawcfservice/types/PaymentInstrument.java b/fit/src/test/java/org/apache/olingo/fit/proxy/staticservice/microsoft/test/odata/services/odatawcfservice/types/PaymentInstrument.java
new file mode 100644
index 0000000..7be9777
--- /dev/null
+++ b/fit/src/test/java/org/apache/olingo/fit/proxy/staticservice/microsoft/test/odata/services/odatawcfservice/types/PaymentInstrument.java
@@ -0,0 +1,165 @@
+/*
+ * 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.staticservice.microsoft.test.odata.services.odatawcfservice.types;
+
+// CHECKSTYLE:OFF (Maven checkstyle)
+import org.apache.olingo.ext.proxy.api.AbstractEntitySet;
+// CHECKSTYLE:ON (Maven checkstyle)
+import org.apache.olingo.ext.proxy.api.annotations.Key;
+
+@org.apache.olingo.ext.proxy.api.annotations.Namespace("Microsoft.Test.OData.Services.ODataWCFService")
+@org.apache.olingo.ext.proxy.api.annotations.EntityType(name = "PaymentInstrument",
+    openType = false,
+    hasStream = false,
+    isAbstract = false)
+public interface PaymentInstrument
+    extends org.apache.olingo.ext.proxy.api.Annotatable,
+    org.apache.olingo.ext.proxy.api.EntityType<PaymentInstrument>,
+    org.apache.olingo.ext.proxy.api.StructuredQuery<PaymentInstrument> {
+
+  @Key
+  @org.apache.olingo.ext.proxy.api.annotations.Property(name = "PaymentInstrumentID",
+      type = "Edm.Int32",
+      nullable = false,
+      defaultValue = "",
+      maxLenght = Integer.MAX_VALUE,
+      fixedLenght = false,
+      precision = 0,
+      scale = 0,
+      unicode = true,
+      collation = "",
+      srid = "")
+  java.lang.Integer getPaymentInstrumentID();
+
+  void setPaymentInstrumentID(java.lang.Integer _paymentInstrumentID);
+
+  @org.apache.olingo.ext.proxy.api.annotations.Property(name = "FriendlyName",
+      type = "Edm.String",
+      nullable = false,
+      defaultValue = "",
+      maxLenght = Integer.MAX_VALUE,
+      fixedLenght = false,
+      precision = 0,
+      scale = 0,
+      unicode = true,
+      collation = "",
+      srid = "")
+  java.lang.String getFriendlyName();
+
+  void setFriendlyName(java.lang.String _friendlyName);
+
+  @org.apache.olingo.ext.proxy.api.annotations.Property(name = "CreatedDate",
+      type = "Edm.DateTimeOffset",
+      nullable = false,
+      defaultValue = "",
+      maxLenght = Integer.MAX_VALUE,
+      fixedLenght = false,
+      precision = 0,
+      scale = 0,
+      unicode = true,
+      collation = "",
+      srid = "")
+  java.sql.Timestamp getCreatedDate();
+
+  void setCreatedDate(java.sql.Timestamp _createdDate);
+
+  @org.apache.olingo.ext.proxy.api.annotations.NavigationProperty(name = "TheStoredPI",
+      type = "Microsoft.Test.OData.Services.ODataWCFService.StoredPI",
+      targetSchema = "Microsoft.Test.OData.Services.ODataWCFService",
+      targetContainer = "InMemoryEntities",
+      targetEntitySet = "StoredPIs",
+      containsTarget = false)
+  StoredPI
+      getTheStoredPI();
+
+      void
+      setTheStoredPI(
+          StoredPI _theStoredPI);
+
+  @org.apache.olingo.ext.proxy.api.annotations.NavigationProperty(name = "BackupStoredPI",
+      type = "Microsoft.Test.OData.Services.ODataWCFService.StoredPI",
+      targetSchema = "Microsoft.Test.OData.Services.ODataWCFService",
+      targetContainer = "InMemoryEntities",
+      targetEntitySet = "StoredPIs",
+      containsTarget = false)
+  StoredPI
+      getBackupStoredPI();
+
+      void
+      setBackupStoredPI(
+          StoredPI _backupStoredPI);
+
+  Operations operations();
+
+  interface Operations extends org.apache.olingo.ext.proxy.api.Operations {
+    // No additional methods needed for now.
+  }
+
+  Annotations annotations();
+
+  interface Annotations {
+
+    @org.apache.olingo.ext.proxy.api.annotations.AnnotationsForProperty(name = "PaymentInstrumentID",
+        type = "Edm.Int32")
+    org.apache.olingo.ext.proxy.api.Annotatable getPaymentInstrumentIDAnnotations();
+
+    @org.apache.olingo.ext.proxy.api.annotations.AnnotationsForProperty(name = "FriendlyName",
+        type = "Edm.String")
+    org.apache.olingo.ext.proxy.api.Annotatable getFriendlyNameAnnotations();
+
+    @org.apache.olingo.ext.proxy.api.annotations.AnnotationsForProperty(name = "CreatedDate",
+        type = "Edm.DateTimeOffset")
+    org.apache.olingo.ext.proxy.api.Annotatable getCreatedDateAnnotations();
+
+    @org.apache.olingo.ext.proxy.api.annotations.AnnotationsForNavigationProperty(name = "TheStoredPI",
+        type = "Microsoft.Test.OData.Services.ODataWCFService.StoredPI")
+    org.apache.olingo.ext.proxy.api.Annotatable getTheStoredPIAnnotations();
+
+    @org.apache.olingo.ext.proxy.api.annotations.AnnotationsForNavigationProperty(name = "BillingStatements",
+        type = "Microsoft.Test.OData.Services.ODataWCFService.Statement")
+    org.apache.olingo.ext.proxy.api.Annotatable getBillingStatementsAnnotations();
+
+    @org.apache.olingo.ext.proxy.api.annotations.AnnotationsForNavigationProperty(name = "BackupStoredPI",
+        type = "Microsoft.Test.OData.Services.ODataWCFService.StoredPI")
+    org.apache.olingo.ext.proxy.api.Annotatable getBackupStoredPIAnnotations();
+  }
+
+  @org.apache.olingo.ext.proxy.api.annotations.NavigationProperty(name = "BillingStatements",
+      type = "Microsoft.Test.OData.Services.ODataWCFService.StoredPI",
+      targetSchema = "Microsoft.Test.OData.Services.ODataWCFService",
+      targetContainer = "InMemoryEntities",
+      targetEntitySet = "StoredPIs",
+      containsTarget = true)
+      PaymentInstrument.BillingStatements
+      getBillingStatements();
+
+      void
+      setBillingStatements(
+          PaymentInstrument.BillingStatements _billingStatements);
+
+  @org.apache.olingo.ext.proxy.api.annotations.EntitySet(name = "BillingStatements", contained = true)
+  interface BillingStatements
+      extends
+      org.apache.olingo.ext.proxy.api.EntitySet<Statement, StatementCollection>,
+      org.apache.olingo.ext.proxy.api.StructuredCollectionQuery<BillingStatements>,
+  AbstractEntitySet<Statement, java.lang.Integer, StatementCollection> {
+    // No additional methods needed for now.
+  }
+
+}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/78a9539e/fit/src/test/java/org/apache/olingo/fit/proxy/staticservice/microsoft/test/odata/services/odatawcfservice/types/PaymentInstrumentCollection.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/proxy/staticservice/microsoft/test/odata/services/odatawcfservice/types/PaymentInstrumentCollection.java b/fit/src/test/java/org/apache/olingo/fit/proxy/staticservice/microsoft/test/odata/services/odatawcfservice/types/PaymentInstrumentCollection.java
new file mode 100644
index 0000000..590f0cf
--- /dev/null
+++ b/fit/src/test/java/org/apache/olingo/fit/proxy/staticservice/microsoft/test/odata/services/odatawcfservice/types/PaymentInstrumentCollection.java
@@ -0,0 +1,41 @@
+/*
+ * 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.staticservice.microsoft.test.odata.services.odatawcfservice.types;
+
+// CHECKSTYLE:OFF (Maven checkstyle)
+import java.util.Collection;
+// CHECKSTYLE:ON (Maven checkstyle)
+
+import org.apache.olingo.ext.proxy.api.AbstractTerm;
+
+public interface PaymentInstrumentCollection
+    extends
+    org.apache.olingo.ext.proxy.api.StructuredCollectionQuery<PaymentInstrumentCollection>,
+org.apache.olingo.ext.proxy.api.EntityCollection<PaymentInstrument, PaymentInstrumentCollection, PaymentInstrumentCollection> {
+
+  Operations operations();
+
+  interface Operations extends org.apache.olingo.ext.proxy.api.Operations {
+    // No additional methods needed for now.
+  }
+
+  Object getAnnotation(Class<? extends AbstractTerm> term);
+
+  Collection<Class<? extends AbstractTerm>> getAnnotationTerms();
+}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/78a9539e/fit/src/test/java/org/apache/olingo/fit/proxy/staticservice/microsoft/test/odata/services/odatawcfservice/types/PaymentInstrumentCollectionComposableInvoker.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/proxy/staticservice/microsoft/test/odata/services/odatawcfservice/types/PaymentInstrumentCollectionComposableInvoker.java b/fit/src/test/java/org/apache/olingo/fit/proxy/staticservice/microsoft/test/odata/services/odatawcfservice/types/PaymentInstrumentCollectionComposableInvoker.java
new file mode 100644
index 0000000..94f7fa9
--- /dev/null
+++ b/fit/src/test/java/org/apache/olingo/fit/proxy/staticservice/microsoft/test/odata/services/odatawcfservice/types/PaymentInstrumentCollectionComposableInvoker.java
@@ -0,0 +1,32 @@
+/*
+ * 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.staticservice.microsoft.test.odata.services.odatawcfservice.types;
+
+// CHECKSTYLE:OFF (Maven checkstyle)
+
+public interface PaymentInstrumentCollectionComposableInvoker
+    extends
+    org.apache.olingo.ext.proxy.api.StructuredCollectionComposableInvoker<PaymentInstrumentCollection, PaymentInstrumentCollection.Operations> {
+
+  @Override
+  PaymentInstrumentCollectionComposableInvoker select(String... select);
+
+  @Override
+  PaymentInstrumentCollectionComposableInvoker expand(String... expand);
+}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/78a9539e/fit/src/test/java/org/apache/olingo/fit/proxy/staticservice/microsoft/test/odata/services/odatawcfservice/types/PaymentInstrumentComposableInvoker.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/proxy/staticservice/microsoft/test/odata/services/odatawcfservice/types/PaymentInstrumentComposableInvoker.java b/fit/src/test/java/org/apache/olingo/fit/proxy/staticservice/microsoft/test/odata/services/odatawcfservice/types/PaymentInstrumentComposableInvoker.java
new file mode 100644
index 0000000..f2b614d
--- /dev/null
+++ b/fit/src/test/java/org/apache/olingo/fit/proxy/staticservice/microsoft/test/odata/services/odatawcfservice/types/PaymentInstrumentComposableInvoker.java
@@ -0,0 +1,132 @@
+/*
+ * 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.staticservice.microsoft.test.odata.services.odatawcfservice.types;
+
+// CHECKSTYLE:OFF (Maven checkstyle)
+import org.apache.olingo.ext.proxy.api.AbstractEntitySet;
+
+// CHECKSTYLE:ON (Maven checkstyle)
+import org.apache.olingo.ext.proxy.api.annotations.Key;
+
+public interface PaymentInstrumentComposableInvoker
+    extends
+    org.apache.olingo.ext.proxy.api.StructuredComposableInvoker<PaymentInstrument, PaymentInstrument.Operations>
+{
+
+  @Override
+  PaymentInstrumentComposableInvoker select(String... select);
+
+  @Override
+  PaymentInstrumentComposableInvoker expand(String... expand);
+
+  @Key
+  @org.apache.olingo.ext.proxy.api.annotations.Property(name = "PaymentInstrumentID",
+      type = "Edm.Int32",
+      nullable = false,
+      defaultValue = "",
+      maxLenght = Integer.MAX_VALUE,
+      fixedLenght = false,
+      precision = 0,
+      scale = 0,
+      unicode = true,
+      collation = "",
+      srid = "")
+  java.lang.Integer getPaymentInstrumentID();
+
+  void setPaymentInstrumentID(java.lang.Integer _paymentInstrumentID);
+
+  @org.apache.olingo.ext.proxy.api.annotations.Property(name = "FriendlyName",
+      type = "Edm.String",
+      nullable = false,
+      defaultValue = "",
+      maxLenght = Integer.MAX_VALUE,
+      fixedLenght = false,
+      precision = 0,
+      scale = 0,
+      unicode = true,
+      collation = "",
+      srid = "")
+  java.lang.String getFriendlyName();
+
+  void setFriendlyName(java.lang.String _friendlyName);
+
+  @org.apache.olingo.ext.proxy.api.annotations.Property(name = "CreatedDate",
+      type = "Edm.DateTimeOffset",
+      nullable = false,
+      defaultValue = "",
+      maxLenght = Integer.MAX_VALUE,
+      fixedLenght = false,
+      precision = 0,
+      scale = 0,
+      unicode = true,
+      collation = "",
+      srid = "")
+  java.sql.Timestamp getCreatedDate();
+
+  void setCreatedDate(java.sql.Timestamp _createdDate);
+
+  @org.apache.olingo.ext.proxy.api.annotations.NavigationProperty(name = "TheStoredPI",
+      type = "Microsoft.Test.OData.Services.ODataWCFService.StoredPI",
+      targetSchema = "Microsoft.Test.OData.Services.ODataWCFService",
+      targetContainer = "InMemoryEntities",
+      targetEntitySet = "StoredPIs",
+      containsTarget = false)
+  StoredPI
+      getTheStoredPI();
+
+      void
+      setTheStoredPI(
+          StoredPI _theStoredPI);
+
+  @org.apache.olingo.ext.proxy.api.annotations.NavigationProperty(name = "BackupStoredPI",
+      type = "Microsoft.Test.OData.Services.ODataWCFService.StoredPI",
+      targetSchema = "Microsoft.Test.OData.Services.ODataWCFService",
+      targetContainer = "InMemoryEntities",
+      targetEntitySet = "StoredPIs",
+      containsTarget = false)
+  StoredPI
+      getBackupStoredPI();
+
+      void
+      setBackupStoredPI(
+          StoredPI _backupStoredPI);
+
+  @org.apache.olingo.ext.proxy.api.annotations.NavigationProperty(name = "BillingStatements",
+      type = "Microsoft.Test.OData.Services.ODataWCFService.StoredPI",
+      targetSchema = "Microsoft.Test.OData.Services.ODataWCFService",
+      targetContainer = "InMemoryEntities",
+      targetEntitySet = "StoredPIs",
+      containsTarget = true)
+  PaymentInstrument.BillingStatements
+      getBillingStatements();
+
+      void
+      setBillingStatements(
+          PaymentInstrument.BillingStatements _billingStatements);
+
+  @org.apache.olingo.ext.proxy.api.annotations.EntitySet(name = "BillingStatements", contained = true)
+  interface BillingStatements
+      extends
+      org.apache.olingo.ext.proxy.api.EntitySet<Statement, StatementCollection>,
+      org.apache.olingo.ext.proxy.api.StructuredCollectionQuery<BillingStatements>,
+  AbstractEntitySet<Statement, java.lang.Integer, StatementCollection> {
+    // No additional methods needed for now.
+  }
+
+}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/78a9539e/fit/src/test/java/org/apache/olingo/fit/proxy/staticservice/microsoft/test/odata/services/odatawcfservice/types/Person.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/proxy/staticservice/microsoft/test/odata/services/odatawcfservice/types/Person.java b/fit/src/test/java/org/apache/olingo/fit/proxy/staticservice/microsoft/test/odata/services/odatawcfservice/types/Person.java
new file mode 100644
index 0000000..a5f006e
--- /dev/null
+++ b/fit/src/test/java/org/apache/olingo/fit/proxy/staticservice/microsoft/test/odata/services/odatawcfservice/types/Person.java
@@ -0,0 +1,240 @@
+/*
+ * 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.staticservice.microsoft.test.odata.services.odatawcfservice.types;
+
+// CHECKSTYLE:OFF (Maven checkstyle)
+import org.apache.olingo.ext.proxy.api.OperationType;
+// CHECKSTYLE:ON (Maven checkstyle)
+import org.apache.olingo.ext.proxy.api.annotations.Key;
+import org.apache.olingo.ext.proxy.api.annotations.Parameter;
+
+@org.apache.olingo.ext.proxy.api.annotations.Namespace("Microsoft.Test.OData.Services.ODataWCFService")
+@org.apache.olingo.ext.proxy.api.annotations.EntityType(name = "Person",
+    openType = false,
+    hasStream = false,
+    isAbstract = false)
+public interface Person
+    extends org.apache.olingo.ext.proxy.api.Annotatable,
+    org.apache.olingo.ext.proxy.api.EntityType<Person>, org.apache.olingo.ext.proxy.api.StructuredQuery<Person> {
+
+  @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 = "")
+  java.lang.Integer getPersonID();
+
+  void setPersonID(java.lang.Integer _personID);
+
+  @org.apache.olingo.ext.proxy.api.annotations.Property(name = "FirstName",
+      type = "Edm.String",
+      nullable = false,
+      defaultValue = "",
+      maxLenght = Integer.MAX_VALUE,
+      fixedLenght = false,
+      precision = 0,
+      scale = 0,
+      unicode = true,
+      collation = "",
+      srid = "")
+  java.lang.String getFirstName();
+
+  void setFirstName(java.lang.String _firstName);
+
+  @org.apache.olingo.ext.proxy.api.annotations.Property(name = "LastName",
+      type = "Edm.String",
+      nullable = false,
+      defaultValue = "",
+      maxLenght = Integer.MAX_VALUE,
+      fixedLenght = false,
+      precision = 0,
+      scale = 0,
+      unicode = true,
+      collation = "",
+      srid = "")
+  java.lang.String getLastName();
+
+  void setLastName(java.lang.String _lastName);
+
+  @org.apache.olingo.ext.proxy.api.annotations.Property(name = "MiddleName",
+      type = "Edm.String",
+      nullable = true,
+      defaultValue = "",
+      maxLenght = Integer.MAX_VALUE,
+      fixedLenght = false,
+      precision = 0,
+      scale = 0,
+      unicode = true,
+      collation = "",
+      srid = "")
+  java.lang.String getMiddleName();
+
+  void setMiddleName(java.lang.String _middleName);
+
+  @org.apache.olingo.ext.proxy.api.annotations.Property(name = "HomeAddress",
+      type = "Microsoft.Test.OData.Services.ODataWCFService.Address",
+      nullable = true,
+      defaultValue = "",
+      maxLenght = Integer.MAX_VALUE,
+      fixedLenght = false,
+      precision = 0,
+      scale = 0,
+      unicode = true,
+      collation = "",
+      srid = "")
+  Address
+      getHomeAddress();
+
+      void
+      setHomeAddress(
+          Address _homeAddress);
+
+  @org.apache.olingo.ext.proxy.api.annotations.Property(name = "Home",
+      type = "Edm.GeographyPoint",
+      nullable = true,
+      defaultValue = "",
+      maxLenght = Integer.MAX_VALUE,
+      fixedLenght = false,
+      precision = 0,
+      scale = 0,
+      unicode = true,
+      collation = "",
+      srid = "")
+  org.apache.olingo.commons.api.edm.geo.Point getHome();
+
+  void setHome(org.apache.olingo.commons.api.edm.geo.Point _home);
+
+  @org.apache.olingo.ext.proxy.api.annotations.Property(name = "Numbers",
+      type = "Edm.String",
+      nullable = false,
+      defaultValue = "",
+      maxLenght = Integer.MAX_VALUE,
+      fixedLenght = false,
+      precision = 0,
+      scale = 0,
+      unicode = true,
+      collation = "",
+      srid = "")
+  org.apache.olingo.ext.proxy.api.PrimitiveCollection<java.lang.String> getNumbers();
+
+  void setNumbers(org.apache.olingo.ext.proxy.api.PrimitiveCollection<java.lang.String> _numbers);
+
+  @org.apache.olingo.ext.proxy.api.annotations.Property(name = "Emails",
+      type = "Edm.String",
+      nullable = true,
+      defaultValue = "",
+      maxLenght = Integer.MAX_VALUE,
+      fixedLenght = false,
+      precision = 0,
+      scale = 0,
+      unicode = true,
+      collation = "",
+      srid = "")
+  org.apache.olingo.ext.proxy.api.PrimitiveCollection<java.lang.String> getEmails();
+
+  void setEmails(org.apache.olingo.ext.proxy.api.PrimitiveCollection<java.lang.String> _emails);
+
+  @org.apache.olingo.ext.proxy.api.annotations.NavigationProperty(name = "Parent",
+      type = "Microsoft.Test.OData.Services.ODataWCFService.Person",
+      targetSchema = "Microsoft.Test.OData.Services.ODataWCFService",
+      targetContainer = "InMemoryEntities",
+      targetEntitySet = "People",
+      containsTarget = false)
+  Person getParent();
+
+  void setParent(
+      Person _parent);
+
+  Operations operations();
+
+  interface Operations extends org.apache.olingo.ext.proxy.api.Operations {
+
+    @org.apache.olingo.ext.proxy.api.annotations.Operation(
+        name = "GetHomeAddress",
+        type = OperationType.FUNCTION,
+        isComposable = true,
+        referenceType = HomeAddress.class,
+        returnType = "Microsoft.Test.OData.Services.ODataWCFService.HomeAddress")
+    HomeAddressComposableInvoker
+        getHomeAddress(
+        );
+
+    @org.apache.olingo.ext.proxy.api.annotations.Operation(
+        name = "ResetAddress",
+        type = OperationType.ACTION,
+        referenceType = Person.class,
+        returnType = "Microsoft.Test.OData.Services.ODataWCFService.Person")
+        org.apache.olingo.ext.proxy.api.StructuredInvoker<Person>
+        resetAddress(
+            @Parameter(name = "addresses", type = "Collection(Microsoft.Test.OData.Services.ODataWCFService.Address)",
+                nullable = false) AddressCollection addresses,
+            @Parameter(name = "index", type = "Edm.Int32", nullable = false) java.lang.Integer index
+        );
+
+  }
+
+  Annotations annotations();
+
+  interface Annotations {
+
+    @org.apache.olingo.ext.proxy.api.annotations.AnnotationsForProperty(name = "PersonID",
+        type = "Edm.Int32")
+    org.apache.olingo.ext.proxy.api.Annotatable getPersonIDAnnotations();
+
+    @org.apache.olingo.ext.proxy.api.annotations.AnnotationsForProperty(name = "FirstName",
+        type = "Edm.String")
+    org.apache.olingo.ext.proxy.api.Annotatable getFirstNameAnnotations();
+
+    @org.apache.olingo.ext.proxy.api.annotations.AnnotationsForProperty(name = "LastName",
+        type = "Edm.String")
+    org.apache.olingo.ext.proxy.api.Annotatable getLastNameAnnotations();
+
+    @org.apache.olingo.ext.proxy.api.annotations.AnnotationsForProperty(name = "MiddleName",
+        type = "Edm.String")
+    org.apache.olingo.ext.proxy.api.Annotatable getMiddleNameAnnotations();
+
+    @org.apache.olingo.ext.proxy.api.annotations.AnnotationsForProperty(name = "HomeAddress",
+        type = "Microsoft.Test.OData.Services.ODataWCFService.Address")
+    org.apache.olingo.ext.proxy.api.Annotatable getHomeAddressAnnotations();
+
+    @org.apache.olingo.ext.proxy.api.annotations.AnnotationsForProperty(name = "Home",
+        type = "Edm.GeographyPoint")
+    org.apache.olingo.ext.proxy.api.Annotatable getHomeAnnotations();
+
+    @org.apache.olingo.ext.proxy.api.annotations.AnnotationsForProperty(name = "Numbers",
+        type = "Edm.String")
+    org.apache.olingo.ext.proxy.api.Annotatable getNumbersAnnotations();
+
+    @org.apache.olingo.ext.proxy.api.annotations.AnnotationsForProperty(name = "Emails",
+        type = "Edm.String")
+    org.apache.olingo.ext.proxy.api.Annotatable getEmailsAnnotations();
+
+    @org.apache.olingo.ext.proxy.api.annotations.AnnotationsForNavigationProperty(name = "Parent",
+        type = "Microsoft.Test.OData.Services.ODataWCFService.Person")
+    org.apache.olingo.ext.proxy.api.Annotatable getParentAnnotations();
+  }
+
+}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/78a9539e/fit/src/test/java/org/apache/olingo/fit/proxy/staticservice/microsoft/test/odata/services/odatawcfservice/types/PersonCollection.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/proxy/staticservice/microsoft/test/odata/services/odatawcfservice/types/PersonCollection.java b/fit/src/test/java/org/apache/olingo/fit/proxy/staticservice/microsoft/test/odata/services/odatawcfservice/types/PersonCollection.java
new file mode 100644
index 0000000..4a50797
--- /dev/null
+++ b/fit/src/test/java/org/apache/olingo/fit/proxy/staticservice/microsoft/test/odata/services/odatawcfservice/types/PersonCollection.java
@@ -0,0 +1,41 @@
+/*
+ * 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.staticservice.microsoft.test.odata.services.odatawcfservice.types;
+
+// CHECKSTYLE:OFF (Maven checkstyle)
+import java.util.Collection;
+// CHECKSTYLE:ON (Maven checkstyle)
+
+import org.apache.olingo.ext.proxy.api.AbstractTerm;
+
+public interface PersonCollection
+    extends
+    org.apache.olingo.ext.proxy.api.StructuredCollectionQuery<PersonCollection>,
+org.apache.olingo.ext.proxy.api.EntityCollection<Person, PersonCollection, PersonCollection> {
+
+  Operations operations();
+
+  interface Operations extends org.apache.olingo.ext.proxy.api.Operations {
+    // No additional methods needed for now.
+  }
+
+  Object getAnnotation(Class<? extends AbstractTerm> term);
+
+  Collection<Class<? extends AbstractTerm>> getAnnotationTerms();
+}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/78a9539e/fit/src/test/java/org/apache/olingo/fit/proxy/staticservice/microsoft/test/odata/services/odatawcfservice/types/PersonCollectionComposableInvoker.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/proxy/staticservice/microsoft/test/odata/services/odatawcfservice/types/PersonCollectionComposableInvoker.java b/fit/src/test/java/org/apache/olingo/fit/proxy/staticservice/microsoft/test/odata/services/odatawcfservice/types/PersonCollectionComposableInvoker.java
new file mode 100644
index 0000000..e4a892e
--- /dev/null
+++ b/fit/src/test/java/org/apache/olingo/fit/proxy/staticservice/microsoft/test/odata/services/odatawcfservice/types/PersonCollectionComposableInvoker.java
@@ -0,0 +1,32 @@
+/*
+ * 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.staticservice.microsoft.test.odata.services.odatawcfservice.types;
+
+// CHECKSTYLE:OFF (Maven checkstyle)
+
+public interface PersonCollectionComposableInvoker
+    extends
+    org.apache.olingo.ext.proxy.api.StructuredCollectionComposableInvoker<PersonCollection, PersonCollection.Operations> {
+
+  @Override
+  PersonCollectionComposableInvoker select(String... select);
+
+  @Override
+  PersonCollectionComposableInvoker expand(String... expand);
+}