olingo-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From ilgro...@apache.org
Subject [23/57] [abbrv] [OLINGO-169] Making client-api Edm interfaces less dumb
Date Fri, 07 Mar 2014 09:09:12 GMT
http://git-wip-us.apache.org/repos/asf/incubator-olingo-odata4/blob/df906e43/odata4-lib/odata4-client-api/src/main/java/org/apache/olingo/odata4/client/api/edm/v4/OperationImport.java
----------------------------------------------------------------------
diff --git a/odata4-lib/odata4-client-api/src/main/java/org/apache/olingo/odata4/client/api/edm/v4/OperationImport.java b/odata4-lib/odata4-client-api/src/main/java/org/apache/olingo/odata4/client/api/edm/v4/OperationImport.java
new file mode 100644
index 0000000..d7fa80d
--- /dev/null
+++ b/odata4-lib/odata4-client-api/src/main/java/org/apache/olingo/odata4/client/api/edm/v4/OperationImport.java
@@ -0,0 +1,28 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.olingo.odata4.client.api.edm.v4;
+
+import org.apache.olingo.odata4.client.api.edm.Named;
+
+public interface OperationImport extends Named, AnnotatedEdmItem {
+
+  String getEntitySet();
+
+  void setEntitySet(String entitySet);
+}

http://git-wip-us.apache.org/repos/asf/incubator-olingo-odata4/blob/df906e43/odata4-lib/odata4-client-api/src/main/java/org/apache/olingo/odata4/client/api/edm/v4/Parameter.java
----------------------------------------------------------------------
diff --git a/odata4-lib/odata4-client-api/src/main/java/org/apache/olingo/odata4/client/api/edm/v4/Parameter.java b/odata4-lib/odata4-client-api/src/main/java/org/apache/olingo/odata4/client/api/edm/v4/Parameter.java
new file mode 100644
index 0000000..81a70c1
--- /dev/null
+++ b/odata4-lib/odata4-client-api/src/main/java/org/apache/olingo/odata4/client/api/edm/v4/Parameter.java
@@ -0,0 +1,26 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.olingo.odata4.client.api.edm.v4;
+
+public interface Parameter extends org.apache.olingo.odata4.client.api.edm.CommonParameter {
+
+  String getSrid();
+
+  void setSrid(final String srid);
+}

http://git-wip-us.apache.org/repos/asf/incubator-olingo-odata4/blob/df906e43/odata4-lib/odata4-client-api/src/main/java/org/apache/olingo/odata4/client/api/edm/v4/Property.java
----------------------------------------------------------------------
diff --git a/odata4-lib/odata4-client-api/src/main/java/org/apache/olingo/odata4/client/api/edm/v4/Property.java b/odata4-lib/odata4-client-api/src/main/java/org/apache/olingo/odata4/client/api/edm/v4/Property.java
new file mode 100644
index 0000000..a9ea6b6
--- /dev/null
+++ b/odata4-lib/odata4-client-api/src/main/java/org/apache/olingo/odata4/client/api/edm/v4/Property.java
@@ -0,0 +1,25 @@
+/*
+ * 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.odata4.client.api.edm.v4;
+
+import org.apache.olingo.odata4.client.api.edm.CommonProperty;
+
+public interface Property extends CommonProperty, AnnotatedEdmItem {
+
+}

http://git-wip-us.apache.org/repos/asf/incubator-olingo-odata4/blob/df906e43/odata4-lib/odata4-client-api/src/main/java/org/apache/olingo/odata4/client/api/edm/v4/Reference.java
----------------------------------------------------------------------
diff --git a/odata4-lib/odata4-client-api/src/main/java/org/apache/olingo/odata4/client/api/edm/v4/Reference.java b/odata4-lib/odata4-client-api/src/main/java/org/apache/olingo/odata4/client/api/edm/v4/Reference.java
index 9ef0556..ac6e520 100644
--- a/odata4-lib/odata4-client-api/src/main/java/org/apache/olingo/odata4/client/api/edm/v4/Reference.java
+++ b/odata4-lib/odata4-client-api/src/main/java/org/apache/olingo/odata4/client/api/edm/v4/Reference.java
@@ -18,6 +18,18 @@
  */
 package org.apache.olingo.odata4.client.api.edm.v4;
 
+import java.net.URI;
+import java.util.List;
+
 public interface Reference {
 
+  URI getUri();
+
+  void setUri(URI uri);
+
+  List<? extends Include> getIncludes();
+
+  List<? extends IncludeAnnotations> getIncludeAnnotations();
+
+  List<? extends Annotation> getAnnotations();
 }

http://git-wip-us.apache.org/repos/asf/incubator-olingo-odata4/blob/df906e43/odata4-lib/odata4-client-api/src/main/java/org/apache/olingo/odata4/client/api/edm/v4/ReferentialConstraint.java
----------------------------------------------------------------------
diff --git a/odata4-lib/odata4-client-api/src/main/java/org/apache/olingo/odata4/client/api/edm/v4/ReferentialConstraint.java b/odata4-lib/odata4-client-api/src/main/java/org/apache/olingo/odata4/client/api/edm/v4/ReferentialConstraint.java
index f6aa5a6..4f0bd60 100644
--- a/odata4-lib/odata4-client-api/src/main/java/org/apache/olingo/odata4/client/api/edm/v4/ReferentialConstraint.java
+++ b/odata4-lib/odata4-client-api/src/main/java/org/apache/olingo/odata4/client/api/edm/v4/ReferentialConstraint.java
@@ -20,4 +20,12 @@ package org.apache.olingo.odata4.client.api.edm.v4;
 
 public interface ReferentialConstraint {
 
+  String getProperty();
+
+  void setProperty(String property);
+
+  String getReferencedProperty();
+
+  void setReferencedProperty(String referencedProperty);
+
 }

http://git-wip-us.apache.org/repos/asf/incubator-olingo-odata4/blob/df906e43/odata4-lib/odata4-client-api/src/main/java/org/apache/olingo/odata4/client/api/edm/v4/ReturnType.java
----------------------------------------------------------------------
diff --git a/odata4-lib/odata4-client-api/src/main/java/org/apache/olingo/odata4/client/api/edm/v4/ReturnType.java b/odata4-lib/odata4-client-api/src/main/java/org/apache/olingo/odata4/client/api/edm/v4/ReturnType.java
index b2dbc2b..254f81e 100644
--- a/odata4-lib/odata4-client-api/src/main/java/org/apache/olingo/odata4/client/api/edm/v4/ReturnType.java
+++ b/odata4-lib/odata4-client-api/src/main/java/org/apache/olingo/odata4/client/api/edm/v4/ReturnType.java
@@ -18,6 +18,31 @@
  */
 package org.apache.olingo.odata4.client.api.edm.v4;
 
+import java.math.BigInteger;
+
 public interface ReturnType {
 
+  String getMaxLength();
+
+  BigInteger getPrecision();
+
+  BigInteger getScale();
+
+  String getSrid();
+
+  String getType();
+
+  boolean isNullable();
+
+  void setMaxLength(String maxLength);
+
+  void setNullable(boolean nullable);
+
+  void setPrecision(BigInteger precision);
+
+  void setScale(BigInteger scale);
+
+  void setSrid(String srid);
+
+  void setType(String type);
 }

http://git-wip-us.apache.org/repos/asf/incubator-olingo-odata4/blob/df906e43/odata4-lib/odata4-client-api/src/main/java/org/apache/olingo/odata4/client/api/edm/v4/Singleton.java
----------------------------------------------------------------------
diff --git a/odata4-lib/odata4-client-api/src/main/java/org/apache/olingo/odata4/client/api/edm/v4/Singleton.java b/odata4-lib/odata4-client-api/src/main/java/org/apache/olingo/odata4/client/api/edm/v4/Singleton.java
index 154303a..e443d6b 100644
--- a/odata4-lib/odata4-client-api/src/main/java/org/apache/olingo/odata4/client/api/edm/v4/Singleton.java
+++ b/odata4-lib/odata4-client-api/src/main/java/org/apache/olingo/odata4/client/api/edm/v4/Singleton.java
@@ -18,6 +18,15 @@
  */
 package org.apache.olingo.odata4.client.api.edm.v4;
 
-public interface Singleton {
+import java.util.List;
+import org.apache.olingo.odata4.client.api.edm.Named;
+
+public interface Singleton extends Named {
+
+  String getType();
+
+  void setType(String type);
+
+  List<? extends NavigationPropertyBinding> getNavigationPropertyBindings();
 
 }

http://git-wip-us.apache.org/repos/asf/incubator-olingo-odata4/blob/df906e43/odata4-lib/odata4-client-api/src/main/java/org/apache/olingo/odata4/client/api/edm/v4/Term.java
----------------------------------------------------------------------
diff --git a/odata4-lib/odata4-client-api/src/main/java/org/apache/olingo/odata4/client/api/edm/v4/Term.java b/odata4-lib/odata4-client-api/src/main/java/org/apache/olingo/odata4/client/api/edm/v4/Term.java
index 6c01571..4df1d53 100644
--- a/odata4-lib/odata4-client-api/src/main/java/org/apache/olingo/odata4/client/api/edm/v4/Term.java
+++ b/odata4-lib/odata4-client-api/src/main/java/org/apache/olingo/odata4/client/api/edm/v4/Term.java
@@ -18,6 +18,43 @@
  */
 package org.apache.olingo.odata4.client.api.edm.v4;
 
-public interface Term {
+import java.math.BigInteger;
+import java.util.List;
+import org.apache.olingo.odata4.client.api.edm.Named;
 
+public interface Term extends Named {
+
+  List<CSDLElement> getAppliesTo();
+
+  String getBaseTerm();
+
+  String getDefaultValue();
+
+  String getMaxLength();
+
+  BigInteger getPrecision();
+
+  BigInteger getScale();
+
+  String getSrid();
+
+  String getType();
+
+  boolean isNullable();
+
+  void setBaseTerm(String baseTerm);
+
+  void setDefaultValue(String defaultValue);
+
+  void setMaxLength(String maxLength);
+
+  void setNullable(boolean nullable);
+
+  void setPrecision(BigInteger precision);
+
+  void setScale(BigInteger scale);
+
+  void setSrid(String srid);
+
+  void setType(String type);
 }

http://git-wip-us.apache.org/repos/asf/incubator-olingo-odata4/blob/df906e43/odata4-lib/odata4-client-api/src/main/java/org/apache/olingo/odata4/client/api/edm/v4/TypeDefinition.java
----------------------------------------------------------------------
diff --git a/odata4-lib/odata4-client-api/src/main/java/org/apache/olingo/odata4/client/api/edm/v4/TypeDefinition.java b/odata4-lib/odata4-client-api/src/main/java/org/apache/olingo/odata4/client/api/edm/v4/TypeDefinition.java
index 128507c..063d8ee 100644
--- a/odata4-lib/odata4-client-api/src/main/java/org/apache/olingo/odata4/client/api/edm/v4/TypeDefinition.java
+++ b/odata4-lib/odata4-client-api/src/main/java/org/apache/olingo/odata4/client/api/edm/v4/TypeDefinition.java
@@ -18,6 +18,35 @@
  */
 package org.apache.olingo.odata4.client.api.edm.v4;
 
-public interface TypeDefinition {
+import java.math.BigInteger;
+import java.util.List;
+import org.apache.olingo.odata4.client.api.edm.Named;
 
+public interface TypeDefinition extends Named {
+
+  List<? extends Annotation> getAnnotations();
+
+  String getMaxLength();
+
+  BigInteger getPrecision();
+
+  BigInteger getScale();
+
+  String getSrid();
+
+  String getUnderlyingType();
+
+  boolean isUnicode();
+
+  void setMaxLength(String maxLength);
+
+  void setPrecision(BigInteger precision);
+
+  void setScale(BigInteger scale);
+
+  void setSrid(String srid);
+
+  void setUnderlyingType(String underlyingType);
+
+  void setUnicode(boolean unicode);
 }

http://git-wip-us.apache.org/repos/asf/incubator-olingo-odata4/blob/df906e43/odata4-lib/odata4-client-api/src/main/java/org/apache/olingo/odata4/client/api/edm/v4/annotation/ConstExprConstruct.java
----------------------------------------------------------------------
diff --git a/odata4-lib/odata4-client-api/src/main/java/org/apache/olingo/odata4/client/api/edm/v4/annotation/ConstExprConstruct.java b/odata4-lib/odata4-client-api/src/main/java/org/apache/olingo/odata4/client/api/edm/v4/annotation/ConstExprConstruct.java
index 21f1719..bbb0a55 100644
--- a/odata4-lib/odata4-client-api/src/main/java/org/apache/olingo/odata4/client/api/edm/v4/annotation/ConstExprConstruct.java
+++ b/odata4-lib/odata4-client-api/src/main/java/org/apache/olingo/odata4/client/api/edm/v4/annotation/ConstExprConstruct.java
@@ -18,7 +18,7 @@
  */
 package org.apache.olingo.odata4.client.api.edm.v4.annotation;
 
-public interface ConstExprConstruct {
+public interface ConstExprConstruct extends ExprConstruct {
 
   public enum Type {
 

http://git-wip-us.apache.org/repos/asf/incubator-olingo-odata4/blob/df906e43/odata4-lib/odata4-client-api/src/main/java/org/apache/olingo/odata4/client/api/edm/v4/annotation/DynExprConstruct.java
----------------------------------------------------------------------
diff --git a/odata4-lib/odata4-client-api/src/main/java/org/apache/olingo/odata4/client/api/edm/v4/annotation/DynExprConstruct.java b/odata4-lib/odata4-client-api/src/main/java/org/apache/olingo/odata4/client/api/edm/v4/annotation/DynExprConstruct.java
index b409059..cc731dc 100644
--- a/odata4-lib/odata4-client-api/src/main/java/org/apache/olingo/odata4/client/api/edm/v4/annotation/DynExprConstruct.java
+++ b/odata4-lib/odata4-client-api/src/main/java/org/apache/olingo/odata4/client/api/edm/v4/annotation/DynExprConstruct.java
@@ -18,6 +18,6 @@
  */
 package org.apache.olingo.odata4.client.api.edm.v4.annotation;
 
-public interface DynExprConstruct {
+public interface DynExprConstruct extends ExprConstruct {
 
 }

http://git-wip-us.apache.org/repos/asf/incubator-olingo-odata4/blob/df906e43/odata4-lib/odata4-client-api/src/main/java/org/apache/olingo/odata4/client/api/edm/v4/annotation/ExprConstruct.java
----------------------------------------------------------------------
diff --git a/odata4-lib/odata4-client-api/src/main/java/org/apache/olingo/odata4/client/api/edm/v4/annotation/ExprConstruct.java b/odata4-lib/odata4-client-api/src/main/java/org/apache/olingo/odata4/client/api/edm/v4/annotation/ExprConstruct.java
new file mode 100644
index 0000000..3f13616
--- /dev/null
+++ b/odata4-lib/odata4-client-api/src/main/java/org/apache/olingo/odata4/client/api/edm/v4/annotation/ExprConstruct.java
@@ -0,0 +1,23 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.olingo.odata4.client.api.edm.v4.annotation;
+
+public interface ExprConstruct {
+
+}

http://git-wip-us.apache.org/repos/asf/incubator-olingo-odata4/blob/df906e43/odata4-lib/odata4-client-api/src/main/java/org/apache/olingo/odata4/client/api/op/ODataReader.java
----------------------------------------------------------------------
diff --git a/odata4-lib/odata4-client-api/src/main/java/org/apache/olingo/odata4/client/api/op/ODataReader.java b/odata4-lib/odata4-client-api/src/main/java/org/apache/olingo/odata4/client/api/op/ODataReader.java
index b8c2dd5..e6f59db 100644
--- a/odata4-lib/odata4-client-api/src/main/java/org/apache/olingo/odata4/client/api/op/ODataReader.java
+++ b/odata4-lib/odata4-client-api/src/main/java/org/apache/olingo/odata4/client/api/op/ODataReader.java
@@ -20,7 +20,6 @@ package org.apache.olingo.odata4.client.api.op;
 
 import java.io.InputStream;
 import java.io.Serializable;
-import org.apache.olingo.odata4.client.api.ODataError;
 import org.apache.olingo.odata4.client.api.edm.EdmMetadata;
 
 /**
@@ -88,7 +87,6 @@ public interface ODataReader extends Serializable {
    * @return OData error.
    */
 //  ODataError readError(InputStream inputStream, boolean isXML);
-
   /**
    * Parses a stream into the object type specified by the given reference.
    *

http://git-wip-us.apache.org/repos/asf/incubator-olingo-odata4/blob/df906e43/odata4-lib/odata4-client-core/src/main/java/org/apache/olingo/odata4/client/core/data/impl/v3/ODataReaderImpl.java
----------------------------------------------------------------------
diff --git a/odata4-lib/odata4-client-core/src/main/java/org/apache/olingo/odata4/client/core/data/impl/v3/ODataReaderImpl.java b/odata4-lib/odata4-client-core/src/main/java/org/apache/olingo/odata4/client/core/data/impl/v3/ODataReaderImpl.java
index 1be5f4b..180a8a0 100644
--- a/odata4-lib/odata4-client-core/src/main/java/org/apache/olingo/odata4/client/core/data/impl/v3/ODataReaderImpl.java
+++ b/odata4-lib/odata4-client-core/src/main/java/org/apache/olingo/odata4/client/core/data/impl/v3/ODataReaderImpl.java
@@ -19,6 +19,7 @@
 package org.apache.olingo.odata4.client.core.data.impl.v3;
 
 import java.io.InputStream;
+import org.apache.olingo.odata4.client.api.edm.EdmMetadata;
 import org.apache.olingo.odata4.client.core.ODataV3Client;
 import org.apache.olingo.odata4.client.core.op.impl.AbstractODataReader;
 import org.apache.olingo.odata4.client.core.edm.v3.EdmMetadataImpl;

http://git-wip-us.apache.org/repos/asf/incubator-olingo-odata4/blob/df906e43/odata4-lib/odata4-client-core/src/main/java/org/apache/olingo/odata4/client/core/edm/AbstractAnnotations.java
----------------------------------------------------------------------
diff --git a/odata4-lib/odata4-client-core/src/main/java/org/apache/olingo/odata4/client/core/edm/AbstractAnnotations.java b/odata4-lib/odata4-client-core/src/main/java/org/apache/olingo/odata4/client/core/edm/AbstractAnnotations.java
index 5d1d7a4..63f272a 100644
--- a/odata4-lib/odata4-client-core/src/main/java/org/apache/olingo/odata4/client/core/edm/AbstractAnnotations.java
+++ b/odata4-lib/odata4-client-core/src/main/java/org/apache/olingo/odata4/client/core/edm/AbstractAnnotations.java
@@ -19,9 +19,9 @@
 package org.apache.olingo.odata4.client.core.edm;
 
 import com.fasterxml.jackson.annotation.JsonProperty;
-import org.apache.olingo.odata4.client.api.edm.v3.Annotations;
 
-public abstract class AbstractAnnotations extends AbstractEdmItem implements Annotations {
+public abstract class AbstractAnnotations extends AbstractEdmItem
+        implements org.apache.olingo.odata4.client.api.edm.AbstractAnnotations {
 
   private static final long serialVersionUID = 4926640428016042620L;
 
@@ -31,18 +31,22 @@ public abstract class AbstractAnnotations extends AbstractEdmItem implements Ann
   @JsonProperty("Qualifier")
   private String qualifier;
 
+  @Override
   public String getTarget() {
     return target;
   }
 
+  @Override
   public void setTarget(final String target) {
     this.target = target;
   }
 
+  @Override
   public String getQualifier() {
     return qualifier;
   }
 
+  @Override
   public void setQualifier(final String qualifier) {
     this.qualifier = qualifier;
   }

http://git-wip-us.apache.org/repos/asf/incubator-olingo-odata4/blob/df906e43/odata4-lib/odata4-client-core/src/main/java/org/apache/olingo/odata4/client/core/edm/AbstractComplexType.java
----------------------------------------------------------------------
diff --git a/odata4-lib/odata4-client-core/src/main/java/org/apache/olingo/odata4/client/core/edm/AbstractComplexType.java b/odata4-lib/odata4-client-core/src/main/java/org/apache/olingo/odata4/client/core/edm/AbstractComplexType.java
index f3861c8..926db3a 100644
--- a/odata4-lib/odata4-client-core/src/main/java/org/apache/olingo/odata4/client/core/edm/AbstractComplexType.java
+++ b/odata4-lib/odata4-client-core/src/main/java/org/apache/olingo/odata4/client/core/edm/AbstractComplexType.java
@@ -20,6 +20,8 @@ package org.apache.olingo.odata4.client.core.edm;
 
 import com.fasterxml.jackson.databind.annotation.JsonDeserialize;
 import org.apache.olingo.odata4.client.api.edm.ComplexType;
+import org.apache.olingo.odata4.client.api.edm.CommonNavigationProperty;
+import org.apache.olingo.odata4.client.api.edm.CommonProperty;
 import org.apache.olingo.odata4.client.core.op.impl.ComplexTypeDeserializer;
 
 @JsonDeserialize(using = ComplexTypeDeserializer.class)
@@ -38,4 +40,14 @@ public abstract class AbstractComplexType extends AbstractEdmItem implements Com
   public void setName(final String name) {
     this.name = name;
   }
+
+  @Override
+  public CommonProperty getProperty(final String name) {
+    return getOneByName(name, getProperties());
+  }
+
+  @Override
+  public CommonNavigationProperty getNavigationProperty(final String name) {
+    return getOneByName(name, getNavigationProperties());
+  }
 }

http://git-wip-us.apache.org/repos/asf/incubator-olingo-odata4/blob/df906e43/odata4-lib/odata4-client-core/src/main/java/org/apache/olingo/odata4/client/core/edm/AbstractDataServices.java
----------------------------------------------------------------------
diff --git a/odata4-lib/odata4-client-core/src/main/java/org/apache/olingo/odata4/client/core/edm/AbstractDataServices.java b/odata4-lib/odata4-client-core/src/main/java/org/apache/olingo/odata4/client/core/edm/AbstractDataServices.java
index ab1ad1d..378ff01 100644
--- a/odata4-lib/odata4-client-core/src/main/java/org/apache/olingo/odata4/client/core/edm/AbstractDataServices.java
+++ b/odata4-lib/odata4-client-core/src/main/java/org/apache/olingo/odata4/client/core/edm/AbstractDataServices.java
@@ -36,8 +36,8 @@ public abstract class AbstractDataServices extends AbstractEdmItem implements Da
   }
 
   @Override
-  public void setDataServiceVersion(final String dataServiceVersion) {
-    this.dataServiceVersion = dataServiceVersion;
+  public void setDataServiceVersion(final String version) {
+    this.dataServiceVersion = version;
   }
 
   @Override
@@ -46,7 +46,7 @@ public abstract class AbstractDataServices extends AbstractEdmItem implements Da
   }
 
   @Override
-  public void setMaxDataServiceVersion(final String maxDataServiceVersion) {
-    this.maxDataServiceVersion = maxDataServiceVersion;
+  public void setMaxDataServiceVersion(final String version) {
+    this.maxDataServiceVersion = version;
   }
 }

http://git-wip-us.apache.org/repos/asf/incubator-olingo-odata4/blob/df906e43/odata4-lib/odata4-client-core/src/main/java/org/apache/olingo/odata4/client/core/edm/AbstractEdmItem.java
----------------------------------------------------------------------
diff --git a/odata4-lib/odata4-client-core/src/main/java/org/apache/olingo/odata4/client/core/edm/AbstractEdmItem.java b/odata4-lib/odata4-client-core/src/main/java/org/apache/olingo/odata4/client/core/edm/AbstractEdmItem.java
index da6dca9..f359a04 100644
--- a/odata4-lib/odata4-client-core/src/main/java/org/apache/olingo/odata4/client/core/edm/AbstractEdmItem.java
+++ b/odata4-lib/odata4-client-core/src/main/java/org/apache/olingo/odata4/client/core/edm/AbstractEdmItem.java
@@ -18,13 +18,32 @@
  */
 package org.apache.olingo.odata4.client.core.edm;
 
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.List;
 import org.apache.commons.lang3.builder.EqualsBuilder;
 import org.apache.commons.lang3.builder.HashCodeBuilder;
 import org.apache.commons.lang3.builder.ReflectionToStringBuilder;
 import org.apache.commons.lang3.builder.ToStringStyle;
+import org.apache.olingo.odata4.client.api.edm.Named;
 
 public abstract class AbstractEdmItem {
 
+  protected <T extends Named> T getOneByName(final String name, final Collection<T> items) {
+    final List<T> result = getAllByName(name, items);
+    return result.isEmpty() ? null : result.get(0);
+  }
+
+  protected <T extends Named> List<T> getAllByName(final String name, final Collection<T> items) {
+    final List<T> result = new ArrayList<T>();
+    for (T type : items) {
+      if (name.equals(type.getName())) {
+        result.add(type);
+      }
+    }
+    return result;
+  }
+
   @Override
   public boolean equals(final Object obj) {
     return EqualsBuilder.reflectionEquals(this, obj);

http://git-wip-us.apache.org/repos/asf/incubator-olingo-odata4/blob/df906e43/odata4-lib/odata4-client-core/src/main/java/org/apache/olingo/odata4/client/core/edm/AbstractEntityContainer.java
----------------------------------------------------------------------
diff --git a/odata4-lib/odata4-client-core/src/main/java/org/apache/olingo/odata4/client/core/edm/AbstractEntityContainer.java b/odata4-lib/odata4-client-core/src/main/java/org/apache/olingo/odata4/client/core/edm/AbstractEntityContainer.java
index e9c3810..15789a7 100644
--- a/odata4-lib/odata4-client-core/src/main/java/org/apache/olingo/odata4/client/core/edm/AbstractEntityContainer.java
+++ b/odata4-lib/odata4-client-core/src/main/java/org/apache/olingo/odata4/client/core/edm/AbstractEntityContainer.java
@@ -19,11 +19,10 @@
 package org.apache.olingo.odata4.client.core.edm;
 
 import com.fasterxml.jackson.databind.annotation.JsonDeserialize;
-import java.util.ArrayList;
 import java.util.List;
 import org.apache.olingo.odata4.client.api.edm.EntityContainer;
 import org.apache.olingo.odata4.client.api.edm.EntitySet;
-import org.apache.olingo.odata4.client.api.edm.FunctionImport;
+import org.apache.olingo.odata4.client.api.edm.CommonFunctionImport;
 import org.apache.olingo.odata4.client.core.op.impl.EntityContainerDeserializer;
 
 @JsonDeserialize(using = EntityContainerDeserializer.class)
@@ -39,47 +38,49 @@ public abstract class AbstractEntityContainer extends AbstractEdmItem implements
 
   private boolean defaultEntityContainer;
 
+  @Override
   public String getName() {
     return name;
   }
 
+  @Override
   public void setName(final String name) {
     this.name = name;
   }
 
+  @Override
   public String getExtends() {
     return _extends;
   }
 
+  @Override
   public void setExtends(final String _extends) {
     this._extends = _extends;
   }
 
+  @Override
   public boolean isLazyLoadingEnabled() {
     return lazyLoadingEnabled;
   }
 
+  @Override
   public void setLazyLoadingEnabled(final boolean lazyLoadingEnabled) {
     this.lazyLoadingEnabled = lazyLoadingEnabled;
   }
 
+  @Override
   public boolean isDefaultEntityContainer() {
     return defaultEntityContainer;
   }
 
+  @Override
   public void setDefaultEntityContainer(final boolean defaultEntityContainer) {
     this.defaultEntityContainer = defaultEntityContainer;
   }
 
   @Override
   public EntitySet getEntitySet(final String name) {
-    EntitySet result = null;
-    for (EntitySet entitySet : getEntitySets()) {
-      if (name.equals(entitySet.getName())) {
-        result = entitySet;
-      }
-    }
-    return result;
+    return getOneByName(name, getEntitySets());
   }
 
   /**
@@ -88,11 +89,9 @@ public abstract class AbstractEntityContainer extends AbstractEdmItem implements
    * @param name name.
    * @return function import.
    */
-  public FunctionImport getFunctionImport(final String name) {
-    final List<? extends FunctionImport> funcImps = getFunctionImports(name);
-    return funcImps.isEmpty()
-            ? null
-            : funcImps.get(0);
+  @Override
+  public CommonFunctionImport getFunctionImport(final String name) {
+    return getOneByName(name, getFunctionImports());
   }
 
   /**
@@ -101,13 +100,8 @@ public abstract class AbstractEntityContainer extends AbstractEdmItem implements
    * @param name name.
    * @return function imports.
    */
-  public List<? extends FunctionImport> getFunctionImports(final String name) {
-    final List<FunctionImport> result = new ArrayList<FunctionImport>();
-    for (FunctionImport functionImport : getFunctionImports()) {
-      if (name.equals(functionImport.getName())) {
-        result.add(functionImport);
-      }
-    }
-    return result;
+  @Override
+  public List<? extends CommonFunctionImport> getFunctionImports(final String name) {
+    return getAllByName(name, getFunctionImports());
   }
 }

http://git-wip-us.apache.org/repos/asf/incubator-olingo-odata4/blob/df906e43/odata4-lib/odata4-client-core/src/main/java/org/apache/olingo/odata4/client/core/edm/AbstractEntityType.java
----------------------------------------------------------------------
diff --git a/odata4-lib/odata4-client-core/src/main/java/org/apache/olingo/odata4/client/core/edm/AbstractEntityType.java b/odata4-lib/odata4-client-core/src/main/java/org/apache/olingo/odata4/client/core/edm/AbstractEntityType.java
index 741bb3d..27eeabb 100644
--- a/odata4-lib/odata4-client-core/src/main/java/org/apache/olingo/odata4/client/core/edm/AbstractEntityType.java
+++ b/odata4-lib/odata4-client-core/src/main/java/org/apache/olingo/odata4/client/core/edm/AbstractEntityType.java
@@ -19,6 +19,7 @@
 package org.apache.olingo.odata4.client.core.edm;
 
 import com.fasterxml.jackson.databind.annotation.JsonDeserialize;
+import org.apache.olingo.odata4.client.api.edm.EntityKey;
 import org.apache.olingo.odata4.client.api.edm.EntityType;
 import org.apache.olingo.odata4.client.core.op.impl.EntityTypeDeserializer;
 
@@ -37,42 +38,51 @@ public abstract class AbstractEntityType extends AbstractComplexType implements
 
   private EntityKeyImpl key;
 
+  @Override
   public boolean isAbstractEntityType() {
     return abstractEntityType;
   }
 
+  @Override
   public void setAbstractEntityType(final boolean abstractEntityType) {
     this.abstractEntityType = abstractEntityType;
   }
 
+  @Override
   public String getBaseType() {
     return baseType;
   }
 
+  @Override
   public void setBaseType(final String baseType) {
     this.baseType = baseType;
   }
 
+  @Override
   public boolean isOpenType() {
     return openType;
   }
 
+  @Override
   public void setOpenType(final boolean openType) {
     this.openType = openType;
   }
 
+  @Override
   public EntityKeyImpl getKey() {
     return key;
   }
 
-  public void setKey(final EntityKeyImpl key) {
-    this.key = key;
+  public void setKey(final EntityKey key) {
+    this.key = (EntityKeyImpl) key;
   }
 
+  @Override
   public boolean isHasStream() {
     return hasStream;
   }
 
+  @Override
   public void setHasStream(final boolean hasStream) {
     this.hasStream = hasStream;
   }

http://git-wip-us.apache.org/repos/asf/incubator-olingo-odata4/blob/df906e43/odata4-lib/odata4-client-core/src/main/java/org/apache/olingo/odata4/client/core/edm/AbstractFunctionImport.java
----------------------------------------------------------------------
diff --git a/odata4-lib/odata4-client-core/src/main/java/org/apache/olingo/odata4/client/core/edm/AbstractFunctionImport.java b/odata4-lib/odata4-client-core/src/main/java/org/apache/olingo/odata4/client/core/edm/AbstractFunctionImport.java
deleted file mode 100644
index 9f6200d..0000000
--- a/odata4-lib/odata4-client-core/src/main/java/org/apache/olingo/odata4/client/core/edm/AbstractFunctionImport.java
+++ /dev/null
@@ -1,27 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- *   http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-package org.apache.olingo.odata4.client.core.edm;
-
-import org.apache.olingo.odata4.client.api.edm.FunctionImport;
-
-public abstract class AbstractFunctionImport extends AbstractEdmItem implements FunctionImport {
-
-  private static final long serialVersionUID = 4154308065211315663L;
-
-}

http://git-wip-us.apache.org/repos/asf/incubator-olingo-odata4/blob/df906e43/odata4-lib/odata4-client-core/src/main/java/org/apache/olingo/odata4/client/core/edm/AbstractNavigationProperty.java
----------------------------------------------------------------------
diff --git a/odata4-lib/odata4-client-core/src/main/java/org/apache/olingo/odata4/client/core/edm/AbstractNavigationProperty.java b/odata4-lib/odata4-client-core/src/main/java/org/apache/olingo/odata4/client/core/edm/AbstractNavigationProperty.java
index b02bbda..c369887 100644
--- a/odata4-lib/odata4-client-core/src/main/java/org/apache/olingo/odata4/client/core/edm/AbstractNavigationProperty.java
+++ b/odata4-lib/odata4-client-core/src/main/java/org/apache/olingo/odata4/client/core/edm/AbstractNavigationProperty.java
@@ -19,19 +19,21 @@
 package org.apache.olingo.odata4.client.core.edm;
 
 import com.fasterxml.jackson.annotation.JsonProperty;
-import org.apache.olingo.odata4.client.api.edm.NavigationProperty;
+import org.apache.olingo.odata4.client.api.edm.CommonNavigationProperty;
 
-public class AbstractNavigationProperty extends AbstractEdmItem implements NavigationProperty {
+public class AbstractNavigationProperty extends AbstractEdmItem implements CommonNavigationProperty {
 
   private static final long serialVersionUID = 3112463683071069594L;
 
   @JsonProperty(value = "Name", required = true)
   private String name;
 
+  @Override
   public String getName() {
     return name;
   }
 
+  @Override
   public void setName(final String name) {
     this.name = name;
   }

http://git-wip-us.apache.org/repos/asf/incubator-olingo-odata4/blob/df906e43/odata4-lib/odata4-client-core/src/main/java/org/apache/olingo/odata4/client/core/edm/AbstractParameter.java
----------------------------------------------------------------------
diff --git a/odata4-lib/odata4-client-core/src/main/java/org/apache/olingo/odata4/client/core/edm/AbstractParameter.java b/odata4-lib/odata4-client-core/src/main/java/org/apache/olingo/odata4/client/core/edm/AbstractParameter.java
index 7be7977..f709d50 100644
--- a/odata4-lib/odata4-client-core/src/main/java/org/apache/olingo/odata4/client/core/edm/AbstractParameter.java
+++ b/odata4-lib/odata4-client-core/src/main/java/org/apache/olingo/odata4/client/core/edm/AbstractParameter.java
@@ -20,9 +20,9 @@ package org.apache.olingo.odata4.client.core.edm;
 
 import com.fasterxml.jackson.annotation.JsonProperty;
 import java.math.BigInteger;
-import org.apache.olingo.odata4.client.api.edm.Parameter;
+import org.apache.olingo.odata4.client.api.edm.CommonParameter;
 
-public abstract class AbstractParameter extends AbstractEdmItem implements Parameter {
+public abstract class AbstractParameter extends AbstractEdmItem implements CommonParameter {
 
   private static final long serialVersionUID = -4305016554930334342L;
 
@@ -44,50 +44,62 @@ public abstract class AbstractParameter extends AbstractEdmItem implements Param
   @JsonProperty("Scale")
   private BigInteger scale;
 
+  @Override
   public String getName() {
     return name;
   }
 
+  @Override
   public void setName(final String name) {
     this.name = name;
   }
 
+  @Override
   public String getType() {
     return type;
   }
 
+  @Override
   public void setType(final String type) {
     this.type = type;
   }
 
+  @Override
   public boolean isNullable() {
     return nullable;
   }
 
+  @Override
   public void setNullable(final boolean nullable) {
     this.nullable = nullable;
   }
 
+  @Override
   public String getMaxLength() {
     return maxLength;
   }
 
+  @Override
   public void setMaxLength(final String maxLength) {
     this.maxLength = maxLength;
   }
 
+  @Override
   public BigInteger getPrecision() {
     return precision;
   }
 
+  @Override
   public void setPrecision(final BigInteger precision) {
     this.precision = precision;
   }
 
+  @Override
   public BigInteger getScale() {
     return scale;
   }
 
+  @Override
   public void setScale(final BigInteger scale) {
     this.scale = scale;
   }

http://git-wip-us.apache.org/repos/asf/incubator-olingo-odata4/blob/df906e43/odata4-lib/odata4-client-core/src/main/java/org/apache/olingo/odata4/client/core/edm/AbstractProperty.java
----------------------------------------------------------------------
diff --git a/odata4-lib/odata4-client-core/src/main/java/org/apache/olingo/odata4/client/core/edm/AbstractProperty.java b/odata4-lib/odata4-client-core/src/main/java/org/apache/olingo/odata4/client/core/edm/AbstractProperty.java
index 0cf68bb..893504a 100644
--- a/odata4-lib/odata4-client-core/src/main/java/org/apache/olingo/odata4/client/core/edm/AbstractProperty.java
+++ b/odata4-lib/odata4-client-core/src/main/java/org/apache/olingo/odata4/client/core/edm/AbstractProperty.java
@@ -20,12 +20,11 @@ package org.apache.olingo.odata4.client.core.edm;
 
 import com.fasterxml.jackson.annotation.JsonProperty;
 import java.math.BigInteger;
-import org.apache.olingo.odata4.client.api.edm.Property;
+import org.apache.olingo.odata4.client.api.edm.CommonProperty;
 import org.apache.olingo.odata4.commons.api.edm.constants.ConcurrencyMode;
-import org.apache.olingo.odata4.commons.api.edm.constants.EdmContentKind;
 import org.apache.olingo.odata4.commons.api.edm.constants.StoreGeneratedPattern;
 
-public abstract class AbstractProperty extends AbstractEdmItem implements Property {
+public abstract class AbstractProperty extends AbstractEdmItem implements CommonProperty {
 
   private static final long serialVersionUID = -6004492361142315153L;
 
@@ -65,24 +64,6 @@ public abstract class AbstractProperty extends AbstractEdmItem implements Proper
   @JsonProperty(value = "ConcurrencyMode")
   private ConcurrencyMode concurrencyMode;
 
-  @JsonProperty("FC_SourcePath")
-  private String fcSourcePath;
-
-  @JsonProperty("FC_TargetPath")
-  private String fcTargetPath;
-
-  @JsonProperty("FC_ContentKind")
-  private EdmContentKind fcContentKind = EdmContentKind.text;
-
-  @JsonProperty("FC_NsPrefix")
-  private String fcNSPrefix;
-
-  @JsonProperty("FC_NsUri")
-  private String fcNSURI;
-
-  @JsonProperty("FC_KeepInContent")
-  private boolean fcKeepInContent = true;
-
   @JsonProperty("StoreGeneratedPattern")
   private StoreGeneratedPattern storeGeneratedPattern = StoreGeneratedPattern.None;
 
@@ -91,146 +72,121 @@ public abstract class AbstractProperty extends AbstractEdmItem implements Proper
     return name;
   }
 
+  @Override
   public void setName(final String name) {
     this.name = name;
   }
 
+  @Override
   public String getType() {
     return type;
   }
 
+  @Override
   public void setType(final String type) {
     this.type = type;
   }
 
+  @Override
   public boolean isNullable() {
     return nullable;
   }
 
+  @Override
   public void setNullable(final boolean nullable) {
     this.nullable = nullable;
   }
 
+  @Override
   public String getDefaultValue() {
     return defaultValue;
   }
 
+  @Override
   public void setDefaultValue(final String defaultValue) {
     this.defaultValue = defaultValue;
   }
 
+  @Override
   public String getMaxLength() {
     return maxLength;
   }
 
+  @Override
   public void setMaxLength(final String maxLength) {
     this.maxLength = maxLength;
   }
 
+  @Override
   public boolean isFixedLength() {
     return fixedLength;
   }
 
+  @Override
   public void setFixedLength(final boolean fixedLength) {
     this.fixedLength = fixedLength;
   }
 
+  @Override
   public BigInteger getPrecision() {
     return precision;
   }
 
+  @Override
   public void setPrecision(final BigInteger precision) {
     this.precision = precision;
   }
 
+  @Override
   public BigInteger getScale() {
     return scale;
   }
 
+  @Override
   public void setScale(final BigInteger scale) {
     this.scale = scale;
   }
 
+  @Override
   public boolean isUnicode() {
     return unicode;
   }
 
+  @Override
   public void setUnicode(final boolean unicode) {
     this.unicode = unicode;
   }
 
+  @Override
   public String getCollation() {
     return collation;
   }
 
+  @Override
   public void setCollation(final String collation) {
     this.collation = collation;
   }
 
+  @Override
   public String getSrid() {
     return srid;
   }
 
+  @Override
   public void setSrid(final String srid) {
     this.srid = srid;
   }
 
+  @Override
   public ConcurrencyMode getConcurrencyMode() {
     return concurrencyMode;
   }
 
+  @Override
   public void setConcurrencyMode(final ConcurrencyMode concurrencyMode) {
     this.concurrencyMode = concurrencyMode;
   }
 
-  public String getFcSourcePath() {
-    return fcSourcePath;
-  }
-
-  public void setFcSourcePath(final String fcSourcePath) {
-    this.fcSourcePath = fcSourcePath;
-  }
-
-  public String getFcTargetPath() {
-    return fcTargetPath;
-  }
-
-  public void setFcTargetPath(final String fcTargetPath) {
-    this.fcTargetPath = fcTargetPath;
-  }
-
-  public EdmContentKind getFcContentKind() {
-    return fcContentKind;
-  }
-
-  public void setFcContentKind(final EdmContentKind fcContentKind) {
-    this.fcContentKind = fcContentKind;
-  }
-
-  public String getFcNSPrefix() {
-    return fcNSPrefix;
-  }
-
-  public void setFcNSPrefix(final String fcNSPrefix) {
-    this.fcNSPrefix = fcNSPrefix;
-  }
-
-  public String getFcNSURI() {
-    return fcNSURI;
-  }
-
-  public void setFcNSURI(final String fcNSURI) {
-    this.fcNSURI = fcNSURI;
-  }
-
-  public boolean isFcKeepInContent() {
-    return fcKeepInContent;
-  }
-
-  public void setFcKeepInContent(final boolean fcKeepInContent) {
-    this.fcKeepInContent = fcKeepInContent;
-  }
-
   public StoreGeneratedPattern getStoreGeneratedPattern() {
     return storeGeneratedPattern;
   }

http://git-wip-us.apache.org/repos/asf/incubator-olingo-odata4/blob/df906e43/odata4-lib/odata4-client-core/src/main/java/org/apache/olingo/odata4/client/core/edm/AbstractSchema.java
----------------------------------------------------------------------
diff --git a/odata4-lib/odata4-client-core/src/main/java/org/apache/olingo/odata4/client/core/edm/AbstractSchema.java b/odata4-lib/odata4-client-core/src/main/java/org/apache/olingo/odata4/client/core/edm/AbstractSchema.java
index 5aee6e2..809bc8d 100644
--- a/odata4-lib/odata4-client-core/src/main/java/org/apache/olingo/odata4/client/core/edm/AbstractSchema.java
+++ b/odata4-lib/odata4-client-core/src/main/java/org/apache/olingo/odata4/client/core/edm/AbstractSchema.java
@@ -56,34 +56,16 @@ public abstract class AbstractSchema extends AbstractEdmItem implements Schema {
 
   @Override
   public EnumType getEnumType(final String name) {
-    EnumType result = null;
-    for (EnumType type : getEnumTypes()) {
-      if (name.equals(type.getName())) {
-        result = type;
-      }
-    }
-    return result;
+    return getOneByName(name, getEnumTypes());
   }
 
   @Override
   public ComplexType getComplexType(final String name) {
-    ComplexType result = null;
-    for (ComplexType type : getComplexTypes()) {
-      if (name.equals(type.getName())) {
-        result = type;
-      }
-    }
-    return result;
+    return getOneByName(name, getComplexTypes());
   }
 
   @Override
   public EntityType getEntityType(final String name) {
-    EntityType result = null;
-    for (EntityType type : getEntityTypes()) {
-      if (name.equals(type.getName())) {
-        result = type;
-      }
-    }
-    return result;
+    return getOneByName(name, getEntityTypes());
   }
 }

http://git-wip-us.apache.org/repos/asf/incubator-olingo-odata4/blob/df906e43/odata4-lib/odata4-client-core/src/main/java/org/apache/olingo/odata4/client/core/edm/EntityKeyImpl.java
----------------------------------------------------------------------
diff --git a/odata4-lib/odata4-client-core/src/main/java/org/apache/olingo/odata4/client/core/edm/EntityKeyImpl.java b/odata4-lib/odata4-client-core/src/main/java/org/apache/olingo/odata4/client/core/edm/EntityKeyImpl.java
index 75662a4..7d5de43 100644
--- a/odata4-lib/odata4-client-core/src/main/java/org/apache/olingo/odata4/client/core/edm/EntityKeyImpl.java
+++ b/odata4-lib/odata4-client-core/src/main/java/org/apache/olingo/odata4/client/core/edm/EntityKeyImpl.java
@@ -29,13 +29,10 @@ public class EntityKeyImpl extends AbstractEdmItem implements EntityKey {
 
   private static final long serialVersionUID = 2586047015894794685L;
 
-  private List<PropertyRefImpl> propertyRefs = new ArrayList<PropertyRefImpl>();
+  private final List<PropertyRefImpl> propertyRefs = new ArrayList<PropertyRefImpl>();
 
+  @Override
   public List<PropertyRefImpl> getPropertyRefs() {
     return propertyRefs;
   }
-
-  public void setPropertyRefs(final List<PropertyRefImpl> propertyRefs) {
-    this.propertyRefs = propertyRefs;
-  }
 }

http://git-wip-us.apache.org/repos/asf/incubator-olingo-odata4/blob/df906e43/odata4-lib/odata4-client-core/src/main/java/org/apache/olingo/odata4/client/core/edm/EntitySetImpl.java
----------------------------------------------------------------------
diff --git a/odata4-lib/odata4-client-core/src/main/java/org/apache/olingo/odata4/client/core/edm/EntitySetImpl.java b/odata4-lib/odata4-client-core/src/main/java/org/apache/olingo/odata4/client/core/edm/EntitySetImpl.java
deleted file mode 100644
index e65e3d2..0000000
--- a/odata4-lib/odata4-client-core/src/main/java/org/apache/olingo/odata4/client/core/edm/EntitySetImpl.java
+++ /dev/null
@@ -1,25 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- *   http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-package org.apache.olingo.odata4.client.core.edm;
-
-public class EntitySetImpl extends AbstractEntitySet {
-
-  private static final long serialVersionUID = 5570833733884884012L;
-
-}

http://git-wip-us.apache.org/repos/asf/incubator-olingo-odata4/blob/df906e43/odata4-lib/odata4-client-core/src/main/java/org/apache/olingo/odata4/client/core/edm/OnDeleteImpl.java
----------------------------------------------------------------------
diff --git a/odata4-lib/odata4-client-core/src/main/java/org/apache/olingo/odata4/client/core/edm/OnDeleteImpl.java b/odata4-lib/odata4-client-core/src/main/java/org/apache/olingo/odata4/client/core/edm/OnDeleteImpl.java
index 5bf83b6..98f3a8a 100644
--- a/odata4-lib/odata4-client-core/src/main/java/org/apache/olingo/odata4/client/core/edm/OnDeleteImpl.java
+++ b/odata4-lib/odata4-client-core/src/main/java/org/apache/olingo/odata4/client/core/edm/OnDeleteImpl.java
@@ -20,7 +20,7 @@ package org.apache.olingo.odata4.client.core.edm;
 
 import org.apache.olingo.odata4.client.api.edm.v4.OnDeleteAction;
 import com.fasterxml.jackson.annotation.JsonProperty;
-import org.apache.olingo.odata4.client.api.edm.v4.OnDelete;
+import org.apache.olingo.odata4.client.api.edm.OnDelete;
 
 public class OnDeleteImpl extends AbstractEdmItem implements OnDelete {
 

http://git-wip-us.apache.org/repos/asf/incubator-olingo-odata4/blob/df906e43/odata4-lib/odata4-client-core/src/main/java/org/apache/olingo/odata4/client/core/edm/PropertyRefImpl.java
----------------------------------------------------------------------
diff --git a/odata4-lib/odata4-client-core/src/main/java/org/apache/olingo/odata4/client/core/edm/PropertyRefImpl.java b/odata4-lib/odata4-client-core/src/main/java/org/apache/olingo/odata4/client/core/edm/PropertyRefImpl.java
index f31b1a1..f34d0d4 100644
--- a/odata4-lib/odata4-client-core/src/main/java/org/apache/olingo/odata4/client/core/edm/PropertyRefImpl.java
+++ b/odata4-lib/odata4-client-core/src/main/java/org/apache/olingo/odata4/client/core/edm/PropertyRefImpl.java
@@ -31,18 +31,22 @@ public class PropertyRefImpl extends AbstractEdmItem implements PropertyRef {
   @JsonProperty(value = "Alias")
   private String alias;
 
+  @Override
   public String getName() {
     return name;
   }
 
+  @Override
   public void setName(final String name) {
     this.name = name;
   }
 
+  @Override
   public String getAlias() {
     return alias;
   }
 
+  @Override
   public void setAlias(final String alias) {
     this.alias = alias;
   }

http://git-wip-us.apache.org/repos/asf/incubator-olingo-odata4/blob/df906e43/odata4-lib/odata4-client-core/src/main/java/org/apache/olingo/odata4/client/core/edm/v3/AnnotationsImpl.java
----------------------------------------------------------------------
diff --git a/odata4-lib/odata4-client-core/src/main/java/org/apache/olingo/odata4/client/core/edm/v3/AnnotationsImpl.java b/odata4-lib/odata4-client-core/src/main/java/org/apache/olingo/odata4/client/core/edm/v3/AnnotationsImpl.java
index 0057dca..7b68771 100644
--- a/odata4-lib/odata4-client-core/src/main/java/org/apache/olingo/odata4/client/core/edm/v3/AnnotationsImpl.java
+++ b/odata4-lib/odata4-client-core/src/main/java/org/apache/olingo/odata4/client/core/edm/v3/AnnotationsImpl.java
@@ -21,10 +21,11 @@ package org.apache.olingo.odata4.client.core.edm.v3;
 import com.fasterxml.jackson.databind.annotation.JsonDeserialize;
 import java.util.ArrayList;
 import java.util.List;
+import org.apache.olingo.odata4.client.api.edm.v3.Annotations;
 import org.apache.olingo.odata4.client.core.edm.AbstractAnnotations;
 
 @JsonDeserialize(using = AnnotationsDeserializer.class)
-public class AnnotationsImpl extends AbstractAnnotations {
+public class AnnotationsImpl extends AbstractAnnotations implements Annotations {
 
   private static final long serialVersionUID = 3877353656301805410L;
 
@@ -32,10 +33,12 @@ public class AnnotationsImpl extends AbstractAnnotations {
 
   private final List<ValueAnnotationImpl> valueAnnotations = new ArrayList<ValueAnnotationImpl>();
 
+  @Override
   public List<TypeAnnotationImpl> getTypeAnnotations() {
     return typeAnnotations;
   }
 
+  @Override
   public List<ValueAnnotationImpl> getValueAnnotations() {
     return valueAnnotations;
   }

http://git-wip-us.apache.org/repos/asf/incubator-olingo-odata4/blob/df906e43/odata4-lib/odata4-client-core/src/main/java/org/apache/olingo/odata4/client/core/edm/v3/AssociationEndImpl.java
----------------------------------------------------------------------
diff --git a/odata4-lib/odata4-client-core/src/main/java/org/apache/olingo/odata4/client/core/edm/v3/AssociationEndImpl.java b/odata4-lib/odata4-client-core/src/main/java/org/apache/olingo/odata4/client/core/edm/v3/AssociationEndImpl.java
index fd235ad..0b41ff7 100644
--- a/odata4-lib/odata4-client-core/src/main/java/org/apache/olingo/odata4/client/core/edm/v3/AssociationEndImpl.java
+++ b/odata4-lib/odata4-client-core/src/main/java/org/apache/olingo/odata4/client/core/edm/v3/AssociationEndImpl.java
@@ -19,7 +19,7 @@
 package org.apache.olingo.odata4.client.core.edm.v3;
 
 import com.fasterxml.jackson.annotation.JsonProperty;
-import org.apache.olingo.odata4.client.api.edm.v4.OnDelete;
+import org.apache.olingo.odata4.client.api.edm.OnDelete;
 import org.apache.olingo.odata4.client.api.edm.v3.AssociationEnd;
 import org.apache.olingo.odata4.client.core.edm.AbstractEdmItem;
 
@@ -39,34 +39,42 @@ public class AssociationEndImpl extends AbstractEdmItem implements AssociationEn
   @JsonProperty(value = "OnDelete")
   private OnDelete onDelete;
 
+  @Override
   public String getType() {
     return type;
   }
 
+  @Override
   public void setType(final String type) {
     this.type = type;
   }
 
+  @Override
   public String getRole() {
     return role;
   }
 
+  @Override
   public void setRole(final String role) {
     this.role = role;
   }
 
+  @Override
   public String getMultiplicity() {
     return multiplicity;
   }
 
+  @Override
   public void setMultiplicity(final String multiplicity) {
     this.multiplicity = multiplicity;
   }
 
+  @Override
   public OnDelete getOnDelete() {
     return onDelete;
   }
 
+  @Override
   public void setOnDelete(final OnDelete onDelete) {
     this.onDelete = onDelete;
   }

http://git-wip-us.apache.org/repos/asf/incubator-olingo-odata4/blob/df906e43/odata4-lib/odata4-client-core/src/main/java/org/apache/olingo/odata4/client/core/edm/v3/AssociationImpl.java
----------------------------------------------------------------------
diff --git a/odata4-lib/odata4-client-core/src/main/java/org/apache/olingo/odata4/client/core/edm/v3/AssociationImpl.java b/odata4-lib/odata4-client-core/src/main/java/org/apache/olingo/odata4/client/core/edm/v3/AssociationImpl.java
index edd69a9..f7e2a31 100644
--- a/odata4-lib/odata4-client-core/src/main/java/org/apache/olingo/odata4/client/core/edm/v3/AssociationImpl.java
+++ b/odata4-lib/odata4-client-core/src/main/java/org/apache/olingo/odata4/client/core/edm/v3/AssociationImpl.java
@@ -21,11 +21,12 @@ package org.apache.olingo.odata4.client.core.edm.v3;
 import com.fasterxml.jackson.databind.annotation.JsonDeserialize;
 import java.util.ArrayList;
 import java.util.List;
+import org.apache.olingo.odata4.client.api.edm.v3.Association;
 import org.apache.olingo.odata4.client.api.edm.v3.ReferentialConstraint;
 import org.apache.olingo.odata4.client.core.edm.AbstractEdmItem;
 
 @JsonDeserialize(using = AssociationDeserializer.class)
-public class AssociationImpl extends AbstractEdmItem {
+public class AssociationImpl extends AbstractEdmItem implements Association {
 
   private static final long serialVersionUID = 73763231919532482L;
 
@@ -35,27 +36,28 @@ public class AssociationImpl extends AbstractEdmItem {
 
   private List<AssociationEndImpl> ends = new ArrayList<AssociationEndImpl>();
 
+  @Override
   public String getName() {
     return name;
   }
 
+  @Override
   public void setName(final String name) {
     this.name = name;
   }
 
+  @Override
   public ReferentialConstraint getReferentialConstraint() {
     return referentialConstraint;
   }
 
+  @Override
   public void setReferentialConstraint(final ReferentialConstraint referentialConstraint) {
     this.referentialConstraint = referentialConstraint;
   }
 
+  @Override
   public List<AssociationEndImpl> getEnds() {
     return ends;
   }
-
-  public void setEnds(final List<AssociationEndImpl> ends) {
-    this.ends = ends;
-  }
 }

http://git-wip-us.apache.org/repos/asf/incubator-olingo-odata4/blob/df906e43/odata4-lib/odata4-client-core/src/main/java/org/apache/olingo/odata4/client/core/edm/v3/AssociationSetEndImpl.java
----------------------------------------------------------------------
diff --git a/odata4-lib/odata4-client-core/src/main/java/org/apache/olingo/odata4/client/core/edm/v3/AssociationSetEndImpl.java b/odata4-lib/odata4-client-core/src/main/java/org/apache/olingo/odata4/client/core/edm/v3/AssociationSetEndImpl.java
index 8eca2a6..13abf06 100644
--- a/odata4-lib/odata4-client-core/src/main/java/org/apache/olingo/odata4/client/core/edm/v3/AssociationSetEndImpl.java
+++ b/odata4-lib/odata4-client-core/src/main/java/org/apache/olingo/odata4/client/core/edm/v3/AssociationSetEndImpl.java
@@ -32,18 +32,22 @@ public class AssociationSetEndImpl extends AbstractEdmItem implements Associatio
   @JsonProperty(value = "EntitySet", required = true)
   private String entitySet;
 
+  @Override
   public String getRole() {
     return role;
   }
 
+  @Override
   public void setRole(final String role) {
     this.role = role;
   }
 
+  @Override
   public String getEntitySet() {
     return entitySet;
   }
 
+  @Override
   public void setEntitySet(final String entitySet) {
     this.entitySet = entitySet;
   }

http://git-wip-us.apache.org/repos/asf/incubator-olingo-odata4/blob/df906e43/odata4-lib/odata4-client-core/src/main/java/org/apache/olingo/odata4/client/core/edm/v3/AssociationSetImpl.java
----------------------------------------------------------------------
diff --git a/odata4-lib/odata4-client-core/src/main/java/org/apache/olingo/odata4/client/core/edm/v3/AssociationSetImpl.java b/odata4-lib/odata4-client-core/src/main/java/org/apache/olingo/odata4/client/core/edm/v3/AssociationSetImpl.java
index 06a603a..557c766 100644
--- a/odata4-lib/odata4-client-core/src/main/java/org/apache/olingo/odata4/client/core/edm/v3/AssociationSetImpl.java
+++ b/odata4-lib/odata4-client-core/src/main/java/org/apache/olingo/odata4/client/core/edm/v3/AssociationSetImpl.java
@@ -35,22 +35,27 @@ public class AssociationSetImpl extends AbstractEdmItem implements AssociationSe
 
   private List<AssociationSetEndImpl> ends = new ArrayList<AssociationSetEndImpl>();
 
+  @Override
   public String getName() {
     return name;
   }
 
+  @Override
   public void setName(final String name) {
     this.name = name;
   }
 
+  @Override
   public String getAssociation() {
     return association;
   }
 
+  @Override
   public void setAssociation(final String association) {
     this.association = association;
   }
 
+  @Override
   public List<AssociationSetEndImpl> getEnds() {
     return ends;
   }

http://git-wip-us.apache.org/repos/asf/incubator-olingo-odata4/blob/df906e43/odata4-lib/odata4-client-core/src/main/java/org/apache/olingo/odata4/client/core/edm/v3/ComplexTypeImpl.java
----------------------------------------------------------------------
diff --git a/odata4-lib/odata4-client-core/src/main/java/org/apache/olingo/odata4/client/core/edm/v3/ComplexTypeImpl.java b/odata4-lib/odata4-client-core/src/main/java/org/apache/olingo/odata4/client/core/edm/v3/ComplexTypeImpl.java
index 044afa2..e755581 100644
--- a/odata4-lib/odata4-client-core/src/main/java/org/apache/olingo/odata4/client/core/edm/v3/ComplexTypeImpl.java
+++ b/odata4-lib/odata4-client-core/src/main/java/org/apache/olingo/odata4/client/core/edm/v3/ComplexTypeImpl.java
@@ -21,28 +21,34 @@ package org.apache.olingo.odata4.client.core.edm.v3;
 import java.util.ArrayList;
 import java.util.List;
 import org.apache.olingo.odata4.client.api.edm.ComplexType;
-import org.apache.olingo.odata4.client.api.edm.Property;
 import org.apache.olingo.odata4.client.core.edm.AbstractComplexType;
 
 public class ComplexTypeImpl extends AbstractComplexType implements ComplexType {
 
   private static final long serialVersionUID = -1251230308269425962L;
 
-  private final List<Property> properties = new ArrayList<Property>();
+  private final List<PropertyImpl> properties = new ArrayList<PropertyImpl>();
+
+  private final List<NavigationPropertyImpl> navigationProperties = new ArrayList<NavigationPropertyImpl>();
+
+  @Override
+  public PropertyImpl getProperty(final String name) {
+    return (PropertyImpl) super.getProperty(name);
+  }
 
   @Override
-  public List<Property> getProperties() {
+  public List<PropertyImpl> getProperties() {
     return properties;
   }
 
   @Override
-  public Property getProperty(final String name) {
-    Property result = null;
-    for (Property property : getProperties()) {
-      if (name.equals(property.getName())) {
-        result = property;
-      }
-    }
-    return result;
+  public NavigationPropertyImpl getNavigationProperty(String name) {
+    return (NavigationPropertyImpl) super.getNavigationProperty(name);
   }
+
+  @Override
+  public List<NavigationPropertyImpl> getNavigationProperties() {
+    return navigationProperties;
+  }
+
 }

http://git-wip-us.apache.org/repos/asf/incubator-olingo-odata4/blob/df906e43/odata4-lib/odata4-client-core/src/main/java/org/apache/olingo/odata4/client/core/edm/v3/EntityTypeImpl.java
----------------------------------------------------------------------
diff --git a/odata4-lib/odata4-client-core/src/main/java/org/apache/olingo/odata4/client/core/edm/v3/EntityTypeImpl.java b/odata4-lib/odata4-client-core/src/main/java/org/apache/olingo/odata4/client/core/edm/v3/EntityTypeImpl.java
index 7622f04..1fc2da2 100644
--- a/odata4-lib/odata4-client-core/src/main/java/org/apache/olingo/odata4/client/core/edm/v3/EntityTypeImpl.java
+++ b/odata4-lib/odata4-client-core/src/main/java/org/apache/olingo/odata4/client/core/edm/v3/EntityTypeImpl.java
@@ -31,19 +31,18 @@ public class EntityTypeImpl extends AbstractEntityType {
   private final List<NavigationPropertyImpl> navigationProperties = new ArrayList<NavigationPropertyImpl>();
 
   @Override
+  public PropertyImpl getProperty(final String name) {
+    return (PropertyImpl) super.getProperty(name);
+  }
+
+  @Override
   public List<PropertyImpl> getProperties() {
     return properties;
   }
 
   @Override
-  public PropertyImpl getProperty(final String name) {
-    PropertyImpl result = null;
-    for (PropertyImpl property : getProperties()) {
-      if (name.equals(property.getName())) {
-        result = property;
-      }
-    }
-    return result;
+  public NavigationPropertyImpl getNavigationProperty(final String name) {
+    return (NavigationPropertyImpl) super.getNavigationProperty(name);
   }
 
   @Override
@@ -51,15 +50,4 @@ public class EntityTypeImpl extends AbstractEntityType {
     return navigationProperties;
   }
 
-  @Override
-  public NavigationPropertyImpl getNavigationProperty(final String name) {
-    NavigationPropertyImpl result = null;
-    for (NavigationPropertyImpl property : getNavigationProperties()) {
-      if (name.equals(property.getName())) {
-        result = property;
-      }
-    }
-    return result;
-  }
-
 }

http://git-wip-us.apache.org/repos/asf/incubator-olingo-odata4/blob/df906e43/odata4-lib/odata4-client-core/src/main/java/org/apache/olingo/odata4/client/core/edm/v3/FunctionImportImpl.java
----------------------------------------------------------------------
diff --git a/odata4-lib/odata4-client-core/src/main/java/org/apache/olingo/odata4/client/core/edm/v3/FunctionImportImpl.java b/odata4-lib/odata4-client-core/src/main/java/org/apache/olingo/odata4/client/core/edm/v3/FunctionImportImpl.java
index bbdc314..621e919 100644
--- a/odata4-lib/odata4-client-core/src/main/java/org/apache/olingo/odata4/client/core/edm/v3/FunctionImportImpl.java
+++ b/odata4-lib/odata4-client-core/src/main/java/org/apache/olingo/odata4/client/core/edm/v3/FunctionImportImpl.java
@@ -21,10 +21,10 @@ package org.apache.olingo.odata4.client.core.edm.v3;
 import com.fasterxml.jackson.databind.annotation.JsonDeserialize;
 import java.util.ArrayList;
 import java.util.List;
-import org.apache.olingo.odata4.client.core.edm.AbstractFunctionImport;
+import org.apache.olingo.odata4.client.api.edm.v3.FunctionImport;
 
 @JsonDeserialize(using = FunctionImportDeserializer.class)
-public class FunctionImportImpl extends AbstractFunctionImport {
+public class FunctionImportImpl implements FunctionImport {
 
   private static final long serialVersionUID = -6214472528425935461L;
 
@@ -53,14 +53,17 @@ public class FunctionImportImpl extends AbstractFunctionImport {
     return name;
   }
 
+  @Override
   public void setName(final String name) {
     this.name = name;
   }
 
+  @Override
   public String getReturnType() {
     return returnType;
   }
 
+  @Override
   public void setReturnType(final String returnType) {
     this.returnType = returnType;
   }
@@ -70,58 +73,72 @@ public class FunctionImportImpl extends AbstractFunctionImport {
     return entitySet;
   }
 
+  @Override
   public void setEntitySet(final String entitySet) {
     this.entitySet = entitySet;
   }
 
+  @Override
   public String getEntitySetPath() {
     return entitySetPath;
   }
 
+  @Override
   public void setEntitySetPath(final String entitySetPath) {
     this.entitySetPath = entitySetPath;
   }
 
+  @Override
   public boolean isComposable() {
     return composable;
   }
 
+  @Override
   public void setComposable(final boolean composable) {
     this.composable = composable;
   }
 
+  @Override
   public boolean isSideEffecting() {
     return sideEffecting;
   }
 
+  @Override
   public void setSideEffecting(final boolean sideEffecting) {
     this.sideEffecting = sideEffecting;
   }
 
+  @Override
   public boolean isBindable() {
     return bindable;
   }
 
+  @Override
   public void setBindable(final boolean bindable) {
     this.bindable = bindable;
   }
 
+  @Override
   public boolean isAlwaysBindable() {
     return alwaysBindable;
   }
 
+  @Override
   public void setAlwaysBindable(final boolean alwaysBindable) {
     this.alwaysBindable = alwaysBindable;
   }
 
+  @Override
   public String getHttpMethod() {
     return httpMethod;
   }
 
+  @Override
   public void setHttpMethod(final String httpMethod) {
     this.httpMethod = httpMethod;
   }
 
+  @Override
   public List<ParameterImpl> getParameters() {
     return parameters;
   }

http://git-wip-us.apache.org/repos/asf/incubator-olingo-odata4/blob/df906e43/odata4-lib/odata4-client-core/src/main/java/org/apache/olingo/odata4/client/core/edm/v3/MemberImpl.java
----------------------------------------------------------------------
diff --git a/odata4-lib/odata4-client-core/src/main/java/org/apache/olingo/odata4/client/core/edm/v3/MemberImpl.java b/odata4-lib/odata4-client-core/src/main/java/org/apache/olingo/odata4/client/core/edm/v3/MemberImpl.java
index f1092e5..64ed274 100644
--- a/odata4-lib/odata4-client-core/src/main/java/org/apache/olingo/odata4/client/core/edm/v3/MemberImpl.java
+++ b/odata4-lib/odata4-client-core/src/main/java/org/apache/olingo/odata4/client/core/edm/v3/MemberImpl.java
@@ -18,10 +18,9 @@
  */
 package org.apache.olingo.odata4.client.core.edm.v3;
 
-import org.apache.olingo.odata4.client.api.edm.Member;
 import org.apache.olingo.odata4.client.core.edm.AbstractMember;
 
-public class MemberImpl extends AbstractMember implements Member {
+public class MemberImpl extends AbstractMember {
 
   private static final long serialVersionUID = 6605381518349837929L;
 

http://git-wip-us.apache.org/repos/asf/incubator-olingo-odata4/blob/df906e43/odata4-lib/odata4-client-core/src/main/java/org/apache/olingo/odata4/client/core/edm/v3/NavigationPropertyImpl.java
----------------------------------------------------------------------
diff --git a/odata4-lib/odata4-client-core/src/main/java/org/apache/olingo/odata4/client/core/edm/v3/NavigationPropertyImpl.java b/odata4-lib/odata4-client-core/src/main/java/org/apache/olingo/odata4/client/core/edm/v3/NavigationPropertyImpl.java
index 306950e..1371177 100644
--- a/odata4-lib/odata4-client-core/src/main/java/org/apache/olingo/odata4/client/core/edm/v3/NavigationPropertyImpl.java
+++ b/odata4-lib/odata4-client-core/src/main/java/org/apache/olingo/odata4/client/core/edm/v3/NavigationPropertyImpl.java
@@ -19,9 +19,10 @@
 package org.apache.olingo.odata4.client.core.edm.v3;
 
 import com.fasterxml.jackson.annotation.JsonProperty;
+import org.apache.olingo.odata4.client.api.edm.v3.NavigationProperty;
 import org.apache.olingo.odata4.client.core.edm.AbstractNavigationProperty;
 
-public class NavigationPropertyImpl extends AbstractNavigationProperty {
+public class NavigationPropertyImpl extends AbstractNavigationProperty implements NavigationProperty {
 
   private static final long serialVersionUID = -2889417442815563307L;
 
@@ -34,26 +35,32 @@ public class NavigationPropertyImpl extends AbstractNavigationProperty {
   @JsonProperty(value = "FromRole", required = true)
   private String fromRole;
 
+  @Override
   public String getRelationship() {
     return relationship;
   }
 
+  @Override
   public void setRelationship(final String relationship) {
     this.relationship = relationship;
   }
 
+  @Override
   public String getToRole() {
     return toRole;
   }
 
+  @Override
   public void setToRole(final String toRole) {
     this.toRole = toRole;
   }
 
+  @Override
   public String getFromRole() {
     return fromRole;
   }
 
+  @Override
   public void setFromRole(final String fromRole) {
     this.fromRole = fromRole;
   }

http://git-wip-us.apache.org/repos/asf/incubator-olingo-odata4/blob/df906e43/odata4-lib/odata4-client-core/src/main/java/org/apache/olingo/odata4/client/core/edm/v3/ParameterImpl.java
----------------------------------------------------------------------
diff --git a/odata4-lib/odata4-client-core/src/main/java/org/apache/olingo/odata4/client/core/edm/v3/ParameterImpl.java b/odata4-lib/odata4-client-core/src/main/java/org/apache/olingo/odata4/client/core/edm/v3/ParameterImpl.java
index 55fb720..cf3d96e 100644
--- a/odata4-lib/odata4-client-core/src/main/java/org/apache/olingo/odata4/client/core/edm/v3/ParameterImpl.java
+++ b/odata4-lib/odata4-client-core/src/main/java/org/apache/olingo/odata4/client/core/edm/v3/ParameterImpl.java
@@ -20,19 +20,22 @@ package org.apache.olingo.odata4.client.core.edm.v3;
 
 import org.apache.olingo.odata4.client.api.edm.v3.ParameterMode;
 import com.fasterxml.jackson.annotation.JsonProperty;
+import org.apache.olingo.odata4.client.api.edm.v3.Parameter;
 import org.apache.olingo.odata4.client.core.edm.AbstractParameter;
 
-public class ParameterImpl extends AbstractParameter {
+public class ParameterImpl extends AbstractParameter implements Parameter {
 
   private static final long serialVersionUID = 7596724999614891358L;
 
   @JsonProperty("Mode")
   private ParameterMode mode;
 
+  @Override
   public ParameterMode getMode() {
     return mode;
   }
 
+  @Override
   public void setMode(final ParameterMode mode) {
     this.mode = mode;
   }

http://git-wip-us.apache.org/repos/asf/incubator-olingo-odata4/blob/df906e43/odata4-lib/odata4-client-core/src/main/java/org/apache/olingo/odata4/client/core/edm/v3/PropertyImpl.java
----------------------------------------------------------------------
diff --git a/odata4-lib/odata4-client-core/src/main/java/org/apache/olingo/odata4/client/core/edm/v3/PropertyImpl.java b/odata4-lib/odata4-client-core/src/main/java/org/apache/olingo/odata4/client/core/edm/v3/PropertyImpl.java
index f7b8f5c..b90f4b9 100644
--- a/odata4-lib/odata4-client-core/src/main/java/org/apache/olingo/odata4/client/core/edm/v3/PropertyImpl.java
+++ b/odata4-lib/odata4-client-core/src/main/java/org/apache/olingo/odata4/client/core/edm/v3/PropertyImpl.java
@@ -18,10 +18,79 @@
  */
 package org.apache.olingo.odata4.client.core.edm.v3;
 
+import com.fasterxml.jackson.annotation.JsonProperty;
+import org.apache.olingo.odata4.client.api.edm.v3.Property;
 import org.apache.olingo.odata4.client.core.edm.AbstractProperty;
+import org.apache.olingo.odata4.commons.api.edm.constants.EdmContentKind;
 
-public class PropertyImpl extends AbstractProperty {
+public class PropertyImpl extends AbstractProperty implements Property {
 
   private static final long serialVersionUID = 6224524803474652100L;
 
+  @JsonProperty("FC_SourcePath")
+  private String fcSourcePath;
+
+  @JsonProperty("FC_TargetPath")
+  private String fcTargetPath;
+
+  @JsonProperty("FC_ContentKind")
+  private EdmContentKind fcContentKind = EdmContentKind.text;
+
+  @JsonProperty("FC_NsPrefix")
+  private String fcNSPrefix;
+
+  @JsonProperty("FC_NsUri")
+  private String fcNSURI;
+
+  @JsonProperty("FC_KeepInContent")
+  private boolean fcKeepInContent = true;
+
+  public String getFcSourcePath() {
+    return fcSourcePath;
+  }
+
+  public void setFcSourcePath(final String fcSourcePath) {
+    this.fcSourcePath = fcSourcePath;
+  }
+
+  public String getFcTargetPath() {
+    return fcTargetPath;
+  }
+
+  public void setFcTargetPath(final String fcTargetPath) {
+    this.fcTargetPath = fcTargetPath;
+  }
+
+  public EdmContentKind getFcContentKind() {
+    return fcContentKind;
+  }
+
+  public void setFcContentKind(final EdmContentKind fcContentKind) {
+    this.fcContentKind = fcContentKind;
+  }
+
+  public String getFcNSPrefix() {
+    return fcNSPrefix;
+  }
+
+  public void setFcNSPrefix(final String fcNSPrefix) {
+    this.fcNSPrefix = fcNSPrefix;
+  }
+
+  public String getFcNSURI() {
+    return fcNSURI;
+  }
+
+  public void setFcNSURI(final String fcNSURI) {
+    this.fcNSURI = fcNSURI;
+  }
+
+  public boolean isFcKeepInContent() {
+    return fcKeepInContent;
+  }
+
+  public void setFcKeepInContent(final boolean fcKeepInContent) {
+    this.fcKeepInContent = fcKeepInContent;
+  }
+
 }

http://git-wip-us.apache.org/repos/asf/incubator-olingo-odata4/blob/df906e43/odata4-lib/odata4-client-core/src/main/java/org/apache/olingo/odata4/client/core/edm/v3/PropertyValueImpl.java
----------------------------------------------------------------------
diff --git a/odata4-lib/odata4-client-core/src/main/java/org/apache/olingo/odata4/client/core/edm/v3/PropertyValueImpl.java b/odata4-lib/odata4-client-core/src/main/java/org/apache/olingo/odata4/client/core/edm/v3/PropertyValueImpl.java
index a3607a6..0d8b5d7 100644
--- a/odata4-lib/odata4-client-core/src/main/java/org/apache/olingo/odata4/client/core/edm/v3/PropertyValueImpl.java
+++ b/odata4-lib/odata4-client-core/src/main/java/org/apache/olingo/odata4/client/core/edm/v3/PropertyValueImpl.java
@@ -53,66 +53,82 @@ public class PropertyValueImpl extends AbstractEdmItem implements PropertyValue
   @JsonProperty("DateTime")
   private Date dateTime;
 
+  @Override
   public String getProperty() {
     return property;
   }
 
+  @Override
   public void setProperty(final String property) {
     this.property = property;
   }
 
+  @Override
   public String getPath() {
     return path;
   }
 
+  @Override
   public void setPath(final String path) {
     this.path = path;
   }
 
+  @Override
   public String getString() {
     return string;
   }
 
+  @Override
   public void setString(final String string) {
     this.string = string;
   }
 
+  @Override
   public BigInteger getInt() {
     return _int;
   }
 
+  @Override
   public void setInt(final BigInteger _int) {
     this._int = _int;
   }
 
+  @Override
   public Double getFloat() {
     return _float;
   }
 
+  @Override
   public void setFloat(final Double _float) {
     this._float = _float;
   }
 
+  @Override
   public BigDecimal getDecimal() {
     return decimal;
   }
 
+  @Override
   public void setDecimal(final BigDecimal decimal) {
     this.decimal = decimal;
   }
 
+  @Override
   public Boolean getBool() {
     return bool;
   }
 
+  @Override
   public void setBool(final Boolean bool) {
     this.bool = bool;
   }
 
+  @Override
   public Date getDateTime() {
     return dateTime;
   }
 
+  @Override
   public void setDateTime(final Date dateTime) {
     this.dateTime = dateTime;
   }

http://git-wip-us.apache.org/repos/asf/incubator-olingo-odata4/blob/df906e43/odata4-lib/odata4-client-core/src/main/java/org/apache/olingo/odata4/client/core/edm/v3/ReferentialConstraintImpl.java
----------------------------------------------------------------------
diff --git a/odata4-lib/odata4-client-core/src/main/java/org/apache/olingo/odata4/client/core/edm/v3/ReferentialConstraintImpl.java b/odata4-lib/odata4-client-core/src/main/java/org/apache/olingo/odata4/client/core/edm/v3/ReferentialConstraintImpl.java
index c03bea7..a399c2f 100644
--- a/odata4-lib/odata4-client-core/src/main/java/org/apache/olingo/odata4/client/core/edm/v3/ReferentialConstraintImpl.java
+++ b/odata4-lib/odata4-client-core/src/main/java/org/apache/olingo/odata4/client/core/edm/v3/ReferentialConstraintImpl.java
@@ -18,8 +18,10 @@
  */
 package org.apache.olingo.odata4.client.core.edm.v3;
 
+import com.fasterxml.jackson.annotation.JsonIgnore;
 import com.fasterxml.jackson.annotation.JsonProperty;
 import org.apache.olingo.odata4.client.api.edm.v3.ReferentialConstraint;
+import org.apache.olingo.odata4.client.api.edm.v3.ReferentialConstraintRole;
 import org.apache.olingo.odata4.client.core.edm.AbstractEdmItem;
 
 public class ReferentialConstraintImpl extends AbstractEdmItem implements ReferentialConstraint {
@@ -27,24 +29,30 @@ public class ReferentialConstraintImpl extends AbstractEdmItem implements Refere
   private static final long serialVersionUID = 9067893732765127269L;
 
   @JsonProperty(value = "Principal", required = true)
-  private ReferentialConstraintRole principal;
+  private ReferentialConstraintRoleImpl principal;
 
   @JsonProperty(value = "Dependent", required = true)
-  private ReferentialConstraintRole dependent;
+  private ReferentialConstraintRoleImpl dependent;
 
-  public ReferentialConstraintRole getPrincipal() {
+  @Override
+  public ReferentialConstraintRoleImpl getPrincipal() {
     return principal;
   }
 
+  @JsonIgnore
+  @Override
   public void setPrincipal(final ReferentialConstraintRole principal) {
-    this.principal = principal;
+    this.principal = (ReferentialConstraintRoleImpl) principal;
   }
 
-  public ReferentialConstraintRole getDependent() {
+  @Override
+  public ReferentialConstraintRoleImpl getDependent() {
     return dependent;
   }
 
+  @JsonIgnore
+  @Override
   public void setDependent(final ReferentialConstraintRole dependent) {
-    this.dependent = dependent;
+    this.dependent = (ReferentialConstraintRoleImpl) dependent;
   }
 }

http://git-wip-us.apache.org/repos/asf/incubator-olingo-odata4/blob/df906e43/odata4-lib/odata4-client-core/src/main/java/org/apache/olingo/odata4/client/core/edm/v3/ReferentialConstraintRole.java
----------------------------------------------------------------------
diff --git a/odata4-lib/odata4-client-core/src/main/java/org/apache/olingo/odata4/client/core/edm/v3/ReferentialConstraintRole.java b/odata4-lib/odata4-client-core/src/main/java/org/apache/olingo/odata4/client/core/edm/v3/ReferentialConstraintRole.java
deleted file mode 100644
index d274115..0000000
--- a/odata4-lib/odata4-client-core/src/main/java/org/apache/olingo/odata4/client/core/edm/v3/ReferentialConstraintRole.java
+++ /dev/null
@@ -1,51 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- *   http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-package org.apache.olingo.odata4.client.core.edm.v3;
-
-import com.fasterxml.jackson.databind.annotation.JsonDeserialize;
-import java.util.ArrayList;
-import java.util.List;
-import org.apache.olingo.odata4.client.api.edm.PropertyRef;
-import org.apache.olingo.odata4.client.core.edm.AbstractEdmItem;
-
-@JsonDeserialize(using = ReferentialConstraintRoleDeserializer.class)
-public class ReferentialConstraintRole extends AbstractEdmItem {
-
-  private static final long serialVersionUID = -3712887115248634164L;
-
-  private String role;
-
-  private List<PropertyRef> propertyRefs = new ArrayList<PropertyRef>();
-
-  public String getRole() {
-    return role;
-  }
-
-  public void setRole(final String role) {
-    this.role = role;
-  }
-
-  public List<PropertyRef> getPropertyRefs() {
-    return propertyRefs;
-  }
-
-  public void setPropertyRefs(final List<PropertyRef> propertyRefs) {
-    this.propertyRefs = propertyRefs;
-  }
-}

http://git-wip-us.apache.org/repos/asf/incubator-olingo-odata4/blob/df906e43/odata4-lib/odata4-client-core/src/main/java/org/apache/olingo/odata4/client/core/edm/v3/ReferentialConstraintRoleDeserializer.java
----------------------------------------------------------------------
diff --git a/odata4-lib/odata4-client-core/src/main/java/org/apache/olingo/odata4/client/core/edm/v3/ReferentialConstraintRoleDeserializer.java b/odata4-lib/odata4-client-core/src/main/java/org/apache/olingo/odata4/client/core/edm/v3/ReferentialConstraintRoleDeserializer.java
index 3de9321..e09e94e 100644
--- a/odata4-lib/odata4-client-core/src/main/java/org/apache/olingo/odata4/client/core/edm/v3/ReferentialConstraintRoleDeserializer.java
+++ b/odata4-lib/odata4-client-core/src/main/java/org/apache/olingo/odata4/client/core/edm/v3/ReferentialConstraintRoleDeserializer.java
@@ -26,13 +26,13 @@ import java.io.IOException;
 import org.apache.olingo.odata4.client.core.op.impl.AbstractEdmDeserializer;
 import org.apache.olingo.odata4.client.core.edm.PropertyRefImpl;
 
-public class ReferentialConstraintRoleDeserializer extends AbstractEdmDeserializer<ReferentialConstraintRole> {
+public class ReferentialConstraintRoleDeserializer extends AbstractEdmDeserializer<ReferentialConstraintRoleImpl> {
 
   @Override
-  protected ReferentialConstraintRole doDeserialize(final JsonParser jp, final DeserializationContext ctxt)
+  protected ReferentialConstraintRoleImpl doDeserialize(final JsonParser jp, final DeserializationContext ctxt)
           throws IOException, JsonProcessingException {
 
-    final ReferentialConstraintRole refConstRole = new ReferentialConstraintRole();
+    final ReferentialConstraintRoleImpl refConstRole = new ReferentialConstraintRoleImpl();
 
     for (; jp.getCurrentToken() != JsonToken.END_OBJECT; jp.nextToken()) {
       final JsonToken token = jp.getCurrentToken();

http://git-wip-us.apache.org/repos/asf/incubator-olingo-odata4/blob/df906e43/odata4-lib/odata4-client-core/src/main/java/org/apache/olingo/odata4/client/core/edm/v3/ReferentialConstraintRoleImpl.java
----------------------------------------------------------------------
diff --git a/odata4-lib/odata4-client-core/src/main/java/org/apache/olingo/odata4/client/core/edm/v3/ReferentialConstraintRoleImpl.java b/odata4-lib/odata4-client-core/src/main/java/org/apache/olingo/odata4/client/core/edm/v3/ReferentialConstraintRoleImpl.java
new file mode 100644
index 0000000..bb2e0f2
--- /dev/null
+++ b/odata4-lib/odata4-client-core/src/main/java/org/apache/olingo/odata4/client/core/edm/v3/ReferentialConstraintRoleImpl.java
@@ -0,0 +1,50 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.olingo.odata4.client.core.edm.v3;
+
+import com.fasterxml.jackson.databind.annotation.JsonDeserialize;
+import java.util.ArrayList;
+import java.util.List;
+import org.apache.olingo.odata4.client.api.edm.v3.ReferentialConstraintRole;
+import org.apache.olingo.odata4.client.core.edm.AbstractEdmItem;
+import org.apache.olingo.odata4.client.core.edm.PropertyRefImpl;
+
+@JsonDeserialize(using = ReferentialConstraintRoleDeserializer.class)
+public class ReferentialConstraintRoleImpl extends AbstractEdmItem implements ReferentialConstraintRole {
+
+  private static final long serialVersionUID = -3712887115248634164L;
+
+  private String role;
+
+  private List<PropertyRefImpl> propertyRefs = new ArrayList<PropertyRefImpl>();
+
+  @Override
+  public String getRole() {
+    return role;
+  }
+
+  @Override
+  public void setRole(final String role) {
+    this.role = role;
+  }
+
+  public List<PropertyRefImpl> getPropertyRefs() {
+    return propertyRefs;
+  }
+}

http://git-wip-us.apache.org/repos/asf/incubator-olingo-odata4/blob/df906e43/odata4-lib/odata4-client-core/src/main/java/org/apache/olingo/odata4/client/core/edm/v3/SchemaImpl.java
----------------------------------------------------------------------
diff --git a/odata4-lib/odata4-client-core/src/main/java/org/apache/olingo/odata4/client/core/edm/v3/SchemaImpl.java b/odata4-lib/odata4-client-core/src/main/java/org/apache/olingo/odata4/client/core/edm/v3/SchemaImpl.java
index a9f699b..8ff28ca 100644
--- a/odata4-lib/odata4-client-core/src/main/java/org/apache/olingo/odata4/client/core/edm/v3/SchemaImpl.java
+++ b/odata4-lib/odata4-client-core/src/main/java/org/apache/olingo/odata4/client/core/edm/v3/SchemaImpl.java
@@ -44,13 +44,7 @@ public class SchemaImpl extends AbstractSchema implements Schema {
   private final List<ValueTermImpl> valueTerms = new ArrayList<ValueTermImpl>();
 
   public AssociationImpl getAssociation(final String name) {
-    AssociationImpl result = null;
-    for (AssociationImpl association : getAssociations()) {
-      if (name.equals(association.getName())) {
-        result = association;
-      }
-    }
-    return result;
+    return getOneByName(name, getAssociations());
   }
 
   @Override
@@ -99,13 +93,7 @@ public class SchemaImpl extends AbstractSchema implements Schema {
 
   @Override
   public EntityContainerImpl getEntityContainer(final String name) {
-    EntityContainerImpl result = null;
-    for (EntityContainerImpl container : getEntityContainers()) {
-      if (name.equals(container.getName())) {
-        result = container;
-      }
-    }
-    return result;
+    return getOneByName(name, getEntityContainers());
   }
 
   @Override

http://git-wip-us.apache.org/repos/asf/incubator-olingo-odata4/blob/df906e43/odata4-lib/odata4-client-core/src/main/java/org/apache/olingo/odata4/client/core/edm/v3/TypeAnnotationImpl.java
----------------------------------------------------------------------
diff --git a/odata4-lib/odata4-client-core/src/main/java/org/apache/olingo/odata4/client/core/edm/v3/TypeAnnotationImpl.java b/odata4-lib/odata4-client-core/src/main/java/org/apache/olingo/odata4/client/core/edm/v3/TypeAnnotationImpl.java
index 23a2586..a2cb890 100644
--- a/odata4-lib/odata4-client-core/src/main/java/org/apache/olingo/odata4/client/core/edm/v3/TypeAnnotationImpl.java
+++ b/odata4-lib/odata4-client-core/src/main/java/org/apache/olingo/odata4/client/core/edm/v3/TypeAnnotationImpl.java
@@ -27,32 +27,37 @@ import org.apache.olingo.odata4.client.core.edm.AbstractEdmItem;
 @JsonDeserialize(using = TypeAnnotationDeserializer.class)
 public class TypeAnnotationImpl extends AbstractEdmItem implements TypeAnnotation {
 
-    private static final long serialVersionUID = -7585489230017331877L;
+  private static final long serialVersionUID = -7585489230017331877L;
 
-    private String term;
+  private String term;
 
-    private String qualifier;
+  private String qualifier;
 
-    private List<PropertyValueImpl> propertyValues = new ArrayList<PropertyValueImpl>();
+  private List<PropertyValueImpl> propertyValues = new ArrayList<PropertyValueImpl>();
 
-    public String getTerm() {
-        return term;
-    }
+  @Override
+  public String getTerm() {
+    return term;
+  }
 
-    public void setTerm(final String term) {
-        this.term = term;
-    }
+  @Override
+  public void setTerm(final String term) {
+    this.term = term;
+  }
 
-    public String getQualifier() {
-        return qualifier;
-    }
+  @Override
+  public String getQualifier() {
+    return qualifier;
+  }
 
-    public void setQualifier(final String qualifier) {
-        this.qualifier = qualifier;
-    }
+  @Override
+  public void setQualifier(final String qualifier) {
+    this.qualifier = qualifier;
+  }
 
-    public List<PropertyValueImpl> getPropertyValues() {
-        return propertyValues;
-    }
+  @Override
+  public List<PropertyValueImpl> getPropertyValues() {
+    return propertyValues;
+  }
 
 }


Mime
View raw message