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:18 UTC

[16/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/PersonComposableInvoker.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/proxy/staticservice/microsoft/test/odata/services/odatawcfservice/types/PersonComposableInvoker.java b/fit/src/test/java/org/apache/olingo/fit/proxy/staticservice/microsoft/test/odata/services/odatawcfservice/types/PersonComposableInvoker.java
new file mode 100644
index 0000000..05e6083
--- /dev/null
+++ b/fit/src/test/java/org/apache/olingo/fit/proxy/staticservice/microsoft/test/odata/services/odatawcfservice/types/PersonComposableInvoker.java
@@ -0,0 +1,171 @@
+/*
+ * 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 PersonComposableInvoker
+    extends org.apache.olingo.ext.proxy.api.StructuredComposableInvoker<Person, Person.Operations>
+{
+
+  @Override
+  PersonComposableInvoker select(String... select);
+
+  @Override
+  PersonComposableInvoker expand(String... expand);
+
+  @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);
+
+}

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/Product.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/proxy/staticservice/microsoft/test/odata/services/odatawcfservice/types/Product.java b/fit/src/test/java/org/apache/olingo/fit/proxy/staticservice/microsoft/test/odata/services/odatawcfservice/types/Product.java
new file mode 100644
index 0000000..8ef6b49
--- /dev/null
+++ b/fit/src/test/java/org/apache/olingo/fit/proxy/staticservice/microsoft/test/odata/services/odatawcfservice/types/Product.java
@@ -0,0 +1,266 @@
+/*
+ * 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 = "Product",
+    openType = false,
+    hasStream = false,
+    isAbstract = false)
+public interface Product
+    extends org.apache.olingo.ext.proxy.api.Annotatable,
+    org.apache.olingo.ext.proxy.api.EntityType<Product>, org.apache.olingo.ext.proxy.api.StructuredQuery<Product> {
+
+  @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 = "Name",
+      type = "Edm.String",
+      nullable = false,
+      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);
+
+  @org.apache.olingo.ext.proxy.api.annotations.Property(name = "QuantityPerUnit",
+      type = "Edm.String",
+      nullable = false,
+      defaultValue = "",
+      maxLenght = Integer.MAX_VALUE,
+      fixedLenght = false,
+      precision = 0,
+      scale = 0,
+      unicode = true,
+      collation = "",
+      srid = "")
+  java.lang.String getQuantityPerUnit();
+
+  void setQuantityPerUnit(java.lang.String _quantityPerUnit);
+
+  @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.Property(name = "QuantityInStock",
+      type = "Edm.Int32",
+      nullable = false,
+      defaultValue = "",
+      maxLenght = Integer.MAX_VALUE,
+      fixedLenght = false,
+      precision = 0,
+      scale = 0,
+      unicode = true,
+      collation = "",
+      srid = "")
+  java.lang.Integer getQuantityInStock();
+
+  void setQuantityInStock(java.lang.Integer _quantityInStock);
+
+  @org.apache.olingo.ext.proxy.api.annotations.Property(name = "Discontinued",
+      type = "Edm.Boolean",
+      nullable = false,
+      defaultValue = "",
+      maxLenght = Integer.MAX_VALUE,
+      fixedLenght = false,
+      precision = 0,
+      scale = 0,
+      unicode = true,
+      collation = "",
+      srid = "")
+  java.lang.Boolean getDiscontinued();
+
+  void setDiscontinued(java.lang.Boolean _discontinued);
+
+  @org.apache.olingo.ext.proxy.api.annotations.Property(name = "UserAccess",
+      type = "Microsoft.Test.OData.Services.ODataWCFService.AccessLevel",
+      nullable = true,
+      defaultValue = "",
+      maxLenght = Integer.MAX_VALUE,
+      fixedLenght = false,
+      precision = 0,
+      scale = 0,
+      unicode = true,
+      collation = "",
+      srid = "")
+  AccessLevel
+      getUserAccess();
+
+      void
+      setUserAccess(
+          AccessLevel _userAccess);
+
+  @org.apache.olingo.ext.proxy.api.annotations.Property(name = "SkinColor",
+      type = "Microsoft.Test.OData.Services.ODataWCFService.Color",
+      nullable = true,
+      defaultValue = "",
+      maxLenght = Integer.MAX_VALUE,
+      fixedLenght = false,
+      precision = 0,
+      scale = 0,
+      unicode = true,
+      collation = "",
+      srid = "")
+  Color getSkinColor();
+
+      void
+      setSkinColor(
+          Color _skinColor);
+
+  @org.apache.olingo.ext.proxy.api.annotations.Property(name = "CoverColors",
+      type = "Microsoft.Test.OData.Services.ODataWCFService.Color",
+      nullable = false,
+      defaultValue = "",
+      maxLenght = Integer.MAX_VALUE,
+      fixedLenght = false,
+      precision = 0,
+      scale = 0,
+      unicode = true,
+      collation = "",
+      srid = "")
+      org.apache.olingo.ext.proxy.api.PrimitiveCollection<Color>
+      getCoverColors();
+
+      void
+      setCoverColors(
+          org.apache.olingo.ext.proxy.api.PrimitiveCollection<Color> _coverColors);
+
+  @org.apache.olingo.ext.proxy.api.annotations.NavigationProperty(name = "Details",
+      type = "Microsoft.Test.OData.Services.ODataWCFService.ProductDetail",
+      targetSchema = "Microsoft.Test.OData.Services.ODataWCFService",
+      targetContainer = "InMemoryEntities",
+      targetEntitySet = "ProductDetails",
+      containsTarget = false)
+  ProductDetailCollection
+      getDetails();
+
+      void
+      setDetails(
+          ProductDetailCollection _details);
+
+  Operations operations();
+
+  interface Operations extends org.apache.olingo.ext.proxy.api.Operations {
+
+    @org.apache.olingo.ext.proxy.api.annotations.Operation(
+        name = "GetProductDetails",
+        type = OperationType.FUNCTION,
+        isComposable = true,
+        referenceType = ProductDetailCollection.class,
+        returnType = "Collection(Microsoft.Test.OData.Services.ODataWCFService.ProductDetail)")
+    ProductDetailCollectionComposableInvoker
+        getProductDetails(
+            @Parameter(name = "count", type = "Edm.Int32", nullable = true) java.lang.Integer count
+        );
+
+    @org.apache.olingo.ext.proxy.api.annotations.Operation(
+        name = "AddAccessRight",
+        type = OperationType.ACTION,
+        referenceType = AccessLevel.class,
+        returnType = "Microsoft.Test.OData.Services.ODataWCFService.AccessLevel")
+        org.apache.olingo.ext.proxy.api.Invoker<AccessLevel>
+        addAccessRight(
+            @Parameter(name = "accessRight", type = "Microsoft.Test.OData.Services.ODataWCFService.AccessLevel",
+                nullable = true) AccessLevel accessRight
+        );
+
+  }
+
+  Annotations annotations();
+
+  interface Annotations {
+
+    @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 = "Name",
+        type = "Edm.String")
+    org.apache.olingo.ext.proxy.api.Annotatable getNameAnnotations();
+
+    @org.apache.olingo.ext.proxy.api.annotations.AnnotationsForProperty(name = "QuantityPerUnit",
+        type = "Edm.String")
+    org.apache.olingo.ext.proxy.api.Annotatable getQuantityPerUnitAnnotations();
+
+    @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.AnnotationsForProperty(name = "QuantityInStock",
+        type = "Edm.Int32")
+    org.apache.olingo.ext.proxy.api.Annotatable getQuantityInStockAnnotations();
+
+    @org.apache.olingo.ext.proxy.api.annotations.AnnotationsForProperty(name = "Discontinued",
+        type = "Edm.Boolean")
+    org.apache.olingo.ext.proxy.api.Annotatable getDiscontinuedAnnotations();
+
+    @org.apache.olingo.ext.proxy.api.annotations.AnnotationsForProperty(name = "UserAccess",
+        type = "Microsoft.Test.OData.Services.ODataWCFService.AccessLevel")
+    org.apache.olingo.ext.proxy.api.Annotatable getUserAccessAnnotations();
+
+    @org.apache.olingo.ext.proxy.api.annotations.AnnotationsForProperty(name = "SkinColor",
+        type = "Microsoft.Test.OData.Services.ODataWCFService.Color")
+    org.apache.olingo.ext.proxy.api.Annotatable getSkinColorAnnotations();
+
+    @org.apache.olingo.ext.proxy.api.annotations.AnnotationsForProperty(name = "CoverColors",
+        type = "Microsoft.Test.OData.Services.ODataWCFService.Color")
+    org.apache.olingo.ext.proxy.api.Annotatable getCoverColorsAnnotations();
+
+    @org.apache.olingo.ext.proxy.api.annotations.AnnotationsForNavigationProperty(name = "Details",
+        type = "Microsoft.Test.OData.Services.ODataWCFService.ProductDetail")
+    org.apache.olingo.ext.proxy.api.Annotatable getDetailsAnnotations();
+  }
+
+}

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/ProductCollection.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/proxy/staticservice/microsoft/test/odata/services/odatawcfservice/types/ProductCollection.java b/fit/src/test/java/org/apache/olingo/fit/proxy/staticservice/microsoft/test/odata/services/odatawcfservice/types/ProductCollection.java
new file mode 100644
index 0000000..4faab64
--- /dev/null
+++ b/fit/src/test/java/org/apache/olingo/fit/proxy/staticservice/microsoft/test/odata/services/odatawcfservice/types/ProductCollection.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 java.util.Collection;
+// CHECKSTYLE:ON (Maven checkstyle)
+
+import org.apache.olingo.ext.proxy.api.AbstractTerm;
+import org.apache.olingo.ext.proxy.api.OperationType;
+import org.apache.olingo.ext.proxy.api.annotations.Parameter;
+
+public interface ProductCollection
+    extends
+    org.apache.olingo.ext.proxy.api.StructuredCollectionQuery<ProductCollection>,
+org.apache.olingo.ext.proxy.api.EntityCollection<Product, ProductCollection, ProductCollection> {
+
+  Operations operations();
+
+  interface Operations extends org.apache.olingo.ext.proxy.api.Operations {
+
+    @org.apache.olingo.ext.proxy.api.annotations.Operation(
+        name = "Discount",
+        type = OperationType.ACTION,
+        referenceType = ProductCollection.class,
+        returnType = "Collection(Microsoft.Test.OData.Services.ODataWCFService.Product)")
+        org.apache.olingo.ext.proxy.api.StructuredCollectionInvoker<ProductCollection>
+        discount(
+            @Parameter(name = "percentage", type = "Edm.Int32", nullable = false) java.lang.Integer percentage
+        );
+
+  }
+
+  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/ProductCollectionComposableInvoker.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/proxy/staticservice/microsoft/test/odata/services/odatawcfservice/types/ProductCollectionComposableInvoker.java b/fit/src/test/java/org/apache/olingo/fit/proxy/staticservice/microsoft/test/odata/services/odatawcfservice/types/ProductCollectionComposableInvoker.java
new file mode 100644
index 0000000..a43fba0
--- /dev/null
+++ b/fit/src/test/java/org/apache/olingo/fit/proxy/staticservice/microsoft/test/odata/services/odatawcfservice/types/ProductCollectionComposableInvoker.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 ProductCollectionComposableInvoker
+    extends
+    org.apache.olingo.ext.proxy.api.StructuredCollectionComposableInvoker<ProductCollection, ProductCollection.Operations> {
+
+  @Override
+  ProductCollectionComposableInvoker select(String... select);
+
+  @Override
+  ProductCollectionComposableInvoker 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/ProductComposableInvoker.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/proxy/staticservice/microsoft/test/odata/services/odatawcfservice/types/ProductComposableInvoker.java b/fit/src/test/java/org/apache/olingo/fit/proxy/staticservice/microsoft/test/odata/services/odatawcfservice/types/ProductComposableInvoker.java
new file mode 100644
index 0000000..ad61add
--- /dev/null
+++ b/fit/src/test/java/org/apache/olingo/fit/proxy/staticservice/microsoft/test/odata/services/odatawcfservice/types/ProductComposableInvoker.java
@@ -0,0 +1,193 @@
+/*
+ * 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 ProductComposableInvoker
+    extends org.apache.olingo.ext.proxy.api.StructuredComposableInvoker<Product, Product.Operations>
+{
+
+  @Override
+  ProductComposableInvoker select(String... select);
+
+  @Override
+  ProductComposableInvoker expand(String... expand);
+
+  @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 = "Name",
+      type = "Edm.String",
+      nullable = false,
+      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);
+
+  @org.apache.olingo.ext.proxy.api.annotations.Property(name = "QuantityPerUnit",
+      type = "Edm.String",
+      nullable = false,
+      defaultValue = "",
+      maxLenght = Integer.MAX_VALUE,
+      fixedLenght = false,
+      precision = 0,
+      scale = 0,
+      unicode = true,
+      collation = "",
+      srid = "")
+  java.lang.String getQuantityPerUnit();
+
+  void setQuantityPerUnit(java.lang.String _quantityPerUnit);
+
+  @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.Property(name = "QuantityInStock",
+      type = "Edm.Int32",
+      nullable = false,
+      defaultValue = "",
+      maxLenght = Integer.MAX_VALUE,
+      fixedLenght = false,
+      precision = 0,
+      scale = 0,
+      unicode = true,
+      collation = "",
+      srid = "")
+  java.lang.Integer getQuantityInStock();
+
+  void setQuantityInStock(java.lang.Integer _quantityInStock);
+
+  @org.apache.olingo.ext.proxy.api.annotations.Property(name = "Discontinued",
+      type = "Edm.Boolean",
+      nullable = false,
+      defaultValue = "",
+      maxLenght = Integer.MAX_VALUE,
+      fixedLenght = false,
+      precision = 0,
+      scale = 0,
+      unicode = true,
+      collation = "",
+      srid = "")
+  java.lang.Boolean getDiscontinued();
+
+  void setDiscontinued(java.lang.Boolean _discontinued);
+
+  @org.apache.olingo.ext.proxy.api.annotations.Property(name = "UserAccess",
+      type = "Microsoft.Test.OData.Services.ODataWCFService.AccessLevel",
+      nullable = true,
+      defaultValue = "",
+      maxLenght = Integer.MAX_VALUE,
+      fixedLenght = false,
+      precision = 0,
+      scale = 0,
+      unicode = true,
+      collation = "",
+      srid = "")
+  AccessLevel
+      getUserAccess();
+
+      void
+      setUserAccess(
+          AccessLevel _userAccess);
+
+  @org.apache.olingo.ext.proxy.api.annotations.Property(name = "SkinColor",
+      type = "Microsoft.Test.OData.Services.ODataWCFService.Color",
+      nullable = true,
+      defaultValue = "",
+      maxLenght = Integer.MAX_VALUE,
+      fixedLenght = false,
+      precision = 0,
+      scale = 0,
+      unicode = true,
+      collation = "",
+      srid = "")
+  Color getSkinColor();
+
+      void
+      setSkinColor(
+          Color _skinColor);
+
+  @org.apache.olingo.ext.proxy.api.annotations.Property(name = "CoverColors",
+      type = "Microsoft.Test.OData.Services.ODataWCFService.Color",
+      nullable = false,
+      defaultValue = "",
+      maxLenght = Integer.MAX_VALUE,
+      fixedLenght = false,
+      precision = 0,
+      scale = 0,
+      unicode = true,
+      collation = "",
+      srid = "")
+      org.apache.olingo.ext.proxy.api.PrimitiveCollection<Color>
+      getCoverColors();
+
+      void
+      setCoverColors(
+          org.apache.olingo.ext.proxy.api.PrimitiveCollection<Color> _coverColors);
+
+  @org.apache.olingo.ext.proxy.api.annotations.NavigationProperty(name = "Details",
+      type = "Microsoft.Test.OData.Services.ODataWCFService.ProductDetail",
+      targetSchema = "Microsoft.Test.OData.Services.ODataWCFService",
+      targetContainer = "InMemoryEntities",
+      targetEntitySet = "ProductDetails",
+      containsTarget = false)
+  ProductDetailCollection
+      getDetails();
+
+      void
+      setDetails(
+          ProductDetailCollection _details);
+
+}

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/ProductDetail.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/proxy/staticservice/microsoft/test/odata/services/odatawcfservice/types/ProductDetail.java b/fit/src/test/java/org/apache/olingo/fit/proxy/staticservice/microsoft/test/odata/services/odatawcfservice/types/ProductDetail.java
new file mode 100644
index 0000000..3118b8a
--- /dev/null
+++ b/fit/src/test/java/org/apache/olingo/fit/proxy/staticservice/microsoft/test/odata/services/odatawcfservice/types/ProductDetail.java
@@ -0,0 +1,172 @@
+/*
+ * 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.KeyRef;
+
+@KeyRef(ProductDetailKey.class)
+@org.apache.olingo.ext.proxy.api.annotations.Namespace("Microsoft.Test.OData.Services.ODataWCFService")
+@org.apache.olingo.ext.proxy.api.annotations.EntityType(name = "ProductDetail",
+    openType = false,
+    hasStream = false,
+    isAbstract = false)
+public interface ProductDetail
+    extends org.apache.olingo.ext.proxy.api.Annotatable,
+    org.apache.olingo.ext.proxy.api.EntityType<ProductDetail>,
+    org.apache.olingo.ext.proxy.api.StructuredQuery<ProductDetail> {
+
+  @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);
+
+  @Key
+  @org.apache.olingo.ext.proxy.api.annotations.Property(name = "ProductDetailID",
+      type = "Edm.Int32",
+      nullable = false,
+      defaultValue = "",
+      maxLenght = Integer.MAX_VALUE,
+      fixedLenght = false,
+      precision = 0,
+      scale = 0,
+      unicode = true,
+      collation = "",
+      srid = "")
+  java.lang.Integer getProductDetailID();
+
+  void setProductDetailID(java.lang.Integer _productDetailID);
+
+  @org.apache.olingo.ext.proxy.api.annotations.Property(name = "ProductName",
+      type = "Edm.String",
+      nullable = false,
+      defaultValue = "",
+      maxLenght = Integer.MAX_VALUE,
+      fixedLenght = false,
+      precision = 0,
+      scale = 0,
+      unicode = true,
+      collation = "",
+      srid = "")
+  java.lang.String getProductName();
+
+  void setProductName(java.lang.String _productName);
+
+  @org.apache.olingo.ext.proxy.api.annotations.Property(name = "Description",
+      type = "Edm.String",
+      nullable = false,
+      defaultValue = "",
+      maxLenght = Integer.MAX_VALUE,
+      fixedLenght = false,
+      precision = 0,
+      scale = 0,
+      unicode = true,
+      collation = "",
+      srid = "")
+  java.lang.String getDescription();
+
+  void setDescription(java.lang.String _description);
+
+  @org.apache.olingo.ext.proxy.api.annotations.NavigationProperty(name = "RelatedProduct",
+      type = "Microsoft.Test.OData.Services.ODataWCFService.Product",
+      targetSchema = "Microsoft.Test.OData.Services.ODataWCFService",
+      targetContainer = "InMemoryEntities",
+      targetEntitySet = "Products",
+      containsTarget = false)
+  Product
+      getRelatedProduct();
+
+      void
+      setRelatedProduct(
+          Product _relatedProduct);
+
+  @org.apache.olingo.ext.proxy.api.annotations.NavigationProperty(name = "Reviews",
+      type = "Microsoft.Test.OData.Services.ODataWCFService.ProductReview",
+      targetSchema = "Microsoft.Test.OData.Services.ODataWCFService",
+      targetContainer = "InMemoryEntities",
+      targetEntitySet = "ProductReviews",
+      containsTarget = false)
+  ProductReviewCollection
+      getReviews();
+
+      void
+      setReviews(
+          ProductReviewCollection _reviews);
+
+  Operations operations();
+
+  interface Operations extends org.apache.olingo.ext.proxy.api.Operations {
+
+    @org.apache.olingo.ext.proxy.api.annotations.Operation(
+        name = "GetRelatedProduct",
+        type = OperationType.FUNCTION,
+        isComposable = true,
+        referenceType = Product.class,
+        returnType = "Microsoft.Test.OData.Services.ODataWCFService.Product")
+    ProductComposableInvoker
+        getRelatedProduct(
+        );
+
+  }
+
+  Annotations annotations();
+
+  interface Annotations {
+
+    @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 = "ProductDetailID",
+        type = "Edm.Int32")
+    org.apache.olingo.ext.proxy.api.Annotatable getProductDetailIDAnnotations();
+
+    @org.apache.olingo.ext.proxy.api.annotations.AnnotationsForProperty(name = "ProductName",
+        type = "Edm.String")
+    org.apache.olingo.ext.proxy.api.Annotatable getProductNameAnnotations();
+
+    @org.apache.olingo.ext.proxy.api.annotations.AnnotationsForProperty(name = "Description",
+        type = "Edm.String")
+    org.apache.olingo.ext.proxy.api.Annotatable getDescriptionAnnotations();
+
+    @org.apache.olingo.ext.proxy.api.annotations.AnnotationsForNavigationProperty(name = "RelatedProduct",
+        type = "Microsoft.Test.OData.Services.ODataWCFService.Product")
+    org.apache.olingo.ext.proxy.api.Annotatable getRelatedProductAnnotations();
+
+    @org.apache.olingo.ext.proxy.api.annotations.AnnotationsForNavigationProperty(name = "Reviews",
+        type = "Microsoft.Test.OData.Services.ODataWCFService.ProductReview")
+    org.apache.olingo.ext.proxy.api.Annotatable getReviewsAnnotations();
+  }
+
+}

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/ProductDetailCollection.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/proxy/staticservice/microsoft/test/odata/services/odatawcfservice/types/ProductDetailCollection.java b/fit/src/test/java/org/apache/olingo/fit/proxy/staticservice/microsoft/test/odata/services/odatawcfservice/types/ProductDetailCollection.java
new file mode 100644
index 0000000..351468d
--- /dev/null
+++ b/fit/src/test/java/org/apache/olingo/fit/proxy/staticservice/microsoft/test/odata/services/odatawcfservice/types/ProductDetailCollection.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 ProductDetailCollection
+    extends
+    org.apache.olingo.ext.proxy.api.StructuredCollectionQuery<ProductDetailCollection>,
+org.apache.olingo.ext.proxy.api.EntityCollection<ProductDetail, ProductDetailCollection, ProductDetailCollection> {
+
+  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/ProductDetailCollectionComposableInvoker.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/proxy/staticservice/microsoft/test/odata/services/odatawcfservice/types/ProductDetailCollectionComposableInvoker.java b/fit/src/test/java/org/apache/olingo/fit/proxy/staticservice/microsoft/test/odata/services/odatawcfservice/types/ProductDetailCollectionComposableInvoker.java
new file mode 100644
index 0000000..c5ab2bd
--- /dev/null
+++ b/fit/src/test/java/org/apache/olingo/fit/proxy/staticservice/microsoft/test/odata/services/odatawcfservice/types/ProductDetailCollectionComposableInvoker.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 ProductDetailCollectionComposableInvoker
+    extends
+    org.apache.olingo.ext.proxy.api.StructuredCollectionComposableInvoker<ProductDetailCollection, ProductDetailCollection.Operations> {
+
+  @Override
+  ProductDetailCollectionComposableInvoker select(String... select);
+
+  @Override
+  ProductDetailCollectionComposableInvoker 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/ProductDetailComposableInvoker.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/proxy/staticservice/microsoft/test/odata/services/odatawcfservice/types/ProductDetailComposableInvoker.java b/fit/src/test/java/org/apache/olingo/fit/proxy/staticservice/microsoft/test/odata/services/odatawcfservice/types/ProductDetailComposableInvoker.java
new file mode 100644
index 0000000..1413ee7
--- /dev/null
+++ b/fit/src/test/java/org/apache/olingo/fit/proxy/staticservice/microsoft/test/odata/services/odatawcfservice/types/ProductDetailComposableInvoker.java
@@ -0,0 +1,124 @@
+/*
+ * 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 ProductDetailComposableInvoker
+    extends org.apache.olingo.ext.proxy.api.StructuredComposableInvoker<ProductDetail, ProductDetail.Operations>
+{
+
+  @Override
+  ProductDetailComposableInvoker select(String... select);
+
+  @Override
+  ProductDetailComposableInvoker expand(String... expand);
+
+  @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);
+
+  @Key
+  @org.apache.olingo.ext.proxy.api.annotations.Property(name = "ProductDetailID",
+      type = "Edm.Int32",
+      nullable = false,
+      defaultValue = "",
+      maxLenght = Integer.MAX_VALUE,
+      fixedLenght = false,
+      precision = 0,
+      scale = 0,
+      unicode = true,
+      collation = "",
+      srid = "")
+  java.lang.Integer getProductDetailID();
+
+  void setProductDetailID(java.lang.Integer _productDetailID);
+
+  @org.apache.olingo.ext.proxy.api.annotations.Property(name = "ProductName",
+      type = "Edm.String",
+      nullable = false,
+      defaultValue = "",
+      maxLenght = Integer.MAX_VALUE,
+      fixedLenght = false,
+      precision = 0,
+      scale = 0,
+      unicode = true,
+      collation = "",
+      srid = "")
+  java.lang.String getProductName();
+
+  void setProductName(java.lang.String _productName);
+
+  @org.apache.olingo.ext.proxy.api.annotations.Property(name = "Description",
+      type = "Edm.String",
+      nullable = false,
+      defaultValue = "",
+      maxLenght = Integer.MAX_VALUE,
+      fixedLenght = false,
+      precision = 0,
+      scale = 0,
+      unicode = true,
+      collation = "",
+      srid = "")
+  java.lang.String getDescription();
+
+  void setDescription(java.lang.String _description);
+
+  @org.apache.olingo.ext.proxy.api.annotations.NavigationProperty(name = "RelatedProduct",
+      type = "Microsoft.Test.OData.Services.ODataWCFService.Product",
+      targetSchema = "Microsoft.Test.OData.Services.ODataWCFService",
+      targetContainer = "InMemoryEntities",
+      targetEntitySet = "Products",
+      containsTarget = false)
+  Product
+      getRelatedProduct();
+
+      void
+      setRelatedProduct(
+          Product _relatedProduct);
+
+  @org.apache.olingo.ext.proxy.api.annotations.NavigationProperty(name = "Reviews",
+      type = "Microsoft.Test.OData.Services.ODataWCFService.ProductReview",
+      targetSchema = "Microsoft.Test.OData.Services.ODataWCFService",
+      targetContainer = "InMemoryEntities",
+      targetEntitySet = "ProductReviews",
+      containsTarget = false)
+  ProductReviewCollection
+      getReviews();
+
+      void
+      setReviews(
+          ProductReviewCollection _reviews);
+
+}

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/ProductDetailKey.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/proxy/staticservice/microsoft/test/odata/services/odatawcfservice/types/ProductDetailKey.java b/fit/src/test/java/org/apache/olingo/fit/proxy/staticservice/microsoft/test/odata/services/odatawcfservice/types/ProductDetailKey.java
new file mode 100644
index 0000000..fe42987
--- /dev/null
+++ b/fit/src/test/java/org/apache/olingo/fit/proxy/staticservice/microsoft/test/odata/services/odatawcfservice/types/ProductDetailKey.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 ProductDetailKey extends AbstractEntityKey {
+
+  private static final long serialVersionUID = -6268946147639590355L;
+
+  private java.lang.Integer _productID;
+
+  @CompoundKeyElement(name = "ProductID", position = 0)
+  public java.lang.Integer getProductID() {
+    return _productID;
+  }
+
+  public void setProductID(final java.lang.Integer _productID) {
+    this._productID = _productID;
+  }
+
+  private java.lang.Integer _productDetailID;
+
+  @CompoundKeyElement(name = "ProductDetailID", position = 1)
+  public java.lang.Integer getProductDetailID() {
+    return _productDetailID;
+  }
+
+  public void setProductDetailID(final java.lang.Integer _productDetailID) {
+    this._productDetailID = _productDetailID;
+  }
+}

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/ProductReview.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/proxy/staticservice/microsoft/test/odata/services/odatawcfservice/types/ProductReview.java b/fit/src/test/java/org/apache/olingo/fit/proxy/staticservice/microsoft/test/odata/services/odatawcfservice/types/ProductReview.java
new file mode 100644
index 0000000..0aced06
--- /dev/null
+++ b/fit/src/test/java/org/apache/olingo/fit/proxy/staticservice/microsoft/test/odata/services/odatawcfservice/types/ProductReview.java
@@ -0,0 +1,168 @@
+/*
+ * 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(ProductReviewKey.class)
+@org.apache.olingo.ext.proxy.api.annotations.Namespace("Microsoft.Test.OData.Services.ODataWCFService")
+@org.apache.olingo.ext.proxy.api.annotations.EntityType(name = "ProductReview",
+    openType = false,
+    hasStream = false,
+    isAbstract = false)
+public interface ProductReview
+    extends org.apache.olingo.ext.proxy.api.Annotatable,
+    org.apache.olingo.ext.proxy.api.EntityType<ProductReview>,
+    org.apache.olingo.ext.proxy.api.StructuredQuery<ProductReview> {
+
+  @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);
+
+  @Key
+  @org.apache.olingo.ext.proxy.api.annotations.Property(name = "ProductDetailID",
+      type = "Edm.Int32",
+      nullable = false,
+      defaultValue = "",
+      maxLenght = Integer.MAX_VALUE,
+      fixedLenght = false,
+      precision = 0,
+      scale = 0,
+      unicode = true,
+      collation = "",
+      srid = "")
+  java.lang.Integer getProductDetailID();
+
+  void setProductDetailID(java.lang.Integer _productDetailID);
+
+  @Key
+  @org.apache.olingo.ext.proxy.api.annotations.Property(name = "ReviewTitle",
+      type = "Edm.String",
+      nullable = false,
+      defaultValue = "",
+      maxLenght = Integer.MAX_VALUE,
+      fixedLenght = false,
+      precision = 0,
+      scale = 0,
+      unicode = true,
+      collation = "",
+      srid = "")
+  java.lang.String getReviewTitle();
+
+  void setReviewTitle(java.lang.String _reviewTitle);
+
+  @Key
+  @org.apache.olingo.ext.proxy.api.annotations.Property(name = "RevisionID",
+      type = "Edm.Int32",
+      nullable = false,
+      defaultValue = "",
+      maxLenght = Integer.MAX_VALUE,
+      fixedLenght = false,
+      precision = 0,
+      scale = 0,
+      unicode = true,
+      collation = "",
+      srid = "")
+  java.lang.Integer getRevisionID();
+
+  void setRevisionID(java.lang.Integer _revisionID);
+
+  @org.apache.olingo.ext.proxy.api.annotations.Property(name = "Comment",
+      type = "Edm.String",
+      nullable = false,
+      defaultValue = "",
+      maxLenght = Integer.MAX_VALUE,
+      fixedLenght = false,
+      precision = 0,
+      scale = 0,
+      unicode = true,
+      collation = "",
+      srid = "")
+  java.lang.String getComment();
+
+  void setComment(java.lang.String _comment);
+
+  @org.apache.olingo.ext.proxy.api.annotations.Property(name = "Author",
+      type = "Edm.String",
+      nullable = false,
+      defaultValue = "",
+      maxLenght = Integer.MAX_VALUE,
+      fixedLenght = false,
+      precision = 0,
+      scale = 0,
+      unicode = true,
+      collation = "",
+      srid = "")
+  java.lang.String getAuthor();
+
+  void setAuthor(java.lang.String _author);
+
+  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 = "ProductID",
+        type = "Edm.Int32")
+    org.apache.olingo.ext.proxy.api.Annotatable getProductIDAnnotations();
+
+    @org.apache.olingo.ext.proxy.api.annotations.AnnotationsForProperty(name = "ProductDetailID",
+        type = "Edm.Int32")
+    org.apache.olingo.ext.proxy.api.Annotatable getProductDetailIDAnnotations();
+
+    @org.apache.olingo.ext.proxy.api.annotations.AnnotationsForProperty(name = "ReviewTitle",
+        type = "Edm.String")
+    org.apache.olingo.ext.proxy.api.Annotatable getReviewTitleAnnotations();
+
+    @org.apache.olingo.ext.proxy.api.annotations.AnnotationsForProperty(name = "RevisionID",
+        type = "Edm.Int32")
+    org.apache.olingo.ext.proxy.api.Annotatable getRevisionIDAnnotations();
+
+    @org.apache.olingo.ext.proxy.api.annotations.AnnotationsForProperty(name = "Comment",
+        type = "Edm.String")
+    org.apache.olingo.ext.proxy.api.Annotatable getCommentAnnotations();
+
+    @org.apache.olingo.ext.proxy.api.annotations.AnnotationsForProperty(name = "Author",
+        type = "Edm.String")
+    org.apache.olingo.ext.proxy.api.Annotatable getAuthorAnnotations();
+
+  }
+
+}

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/ProductReviewCollection.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/proxy/staticservice/microsoft/test/odata/services/odatawcfservice/types/ProductReviewCollection.java b/fit/src/test/java/org/apache/olingo/fit/proxy/staticservice/microsoft/test/odata/services/odatawcfservice/types/ProductReviewCollection.java
new file mode 100644
index 0000000..1a26007
--- /dev/null
+++ b/fit/src/test/java/org/apache/olingo/fit/proxy/staticservice/microsoft/test/odata/services/odatawcfservice/types/ProductReviewCollection.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 ProductReviewCollection
+    extends
+    org.apache.olingo.ext.proxy.api.StructuredCollectionQuery<ProductReviewCollection>,
+org.apache.olingo.ext.proxy.api.EntityCollection<ProductReview, ProductReviewCollection, ProductReviewCollection> {
+
+  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/ProductReviewCollectionComposableInvoker.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/proxy/staticservice/microsoft/test/odata/services/odatawcfservice/types/ProductReviewCollectionComposableInvoker.java b/fit/src/test/java/org/apache/olingo/fit/proxy/staticservice/microsoft/test/odata/services/odatawcfservice/types/ProductReviewCollectionComposableInvoker.java
new file mode 100644
index 0000000..9a10d65
--- /dev/null
+++ b/fit/src/test/java/org/apache/olingo/fit/proxy/staticservice/microsoft/test/odata/services/odatawcfservice/types/ProductReviewCollectionComposableInvoker.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 ProductReviewCollectionComposableInvoker
+    extends
+    org.apache.olingo.ext.proxy.api.StructuredCollectionComposableInvoker<ProductReviewCollection, ProductReviewCollection.Operations> {
+
+  @Override
+  ProductReviewCollectionComposableInvoker select(String... select);
+
+  @Override
+  ProductReviewCollectionComposableInvoker 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/ProductReviewComposableInvoker.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/proxy/staticservice/microsoft/test/odata/services/odatawcfservice/types/ProductReviewComposableInvoker.java b/fit/src/test/java/org/apache/olingo/fit/proxy/staticservice/microsoft/test/odata/services/odatawcfservice/types/ProductReviewComposableInvoker.java
new file mode 100644
index 0000000..5076205
--- /dev/null
+++ b/fit/src/test/java/org/apache/olingo/fit/proxy/staticservice/microsoft/test/odata/services/odatawcfservice/types/ProductReviewComposableInvoker.java
@@ -0,0 +1,130 @@
+/*
+ * 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 ProductReviewComposableInvoker
+    extends org.apache.olingo.ext.proxy.api.StructuredComposableInvoker<ProductReview, ProductReview.Operations>
+{
+
+  @Override
+  ProductReviewComposableInvoker select(String... select);
+
+  @Override
+  ProductReviewComposableInvoker expand(String... expand);
+
+  @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);
+
+  @Key
+  @org.apache.olingo.ext.proxy.api.annotations.Property(name = "ProductDetailID",
+      type = "Edm.Int32",
+      nullable = false,
+      defaultValue = "",
+      maxLenght = Integer.MAX_VALUE,
+      fixedLenght = false,
+      precision = 0,
+      scale = 0,
+      unicode = true,
+      collation = "",
+      srid = "")
+  java.lang.Integer getProductDetailID();
+
+  void setProductDetailID(java.lang.Integer _productDetailID);
+
+  @Key
+  @org.apache.olingo.ext.proxy.api.annotations.Property(name = "ReviewTitle",
+      type = "Edm.String",
+      nullable = false,
+      defaultValue = "",
+      maxLenght = Integer.MAX_VALUE,
+      fixedLenght = false,
+      precision = 0,
+      scale = 0,
+      unicode = true,
+      collation = "",
+      srid = "")
+  java.lang.String getReviewTitle();
+
+  void setReviewTitle(java.lang.String _reviewTitle);
+
+  @Key
+  @org.apache.olingo.ext.proxy.api.annotations.Property(name = "RevisionID",
+      type = "Edm.Int32",
+      nullable = false,
+      defaultValue = "",
+      maxLenght = Integer.MAX_VALUE,
+      fixedLenght = false,
+      precision = 0,
+      scale = 0,
+      unicode = true,
+      collation = "",
+      srid = "")
+  java.lang.Integer getRevisionID();
+
+  void setRevisionID(java.lang.Integer _revisionID);
+
+  @org.apache.olingo.ext.proxy.api.annotations.Property(name = "Comment",
+      type = "Edm.String",
+      nullable = false,
+      defaultValue = "",
+      maxLenght = Integer.MAX_VALUE,
+      fixedLenght = false,
+      precision = 0,
+      scale = 0,
+      unicode = true,
+      collation = "",
+      srid = "")
+  java.lang.String getComment();
+
+  void setComment(java.lang.String _comment);
+
+  @org.apache.olingo.ext.proxy.api.annotations.Property(name = "Author",
+      type = "Edm.String",
+      nullable = false,
+      defaultValue = "",
+      maxLenght = Integer.MAX_VALUE,
+      fixedLenght = false,
+      precision = 0,
+      scale = 0,
+      unicode = true,
+      collation = "",
+      srid = "")
+  java.lang.String getAuthor();
+
+  void setAuthor(java.lang.String _author);
+
+}

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/ProductReviewKey.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/proxy/staticservice/microsoft/test/odata/services/odatawcfservice/types/ProductReviewKey.java b/fit/src/test/java/org/apache/olingo/fit/proxy/staticservice/microsoft/test/odata/services/odatawcfservice/types/ProductReviewKey.java
new file mode 100644
index 0000000..eff975b
--- /dev/null
+++ b/fit/src/test/java/org/apache/olingo/fit/proxy/staticservice/microsoft/test/odata/services/odatawcfservice/types/ProductReviewKey.java
@@ -0,0 +1,75 @@
+/*
+ * 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 ProductReviewKey extends AbstractEntityKey {
+
+  private static final long serialVersionUID = 5483520057777167030L;
+
+  private java.lang.Integer _productID;
+
+  @CompoundKeyElement(name = "ProductID", position = 0)
+  public java.lang.Integer getProductID() {
+    return _productID;
+  }
+
+  public void setProductID(final java.lang.Integer _productID) {
+    this._productID = _productID;
+  }
+
+  private java.lang.Integer _productDetailID;
+
+  @CompoundKeyElement(name = "ProductDetailID", position = 1)
+  public java.lang.Integer getProductDetailID() {
+    return _productDetailID;
+  }
+
+  public void setProductDetailID(final java.lang.Integer _productDetailID) {
+    this._productDetailID = _productDetailID;
+  }
+
+  private java.lang.String _reviewTitle;
+
+  @CompoundKeyElement(name = "ReviewTitle", position = 2)
+  public java.lang.String getReviewTitle() {
+    return _reviewTitle;
+  }
+
+  public void setReviewTitle(final java.lang.String _reviewTitle) {
+    this._reviewTitle = _reviewTitle;
+  }
+
+  private java.lang.Integer _revisionID;
+
+  @CompoundKeyElement(name = "RevisionID", position = 3)
+  public java.lang.Integer getRevisionID() {
+    return _revisionID;
+  }
+
+  public void setRevisionID(final java.lang.Integer _revisionID) {
+    this._revisionID = _revisionID;
+  }
+}

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/PublicCompany.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/proxy/staticservice/microsoft/test/odata/services/odatawcfservice/types/PublicCompany.java b/fit/src/test/java/org/apache/olingo/fit/proxy/staticservice/microsoft/test/odata/services/odatawcfservice/types/PublicCompany.java
new file mode 100644
index 0000000..cdace92
--- /dev/null
+++ b/fit/src/test/java/org/apache/olingo/fit/proxy/staticservice/microsoft/test/odata/services/odatawcfservice/types/PublicCompany.java
@@ -0,0 +1,345 @@
+/*
+ * 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.concurrent.Future;
+// CHECKSTYLE:ON (Maven checkstyle)
+
+import org.apache.olingo.ext.proxy.api.AbstractEntitySet;
+import org.apache.olingo.ext.proxy.api.AbstractOpenType;
+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 = "PublicCompany",
+    openType = true,
+    hasStream = false,
+    isAbstract = false,
+    baseType = "Microsoft.Test.OData.Services.ODataWCFService.Company")
+public interface PublicCompany
+    extends org.apache.olingo.ext.proxy.api.Annotatable,
+        Company,
+    AbstractOpenType {
+
+  @Override
+  PublicCompany load();
+
+  @Override
+  Future<? extends PublicCompany> loadAsync();
+
+  @Override
+  PublicCompany refs();
+
+  @Override
+  PublicCompany expand(String... expand);
+
+  @Override
+  PublicCompany select(String... select);
+
+  @Override
+  @Key
+  @org.apache.olingo.ext.proxy.api.annotations.Property(name = "CompanyID",
+      type = "Edm.Int32",
+      nullable = false,
+      defaultValue = "",
+      maxLenght = Integer.MAX_VALUE,
+      fixedLenght = false,
+      precision = 0,
+      scale = 0,
+      unicode = true,
+      collation = "",
+      srid = "")
+  java.lang.Integer getCompanyID();
+
+  @Override
+  void setCompanyID(java.lang.Integer _companyID);
+
+  @Override
+  @org.apache.olingo.ext.proxy.api.annotations.Property(name = "CompanyCategory",
+      type = "Microsoft.Test.OData.Services.ODataWCFService.CompanyCategory",
+      nullable = true,
+      defaultValue = "",
+      maxLenght = Integer.MAX_VALUE,
+      fixedLenght = false,
+      precision = 0,
+      scale = 0,
+      unicode = true,
+      collation = "",
+      srid = "")
+  CompanyCategory
+      getCompanyCategory();
+
+  @Override
+      void
+      setCompanyCategory(
+          CompanyCategory _companyCategory);
+
+  @Override
+  @org.apache.olingo.ext.proxy.api.annotations.Property(name = "Revenue",
+      type = "Edm.Int64",
+      nullable = false,
+      defaultValue = "",
+      maxLenght = Integer.MAX_VALUE,
+      fixedLenght = false,
+      precision = 0,
+      scale = 0,
+      unicode = true,
+      collation = "",
+      srid = "")
+  java.lang.Long getRevenue();
+
+  @Override
+  void setRevenue(java.lang.Long _revenue);
+
+  @Override
+  @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();
+
+  @Override
+  void setName(java.lang.String _name);
+
+  @Override
+  @org.apache.olingo.ext.proxy.api.annotations.Property(name = "Address",
+      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 getAddress();
+
+  @Override
+      void
+      setAddress(
+          Address _address);
+
+  @org.apache.olingo.ext.proxy.api.annotations.Property(name = "StockExchange",
+      type = "Edm.String",
+      nullable = true,
+      defaultValue = "",
+      maxLenght = Integer.MAX_VALUE,
+      fixedLenght = false,
+      precision = 0,
+      scale = 0,
+      unicode = true,
+      collation = "",
+      srid = "")
+  java.lang.String getStockExchange();
+
+  void setStockExchange(java.lang.String _stockExchange);
+
+  @Override
+  @org.apache.olingo.ext.proxy.api.annotations.NavigationProperty(name = "Employees",
+      type = "Microsoft.Test.OData.Services.ODataWCFService.Employee",
+      targetSchema = "Microsoft.Test.OData.Services.ODataWCFService",
+      targetContainer = "InMemoryEntities",
+      targetEntitySet = "Employees",
+      containsTarget = false)
+  EmployeeCollection
+      getEmployees();
+
+  @Override
+      void
+      setEmployees(
+          EmployeeCollection _employees);
+
+  @Override
+  @org.apache.olingo.ext.proxy.api.annotations.NavigationProperty(name = "VipCustomer",
+      type = "Microsoft.Test.OData.Services.ODataWCFService.Customer",
+      targetSchema = "Microsoft.Test.OData.Services.ODataWCFService",
+      targetContainer = "InMemoryEntities",
+      targetEntitySet = "VipCustomer",
+      containsTarget = false)
+  Customer
+      getVipCustomer();
+
+  @Override
+      void
+      setVipCustomer(
+          Customer _vipCustomer);
+
+  @Override
+  @org.apache.olingo.ext.proxy.api.annotations.NavigationProperty(name = "Departments",
+      type = "Microsoft.Test.OData.Services.ODataWCFService.Department",
+      targetSchema = "Microsoft.Test.OData.Services.ODataWCFService",
+      targetContainer = "InMemoryEntities",
+      targetEntitySet = "Departments",
+      containsTarget = false)
+  DepartmentCollection
+      getDepartments();
+
+  @Override
+      void
+      setDepartments(
+          DepartmentCollection _departments);
+
+  @Override
+  @org.apache.olingo.ext.proxy.api.annotations.NavigationProperty(name = "CoreDepartment",
+      type = "Microsoft.Test.OData.Services.ODataWCFService.Department",
+      targetSchema = "Microsoft.Test.OData.Services.ODataWCFService",
+      targetContainer = "InMemoryEntities",
+      targetEntitySet = "Departments",
+      containsTarget = false)
+  Department
+      getCoreDepartment();
+
+  @Override
+      void
+      setCoreDepartment(
+          Department _coreDepartment);
+
+  @org.apache.olingo.ext.proxy.api.annotations.NavigationProperty(name = "Club",
+      type = "Microsoft.Test.OData.Services.ODataWCFService.Club",
+      targetSchema = "Microsoft.Test.OData.Services.ODataWCFService",
+      targetContainer = "",
+      targetEntitySet = "",
+      containsTarget = true)
+  Club getClub();
+
+  void setClub(
+      Club _club);
+
+  @org.apache.olingo.ext.proxy.api.annotations.NavigationProperty(name = "LabourUnion",
+      type = "Microsoft.Test.OData.Services.ODataWCFService.LabourUnion",
+      targetSchema = "Microsoft.Test.OData.Services.ODataWCFService",
+      targetContainer = "InMemoryEntities",
+      targetEntitySet = "LabourUnion",
+      containsTarget = false)
+  LabourUnion
+      getLabourUnion();
+
+      void
+      setLabourUnion(
+          LabourUnion _labourUnion);
+
+  @Override
+  Operations operations();
+
+  interface Operations
+      extends
+          Company.Operations {
+    // No additional methods needed for now.
+  }
+
+  @Override
+  Annotations annotations();
+
+  interface Annotations
+      extends
+          Company.Annotations {
+
+    @Override
+    @org.apache.olingo.ext.proxy.api.annotations.AnnotationsForProperty(name = "CompanyID",
+        type = "Edm.Int32")
+    org.apache.olingo.ext.proxy.api.Annotatable getCompanyIDAnnotations();
+
+    @Override
+    @org.apache.olingo.ext.proxy.api.annotations.AnnotationsForProperty(name = "CompanyCategory",
+        type = "Microsoft.Test.OData.Services.ODataWCFService.CompanyCategory")
+    org.apache.olingo.ext.proxy.api.Annotatable getCompanyCategoryAnnotations();
+
+    @Override
+    @org.apache.olingo.ext.proxy.api.annotations.AnnotationsForProperty(name = "Revenue",
+        type = "Edm.Int64")
+    org.apache.olingo.ext.proxy.api.Annotatable getRevenueAnnotations();
+
+    @Override
+    @org.apache.olingo.ext.proxy.api.annotations.AnnotationsForProperty(name = "Name",
+        type = "Edm.String")
+    org.apache.olingo.ext.proxy.api.Annotatable getNameAnnotations();
+
+    @Override
+    @org.apache.olingo.ext.proxy.api.annotations.AnnotationsForProperty(name = "Address",
+        type = "Microsoft.Test.OData.Services.ODataWCFService.Address")
+    org.apache.olingo.ext.proxy.api.Annotatable getAddressAnnotations();
+
+    @org.apache.olingo.ext.proxy.api.annotations.AnnotationsForProperty(name = "StockExchange",
+        type = "Edm.String")
+    org.apache.olingo.ext.proxy.api.Annotatable getStockExchangeAnnotations();
+
+    @Override
+    @org.apache.olingo.ext.proxy.api.annotations.AnnotationsForNavigationProperty(name = "Employees",
+        type = "Microsoft.Test.OData.Services.ODataWCFService.Employee")
+    org.apache.olingo.ext.proxy.api.Annotatable getEmployeesAnnotations();
+
+    @Override
+    @org.apache.olingo.ext.proxy.api.annotations.AnnotationsForNavigationProperty(name = "VipCustomer",
+        type = "Microsoft.Test.OData.Services.ODataWCFService.Customer")
+    org.apache.olingo.ext.proxy.api.Annotatable getVipCustomerAnnotations();
+
+    @Override
+    @org.apache.olingo.ext.proxy.api.annotations.AnnotationsForNavigationProperty(name = "Departments",
+        type = "Microsoft.Test.OData.Services.ODataWCFService.Department")
+    org.apache.olingo.ext.proxy.api.Annotatable getDepartmentsAnnotations();
+
+    @Override
+    @org.apache.olingo.ext.proxy.api.annotations.AnnotationsForNavigationProperty(name = "CoreDepartment",
+        type = "Microsoft.Test.OData.Services.ODataWCFService.Department")
+    org.apache.olingo.ext.proxy.api.Annotatable getCoreDepartmentAnnotations();
+
+    @org.apache.olingo.ext.proxy.api.annotations.AnnotationsForNavigationProperty(name = "Assets",
+        type = "Microsoft.Test.OData.Services.ODataWCFService.Asset")
+    org.apache.olingo.ext.proxy.api.Annotatable getAssetsAnnotations();
+
+    @org.apache.olingo.ext.proxy.api.annotations.AnnotationsForNavigationProperty(name = "Club",
+        type = "Microsoft.Test.OData.Services.ODataWCFService.Club")
+    org.apache.olingo.ext.proxy.api.Annotatable getClubAnnotations();
+
+    @org.apache.olingo.ext.proxy.api.annotations.AnnotationsForNavigationProperty(name = "LabourUnion",
+        type = "Microsoft.Test.OData.Services.ODataWCFService.LabourUnion")
+    org.apache.olingo.ext.proxy.api.Annotatable getLabourUnionAnnotations();
+  }
+
+  @org.apache.olingo.ext.proxy.api.annotations.NavigationProperty(name = "Assets",
+      type = "Microsoft.Test.OData.Services.ODataWCFService.LabourUnion",
+      targetSchema = "Microsoft.Test.OData.Services.ODataWCFService",
+      targetContainer = "InMemoryEntities",
+      targetEntitySet = "LabourUnion",
+      containsTarget = true)
+  PublicCompany.Assets
+      getAssets();
+
+      void
+      setAssets(
+          PublicCompany.Assets _assets);
+
+  @org.apache.olingo.ext.proxy.api.annotations.EntitySet(name = "Assets", contained = true)
+  interface Assets
+      extends
+      org.apache.olingo.ext.proxy.api.EntitySet<Asset, AssetCollection>,
+      org.apache.olingo.ext.proxy.api.StructuredCollectionQuery<Assets>,
+  AbstractEntitySet<Asset, java.lang.Integer, AssetCollection> {
+    // 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/PublicCompanyCollection.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/proxy/staticservice/microsoft/test/odata/services/odatawcfservice/types/PublicCompanyCollection.java b/fit/src/test/java/org/apache/olingo/fit/proxy/staticservice/microsoft/test/odata/services/odatawcfservice/types/PublicCompanyCollection.java
new file mode 100644
index 0000000..65b906f
--- /dev/null
+++ b/fit/src/test/java/org/apache/olingo/fit/proxy/staticservice/microsoft/test/odata/services/odatawcfservice/types/PublicCompanyCollection.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 PublicCompanyCollection
+    extends
+    org.apache.olingo.ext.proxy.api.StructuredCollectionQuery<PublicCompanyCollection>,
+org.apache.olingo.ext.proxy.api.EntityCollection<PublicCompany, PublicCompanyCollection, PublicCompanyCollection> {
+
+  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/PublicCompanyCollectionComposableInvoker.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/proxy/staticservice/microsoft/test/odata/services/odatawcfservice/types/PublicCompanyCollectionComposableInvoker.java b/fit/src/test/java/org/apache/olingo/fit/proxy/staticservice/microsoft/test/odata/services/odatawcfservice/types/PublicCompanyCollectionComposableInvoker.java
new file mode 100644
index 0000000..4d71270
--- /dev/null
+++ b/fit/src/test/java/org/apache/olingo/fit/proxy/staticservice/microsoft/test/odata/services/odatawcfservice/types/PublicCompanyCollectionComposableInvoker.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 PublicCompanyCollectionComposableInvoker
+    extends
+    org.apache.olingo.ext.proxy.api.StructuredCollectionComposableInvoker<PublicCompanyCollection, PublicCompanyCollection.Operations> {
+
+  @Override
+  PublicCompanyCollectionComposableInvoker select(String... select);
+
+  @Override
+  PublicCompanyCollectionComposableInvoker expand(String... expand);
+}