You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@olingo.apache.org by ch...@apache.org on 2016/08/12 11:48:20 UTC

[06/14] olingo-odata4 git commit: [OLINGO-1004] Remove another microsoft from test package name

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

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/d16d2b9c/fit/src/test/java/org/apache/olingo/fit/proxy/staticservice/odatawcfservice/types/CompanyAddressComposableInvoker.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/proxy/staticservice/odatawcfservice/types/CompanyAddressComposableInvoker.java b/fit/src/test/java/org/apache/olingo/fit/proxy/staticservice/odatawcfservice/types/CompanyAddressComposableInvoker.java
new file mode 100644
index 0000000..ed28b59
--- /dev/null
+++ b/fit/src/test/java/org/apache/olingo/fit/proxy/staticservice/odatawcfservice/types/CompanyAddressComposableInvoker.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.odatawcfservice.types;
+
+// CHECKSTYLE:OFF (Maven checkstyle)
+
+public interface CompanyAddressComposableInvoker
+    extends org.apache.olingo.ext.proxy.api.StructuredComposableInvoker<CompanyAddress, CompanyAddress.Operations>
+{
+
+  @Override
+  CompanyAddressComposableInvoker select(String... select);
+
+  @Override
+  CompanyAddressComposableInvoker 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 = "CompanyName",
+      type = "Edm.String",
+      nullable = false,
+      defaultValue = "",
+      maxLenght = Integer.MAX_VALUE,
+      fixedLenght = false,
+      precision = 0,
+      scale = 0,
+      unicode = true,
+      collation = "",
+      srid = "")
+  java.lang.String getCompanyName();
+
+  void setCompanyName(java.lang.String _companyName);
+
+}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/d16d2b9c/fit/src/test/java/org/apache/olingo/fit/proxy/staticservice/odatawcfservice/types/CompanyCategory.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/proxy/staticservice/odatawcfservice/types/CompanyCategory.java b/fit/src/test/java/org/apache/olingo/fit/proxy/staticservice/odatawcfservice/types/CompanyCategory.java
new file mode 100644
index 0000000..fa37044
--- /dev/null
+++ b/fit/src/test/java/org/apache/olingo/fit/proxy/staticservice/odatawcfservice/types/CompanyCategory.java
@@ -0,0 +1,45 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ * 
+ * http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.olingo.fit.proxy.staticservice.odatawcfservice.types;
+
+// CHECKSTYLE:OFF (Maven checkstyle)
+import org.apache.olingo.commons.api.edm.EdmPrimitiveTypeKind;
+
+// CHECKSTYLE:ON (Maven checkstyle)
+
+@org.apache.olingo.ext.proxy.api.annotations.Namespace("Microsoft.Test.OData.Services.ODataWCFService")
+@org.apache.olingo.ext.proxy.api.annotations.EnumType(name = "CompanyCategory",
+    underlyingType = EdmPrimitiveTypeKind.Int32,
+    isFlags = false)
+public enum CompanyCategory {
+  IT(0),
+  Communication(1),
+  Electronics(2),
+  Others(4);
+
+  private java.lang.Integer value;
+
+  public java.lang.Integer getValue() {
+    return value;
+  }
+
+  private CompanyCategory(final java.lang.Integer value) {
+    this.value = value;
+  }
+}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/d16d2b9c/fit/src/test/java/org/apache/olingo/fit/proxy/staticservice/odatawcfservice/types/CompanyCollection.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/proxy/staticservice/odatawcfservice/types/CompanyCollection.java b/fit/src/test/java/org/apache/olingo/fit/proxy/staticservice/odatawcfservice/types/CompanyCollection.java
new file mode 100644
index 0000000..f411e8d
--- /dev/null
+++ b/fit/src/test/java/org/apache/olingo/fit/proxy/staticservice/odatawcfservice/types/CompanyCollection.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.odatawcfservice.types;
+
+// CHECKSTYLE:OFF (Maven checkstyle)
+import java.util.Collection;
+// CHECKSTYLE:ON (Maven checkstyle)
+
+import org.apache.olingo.ext.proxy.api.AbstractTerm;
+
+public interface CompanyCollection
+    extends
+    org.apache.olingo.ext.proxy.api.StructuredCollectionQuery<CompanyCollection>,
+org.apache.olingo.ext.proxy.api.EntityCollection<Company, CompanyCollection, CompanyCollection> {
+
+  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/d16d2b9c/fit/src/test/java/org/apache/olingo/fit/proxy/staticservice/odatawcfservice/types/CompanyCollectionComposableInvoker.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/proxy/staticservice/odatawcfservice/types/CompanyCollectionComposableInvoker.java b/fit/src/test/java/org/apache/olingo/fit/proxy/staticservice/odatawcfservice/types/CompanyCollectionComposableInvoker.java
new file mode 100644
index 0000000..545df32
--- /dev/null
+++ b/fit/src/test/java/org/apache/olingo/fit/proxy/staticservice/odatawcfservice/types/CompanyCollectionComposableInvoker.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.odatawcfservice.types;
+
+// CHECKSTYLE:OFF (Maven checkstyle)
+
+public interface CompanyCollectionComposableInvoker
+    extends
+    org.apache.olingo.ext.proxy.api.StructuredCollectionComposableInvoker<CompanyCollection, CompanyCollection.Operations> {
+
+  @Override
+  CompanyCollectionComposableInvoker select(String... select);
+
+  @Override
+  CompanyCollectionComposableInvoker expand(String... expand);
+}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/d16d2b9c/fit/src/test/java/org/apache/olingo/fit/proxy/staticservice/odatawcfservice/types/CompanyComposableInvoker.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/proxy/staticservice/odatawcfservice/types/CompanyComposableInvoker.java b/fit/src/test/java/org/apache/olingo/fit/proxy/staticservice/odatawcfservice/types/CompanyComposableInvoker.java
new file mode 100644
index 0000000..be48c12
--- /dev/null
+++ b/fit/src/test/java/org/apache/olingo/fit/proxy/staticservice/odatawcfservice/types/CompanyComposableInvoker.java
@@ -0,0 +1,170 @@
+/*
+ * 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.odatawcfservice.types;
+
+// CHECKSTYLE:OFF (Maven checkstyle)
+import org.apache.olingo.ext.proxy.api.AbstractOpenType;
+
+// CHECKSTYLE:ON (Maven checkstyle)
+import org.apache.olingo.ext.proxy.api.annotations.Key;
+
+public interface CompanyComposableInvoker
+    extends org.apache.olingo.ext.proxy.api.StructuredComposableInvoker<Company, Company.Operations>
+    , AbstractOpenType {
+
+  @Override
+  CompanyComposableInvoker select(String... select);
+
+  @Override
+  CompanyComposableInvoker expand(String... expand);
+
+  @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();
+
+  void setCompanyID(java.lang.Integer _companyID);
+
+  @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();
+
+      void
+      setCompanyCategory(
+          CompanyCategory _companyCategory);
+
+  @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();
+
+  void setRevenue(java.lang.Long _revenue);
+
+  @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);
+
+  @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();
+
+      void
+      setAddress(
+          Address _address);
+
+  @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();
+
+      void
+      setEmployees(
+          EmployeeCollection _employees);
+
+  @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();
+
+      void
+      setVipCustomer(
+          Customer _vipCustomer);
+
+  @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();
+
+      void
+      setDepartments(
+          DepartmentCollection _departments);
+
+  @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();
+
+      void
+      setCoreDepartment(
+          Department _coreDepartment);
+
+}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/d16d2b9c/fit/src/test/java/org/apache/olingo/fit/proxy/staticservice/odatawcfservice/types/CreditCardPI.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/proxy/staticservice/odatawcfservice/types/CreditCardPI.java b/fit/src/test/java/org/apache/olingo/fit/proxy/staticservice/odatawcfservice/types/CreditCardPI.java
new file mode 100644
index 0000000..b3067c5
--- /dev/null
+++ b/fit/src/test/java/org/apache/olingo/fit/proxy/staticservice/odatawcfservice/types/CreditCardPI.java
@@ -0,0 +1,299 @@
+/*
+ * 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.odatawcfservice.types;
+
+import java.util.concurrent.Future;
+
+import org.apache.olingo.ext.proxy.api.AbstractEntitySet;
+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 = "CreditCardPI",
+    openType = false,
+    hasStream = false,
+    isAbstract = false,
+    baseType = "Microsoft.Test.OData.Services.ODataWCFService.PaymentInstrument")
+public interface CreditCardPI extends PaymentInstrument {
+
+  @Override
+  CreditCardPI load();
+
+  @Override
+  Future<? extends CreditCardPI> loadAsync();
+
+  @Override
+  CreditCardPI refs();
+
+  @Override
+  CreditCardPI expand(String... expand);
+
+  @Override
+  CreditCardPI select(String... select);
+
+  @Override
+  @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();
+
+  @Override
+  void setPaymentInstrumentID(java.lang.Integer _paymentInstrumentID);
+
+  @Override
+  @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();
+
+  @Override
+  void setFriendlyName(java.lang.String _friendlyName);
+
+  @Override
+  @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();
+
+  @Override
+  void setCreatedDate(java.sql.Timestamp _createdDate);
+
+  @org.apache.olingo.ext.proxy.api.annotations.Property(name = "CardNumber",
+      type = "Edm.String",
+      nullable = false,
+      defaultValue = "",
+      maxLenght = Integer.MAX_VALUE,
+      fixedLenght = false,
+      precision = 0,
+      scale = 0,
+      unicode = true,
+      collation = "",
+      srid = "")
+  java.lang.String getCardNumber();
+
+  void setCardNumber(java.lang.String _cardNumber);
+
+  @org.apache.olingo.ext.proxy.api.annotations.Property(name = "CVV",
+      type = "Edm.String",
+      nullable = false,
+      defaultValue = "",
+      maxLenght = Integer.MAX_VALUE,
+      fixedLenght = false,
+      precision = 0,
+      scale = 0,
+      unicode = true,
+      collation = "",
+      srid = "")
+  java.lang.String getCVV();
+
+  void setCVV(java.lang.String _cVV);
+
+  @org.apache.olingo.ext.proxy.api.annotations.Property(name = "HolderName",
+      type = "Edm.String",
+      nullable = false,
+      defaultValue = "",
+      maxLenght = Integer.MAX_VALUE,
+      fixedLenght = false,
+      precision = 0,
+      scale = 0,
+      unicode = true,
+      collation = "",
+      srid = "")
+  java.lang.String getHolderName();
+
+  void setHolderName(java.lang.String _holderName);
+
+  @org.apache.olingo.ext.proxy.api.annotations.Property(name = "Balance",
+      type = "Edm.Double",
+      nullable = false,
+      defaultValue = "",
+      maxLenght = Integer.MAX_VALUE,
+      fixedLenght = false,
+      precision = 0,
+      scale = 0,
+      unicode = true,
+      collation = "",
+      srid = "")
+  java.lang.Double getBalance();
+
+  void setBalance(java.lang.Double _balance);
+
+  @org.apache.olingo.ext.proxy.api.annotations.Property(name = "ExperationDate",
+      type = "Edm.DateTimeOffset",
+      nullable = false,
+      defaultValue = "",
+      maxLenght = Integer.MAX_VALUE,
+      fixedLenght = false,
+      precision = 0,
+      scale = 0,
+      unicode = true,
+      collation = "",
+      srid = "")
+  java.sql.Timestamp getExperationDate();
+
+  void setExperationDate(java.sql.Timestamp _experationDate);
+
+  @Override
+  @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();
+
+  @Override
+      void
+      setTheStoredPI(
+          StoredPI _theStoredPI);
+
+  @Override
+  @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();
+
+  @Override
+      void
+      setBackupStoredPI(
+          StoredPI _backupStoredPI);
+
+  @Override
+  Operations operations();
+
+  interface Operations
+      extends
+          PaymentInstrument.Operations {
+    // No additional methods needed for now.
+  }
+
+  @Override
+  Annotations annotations();
+
+  interface Annotations
+      extends
+          PaymentInstrument.Annotations {
+
+    @Override
+    @org.apache.olingo.ext.proxy.api.annotations.AnnotationsForProperty(name = "PaymentInstrumentID",
+        type = "Edm.Int32")
+    org.apache.olingo.ext.proxy.api.Annotatable getPaymentInstrumentIDAnnotations();
+
+    @Override
+    @org.apache.olingo.ext.proxy.api.annotations.AnnotationsForProperty(name = "FriendlyName",
+        type = "Edm.String")
+    org.apache.olingo.ext.proxy.api.Annotatable getFriendlyNameAnnotations();
+
+    @Override
+    @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.AnnotationsForProperty(name = "CardNumber",
+        type = "Edm.String")
+    org.apache.olingo.ext.proxy.api.Annotatable getCardNumberAnnotations();
+
+    @org.apache.olingo.ext.proxy.api.annotations.AnnotationsForProperty(name = "CVV",
+        type = "Edm.String")
+    org.apache.olingo.ext.proxy.api.Annotatable getCVVAnnotations();
+
+    @org.apache.olingo.ext.proxy.api.annotations.AnnotationsForProperty(name = "HolderName",
+        type = "Edm.String")
+    org.apache.olingo.ext.proxy.api.Annotatable getHolderNameAnnotations();
+
+    @org.apache.olingo.ext.proxy.api.annotations.AnnotationsForProperty(name = "Balance",
+        type = "Edm.Double")
+    org.apache.olingo.ext.proxy.api.Annotatable getBalanceAnnotations();
+
+    @org.apache.olingo.ext.proxy.api.annotations.AnnotationsForProperty(name = "ExperationDate",
+        type = "Edm.DateTimeOffset")
+    org.apache.olingo.ext.proxy.api.Annotatable getExperationDateAnnotations();
+
+    @Override
+    @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();
+
+    @Override
+    @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();
+
+    @Override
+    @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.AnnotationsForNavigationProperty(name = "CreditRecords",
+        type = "Microsoft.Test.OData.Services.ODataWCFService.CreditRecord")
+    org.apache.olingo.ext.proxy.api.Annotatable getCreditRecordsAnnotations();
+  }
+
+  @org.apache.olingo.ext.proxy.api.annotations.NavigationProperty(name = "CreditRecords",
+      type = "Microsoft.Test.OData.Services.ODataWCFService.CreditRecord",
+      targetSchema = "Microsoft.Test.OData.Services.ODataWCFService",
+      targetContainer = "",
+      targetEntitySet = "",
+      containsTarget = true)
+      CreditCardPI.CreditRecords
+      getCreditRecords();
+
+      void
+      setCreditRecords(
+          CreditCardPI.CreditRecords _creditRecords);
+
+  @org.apache.olingo.ext.proxy.api.annotations.EntitySet(name = "CreditRecords", contained = true)
+  interface CreditRecords
+      extends
+      org.apache.olingo.ext.proxy.api.EntitySet<CreditRecord, CreditRecordCollection>,
+      org.apache.olingo.ext.proxy.api.StructuredCollectionQuery<CreditRecords>,
+  AbstractEntitySet<CreditRecord, java.lang.Integer, CreditRecordCollection> {
+    // No additional methods needed for now.
+  }
+
+}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/d16d2b9c/fit/src/test/java/org/apache/olingo/fit/proxy/staticservice/odatawcfservice/types/CreditCardPICollection.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/proxy/staticservice/odatawcfservice/types/CreditCardPICollection.java b/fit/src/test/java/org/apache/olingo/fit/proxy/staticservice/odatawcfservice/types/CreditCardPICollection.java
new file mode 100644
index 0000000..1de9733
--- /dev/null
+++ b/fit/src/test/java/org/apache/olingo/fit/proxy/staticservice/odatawcfservice/types/CreditCardPICollection.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.odatawcfservice.types;
+
+// CHECKSTYLE:OFF (Maven checkstyle)
+import java.util.Collection;
+// CHECKSTYLE:ON (Maven checkstyle)
+
+import org.apache.olingo.ext.proxy.api.AbstractTerm;
+
+public interface CreditCardPICollection
+    extends
+    org.apache.olingo.ext.proxy.api.StructuredCollectionQuery<CreditCardPICollection>,
+org.apache.olingo.ext.proxy.api.EntityCollection<CreditCardPI, CreditCardPICollection, CreditCardPICollection> {
+
+  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/d16d2b9c/fit/src/test/java/org/apache/olingo/fit/proxy/staticservice/odatawcfservice/types/CreditCardPICollectionComposableInvoker.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/proxy/staticservice/odatawcfservice/types/CreditCardPICollectionComposableInvoker.java b/fit/src/test/java/org/apache/olingo/fit/proxy/staticservice/odatawcfservice/types/CreditCardPICollectionComposableInvoker.java
new file mode 100644
index 0000000..16211d1
--- /dev/null
+++ b/fit/src/test/java/org/apache/olingo/fit/proxy/staticservice/odatawcfservice/types/CreditCardPICollectionComposableInvoker.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.odatawcfservice.types;
+
+// CHECKSTYLE:OFF (Maven checkstyle)
+
+public interface CreditCardPICollectionComposableInvoker
+    extends
+    org.apache.olingo.ext.proxy.api.StructuredCollectionComposableInvoker<CreditCardPICollection, CreditCardPICollection.Operations> {
+
+  @Override
+  CreditCardPICollectionComposableInvoker select(String... select);
+
+  @Override
+  CreditCardPICollectionComposableInvoker expand(String... expand);
+}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/d16d2b9c/fit/src/test/java/org/apache/olingo/fit/proxy/staticservice/odatawcfservice/types/CreditCardPIComposableInvoker.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/proxy/staticservice/odatawcfservice/types/CreditCardPIComposableInvoker.java b/fit/src/test/java/org/apache/olingo/fit/proxy/staticservice/odatawcfservice/types/CreditCardPIComposableInvoker.java
new file mode 100644
index 0000000..2edd15c
--- /dev/null
+++ b/fit/src/test/java/org/apache/olingo/fit/proxy/staticservice/odatawcfservice/types/CreditCardPIComposableInvoker.java
@@ -0,0 +1,206 @@
+/*
+ * 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.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 CreditCardPIComposableInvoker
+    extends org.apache.olingo.ext.proxy.api.StructuredComposableInvoker<CreditCardPI, CreditCardPI.Operations>
+{
+
+  @Override
+  CreditCardPIComposableInvoker select(String... select);
+
+  @Override
+  CreditCardPIComposableInvoker 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.Property(name = "CardNumber",
+      type = "Edm.String",
+      nullable = false,
+      defaultValue = "",
+      maxLenght = Integer.MAX_VALUE,
+      fixedLenght = false,
+      precision = 0,
+      scale = 0,
+      unicode = true,
+      collation = "",
+      srid = "")
+  java.lang.String getCardNumber();
+
+  void setCardNumber(java.lang.String _cardNumber);
+
+  @org.apache.olingo.ext.proxy.api.annotations.Property(name = "CVV",
+      type = "Edm.String",
+      nullable = false,
+      defaultValue = "",
+      maxLenght = Integer.MAX_VALUE,
+      fixedLenght = false,
+      precision = 0,
+      scale = 0,
+      unicode = true,
+      collation = "",
+      srid = "")
+  java.lang.String getCVV();
+
+  void setCVV(java.lang.String _cVV);
+
+  @org.apache.olingo.ext.proxy.api.annotations.Property(name = "HolderName",
+      type = "Edm.String",
+      nullable = false,
+      defaultValue = "",
+      maxLenght = Integer.MAX_VALUE,
+      fixedLenght = false,
+      precision = 0,
+      scale = 0,
+      unicode = true,
+      collation = "",
+      srid = "")
+  java.lang.String getHolderName();
+
+  void setHolderName(java.lang.String _holderName);
+
+  @org.apache.olingo.ext.proxy.api.annotations.Property(name = "Balance",
+      type = "Edm.Double",
+      nullable = false,
+      defaultValue = "",
+      maxLenght = Integer.MAX_VALUE,
+      fixedLenght = false,
+      precision = 0,
+      scale = 0,
+      unicode = true,
+      collation = "",
+      srid = "")
+  java.lang.Double getBalance();
+
+  void setBalance(java.lang.Double _balance);
+
+  @org.apache.olingo.ext.proxy.api.annotations.Property(name = "ExperationDate",
+      type = "Edm.DateTimeOffset",
+      nullable = false,
+      defaultValue = "",
+      maxLenght = Integer.MAX_VALUE,
+      fixedLenght = false,
+      precision = 0,
+      scale = 0,
+      unicode = true,
+      collation = "",
+      srid = "")
+  java.sql.Timestamp getExperationDate();
+
+  void setExperationDate(java.sql.Timestamp _experationDate);
+
+  @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 = "CreditRecords",
+      type = "Microsoft.Test.OData.Services.ODataWCFService.CreditRecord",
+      targetSchema = "Microsoft.Test.OData.Services.ODataWCFService",
+      targetContainer = "",
+      targetEntitySet = "",
+      containsTarget = true)
+      CreditCardPI.CreditRecords
+      getCreditRecords();
+
+      void
+      setCreditRecords(
+          CreditCardPI.CreditRecords _creditRecords);
+
+  @org.apache.olingo.ext.proxy.api.annotations.EntitySet(name = "CreditRecords", contained = true)
+  interface CreditRecords
+      extends
+      org.apache.olingo.ext.proxy.api.EntitySet<CreditRecord, CreditRecordCollection>,
+      org.apache.olingo.ext.proxy.api.StructuredCollectionQuery<CreditRecords>,
+  AbstractEntitySet<CreditRecord, java.lang.Integer, CreditRecordCollection> {
+    // No additional methods needed for now.
+  }
+
+}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/d16d2b9c/fit/src/test/java/org/apache/olingo/fit/proxy/staticservice/odatawcfservice/types/CreditRecord.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/proxy/staticservice/odatawcfservice/types/CreditRecord.java b/fit/src/test/java/org/apache/olingo/fit/proxy/staticservice/odatawcfservice/types/CreditRecord.java
new file mode 100644
index 0000000..422c84a
--- /dev/null
+++ b/fit/src/test/java/org/apache/olingo/fit/proxy/staticservice/odatawcfservice/types/CreditRecord.java
@@ -0,0 +1,125 @@
+/*
+ * 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.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 = "CreditRecord",
+    openType = false,
+    hasStream = false,
+    isAbstract = false)
+public interface CreditRecord
+    extends org.apache.olingo.ext.proxy.api.Annotatable,
+    org.apache.olingo.ext.proxy.api.EntityType<CreditRecord>,
+    org.apache.olingo.ext.proxy.api.StructuredQuery<CreditRecord> {
+
+  @Key
+  @org.apache.olingo.ext.proxy.api.annotations.Property(name = "CreditRecordID",
+      type = "Edm.Int32",
+      nullable = false,
+      defaultValue = "",
+      maxLenght = Integer.MAX_VALUE,
+      fixedLenght = false,
+      precision = 0,
+      scale = 0,
+      unicode = true,
+      collation = "",
+      srid = "")
+  java.lang.Integer getCreditRecordID();
+
+  void setCreditRecordID(java.lang.Integer _creditRecordID);
+
+  @org.apache.olingo.ext.proxy.api.annotations.Property(name = "IsGood",
+      type = "Edm.Boolean",
+      nullable = false,
+      defaultValue = "",
+      maxLenght = Integer.MAX_VALUE,
+      fixedLenght = false,
+      precision = 0,
+      scale = 0,
+      unicode = true,
+      collation = "",
+      srid = "")
+  java.lang.Boolean getIsGood();
+
+  void setIsGood(java.lang.Boolean _isGood);
+
+  @org.apache.olingo.ext.proxy.api.annotations.Property(name = "Reason",
+      type = "Edm.String",
+      nullable = false,
+      defaultValue = "",
+      maxLenght = Integer.MAX_VALUE,
+      fixedLenght = false,
+      precision = 0,
+      scale = 0,
+      unicode = true,
+      collation = "",
+      srid = "")
+  java.lang.String getReason();
+
+  void setReason(java.lang.String _reason);
+
+  @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);
+
+  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 = "CreditRecordID",
+        type = "Edm.Int32")
+    org.apache.olingo.ext.proxy.api.Annotatable getCreditRecordIDAnnotations();
+
+    @org.apache.olingo.ext.proxy.api.annotations.AnnotationsForProperty(name = "IsGood",
+        type = "Edm.Boolean")
+    org.apache.olingo.ext.proxy.api.Annotatable getIsGoodAnnotations();
+
+    @org.apache.olingo.ext.proxy.api.annotations.AnnotationsForProperty(name = "Reason",
+        type = "Edm.String")
+    org.apache.olingo.ext.proxy.api.Annotatable getReasonAnnotations();
+
+    @org.apache.olingo.ext.proxy.api.annotations.AnnotationsForProperty(name = "CreatedDate",
+        type = "Edm.DateTimeOffset")
+    org.apache.olingo.ext.proxy.api.Annotatable getCreatedDateAnnotations();
+
+  }
+
+}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/d16d2b9c/fit/src/test/java/org/apache/olingo/fit/proxy/staticservice/odatawcfservice/types/CreditRecordCollection.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/proxy/staticservice/odatawcfservice/types/CreditRecordCollection.java b/fit/src/test/java/org/apache/olingo/fit/proxy/staticservice/odatawcfservice/types/CreditRecordCollection.java
new file mode 100644
index 0000000..c109919
--- /dev/null
+++ b/fit/src/test/java/org/apache/olingo/fit/proxy/staticservice/odatawcfservice/types/CreditRecordCollection.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.odatawcfservice.types;
+
+// CHECKSTYLE:OFF (Maven checkstyle)
+import java.util.Collection;
+// CHECKSTYLE:ON (Maven checkstyle)
+
+import org.apache.olingo.ext.proxy.api.AbstractTerm;
+
+public interface CreditRecordCollection
+    extends
+    org.apache.olingo.ext.proxy.api.StructuredCollectionQuery<CreditRecordCollection>,
+org.apache.olingo.ext.proxy.api.EntityCollection<CreditRecord, CreditRecordCollection, CreditRecordCollection> {
+
+  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/d16d2b9c/fit/src/test/java/org/apache/olingo/fit/proxy/staticservice/odatawcfservice/types/CreditRecordCollectionComposableInvoker.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/proxy/staticservice/odatawcfservice/types/CreditRecordCollectionComposableInvoker.java b/fit/src/test/java/org/apache/olingo/fit/proxy/staticservice/odatawcfservice/types/CreditRecordCollectionComposableInvoker.java
new file mode 100644
index 0000000..33acbff
--- /dev/null
+++ b/fit/src/test/java/org/apache/olingo/fit/proxy/staticservice/odatawcfservice/types/CreditRecordCollectionComposableInvoker.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.odatawcfservice.types;
+
+// CHECKSTYLE:OFF (Maven checkstyle)
+
+public interface CreditRecordCollectionComposableInvoker
+    extends
+    org.apache.olingo.ext.proxy.api.StructuredCollectionComposableInvoker<CreditRecordCollection, CreditRecordCollection.Operations> {
+
+  @Override
+  CreditRecordCollectionComposableInvoker select(String... select);
+
+  @Override
+  CreditRecordCollectionComposableInvoker expand(String... expand);
+}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/d16d2b9c/fit/src/test/java/org/apache/olingo/fit/proxy/staticservice/odatawcfservice/types/CreditRecordComposableInvoker.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/proxy/staticservice/odatawcfservice/types/CreditRecordComposableInvoker.java b/fit/src/test/java/org/apache/olingo/fit/proxy/staticservice/odatawcfservice/types/CreditRecordComposableInvoker.java
new file mode 100644
index 0000000..68618fe
--- /dev/null
+++ b/fit/src/test/java/org/apache/olingo/fit/proxy/staticservice/odatawcfservice/types/CreditRecordComposableInvoker.java
@@ -0,0 +1,97 @@
+/*
+ * 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.odatawcfservice.types;
+
+// CHECKSTYLE:OFF (Maven checkstyle)
+import org.apache.olingo.ext.proxy.api.annotations.Key;
+
+// CHECKSTYLE:ON (Maven checkstyle)
+
+public interface CreditRecordComposableInvoker
+    extends org.apache.olingo.ext.proxy.api.StructuredComposableInvoker<CreditRecord, CreditRecord.Operations>
+{
+
+  @Override
+  CreditRecordComposableInvoker select(String... select);
+
+  @Override
+  CreditRecordComposableInvoker expand(String... expand);
+
+  @Key
+  @org.apache.olingo.ext.proxy.api.annotations.Property(name = "CreditRecordID",
+      type = "Edm.Int32",
+      nullable = false,
+      defaultValue = "",
+      maxLenght = Integer.MAX_VALUE,
+      fixedLenght = false,
+      precision = 0,
+      scale = 0,
+      unicode = true,
+      collation = "",
+      srid = "")
+  java.lang.Integer getCreditRecordID();
+
+  void setCreditRecordID(java.lang.Integer _creditRecordID);
+
+  @org.apache.olingo.ext.proxy.api.annotations.Property(name = "IsGood",
+      type = "Edm.Boolean",
+      nullable = false,
+      defaultValue = "",
+      maxLenght = Integer.MAX_VALUE,
+      fixedLenght = false,
+      precision = 0,
+      scale = 0,
+      unicode = true,
+      collation = "",
+      srid = "")
+  java.lang.Boolean getIsGood();
+
+  void setIsGood(java.lang.Boolean _isGood);
+
+  @org.apache.olingo.ext.proxy.api.annotations.Property(name = "Reason",
+      type = "Edm.String",
+      nullable = false,
+      defaultValue = "",
+      maxLenght = Integer.MAX_VALUE,
+      fixedLenght = false,
+      precision = 0,
+      scale = 0,
+      unicode = true,
+      collation = "",
+      srid = "")
+  java.lang.String getReason();
+
+  void setReason(java.lang.String _reason);
+
+  @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);
+
+}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/d16d2b9c/fit/src/test/java/org/apache/olingo/fit/proxy/staticservice/odatawcfservice/types/Customer.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/proxy/staticservice/odatawcfservice/types/Customer.java b/fit/src/test/java/org/apache/olingo/fit/proxy/staticservice/odatawcfservice/types/Customer.java
new file mode 100644
index 0000000..d040921
--- /dev/null
+++ b/fit/src/test/java/org/apache/olingo/fit/proxy/staticservice/odatawcfservice/types/Customer.java
@@ -0,0 +1,353 @@
+/*
+ * 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.odatawcfservice.types;
+
+import java.util.concurrent.Future;
+
+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 = "Customer",
+    openType = false,
+    hasStream = false,
+    isAbstract = false,
+    baseType = "Microsoft.Test.OData.Services.ODataWCFService.Person")
+public interface Customer extends Person {
+
+  @Override
+  Customer load();
+
+  @Override
+  Future<? extends Customer> loadAsync();
+
+  @Override
+  Customer refs();
+
+  @Override
+  Customer expand(String... expand);
+
+  @Override
+  Customer select(String... select);
+
+  @Override
+  @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();
+
+  @Override
+  void setPersonID(java.lang.Integer _personID);
+
+  @Override
+  @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();
+
+  @Override
+  void setFirstName(java.lang.String _firstName);
+
+  @Override
+  @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();
+
+  @Override
+  void setLastName(java.lang.String _lastName);
+
+  @Override
+  @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();
+
+  @Override
+  void setMiddleName(java.lang.String _middleName);
+
+  @Override
+  @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();
+
+  @Override
+      void
+      setHomeAddress(
+          Address _homeAddress);
+
+  @Override
+  @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();
+
+  @Override
+  void setHome(org.apache.olingo.commons.api.edm.geo.Point _home);
+
+  @Override
+  @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();
+
+  @Override
+  void setNumbers(org.apache.olingo.ext.proxy.api.PrimitiveCollection<java.lang.String> _numbers);
+
+  @Override
+  @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();
+
+  @Override
+  void setEmails(org.apache.olingo.ext.proxy.api.PrimitiveCollection<java.lang.String> _emails);
+
+  @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 = "Birthday",
+      type = "Edm.DateTimeOffset",
+      nullable = false,
+      defaultValue = "",
+      maxLenght = Integer.MAX_VALUE,
+      fixedLenght = false,
+      precision = 0,
+      scale = 0,
+      unicode = true,
+      collation = "",
+      srid = "")
+  java.sql.Timestamp getBirthday();
+
+  void setBirthday(java.sql.Timestamp _birthday);
+
+  @org.apache.olingo.ext.proxy.api.annotations.Property(name = "TimeBetweenLastTwoOrders",
+      type = "Edm.Duration",
+      nullable = false,
+      defaultValue = "",
+      maxLenght = Integer.MAX_VALUE,
+      fixedLenght = false,
+      precision = 0,
+      scale = 0,
+      unicode = true,
+      collation = "",
+      srid = "")
+  java.math.BigDecimal getTimeBetweenLastTwoOrders();
+
+  void setTimeBetweenLastTwoOrders(java.math.BigDecimal _timeBetweenLastTwoOrders);
+
+  @Override
+  @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();
+
+  @Override
+  void setParent(
+      Person _parent);
+
+  @org.apache.olingo.ext.proxy.api.annotations.NavigationProperty(name = "Orders",
+      type = "Microsoft.Test.OData.Services.ODataWCFService.Order",
+      targetSchema = "Microsoft.Test.OData.Services.ODataWCFService",
+      targetContainer = "InMemoryEntities",
+      targetEntitySet = "Orders",
+      containsTarget = false)
+  OrderCollection
+      getOrders();
+
+      void
+      setOrders(
+          OrderCollection _orders);
+
+  @org.apache.olingo.ext.proxy.api.annotations.NavigationProperty(name = "Company",
+      type = "Microsoft.Test.OData.Services.ODataWCFService.Company",
+      targetSchema = "Microsoft.Test.OData.Services.ODataWCFService",
+      targetContainer = "InMemoryEntities",
+      targetEntitySet = "Company",
+      containsTarget = false)
+  Company getCompany();
+
+      void
+      setCompany(
+          Company _company);
+
+  @Override
+  Operations operations();
+
+  interface Operations
+      extends
+      Person.Operations {
+    // No additional methods needed for now.
+  }
+
+  @Override
+  Annotations annotations();
+
+  interface Annotations
+      extends
+      Person.Annotations {
+
+    @Override
+    @org.apache.olingo.ext.proxy.api.annotations.AnnotationsForProperty(name = "PersonID",
+        type = "Edm.Int32")
+    org.apache.olingo.ext.proxy.api.Annotatable getPersonIDAnnotations();
+
+    @Override
+    @org.apache.olingo.ext.proxy.api.annotations.AnnotationsForProperty(name = "FirstName",
+        type = "Edm.String")
+    org.apache.olingo.ext.proxy.api.Annotatable getFirstNameAnnotations();
+
+    @Override
+    @org.apache.olingo.ext.proxy.api.annotations.AnnotationsForProperty(name = "LastName",
+        type = "Edm.String")
+    org.apache.olingo.ext.proxy.api.Annotatable getLastNameAnnotations();
+
+    @Override
+    @org.apache.olingo.ext.proxy.api.annotations.AnnotationsForProperty(name = "MiddleName",
+        type = "Edm.String")
+    org.apache.olingo.ext.proxy.api.Annotatable getMiddleNameAnnotations();
+
+    @Override
+    @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();
+
+    @Override
+    @org.apache.olingo.ext.proxy.api.annotations.AnnotationsForProperty(name = "Home",
+        type = "Edm.GeographyPoint")
+    org.apache.olingo.ext.proxy.api.Annotatable getHomeAnnotations();
+
+    @Override
+    @org.apache.olingo.ext.proxy.api.annotations.AnnotationsForProperty(name = "Numbers",
+        type = "Edm.String")
+    org.apache.olingo.ext.proxy.api.Annotatable getNumbersAnnotations();
+
+    @Override
+    @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.AnnotationsForProperty(name = "City",
+        type = "Edm.String")
+    org.apache.olingo.ext.proxy.api.Annotatable getCityAnnotations();
+
+    @org.apache.olingo.ext.proxy.api.annotations.AnnotationsForProperty(name = "Birthday",
+        type = "Edm.DateTimeOffset")
+    org.apache.olingo.ext.proxy.api.Annotatable getBirthdayAnnotations();
+
+    @org.apache.olingo.ext.proxy.api.annotations.AnnotationsForProperty(name = "TimeBetweenLastTwoOrders",
+        type = "Edm.Duration")
+    org.apache.olingo.ext.proxy.api.Annotatable getTimeBetweenLastTwoOrdersAnnotations();
+
+    @Override
+    @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();
+
+    @org.apache.olingo.ext.proxy.api.annotations.AnnotationsForNavigationProperty(name = "Orders",
+        type = "Microsoft.Test.OData.Services.ODataWCFService.Order")
+    org.apache.olingo.ext.proxy.api.Annotatable getOrdersAnnotations();
+
+    @org.apache.olingo.ext.proxy.api.annotations.AnnotationsForNavigationProperty(name = "Company",
+        type = "Microsoft.Test.OData.Services.ODataWCFService.Company")
+    org.apache.olingo.ext.proxy.api.Annotatable getCompanyAnnotations();
+  }
+
+}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/d16d2b9c/fit/src/test/java/org/apache/olingo/fit/proxy/staticservice/odatawcfservice/types/CustomerCollection.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/proxy/staticservice/odatawcfservice/types/CustomerCollection.java b/fit/src/test/java/org/apache/olingo/fit/proxy/staticservice/odatawcfservice/types/CustomerCollection.java
new file mode 100644
index 0000000..9126210
--- /dev/null
+++ b/fit/src/test/java/org/apache/olingo/fit/proxy/staticservice/odatawcfservice/types/CustomerCollection.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.odatawcfservice.types;
+
+// CHECKSTYLE:OFF (Maven checkstyle)
+import java.util.Collection;
+// CHECKSTYLE:ON (Maven checkstyle)
+
+import org.apache.olingo.ext.proxy.api.AbstractTerm;
+
+public interface CustomerCollection
+    extends
+    org.apache.olingo.ext.proxy.api.StructuredCollectionQuery<CustomerCollection>,
+org.apache.olingo.ext.proxy.api.EntityCollection<Customer, CustomerCollection, CustomerCollection> {
+
+  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/d16d2b9c/fit/src/test/java/org/apache/olingo/fit/proxy/staticservice/odatawcfservice/types/CustomerCollectionComposableInvoker.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/proxy/staticservice/odatawcfservice/types/CustomerCollectionComposableInvoker.java b/fit/src/test/java/org/apache/olingo/fit/proxy/staticservice/odatawcfservice/types/CustomerCollectionComposableInvoker.java
new file mode 100644
index 0000000..f0c6f94
--- /dev/null
+++ b/fit/src/test/java/org/apache/olingo/fit/proxy/staticservice/odatawcfservice/types/CustomerCollectionComposableInvoker.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.odatawcfservice.types;
+
+// CHECKSTYLE:OFF (Maven checkstyle)
+
+public interface CustomerCollectionComposableInvoker
+    extends
+    org.apache.olingo.ext.proxy.api.StructuredCollectionComposableInvoker<CustomerCollection, CustomerCollection.Operations> {
+
+  @Override
+  CustomerCollectionComposableInvoker select(String... select);
+
+  @Override
+  CustomerCollectionComposableInvoker expand(String... expand);
+}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/d16d2b9c/fit/src/test/java/org/apache/olingo/fit/proxy/staticservice/odatawcfservice/types/CustomerComposableInvoker.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/proxy/staticservice/odatawcfservice/types/CustomerComposableInvoker.java b/fit/src/test/java/org/apache/olingo/fit/proxy/staticservice/odatawcfservice/types/CustomerComposableInvoker.java
new file mode 100644
index 0000000..01f0c03
--- /dev/null
+++ b/fit/src/test/java/org/apache/olingo/fit/proxy/staticservice/odatawcfservice/types/CustomerComposableInvoker.java
@@ -0,0 +1,241 @@
+/*
+ * 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.odatawcfservice.types;
+
+// CHECKSTYLE:OFF (Maven checkstyle)
+import org.apache.olingo.ext.proxy.api.annotations.Key;
+
+// CHECKSTYLE:ON (Maven checkstyle)
+
+public interface CustomerComposableInvoker
+    extends org.apache.olingo.ext.proxy.api.StructuredComposableInvoker<Customer, Customer.Operations>
+{
+
+  @Override
+  CustomerComposableInvoker select(String... select);
+
+  @Override
+  CustomerComposableInvoker 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.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 = "Birthday",
+      type = "Edm.DateTimeOffset",
+      nullable = false,
+      defaultValue = "",
+      maxLenght = Integer.MAX_VALUE,
+      fixedLenght = false,
+      precision = 0,
+      scale = 0,
+      unicode = true,
+      collation = "",
+      srid = "")
+  java.sql.Timestamp getBirthday();
+
+  void setBirthday(java.sql.Timestamp _birthday);
+
+  @org.apache.olingo.ext.proxy.api.annotations.Property(name = "TimeBetweenLastTwoOrders",
+      type = "Edm.Duration",
+      nullable = false,
+      defaultValue = "",
+      maxLenght = Integer.MAX_VALUE,
+      fixedLenght = false,
+      precision = 0,
+      scale = 0,
+      unicode = true,
+      collation = "",
+      srid = "")
+  java.math.BigDecimal getTimeBetweenLastTwoOrders();
+
+  void setTimeBetweenLastTwoOrders(java.math.BigDecimal _timeBetweenLastTwoOrders);
+
+  @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);
+
+  @org.apache.olingo.ext.proxy.api.annotations.NavigationProperty(name = "Orders",
+      type = "Microsoft.Test.OData.Services.ODataWCFService.Order",
+      targetSchema = "Microsoft.Test.OData.Services.ODataWCFService",
+      targetContainer = "InMemoryEntities",
+      targetEntitySet = "Orders",
+      containsTarget = false)
+  OrderCollection
+      getOrders();
+
+      void
+      setOrders(
+          OrderCollection _orders);
+
+  @org.apache.olingo.ext.proxy.api.annotations.NavigationProperty(name = "Company",
+      type = "Microsoft.Test.OData.Services.ODataWCFService.Company",
+      targetSchema = "Microsoft.Test.OData.Services.ODataWCFService",
+      targetContainer = "InMemoryEntities",
+      targetEntitySet = "Company",
+      containsTarget = false)
+  Company getCompany();
+
+      void
+      setCompany(
+          Company _company);
+
+}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/d16d2b9c/fit/src/test/java/org/apache/olingo/fit/proxy/staticservice/odatawcfservice/types/Department.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/proxy/staticservice/odatawcfservice/types/Department.java b/fit/src/test/java/org/apache/olingo/fit/proxy/staticservice/odatawcfservice/types/Department.java
new file mode 100644
index 0000000..712b635
--- /dev/null
+++ b/fit/src/test/java/org/apache/olingo/fit/proxy/staticservice/odatawcfservice/types/Department.java
@@ -0,0 +1,120 @@
+/*
+ * 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.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 = "Department",
+    openType = false,
+    hasStream = false,
+    isAbstract = false)
+public interface Department
+    extends org.apache.olingo.ext.proxy.api.Annotatable,
+    org.apache.olingo.ext.proxy.api.EntityType<Department>, org.apache.olingo.ext.proxy.api.StructuredQuery<Department> {
+
+  @Key
+  @org.apache.olingo.ext.proxy.api.annotations.Property(name = "DepartmentID",
+      type = "Edm.Int32",
+      nullable = false,
+      defaultValue = "",
+      maxLenght = Integer.MAX_VALUE,
+      fixedLenght = false,
+      precision = 0,
+      scale = 0,
+      unicode = true,
+      collation = "",
+      srid = "")
+  java.lang.Integer getDepartmentID();
+
+  void setDepartmentID(java.lang.Integer _departmentID);
+
+  @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 = "DepartmentNO",
+      type = "Edm.String",
+      nullable = true,
+      defaultValue = "",
+      maxLenght = Integer.MAX_VALUE,
+      fixedLenght = false,
+      precision = 0,
+      scale = 0,
+      unicode = true,
+      collation = "",
+      srid = "")
+  java.lang.String getDepartmentNO();
+
+  void setDepartmentNO(java.lang.String _departmentNO);
+
+  @org.apache.olingo.ext.proxy.api.annotations.NavigationProperty(name = "Company",
+      type = "Microsoft.Test.OData.Services.ODataWCFService.Company",
+      targetSchema = "Microsoft.Test.OData.Services.ODataWCFService",
+      targetContainer = "InMemoryEntities",
+      targetEntitySet = "Company",
+      containsTarget = false)
+  Company getCompany();
+
+      void
+      setCompany(
+          Company _company);
+
+  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 = "DepartmentID",
+        type = "Edm.Int32")
+    org.apache.olingo.ext.proxy.api.Annotatable getDepartmentIDAnnotations();
+
+    @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 = "DepartmentNO",
+        type = "Edm.String")
+    org.apache.olingo.ext.proxy.api.Annotatable getDepartmentNOAnnotations();
+
+    @org.apache.olingo.ext.proxy.api.annotations.AnnotationsForNavigationProperty(name = "Company",
+        type = "Microsoft.Test.OData.Services.ODataWCFService.Company")
+    org.apache.olingo.ext.proxy.api.Annotatable getCompanyAnnotations();
+  }
+
+}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/d16d2b9c/fit/src/test/java/org/apache/olingo/fit/proxy/staticservice/odatawcfservice/types/DepartmentCollection.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/proxy/staticservice/odatawcfservice/types/DepartmentCollection.java b/fit/src/test/java/org/apache/olingo/fit/proxy/staticservice/odatawcfservice/types/DepartmentCollection.java
new file mode 100644
index 0000000..d5c8576
--- /dev/null
+++ b/fit/src/test/java/org/apache/olingo/fit/proxy/staticservice/odatawcfservice/types/DepartmentCollection.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.odatawcfservice.types;
+
+// CHECKSTYLE:OFF (Maven checkstyle)
+import java.util.Collection;
+// CHECKSTYLE:ON (Maven checkstyle)
+
+import org.apache.olingo.ext.proxy.api.AbstractTerm;
+
+public interface DepartmentCollection
+    extends
+    org.apache.olingo.ext.proxy.api.StructuredCollectionQuery<DepartmentCollection>,
+org.apache.olingo.ext.proxy.api.EntityCollection<Department, DepartmentCollection, DepartmentCollection> {
+
+  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/d16d2b9c/fit/src/test/java/org/apache/olingo/fit/proxy/staticservice/odatawcfservice/types/DepartmentCollectionComposableInvoker.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/proxy/staticservice/odatawcfservice/types/DepartmentCollectionComposableInvoker.java b/fit/src/test/java/org/apache/olingo/fit/proxy/staticservice/odatawcfservice/types/DepartmentCollectionComposableInvoker.java
new file mode 100644
index 0000000..ae7c723
--- /dev/null
+++ b/fit/src/test/java/org/apache/olingo/fit/proxy/staticservice/odatawcfservice/types/DepartmentCollectionComposableInvoker.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.odatawcfservice.types;
+
+// CHECKSTYLE:OFF (Maven checkstyle)
+
+public interface DepartmentCollectionComposableInvoker
+    extends
+    org.apache.olingo.ext.proxy.api.StructuredCollectionComposableInvoker<DepartmentCollection, DepartmentCollection.Operations> {
+
+  @Override
+  DepartmentCollectionComposableInvoker select(String... select);
+
+  @Override
+  DepartmentCollectionComposableInvoker expand(String... expand);
+}