You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@olingo.apache.org by mi...@apache.org on 2015/04/30 17:02:14 UTC

[01/50] [abbrv] olingo-odata4 git commit: [OLINGO-564] Renamed client edm classes

Repository: olingo-odata4
Updated Branches:
  refs/heads/master d2b5449f7 -> 61500e685


http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/754e23ab/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/annotation/IsOfImpl.java
----------------------------------------------------------------------
diff --git a/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/annotation/IsOfImpl.java b/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/annotation/IsOfImpl.java
deleted file mode 100644
index df5756b..0000000
--- a/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/annotation/IsOfImpl.java
+++ /dev/null
@@ -1,138 +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.client.core.edm.xml.annotation;
-
-import com.fasterxml.jackson.core.JsonParser;
-import com.fasterxml.jackson.core.JsonToken;
-import com.fasterxml.jackson.databind.DeserializationContext;
-import org.apache.olingo.client.core.edm.xml.AbstractEdmDeserializer;
-import org.apache.olingo.client.core.edm.xml.AnnotationImpl;
-import org.apache.olingo.commons.api.edm.geo.SRID;
-import org.apache.olingo.commons.api.edm.provider.annotation.DynamicAnnotationExpression;
-import org.apache.olingo.commons.api.edm.provider.annotation.IsOf;
-
-import com.fasterxml.jackson.databind.annotation.JsonDeserialize;
-
-import java.io.IOException;
-
-@JsonDeserialize(using = IsOfImpl.IsOfDeserializer.class)
-public class IsOfImpl extends AbstractAnnotatableDynamicAnnotationExpression implements IsOf {
-
-  private static final long serialVersionUID = -893355856129761174L;
-
-  private String type;
-
-  private Integer maxLength;
-
-  private Integer precision;
-
-  private Integer scale;
-
-  private SRID srid;
-
-  private DynamicAnnotationExpression value;
-
-  @Override
-  public String getType() {
-    return type;
-  }
-
-  public void setType(final String type) {
-    this.type = type;
-  }
-
-  @Override
-  public Integer getMaxLength() {
-    return maxLength;
-  }
-
-  public void setMaxLength(final Integer maxLength) {
-    this.maxLength = maxLength;
-  }
-
-  @Override
-  public Integer getPrecision() {
-    return precision;
-  }
-
-  public void setPrecision(final Integer precision) {
-    this.precision = precision;
-  }
-
-  @Override
-  public Integer getScale() {
-    return scale;
-  }
-
-  public void setScale(final Integer scale) {
-    this.scale = scale;
-  }
-
-  @Override
-  public SRID getSrid() {
-    return srid;
-  }
-
-  public void setSrid(final SRID srid) {
-    this.srid = srid;
-  }
-
-  @Override
-  public DynamicAnnotationExpression getValue() {
-    return value;
-  }
-
-  public void setValue(final DynamicAnnotationExpression value) {
-    this.value = value;
-  }
-
-  static class IsOfDeserializer extends AbstractEdmDeserializer<IsOfImpl> {
-    @Override
-    protected IsOfImpl doDeserialize(final JsonParser jp, final DeserializationContext ctxt)
-            throws IOException {
-      final IsOfImpl isof = new IsOfImpl();
-      for (; jp.getCurrentToken() != JsonToken.END_OBJECT; jp.nextToken()) {
-        final JsonToken token = jp.getCurrentToken();
-        if (token == JsonToken.FIELD_NAME) {
-          if ("Type".equals(jp.getCurrentName())) {
-            isof.setType(jp.nextTextValue());
-          } else if ("Annotation".equals(jp.getCurrentName())) {
-            isof.getAnnotations().add(jp.readValueAs(AnnotationImpl.class));
-          } else if ("MaxLength".equals(jp.getCurrentName())) {
-            final String maxLenght = jp.nextTextValue();
-            isof.setMaxLength(maxLenght.equalsIgnoreCase("max") ? Integer.MAX_VALUE : Integer.valueOf(maxLenght));
-          } else if ("Precision".equals(jp.getCurrentName())) {
-            isof.setPrecision(Integer.valueOf(jp.nextTextValue()));
-          } else if ("Scale".equals(jp.getCurrentName())) {
-            final String scale = jp.nextTextValue();
-            isof.setScale(scale.equalsIgnoreCase("variable") ? 0 : Integer.valueOf(scale));
-          } else if ("SRID".equals(jp.getCurrentName())) {
-            final String srid = jp.nextTextValue();
-            if (srid != null) {
-              isof.setSrid(SRID.valueOf(srid));
-            }
-          } else {
-            isof.setValue(jp.readValueAs(AbstractDynamicAnnotationExpression.class));
-          }
-        }
-      }
-      return isof;
-    }
-  }
-}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/754e23ab/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/annotation/LabeledElementImpl.java
----------------------------------------------------------------------
diff --git a/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/annotation/LabeledElementImpl.java b/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/annotation/LabeledElementImpl.java
deleted file mode 100644
index 8d190ce..0000000
--- a/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/annotation/LabeledElementImpl.java
+++ /dev/null
@@ -1,81 +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.client.core.edm.xml.annotation;
-
-import com.fasterxml.jackson.core.JsonParser;
-import com.fasterxml.jackson.core.JsonToken;
-import com.fasterxml.jackson.databind.DeserializationContext;
-import org.apache.olingo.client.core.edm.xml.AbstractEdmDeserializer;
-import org.apache.olingo.client.core.edm.xml.AnnotationImpl;
-import org.apache.olingo.commons.api.edm.provider.annotation.DynamicAnnotationExpression;
-import org.apache.olingo.commons.api.edm.provider.annotation.LabeledElement;
-
-import com.fasterxml.jackson.databind.annotation.JsonDeserialize;
-
-import java.io.IOException;
-
-@JsonDeserialize(using = LabeledElementImpl.LabeledElementDeserializer.class)
-public class LabeledElementImpl
-        extends AbstractAnnotatableDynamicAnnotationExpression implements LabeledElement {
-
-  private static final long serialVersionUID = 4909387630253341824L;
-
-  private String name;
-
-  private DynamicAnnotationExpression value;
-
-  @Override
-  public String getName() {
-    return name;
-  }
-
-  public void setName(final String name) {
-    this.name = name;
-  }
-
-  @Override
-  public DynamicAnnotationExpression getValue() {
-    return value;
-  }
-
-  public void setValue(final DynamicAnnotationExpression value) {
-    this.value = value;
-  }
-
-  static class LabeledElementDeserializer extends AbstractEdmDeserializer<LabeledElementImpl> {
-    @Override
-    protected LabeledElementImpl doDeserialize(final JsonParser jp, final DeserializationContext ctxt)
-            throws IOException {
-      final LabeledElementImpl element = new LabeledElementImpl();
-      for (; jp.getCurrentToken() != JsonToken.END_OBJECT; jp.nextToken()) {
-        final JsonToken token = jp.getCurrentToken();
-        if (token == JsonToken.FIELD_NAME) {
-          if ("Name".equals(jp.getCurrentName())) {
-            element.setName(jp.nextTextValue());
-          } else if ("Annotation".equals(jp.getCurrentName())) {
-            element.getAnnotations().add(jp.readValueAs(AnnotationImpl.class));
-          } else {
-            element.setValue(jp.readValueAs(AbstractDynamicAnnotationExpression.class));
-          }
-        }
-      }
-      return element;
-    }
-  }
-}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/754e23ab/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/annotation/LabeledElementReferenceImpl.java
----------------------------------------------------------------------
diff --git a/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/annotation/LabeledElementReferenceImpl.java b/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/annotation/LabeledElementReferenceImpl.java
deleted file mode 100644
index 7bd3a14..0000000
--- a/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/annotation/LabeledElementReferenceImpl.java
+++ /dev/null
@@ -1,28 +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.client.core.edm.xml.annotation;
-
-import org.apache.olingo.commons.api.edm.provider.annotation.LabeledElementReference;
-
-public class LabeledElementReferenceImpl
-        extends AbstractElementOrAttributeExpression implements LabeledElementReference {
-
-  private static final long serialVersionUID = 7560525604021670529L;
-
-}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/754e23ab/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/annotation/NavigationPropertyPathImpl.java
----------------------------------------------------------------------
diff --git a/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/annotation/NavigationPropertyPathImpl.java b/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/annotation/NavigationPropertyPathImpl.java
deleted file mode 100644
index 8e04ebb..0000000
--- a/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/annotation/NavigationPropertyPathImpl.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.client.core.edm.xml.annotation;
-
-import org.apache.olingo.commons.api.edm.provider.annotation.NavigationPropertyPath;
-
-public class NavigationPropertyPathImpl extends AbstractElementOrAttributeExpression implements NavigationPropertyPath {
-
-  private static final long serialVersionUID = 879840502446301312L;
-
-}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/754e23ab/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/annotation/NotImpl.java
----------------------------------------------------------------------
diff --git a/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/annotation/NotImpl.java b/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/annotation/NotImpl.java
deleted file mode 100644
index 044385d..0000000
--- a/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/annotation/NotImpl.java
+++ /dev/null
@@ -1,39 +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.client.core.edm.xml.annotation;
-
-import org.apache.olingo.commons.api.edm.provider.annotation.DynamicAnnotationExpression;
-import org.apache.olingo.commons.api.edm.provider.annotation.Not;
-
-public class NotImpl extends AbstractDynamicAnnotationExpression implements Not {
-
-  private static final long serialVersionUID = -437788415922966812L;
-
-  private DynamicAnnotationExpression expression;
-
-  @Override
-  public DynamicAnnotationExpression getExpression() {
-    return expression;
-  }
-
-  public void setExpression(final DynamicAnnotationExpression expression) {
-    this.expression = expression;
-  }
-
-}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/754e23ab/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/annotation/NullImpl.java
----------------------------------------------------------------------
diff --git a/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/annotation/NullImpl.java b/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/annotation/NullImpl.java
deleted file mode 100644
index f9030f6..0000000
--- a/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/annotation/NullImpl.java
+++ /dev/null
@@ -1,53 +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.client.core.edm.xml.annotation;
-
-import com.fasterxml.jackson.core.JsonParser;
-import com.fasterxml.jackson.core.JsonToken;
-import com.fasterxml.jackson.databind.DeserializationContext;
-import org.apache.olingo.client.core.edm.xml.AbstractEdmDeserializer;
-import org.apache.olingo.client.core.edm.xml.AnnotationImpl;
-import org.apache.olingo.commons.api.edm.provider.annotation.Null;
-
-import com.fasterxml.jackson.databind.annotation.JsonDeserialize;
-
-import java.io.IOException;
-
-@JsonDeserialize(using = NullImpl.NullDeserializer.class)
-public class NullImpl extends AbstractAnnotatableDynamicAnnotationExpression implements Null {
-
-  private static final long serialVersionUID = -3148516847180393142L;
-
-  static class NullDeserializer extends AbstractEdmDeserializer<NullImpl> {
-    @Override
-    protected NullImpl doDeserialize(final JsonParser jp, final DeserializationContext ctxt)
-            throws IOException {
-      final NullImpl _null = new NullImpl();
-      for (; jp.getCurrentToken() != JsonToken.END_OBJECT; jp.nextToken()) {
-        final JsonToken token = jp.getCurrentToken();
-        if (token == JsonToken.FIELD_NAME) {
-          if ("Annotation".equals(jp.getCurrentName())) {
-            _null.getAnnotations().add(jp.readValueAs(AnnotationImpl.class));
-          }
-        }
-      }
-      return _null;
-    }
-  }
-}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/754e23ab/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/annotation/PathImpl.java
----------------------------------------------------------------------
diff --git a/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/annotation/PathImpl.java b/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/annotation/PathImpl.java
deleted file mode 100644
index a3597e0..0000000
--- a/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/annotation/PathImpl.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.client.core.edm.xml.annotation;
-
-import org.apache.olingo.commons.api.edm.provider.annotation.Path;
-
-public class PathImpl extends AbstractElementOrAttributeExpression implements Path {
-
-  private static final long serialVersionUID = 6020168217561402545L;
-
-}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/754e23ab/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/annotation/PropertyPathImpl.java
----------------------------------------------------------------------
diff --git a/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/annotation/PropertyPathImpl.java b/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/annotation/PropertyPathImpl.java
deleted file mode 100644
index 97dd2e6..0000000
--- a/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/annotation/PropertyPathImpl.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.client.core.edm.xml.annotation;
-
-import org.apache.olingo.commons.api.edm.provider.annotation.PropertyPath;
-
-public class PropertyPathImpl extends AbstractElementOrAttributeExpression implements PropertyPath {
-
-  private static final long serialVersionUID = -9133862135834738470L;
-
-}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/754e23ab/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/annotation/PropertyValueImpl.java
----------------------------------------------------------------------
diff --git a/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/annotation/PropertyValueImpl.java b/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/annotation/PropertyValueImpl.java
deleted file mode 100644
index 9df0413..0000000
--- a/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/annotation/PropertyValueImpl.java
+++ /dev/null
@@ -1,82 +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.client.core.edm.xml.annotation;
-
-import com.fasterxml.jackson.core.JsonParser;
-import com.fasterxml.jackson.core.JsonToken;
-import com.fasterxml.jackson.databind.DeserializationContext;
-import org.apache.olingo.client.core.edm.xml.AbstractEdmDeserializer;
-import org.apache.olingo.client.core.edm.xml.AnnotationImpl;
-import org.apache.olingo.commons.api.edm.provider.annotation.AnnotationExpression;
-import org.apache.olingo.commons.api.edm.provider.annotation.PropertyValue;
-
-import com.fasterxml.jackson.databind.annotation.JsonDeserialize;
-
-import java.io.IOException;
-
-@JsonDeserialize(using = PropertyValueImpl.PropertyValueDeserializer.class)
-public class PropertyValueImpl extends AbstractAnnotatableDynamicAnnotationExpression implements PropertyValue {
-
-  private static final long serialVersionUID = -8437649215282645228L;
-
-  private String property;
-
-  private AnnotationExpression value;
-
-  @Override
-  public String getProperty() {
-    return property;
-  }
-
-  public void setProperty(final String property) {
-    this.property = property;
-  }
-
-  @Override
-  public AnnotationExpression getValue() {
-    return value;
-  }
-
-  public void setValue(final AnnotationExpression value) {
-    this.value = value;
-  }
-
-  static class PropertyValueDeserializer extends AbstractEdmDeserializer<PropertyValueImpl> {
-    @Override
-    protected PropertyValueImpl doDeserialize(final JsonParser jp, final DeserializationContext ctxt)
-            throws IOException {
-      final PropertyValueImpl propValue = new PropertyValueImpl();
-      for (; jp.getCurrentToken() != JsonToken.END_OBJECT; jp.nextToken()) {
-        final JsonToken token = jp.getCurrentToken();
-        if (token == JsonToken.FIELD_NAME) {
-          if ("Property".equals(jp.getCurrentName())) {
-            propValue.setProperty(jp.nextTextValue());
-          } else if ("Annotation".equals(jp.getCurrentName())) {
-            propValue.getAnnotations().add(jp.readValueAs(AnnotationImpl.class));
-          } else if (isAnnotationConstExprConstruct(jp)) {
-            propValue.setValue(parseAnnotationConstExprConstruct(jp));
-          } else {
-            propValue.setValue(jp.readValueAs(AbstractDynamicAnnotationExpression.class));
-          }
-        }
-      }
-      return propValue;
-    }
-  }
-}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/754e23ab/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/annotation/RecordImpl.java
----------------------------------------------------------------------
diff --git a/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/annotation/RecordImpl.java b/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/annotation/RecordImpl.java
deleted file mode 100644
index 1f200f1..0000000
--- a/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/annotation/RecordImpl.java
+++ /dev/null
@@ -1,78 +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.client.core.edm.xml.annotation;
-
-import java.io.IOException;
-import java.util.ArrayList;
-import java.util.List;
-
-import com.fasterxml.jackson.core.JsonParser;
-import com.fasterxml.jackson.core.JsonToken;
-import com.fasterxml.jackson.databind.DeserializationContext;
-import org.apache.olingo.client.core.edm.xml.AbstractEdmDeserializer;
-import org.apache.olingo.client.core.edm.xml.AnnotationImpl;
-import org.apache.olingo.commons.api.edm.provider.annotation.PropertyValue;
-import org.apache.olingo.commons.api.edm.provider.annotation.Record;
-
-import com.fasterxml.jackson.databind.annotation.JsonDeserialize;
-
-@JsonDeserialize(using = RecordImpl.RecordDeserializer.class)
-public class RecordImpl extends AbstractAnnotatableDynamicAnnotationExpression implements Record {
-
-  private static final long serialVersionUID = 4275271751615410709L;
-
-  private String type;
-
-  private final List<PropertyValue> propertyValues = new ArrayList<PropertyValue>();
-
-  @Override
-  public String getType() {
-    return type;
-  }
-
-  public void setType(final String type) {
-    this.type = type;
-  }
-
-  @Override
-  public List<PropertyValue> getPropertyValues() {
-    return propertyValues;
-  }
-
-  static class RecordDeserializer extends AbstractEdmDeserializer<RecordImpl> {
-    @Override
-    protected RecordImpl doDeserialize(final JsonParser jp, final DeserializationContext ctxt)
-            throws IOException {
-      final RecordImpl record = new RecordImpl();
-      for (; jp.getCurrentToken() != JsonToken.END_OBJECT; jp.nextToken()) {
-        final JsonToken token = jp.getCurrentToken();
-        if (token == JsonToken.FIELD_NAME) {
-          if ("Type".equals(jp.getCurrentName())) {
-            record.setType(jp.nextTextValue());
-          } else if ("Annotation".equals(jp.getCurrentName())) {
-            record.getAnnotations().add(jp.readValueAs(AnnotationImpl.class));
-          } else {
-            record.getPropertyValues().add(jp.readValueAs(PropertyValueImpl.class));
-          }
-        }
-      }
-      return record;
-    }
-  }
-}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/754e23ab/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/annotation/TwoParamsOpDynamicAnnotationExpressionImpl.java
----------------------------------------------------------------------
diff --git a/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/annotation/TwoParamsOpDynamicAnnotationExpressionImpl.java b/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/annotation/TwoParamsOpDynamicAnnotationExpressionImpl.java
deleted file mode 100644
index 00857c3..0000000
--- a/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/annotation/TwoParamsOpDynamicAnnotationExpressionImpl.java
+++ /dev/null
@@ -1,62 +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.client.core.edm.xml.annotation;
-
-import org.apache.olingo.commons.api.edm.provider.annotation.DynamicAnnotationExpression;
-import org.apache.olingo.commons.api.edm.provider.annotation.TwoParamsOpDynamicAnnotationExpression;
-
-public class TwoParamsOpDynamicAnnotationExpressionImpl
-        extends AbstractDynamicAnnotationExpression implements TwoParamsOpDynamicAnnotationExpression {
-
-  private static final long serialVersionUID = 6241842185452451946L;
-
-  private Type type;
-
-  private DynamicAnnotationExpression left;
-
-  private DynamicAnnotationExpression right;
-
-  @Override
-  public Type getType() {
-    return type;
-  }
-
-  public void setType(final Type type) {
-    this.type = type;
-  }
-
-  @Override
-  public DynamicAnnotationExpression getLeftExpression() {
-    return left;
-  }
-
-  public void setLeftExpression(final DynamicAnnotationExpression left) {
-    this.left = left;
-  }
-
-  @Override
-  public DynamicAnnotationExpression getRightExpression() {
-    return right;
-  }
-
-  public void setRightExpression(final DynamicAnnotationExpression right) {
-    this.right = right;
-  }
-
-}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/754e23ab/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/annotation/UrlRefImpl.java
----------------------------------------------------------------------
diff --git a/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/annotation/UrlRefImpl.java b/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/annotation/UrlRefImpl.java
deleted file mode 100644
index 4c2ac48..0000000
--- a/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/annotation/UrlRefImpl.java
+++ /dev/null
@@ -1,66 +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.client.core.edm.xml.annotation;
-
-import com.fasterxml.jackson.core.JsonParser;
-import com.fasterxml.jackson.core.JsonToken;
-import com.fasterxml.jackson.databind.DeserializationContext;
-import org.apache.olingo.client.core.edm.xml.AbstractEdmDeserializer;
-import org.apache.olingo.commons.api.edm.provider.annotation.AnnotationExpression;
-import org.apache.olingo.commons.api.edm.provider.annotation.UrlRef;
-
-import com.fasterxml.jackson.databind.annotation.JsonDeserialize;
-
-import java.io.IOException;
-
-@JsonDeserialize(using = UrlRefImpl.UrlRefDeserializer.class)
-public class UrlRefImpl extends AbstractDynamicAnnotationExpression implements UrlRef {
-
-  private static final long serialVersionUID = -7693224811739000440L;
-
-  private AnnotationExpression value;
-
-  @Override
-  public AnnotationExpression getValue() {
-    return value;
-  }
-
-  public void setValue(final AnnotationExpression value) {
-    this.value = value;
-  }
-
-  static class UrlRefDeserializer extends AbstractEdmDeserializer<UrlRefImpl> {
-    @Override
-    protected UrlRefImpl doDeserialize(final JsonParser jp, final DeserializationContext ctxt)
-            throws IOException {
-      final UrlRefImpl urlref = new UrlRefImpl();
-      for (; jp.getCurrentToken() != JsonToken.END_OBJECT; jp.nextToken()) {
-        final JsonToken token = jp.getCurrentToken();
-        if (token == JsonToken.FIELD_NAME) {
-          if (isAnnotationConstExprConstruct(jp)) {
-            urlref.setValue(parseAnnotationConstExprConstruct(jp));
-          } else {
-            urlref.setValue(jp.readValueAs(AbstractDynamicAnnotationExpression.class));
-          }
-        }
-      }
-      return urlref;
-    }
-  }
-}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/754e23ab/lib/client-core/src/main/java/org/apache/olingo/client/core/serialization/ClientODataDeserializerImpl.java
----------------------------------------------------------------------
diff --git a/lib/client-core/src/main/java/org/apache/olingo/client/core/serialization/ClientODataDeserializerImpl.java b/lib/client-core/src/main/java/org/apache/olingo/client/core/serialization/ClientODataDeserializerImpl.java
index 32cd726..8430cff 100644
--- a/lib/client-core/src/main/java/org/apache/olingo/client/core/serialization/ClientODataDeserializerImpl.java
+++ b/lib/client-core/src/main/java/org/apache/olingo/client/core/serialization/ClientODataDeserializerImpl.java
@@ -28,8 +28,8 @@ import org.apache.olingo.client.api.edm.xml.XMLMetadata;
 import org.apache.olingo.client.api.serialization.ClientODataDeserializer;
 import org.apache.olingo.client.core.data.JSONServiceDocumentDeserializer;
 import org.apache.olingo.client.core.data.XMLServiceDocumentDeserializer;
-import org.apache.olingo.client.core.edm.xml.EdmxImpl;
-import org.apache.olingo.client.core.edm.xml.XMLMetadataImpl;
+import org.apache.olingo.client.core.edm.xml.ClientEdmx;
+import org.apache.olingo.client.core.edm.xml.ClientXMLMetadata;
 import org.apache.olingo.commons.api.data.Delta;
 import org.apache.olingo.commons.api.data.Entity;
 import org.apache.olingo.commons.api.data.EntityCollection;
@@ -114,7 +114,7 @@ public class ClientODataDeserializerImpl implements ClientODataDeserializer {
   @Override
   public XMLMetadata toMetadata(final InputStream input) {
     try {
-      return new XMLMetadataImpl(getXmlMapper().readValue(input, EdmxImpl.class));
+      return new ClientXMLMetadata(getXmlMapper().readValue(input, ClientEdmx.class));
     } catch (Exception e) {
       throw new IllegalArgumentException("Could not parse as Edmx document", e);
     }

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/754e23ab/lib/client-core/src/test/java/org/apache/olingo/client/core/uri/URIEscapeTest.java
----------------------------------------------------------------------
diff --git a/lib/client-core/src/test/java/org/apache/olingo/client/core/uri/URIEscapeTest.java b/lib/client-core/src/test/java/org/apache/olingo/client/core/uri/URIEscapeTest.java
index f3fde9e..4854887 100644
--- a/lib/client-core/src/test/java/org/apache/olingo/client/core/uri/URIEscapeTest.java
+++ b/lib/client-core/src/test/java/org/apache/olingo/client/core/uri/URIEscapeTest.java
@@ -27,7 +27,7 @@ import java.util.Calendar;
 import java.util.Collections;
 import java.util.TimeZone;
 
-import org.apache.olingo.client.core.edm.xml.EnumTypeImpl;
+import org.apache.olingo.client.core.edm.xml.ClientEnumType;
 import org.apache.olingo.commons.api.Constants;
 import org.apache.olingo.commons.api.edm.EdmEnumType;
 import org.apache.olingo.commons.api.edm.FullQualifiedName;
@@ -51,7 +51,7 @@ public class URIEscapeTest {
   @Test
   public void _enum() throws UnsupportedEncodingException {
     final EdmEnumType pattern =
-        new EdmEnumTypeImpl(null, new FullQualifiedName("Sales", "Pattern"), new EnumTypeImpl());
+        new EdmEnumTypeImpl(null, new FullQualifiedName("Sales", "Pattern"), new ClientEnumType());
 
     assertEquals("Sales.Pattern'Yellow'", URIUtils.escape( pattern.toUriLiteral("Yellow")));
   }

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/754e23ab/lib/client-core/src/test/java/org/apache/olingo/client/core/uri/v4/FilterFactoryTest.java
----------------------------------------------------------------------
diff --git a/lib/client-core/src/test/java/org/apache/olingo/client/core/uri/v4/FilterFactoryTest.java b/lib/client-core/src/test/java/org/apache/olingo/client/core/uri/v4/FilterFactoryTest.java
index 7f9b57d..5edd2cf 100644
--- a/lib/client-core/src/test/java/org/apache/olingo/client/core/uri/v4/FilterFactoryTest.java
+++ b/lib/client-core/src/test/java/org/apache/olingo/client/core/uri/v4/FilterFactoryTest.java
@@ -30,7 +30,7 @@ import org.apache.olingo.client.api.uri.FilterArgFactory;
 import org.apache.olingo.client.api.uri.FilterFactory;
 import org.apache.olingo.client.api.uri.URIFilter;
 import org.apache.olingo.client.core.AbstractTest;
-import org.apache.olingo.client.core.edm.xml.EnumTypeImpl;
+import org.apache.olingo.client.core.edm.xml.ClientEnumType;
 import org.apache.olingo.commons.api.Constants;
 import org.apache.olingo.commons.api.edm.EdmEnumType;
 import org.apache.olingo.commons.api.edm.FullQualifiedName;
@@ -55,7 +55,7 @@ public class FilterFactoryTest extends AbstractTest {
   @Test
   public void has() {
     final EdmEnumType pattern =
-        new EdmEnumTypeImpl(null, new FullQualifiedName("Sales", "Pattern"), new EnumTypeImpl());
+        new EdmEnumTypeImpl(null, new FullQualifiedName("Sales", "Pattern"), new ClientEnumType());
     final URIFilter filter = getFilterFactory().has(getFilterArgFactory().property("style"), pattern, "Yellow");
 
     assertEquals("(style has Sales.Pattern'Yellow')", filter.build());

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/754e23ab/lib/client-core/src/test/java/org/apache/olingo/client/core/v4/MetadataTest.java
----------------------------------------------------------------------
diff --git a/lib/client-core/src/test/java/org/apache/olingo/client/core/v4/MetadataTest.java b/lib/client-core/src/test/java/org/apache/olingo/client/core/v4/MetadataTest.java
index 56ed788..bb29eaa 100644
--- a/lib/client-core/src/test/java/org/apache/olingo/client/core/v4/MetadataTest.java
+++ b/lib/client-core/src/test/java/org/apache/olingo/client/core/v4/MetadataTest.java
@@ -29,8 +29,8 @@ import java.util.List;
 import org.apache.olingo.client.api.ODataClient;
 import org.apache.olingo.client.api.edm.xml.XMLMetadata;
 import org.apache.olingo.client.core.AbstractTest;
-import org.apache.olingo.client.core.edm.xml.annotation.ConstantAnnotationExpressionImpl;
-import org.apache.olingo.client.core.edm.xml.annotation.PathImpl;
+import org.apache.olingo.client.core.edm.xml.annotation.ClientConstantAnnotationExpression;
+import org.apache.olingo.client.core.edm.xml.annotation.ClientPath;
 import org.apache.olingo.commons.api.Constants;
 import org.apache.olingo.commons.api.edm.Edm;
 import org.apache.olingo.commons.api.edm.EdmAction;
@@ -297,16 +297,16 @@ public class MetadataTest extends AbstractTest {
     assertEquals(Constants.CANONICAL_FUNCTION_CONCAT, apply.getFunction());
     assertEquals(3, apply.getParameters().size());
 
-    final PathImpl firstArg = new PathImpl();
+    final ClientPath firstArg = new ClientPath();
     firstArg.setValue("Name");
     assertEquals(firstArg, apply.getParameters().get(0));
 
-    final ConstantAnnotationExpression secondArg = new ConstantAnnotationExpressionImpl();
+    final ConstantAnnotationExpression secondArg = new ClientConstantAnnotationExpression();
     secondArg.setType(ConstantAnnotationExpression.Type.String);
     secondArg.setValue(" in ");
     assertEquals(secondArg, apply.getParameters().get(1));
 
-    final PathImpl thirdArg = new PathImpl();
+    final ClientPath thirdArg = new ClientPath();
     thirdArg.setValue("Address/CountryName");
     assertEquals(thirdArg, apply.getParameters().get(2));
 


[33/50] [abbrv] olingo-odata4 git commit: [OLINGO-564] Renamed 'OData*' to 'Client*' classes

Posted by mi...@apache.org.
http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/c37d4da5/fit/src/test/java/org/apache/olingo/fit/v4/PropertyTestITCase.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/v4/PropertyTestITCase.java b/fit/src/test/java/org/apache/olingo/fit/v4/PropertyTestITCase.java
index f55c56e..f942e1c 100644
--- a/fit/src/test/java/org/apache/olingo/fit/v4/PropertyTestITCase.java
+++ b/fit/src/test/java/org/apache/olingo/fit/v4/PropertyTestITCase.java
@@ -1,18 +1,18 @@
-/* 
+/*
  * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
+ * or more contributor license agreements. See the NOTICE file
  * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
+ * 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
- *
+ * 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
+ * KIND, either express or implied. See the License for the
  * specific language governing permissions and limitations
  * under the License.
  */
@@ -34,9 +34,9 @@ import org.apache.olingo.client.api.communication.response.ODataEntityCreateResp
 import org.apache.olingo.client.api.communication.response.ODataPropertyUpdateResponse;
 import org.apache.olingo.client.api.communication.response.ODataRetrieveResponse;
 import org.apache.olingo.client.api.uri.URIBuilder;
-import org.apache.olingo.commons.api.domain.ODataEntity;
-import org.apache.olingo.commons.api.domain.ODataProperty;
-import org.apache.olingo.commons.api.domain.ODataValuable;
+import org.apache.olingo.commons.api.domain.ClientEntity;
+import org.apache.olingo.commons.api.domain.ClientProperty;
+import org.apache.olingo.commons.api.domain.ClientValuable;
 import org.apache.olingo.commons.api.format.ODataFormat;
 import org.apache.olingo.commons.api.http.HttpMethod;
 import org.junit.Test;
@@ -46,15 +46,15 @@ public class PropertyTestITCase extends AbstractTestITCase {
   private void _enum(final ODataClient client, final ODataFormat format) {
     final URIBuilder uriBuilder = client.newURIBuilder(testStaticServiceRootURL).
         appendEntitySetSegment("Products").appendKeySegment(5).appendPropertySegment("CoverColors");
-    final ODataPropertyRequest<ODataProperty> req = client.getRetrieveRequestFactory().
+    final ODataPropertyRequest<ClientProperty> req = client.getRetrieveRequestFactory().
         getPropertyRequest(uriBuilder.build());
     req.setFormat(format);
 
-    final ODataProperty prop = req.execute().getBody();
+    final ClientProperty prop = req.execute().getBody();
     assertNotNull(prop);
     // cast to workaround JDK 6 bug, fixed in JDK 7
     assertEquals("Collection(Microsoft.Test.OData.Services.ODataWCFService.Color)",
-        ((ODataValuable) prop).getValue().getTypeName());
+        ((ClientValuable) prop).getValue().getTypeName());
   }
 
   @Test
@@ -75,14 +75,14 @@ public class PropertyTestITCase extends AbstractTestITCase {
   private void geospatial(final ODataClient client, final ODataFormat format) {
     final URIBuilder uriBuilder = client.newURIBuilder(testStaticServiceRootURL).
         appendEntitySetSegment("People").appendKeySegment(5).appendPropertySegment("Home");
-    final ODataPropertyRequest<ODataProperty> req = client.getRetrieveRequestFactory().
+    final ODataPropertyRequest<ClientProperty> req = client.getRetrieveRequestFactory().
         getPropertyRequest(uriBuilder.build());
     req.setFormat(format);
 
-    final ODataProperty prop = req.execute().getBody();
+    final ClientProperty prop = req.execute().getBody();
     assertNotNull(prop);
     // cast to workaround JDK 6 bug, fixed in JDK 7
-    assertEquals("Edm.GeographyPoint", ((ODataValuable) prop).getValue().getTypeName());
+    assertEquals("Edm.GeographyPoint", ((ClientValuable) prop).getValue().getTypeName());
   }
 
   @Test
@@ -103,15 +103,15 @@ public class PropertyTestITCase extends AbstractTestITCase {
   private void complex(final ODataClient client, final ODataFormat format) {
     final URIBuilder uriBuilder = client.newURIBuilder(testStaticServiceRootURL).
         appendEntitySetSegment("Customers").appendKeySegment(2).appendPropertySegment("HomeAddress");
-    final ODataPropertyRequest<ODataProperty> req = client.getRetrieveRequestFactory().
+    final ODataPropertyRequest<ClientProperty> req = client.getRetrieveRequestFactory().
         getPropertyRequest(uriBuilder.build());
     req.setFormat(format);
 
-    final ODataProperty prop = req.execute().getBody();
+    final ClientProperty prop = req.execute().getBody();
     assertNotNull(prop);
     // cast to workaround JDK 6 bug, fixed in JDK 7
     assertEquals("Microsoft.Test.OData.Services.ODataWCFService.Address",
-        ((ODataValuable) prop).getValue().getTypeName());
+        ((ClientValuable) prop).getValue().getTypeName());
   }
 
   @Test
@@ -133,14 +133,14 @@ public class PropertyTestITCase extends AbstractTestITCase {
     final URIBuilder uriBuilder = client.newURIBuilder(testStaticServiceRootURL).
         appendEntitySetSegment("Customers").appendKeySegment(1).appendPropertySegment("HomeAddress");
 
-    ODataPropertyRequest<ODataProperty> retrieveReq =
+    ODataPropertyRequest<ClientProperty> retrieveReq =
         client.getRetrieveRequestFactory().getPropertyRequest(uriBuilder.build());
     retrieveReq.setFormat(format);
 
-    ODataRetrieveResponse<ODataProperty> retrieveRes = retrieveReq.execute();
+    ODataRetrieveResponse<ClientProperty> retrieveRes = retrieveReq.execute();
     assertEquals(200, retrieveRes.getStatusCode());
 
-    ODataProperty homeAddress = client.getObjectFactory().newComplexProperty("HomeAddress",
+    ClientProperty homeAddress = client.getObjectFactory().newComplexProperty("HomeAddress",
         client.getObjectFactory().newComplexValue(retrieveRes.getBody().getComplexValue().getTypeName()));
 
     homeAddress.getComplexValue().add(client.getObjectFactory().
@@ -176,17 +176,17 @@ public class PropertyTestITCase extends AbstractTestITCase {
   @Test
   public void createAndDelete() {
     // 1. create
-    final ODataEntity category = client.getObjectFactory().newEntity(null);
+    final ClientEntity category = client.getObjectFactory().newEntity(null);
     category.setId(client.newURIBuilder(testStaticServiceRootURL).
         appendEntitySetSegment("Categories").appendKeySegment(1).build());
 
     final URIBuilder createBuilder = client.newURIBuilder(testStaticServiceRootURL).
         appendEntitySetSegment("Products").appendKeySegment(0).appendNavigationSegment("Categories").
         appendRefSegment();
-    final ODataEntityCreateRequest<ODataEntity> createReq = client.getCUDRequestFactory().
+    final ODataEntityCreateRequest<ClientEntity> createReq = client.getCUDRequestFactory().
         getEntityCreateRequest(createBuilder.build(), category);
 
-    final ODataEntityCreateResponse<ODataEntity> createRes = createReq.execute();
+    final ODataEntityCreateResponse<ClientEntity> createRes = createReq.execute();
     assertEquals(204, createRes.getStatusCode());
 
     // 2. delete

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/c37d4da5/fit/src/test/java/org/apache/olingo/fit/v4/PropertyValueTestITCase.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/v4/PropertyValueTestITCase.java b/fit/src/test/java/org/apache/olingo/fit/v4/PropertyValueTestITCase.java
index 12fd772..6038654 100644
--- a/fit/src/test/java/org/apache/olingo/fit/v4/PropertyValueTestITCase.java
+++ b/fit/src/test/java/org/apache/olingo/fit/v4/PropertyValueTestITCase.java
@@ -1,18 +1,18 @@
-/* 
+/*
  * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
+ * or more contributor license agreements. See the NOTICE file
  * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
+ * 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
- *
+ * 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
+ * KIND, either express or implied. See the License for the
  * specific language governing permissions and limitations
  * under the License.
  */
@@ -28,9 +28,9 @@ import org.apache.olingo.client.api.communication.ODataClientErrorException;
 import org.apache.olingo.client.api.communication.request.retrieve.ODataPropertyRequest;
 import org.apache.olingo.client.api.communication.request.retrieve.ODataValueRequest;
 import org.apache.olingo.client.api.uri.URIBuilder;
-import org.apache.olingo.commons.api.domain.ODataPrimitiveValue;
-import org.apache.olingo.commons.api.domain.ODataProperty;
-import org.apache.olingo.commons.api.domain.ODataValuable;
+import org.apache.olingo.commons.api.domain.ClientPrimitiveValue;
+import org.apache.olingo.commons.api.domain.ClientProperty;
+import org.apache.olingo.commons.api.domain.ClientValuable;
 import org.apache.olingo.commons.api.edm.EdmPrimitiveTypeException;
 import org.apache.olingo.commons.api.format.ODataFormat;
 import org.junit.Test;
@@ -70,7 +70,7 @@ public class PropertyValueTestITCase extends AbstractTestITCase {
         appendEntitySetSegment("Orders").appendKeySegment(8).appendPropertySegment("OrderDate");
     final ODataValueRequest req = client.getRetrieveRequestFactory().getPropertyValueRequest(uriBuilder.build());
     req.setFormat(ODataFormat.TEXT_PLAIN);
-    final ODataPrimitiveValue property = req.execute().getBody();
+    final ClientPrimitiveValue property = req.execute().getBody();
     assertEquals("2011-03-04T16:03:57Z", property.toString());
   }
 
@@ -80,7 +80,7 @@ public class PropertyValueTestITCase extends AbstractTestITCase {
         appendEntitySetSegment("People").appendKeySegment(5).appendPropertySegment("Height");
     final ODataValueRequest req = client.getRetrieveRequestFactory().getPropertyValueRequest(uriBuilder.build());
     req.setFormat(ODataFormat.TEXT_PLAIN);
-    final ODataPrimitiveValue property = req.execute().getBody();
+    final ClientPrimitiveValue property = req.execute().getBody();
     assertEquals("179", property.toString());
   }
 
@@ -90,7 +90,7 @@ public class PropertyValueTestITCase extends AbstractTestITCase {
         appendEntitySetSegment("People").appendKeySegment(5).appendPropertySegment("PDC");
     final ODataValueRequest req = client.getRetrieveRequestFactory().getPropertyValueRequest(uriBuilder.build());
     req.setFormat(ODataFormat.TEXT_PLAIN);
-    final ODataPrimitiveValue property = req.execute().getBody();
+    final ClientPrimitiveValue property = req.execute().getBody();
     assertEquals("fi653p3+MklA/LdoBlhWgnMTUUEo8tEgtbMXnF0a3CUNL9BZxXpSRiD9ebTnmNR0zWPjJ"
         + "VIDx4tdmCnq55XrJh+RW9aI/b34wAogK3kcORw=", property.toString());
   }
@@ -117,12 +117,12 @@ public class PropertyValueTestITCase extends AbstractTestITCase {
   public void retrieveCollectionPropertyValueTest() {
     final URIBuilder uriBuilder = client.newURIBuilder(testStaticServiceRootURL).
         appendEntitySetSegment("People").appendKeySegment(5).appendPropertySegment("Numbers");
-    final ODataPropertyRequest<ODataProperty> req = client.getRetrieveRequestFactory().
+    final ODataPropertyRequest<ClientProperty> req = client.getRetrieveRequestFactory().
         getPropertyRequest(uriBuilder.build());
     req.setFormat(ODataFormat.XML);
-    final ODataProperty property = req.execute().getBody();
+    final ClientProperty property = req.execute().getBody();
     // cast to workaround JDK 6 bug, fixed in JDK 7
-    assertTrue(((ODataValuable) property).getValue().isCollection());
+    assertTrue(((ClientValuable) property).getValue().isCollection());
     assertEquals("555-555-5555", property.getCollectionValue().iterator().next().asPrimitive().toString());
   }
 
@@ -132,7 +132,7 @@ public class PropertyValueTestITCase extends AbstractTestITCase {
         appendEntitySetSegment("People").appendKeySegment(5).appendPropertySegment("HomeAddress");
     final ODataValueRequest req = client.getRetrieveRequestFactory().getPropertyValueRequest(uriBuilder.build());
     req.setFormat(ODataFormat.TEXT_PLAIN);
-    final ODataPrimitiveValue property = req.execute().getBody();
+    final ClientPrimitiveValue property = req.execute().getBody();
     assertTrue(StringUtils.isBlank(property.toString()));
   }
 }

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/c37d4da5/fit/src/test/java/org/apache/olingo/fit/v4/QueryOptionsTestITCase.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/v4/QueryOptionsTestITCase.java b/fit/src/test/java/org/apache/olingo/fit/v4/QueryOptionsTestITCase.java
index eb9ce22..046baa9 100644
--- a/fit/src/test/java/org/apache/olingo/fit/v4/QueryOptionsTestITCase.java
+++ b/fit/src/test/java/org/apache/olingo/fit/v4/QueryOptionsTestITCase.java
@@ -1,18 +1,18 @@
-/* 
+/*
  * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
+ * or more contributor license agreements. See the NOTICE file
  * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
+ * 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
- *
+ * 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
+ * KIND, either express or implied. See the License for the
  * specific language governing permissions and limitations
  * under the License.
  */
@@ -23,9 +23,9 @@ import org.apache.olingo.client.api.communication.request.retrieve.ODataEntitySe
 import org.apache.olingo.client.api.communication.response.ODataRetrieveResponse;
 import org.apache.olingo.client.api.uri.QueryOption;
 import org.apache.olingo.client.api.uri.URIBuilder;
-import org.apache.olingo.commons.api.domain.ODataEntity;
-import org.apache.olingo.commons.api.domain.ODataEntitySet;
-import org.apache.olingo.commons.api.domain.ODataInlineEntitySet;
+import org.apache.olingo.commons.api.domain.ClientEntity;
+import org.apache.olingo.commons.api.domain.ClientEntitySet;
+import org.apache.olingo.commons.api.domain.ClientInlineEntitySet;
 import org.apache.olingo.commons.api.edm.EdmPrimitiveTypeException;
 import org.apache.olingo.commons.api.format.ODataFormat;
 import org.junit.Test;
@@ -51,10 +51,11 @@ public class QueryOptionsTestITCase extends AbstractTestITCase {
     final URIBuilder uriBuilder = client.newURIBuilder(testStaticServiceRootURL).
         appendEntitySetSegment("Customers").appendKeySegment(1).expand("Orders");
 
-    final ODataEntityRequest<ODataEntity> req = client.getRetrieveRequestFactory().getEntityRequest(uriBuilder.build());
+    final ODataEntityRequest<ClientEntity> req =
+        client.getRetrieveRequestFactory().getEntityRequest(uriBuilder.build());
 
-    final ODataEntity customer = req.execute().getBody();
-    assertTrue(customer.getNavigationLink("Orders") instanceof ODataInlineEntitySet);
+    final ClientEntity customer = req.execute().getBody();
+    assertTrue(customer.getNavigationLink("Orders") instanceof ClientInlineEntitySet);
   }
 
   @Test
@@ -64,10 +65,11 @@ public class QueryOptionsTestITCase extends AbstractTestITCase {
         expandWithOptions("Orders", Collections.<QueryOption, Object> singletonMap(
             QueryOption.FILTER, getClient().getFilterFactory().gt("OrderID", 7).build()));
 
-    final ODataEntityRequest<ODataEntity> req = client.getRetrieveRequestFactory().getEntityRequest(uriBuilder.build());
+    final ODataEntityRequest<ClientEntity> req =
+        client.getRetrieveRequestFactory().getEntityRequest(uriBuilder.build());
 
-    final ODataEntity customer = req.execute().getBody();
-    assertTrue(customer.getNavigationLink("Orders") instanceof ODataInlineEntitySet);
+    final ClientEntity customer = req.execute().getBody();
+    assertTrue(customer.getNavigationLink("Orders") instanceof ClientInlineEntitySet);
   }
 
   /**
@@ -81,16 +83,16 @@ public class QueryOptionsTestITCase extends AbstractTestITCase {
         appendEntitySetSegment("People").filter("(PersonID lt 3)");
 
     // 1. check that filtered entity set looks as expected
-    ODataEntitySetRequest<ODataEntitySet> req =
+    ODataEntitySetRequest<ClientEntitySet> req =
         client.getRetrieveRequestFactory().getEntitySetRequest(uriBuilder.build());
 
-    ODataEntitySet feed = req.execute().getBody();
+    ClientEntitySet feed = req.execute().getBody();
     assertNotNull(feed);
     assertEquals(2, feed.getEntities().size());
 
     // 2. extract PersonID values - sorted ASC by default
     final List<Integer> former = new ArrayList<Integer>(2);
-    for (ODataEntity entity : feed.getEntities()) {
+    for (ClientEntity entity : feed.getEntities()) {
       final Integer personID = entity.getProperty("PersonID").getPrimitiveValue().toCastValue(Integer.class);
       assertTrue(personID < 3);
       former.add(personID);
@@ -105,7 +107,7 @@ public class QueryOptionsTestITCase extends AbstractTestITCase {
 
     // 4. extract again VIN value - now they were required to be sorted DESC
     final List<Integer> latter = new ArrayList<Integer>(2);
-    for (ODataEntity entity : feed.getEntities()) {
+    for (ClientEntity entity : feed.getEntities()) {
       final Integer personID = entity.getProperty("PersonID").getPrimitiveValue().toCastValue(Integer.class);
       assertTrue(personID < 3);
       latter.add(personID);
@@ -124,10 +126,11 @@ public class QueryOptionsTestITCase extends AbstractTestITCase {
     final URIBuilder uriBuilder = client.newURIBuilder(testStaticServiceRootURL).
         appendEntitySetSegment("Customers").appendKeySegment(1).format("json");
 
-    final ODataEntityRequest<ODataEntity> req = client.getRetrieveRequestFactory().getEntityRequest(uriBuilder.build());
+    final ODataEntityRequest<ClientEntity> req =
+        client.getRetrieveRequestFactory().getEntityRequest(uriBuilder.build());
     req.setFormat(ODataFormat.ATOM);
 
-    final ODataRetrieveResponse<ODataEntity> res = req.execute();
+    final ODataRetrieveResponse<ClientEntity> res = req.execute();
     assertNotNull(res);
     assertTrue(res.getContentType().replaceAll(" ", "").
         startsWith(ODataFormat.JSON.getContentType().toContentTypeString()));
@@ -140,10 +143,10 @@ public class QueryOptionsTestITCase extends AbstractTestITCase {
     final URIBuilder uriBuilder = client.newURIBuilder(testStaticServiceRootURL).appendEntitySetSegment("People");
 
     // 1. check that filtered entity set looks as expected
-    final ODataEntitySetRequest<ODataEntitySet> req =
+    final ODataEntitySetRequest<ClientEntitySet> req =
         client.getRetrieveRequestFactory().getEntitySetRequest(uriBuilder.skip(2).build());
 
-    final ODataEntitySet feed = req.execute().getBody();
+    final ClientEntitySet feed = req.execute().getBody();
     assertEquals(3, feed.getEntities().size());
   }
 
@@ -154,10 +157,10 @@ public class QueryOptionsTestITCase extends AbstractTestITCase {
     final URIBuilder uriBuilder = client.newURIBuilder(testStaticServiceRootURL).appendEntitySetSegment("People");
 
     // 1. check that filtered entity set looks as expected
-    final ODataEntitySetRequest<ODataEntitySet> req = client.getRetrieveRequestFactory().
+    final ODataEntitySetRequest<ClientEntitySet> req = client.getRetrieveRequestFactory().
         getEntitySetRequest(uriBuilder.top(2).build());
 
-    final ODataEntitySet feed = req.execute().getBody();
+    final ClientEntitySet feed = req.execute().getBody();
     assertEquals(2, feed.getEntities().size());
   }
 
@@ -169,14 +172,14 @@ public class QueryOptionsTestITCase extends AbstractTestITCase {
     final URIBuilder uriBuilder = client.newURIBuilder(testStaticServiceRootURL);
     uriBuilder.appendEntitySetSegment("People").skipToken("5");
 
-    final ODataEntitySetRequest<ODataEntitySet> req =
+    final ODataEntitySetRequest<ClientEntitySet> req =
         client.getRetrieveRequestFactory().getEntitySetRequest(uriBuilder.build());
 
-    final ODataEntitySet feed = req.execute().getBody();
+    final ClientEntitySet feed = req.execute().getBody();
     assertNotNull(feed);
     assertEquals(1, feed.getEntities().size());
 
-    for (ODataEntity entity : feed.getEntities()) {
+    for (ClientEntity entity : feed.getEntities()) {
       assertTrue(entity.getProperty("PersonID").getPrimitiveValue().toCastValue(Integer.class) > 5);
     }
   }
@@ -189,10 +192,10 @@ public class QueryOptionsTestITCase extends AbstractTestITCase {
     final URIBuilder uriBuilder =
         client.newURIBuilder(testStaticServiceRootURL).appendEntitySetSegment("Customers").count(true);
 
-    final ODataEntitySetRequest<ODataEntitySet> req =
+    final ODataEntitySetRequest<ClientEntitySet> req =
         client.getRetrieveRequestFactory().getEntitySetRequest(uriBuilder.build());
 
-    final ODataEntitySet feed = req.execute().getBody();
+    final ClientEntitySet feed = req.execute().getBody();
     assertNotNull(feed);
     assertEquals(Integer.valueOf(feed.getEntities().size()), feed.getCount());
   }
@@ -205,12 +208,13 @@ public class QueryOptionsTestITCase extends AbstractTestITCase {
     final URIBuilder uriBuilder = client.newURIBuilder(testStaticServiceRootURL).
         appendEntitySetSegment("Customers").appendKeySegment(1).select("PersonID,Orders").expand("Orders");
 
-    final ODataEntityRequest<ODataEntity> req = client.getRetrieveRequestFactory().getEntityRequest(uriBuilder.build());
+    final ODataEntityRequest<ClientEntity> req =
+        client.getRetrieveRequestFactory().getEntityRequest(uriBuilder.build());
 
-    final ODataEntity customer = req.execute().getBody();
+    final ClientEntity customer = req.execute().getBody();
     assertEquals(1, customer.getProperties().size());
     assertEquals(1, customer.getNavigationLinks().size());
-    assertTrue((customer.getNavigationLinks().get(0) instanceof ODataInlineEntitySet));
+    assertTrue((customer.getNavigationLinks().get(0) instanceof ClientInlineEntitySet));
   }
 
   @Test
@@ -219,9 +223,10 @@ public class QueryOptionsTestITCase extends AbstractTestITCase {
         appendEntitySetSegment("relatedEntitySelect").appendEntitySetSegment("Customers").appendKeySegment(1).
         expandWithSelect("Orders", "OrderID", "OrderDetails");
 
-    final ODataEntityRequest<ODataEntity> req = client.getRetrieveRequestFactory().getEntityRequest(uriBuilder.build());
+    final ODataEntityRequest<ClientEntity> req =
+        client.getRetrieveRequestFactory().getEntityRequest(uriBuilder.build());
 
-    final ODataRetrieveResponse<ODataEntity> res = req.execute();
+    final ODataRetrieveResponse<ClientEntity> res = req.execute();
     assertEquals(200, res.getStatusCode());
   }
 
@@ -231,10 +236,10 @@ public class QueryOptionsTestITCase extends AbstractTestITCase {
         appendEntitySetSegment("People").search(client.getSearchFactory().
             or(client.getSearchFactory().literal("Bob"), client.getSearchFactory().literal("Jill")));
 
-    final ODataEntitySetRequest<ODataEntitySet> req =
+    final ODataEntitySetRequest<ClientEntitySet> req =
         client.getRetrieveRequestFactory().getEntitySetRequest(builder.build());
 
-    final ODataRetrieveResponse<ODataEntitySet> res = req.execute();
+    final ODataRetrieveResponse<ClientEntitySet> res = req.execute();
     assertEquals(200, res.getStatusCode());
     assertFalse(res.getBody().getEntities().isEmpty());
   }

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/c37d4da5/fit/src/test/java/org/apache/olingo/fit/v4/ServiceDocumentTestITCase.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/v4/ServiceDocumentTestITCase.java b/fit/src/test/java/org/apache/olingo/fit/v4/ServiceDocumentTestITCase.java
index b2abc70..402b30f 100644
--- a/fit/src/test/java/org/apache/olingo/fit/v4/ServiceDocumentTestITCase.java
+++ b/fit/src/test/java/org/apache/olingo/fit/v4/ServiceDocumentTestITCase.java
@@ -1,18 +1,18 @@
-/* 
+/*
  * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
+ * or more contributor license agreements. See the NOTICE file
  * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
+ * 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
- *
+ * 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
+ * KIND, either express or implied. See the License for the
  * specific language governing permissions and limitations
  * under the License.
  */
@@ -20,7 +20,7 @@ package org.apache.olingo.fit.v4;
 
 import org.apache.olingo.client.api.communication.request.retrieve.ODataServiceDocumentRequest;
 import org.apache.olingo.client.api.communication.response.ODataRetrieveResponse;
-import org.apache.olingo.commons.api.domain.ODataServiceDocument;
+import org.apache.olingo.commons.api.domain.ClientServiceDocument;
 import org.apache.olingo.commons.api.format.ODataFormat;
 import org.junit.Test;
 
@@ -35,10 +35,10 @@ public class ServiceDocumentTestITCase extends AbstractTestITCase {
         client.getRetrieveRequestFactory().getServiceDocumentRequest(testStaticServiceRootURL);
     req.setFormat(format);
 
-    final ODataRetrieveResponse<ODataServiceDocument> res = req.execute();
+    final ODataRetrieveResponse<ClientServiceDocument> res = req.execute();
     assertEquals(200, res.getStatusCode());
 
-    final ODataServiceDocument serviceDocument = res.getBody();
+    final ClientServiceDocument serviceDocument = res.getBody();
     assertEquals(12, serviceDocument.getEntitySets().size());
     assertEquals(6, serviceDocument.getSingletons().size());
     assertEquals(6, serviceDocument.getFunctionImports().size());

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/c37d4da5/fit/src/test/java/org/apache/olingo/fit/v4/SingletonTestITCase.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/v4/SingletonTestITCase.java b/fit/src/test/java/org/apache/olingo/fit/v4/SingletonTestITCase.java
index 5a2605b..8883c96 100644
--- a/fit/src/test/java/org/apache/olingo/fit/v4/SingletonTestITCase.java
+++ b/fit/src/test/java/org/apache/olingo/fit/v4/SingletonTestITCase.java
@@ -1,18 +1,18 @@
-/* 
+/*
  * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
+ * or more contributor license agreements. See the NOTICE file
  * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
+ * 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
- *
+ * 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
+ * KIND, either express or implied. See the License for the
  * specific language governing permissions and limitations
  * under the License.
  */
@@ -24,9 +24,9 @@ import org.apache.olingo.client.api.communication.request.cud.UpdateType;
 import org.apache.olingo.client.api.communication.request.retrieve.ODataEntityRequest;
 import org.apache.olingo.client.api.communication.response.ODataEntityUpdateResponse;
 import org.apache.olingo.client.api.uri.URIBuilder;
-import org.apache.olingo.commons.api.domain.ODataAnnotation;
-import org.apache.olingo.commons.api.domain.ODataSingleton;
-import org.apache.olingo.commons.api.domain.ODataValuable;
+import org.apache.olingo.commons.api.domain.ClientAnnotation;
+import org.apache.olingo.commons.api.domain.ClientSingleton;
+import org.apache.olingo.commons.api.domain.ClientValuable;
 import org.apache.olingo.commons.api.edm.EdmPrimitiveTypeException;
 import org.apache.olingo.commons.api.edm.FullQualifiedName;
 import org.apache.olingo.commons.api.format.ODataFormat;
@@ -43,16 +43,16 @@ public class SingletonTestITCase extends AbstractTestITCase {
 
   private void read(final ODataClient client, final ODataFormat format) throws EdmPrimitiveTypeException {
     final URIBuilder builder = client.newURIBuilder(testStaticServiceRootURL).appendSingletonSegment("Company");
-    final ODataEntityRequest<ODataSingleton> singleton =
+    final ODataEntityRequest<ClientSingleton> singleton =
         client.getRetrieveRequestFactory().getSingletonRequest(builder.build());
     singleton.setFormat(format);
-    final ODataSingleton company = singleton.execute().getBody();
+    final ClientSingleton company = singleton.execute().getBody();
     assertNotNull(company);
 
     assertEquals(0, company.getProperty("CompanyID").getPrimitiveValue().toCastValue(Integer.class), 0);
     // cast to workaround JDK 6 bug, fixed in JDK 7
     assertEquals("Microsoft.Test.OData.Services.ODataWCFService.CompanyCategory",
-        ((ODataValuable) company.getProperty("CompanyCategory")).getValue().getTypeName());
+        ((ClientValuable) company.getProperty("CompanyCategory")).getValue().getTypeName());
     assertTrue(company.getProperty("CompanyCategory").hasEnumValue());
   }
 
@@ -75,15 +75,15 @@ public class SingletonTestITCase extends AbstractTestITCase {
       throws EdmPrimitiveTypeException {
 
     final URIBuilder builder = client.newURIBuilder(testStaticServiceRootURL).appendSingletonSegment("Boss");
-    final ODataEntityRequest<ODataSingleton> singleton =
+    final ODataEntityRequest<ClientSingleton> singleton =
         client.getRetrieveRequestFactory().getSingletonRequest(builder.build());
     singleton.setFormat(format);
     singleton.setPrefer(client.newPreferences().includeAnnotations("*"));
-    final ODataSingleton boss = singleton.execute().getBody();
+    final ClientSingleton boss = singleton.execute().getBody();
     assertNotNull(boss);
 
     assertFalse(boss.getAnnotations().isEmpty());
-    final ODataAnnotation isBoss = boss.getAnnotations().get(0);
+    final ClientAnnotation isBoss = boss.getAnnotations().get(0);
     assertTrue(isBoss.getPrimitiveValue().toCastValue(Boolean.class));
   }
 
@@ -103,20 +103,21 @@ public class SingletonTestITCase extends AbstractTestITCase {
   }
 
   private void update(final ODataFormat format) throws EdmPrimitiveTypeException {
-    final ODataSingleton changes = getClient().getObjectFactory().newSingleton(
+    final ClientSingleton changes = getClient().getObjectFactory().newSingleton(
         new FullQualifiedName("Microsoft.Test.OData.Services.ODataWCFService.Company"));
     changes.getProperties().add(getClient().getObjectFactory().newPrimitiveProperty("Revenue",
         getClient().getObjectFactory().newPrimitiveValueBuilder().buildInt64(132520L)));
 
     final URI uri = client.newURIBuilder(testStaticServiceRootURL).appendSingletonSegment("Company").build();
-    final ODataEntityUpdateRequest<ODataSingleton> req = getClient().getCUDRequestFactory().
+    final ODataEntityUpdateRequest<ClientSingleton> req = getClient().getCUDRequestFactory().
         getSingletonUpdateRequest(uri, UpdateType.PATCH, changes);
     req.setFormat(format);
 
-    final ODataEntityUpdateResponse<ODataSingleton> res = req.execute();
+    final ODataEntityUpdateResponse<ClientSingleton> res = req.execute();
     assertEquals(204, res.getStatusCode());
 
-    final ODataSingleton updated = getClient().getRetrieveRequestFactory().getSingletonRequest(uri).execute().getBody();
+    final ClientSingleton updated =
+        getClient().getRetrieveRequestFactory().getSingletonRequest(uri).execute().getBody();
     assertNotNull(updated);
     assertEquals(132520, updated.getProperty("Revenue").getPrimitiveValue().toCastValue(Integer.class), 0);
   }

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/c37d4da5/lib/client-api/src/main/java/org/apache/olingo/client/api/ODataClient.java
----------------------------------------------------------------------
diff --git a/lib/client-api/src/main/java/org/apache/olingo/client/api/ODataClient.java b/lib/client-api/src/main/java/org/apache/olingo/client/api/ODataClient.java
index 24b5119..04e01ba 100644
--- a/lib/client-api/src/main/java/org/apache/olingo/client/api/ODataClient.java
+++ b/lib/client-api/src/main/java/org/apache/olingo/client/api/ODataClient.java
@@ -32,7 +32,7 @@ import org.apache.olingo.client.api.serialization.ODataWriter;
 import org.apache.olingo.client.api.uri.FilterFactory;
 import org.apache.olingo.client.api.uri.SearchFactory;
 import org.apache.olingo.client.api.uri.URIBuilder;
-import org.apache.olingo.commons.api.domain.ODataObjectFactory;
+import org.apache.olingo.commons.api.domain.ClientObjectFactory;
 import org.apache.olingo.commons.api.edm.constants.ODataServiceVersion;
 import org.apache.olingo.commons.api.format.ODataFormat;
 import org.apache.olingo.commons.api.serialization.ODataSerializer;
@@ -65,7 +65,7 @@ public interface ODataClient {
 
   SearchFactory getSearchFactory();
 
-  ODataObjectFactory getObjectFactory();
+  ClientObjectFactory getObjectFactory();
 
   AsyncRequestFactory getAsyncRequestFactory();
 

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/c37d4da5/lib/client-api/src/main/java/org/apache/olingo/client/api/communication/ODataClientErrorException.java
----------------------------------------------------------------------
diff --git a/lib/client-api/src/main/java/org/apache/olingo/client/api/communication/ODataClientErrorException.java b/lib/client-api/src/main/java/org/apache/olingo/client/api/communication/ODataClientErrorException.java
index 178241a..218c6e3 100644
--- a/lib/client-api/src/main/java/org/apache/olingo/client/api/communication/ODataClientErrorException.java
+++ b/lib/client-api/src/main/java/org/apache/olingo/client/api/communication/ODataClientErrorException.java
@@ -21,12 +21,12 @@ package org.apache.olingo.client.api.communication;
 import org.apache.commons.lang3.StringUtils;
 import org.apache.http.StatusLine;
 import org.apache.olingo.commons.api.ODataRuntimeException;
-import org.apache.olingo.commons.api.domain.ODataError;
+import org.apache.olingo.commons.api.domain.ClientError;
 
 /**
  * Represents a client error in OData.
  *
- * @see ODataError
+ * @see ClientError
  */
 public class ODataClientErrorException extends ODataRuntimeException {
 
@@ -34,7 +34,7 @@ public class ODataClientErrorException extends ODataRuntimeException {
 
   private final StatusLine statusLine;
 
-  private final ODataError error;
+  private final ClientError error;
 
   /**
    * Constructor.
@@ -54,7 +54,7 @@ public class ODataClientErrorException extends ODataRuntimeException {
    * @param statusLine request status info.
    * @param error OData error to be wrapped.
    */
-  public ODataClientErrorException(final StatusLine statusLine, final ODataError error) {
+  public ODataClientErrorException(final StatusLine statusLine, final ClientError error) {
     super(error == null
             ? statusLine.toString()
             : (StringUtils.isBlank(error.getCode()) ? StringUtils.EMPTY : "(" + error.getCode() + ") ")
@@ -78,7 +78,7 @@ public class ODataClientErrorException extends ODataRuntimeException {
    *
    * @return OData error.
    */
-  public ODataError getODataError() {
+  public ClientError getODataError() {
     return error;
   }
 }

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/c37d4da5/lib/client-api/src/main/java/org/apache/olingo/client/api/communication/request/cud/CUDRequestFactory.java
----------------------------------------------------------------------
diff --git a/lib/client-api/src/main/java/org/apache/olingo/client/api/communication/request/cud/CUDRequestFactory.java b/lib/client-api/src/main/java/org/apache/olingo/client/api/communication/request/cud/CUDRequestFactory.java
index 9cc35c5..73c3f1f 100644
--- a/lib/client-api/src/main/java/org/apache/olingo/client/api/communication/request/cud/CUDRequestFactory.java
+++ b/lib/client-api/src/main/java/org/apache/olingo/client/api/communication/request/cud/CUDRequestFactory.java
@@ -24,10 +24,10 @@ import java.net.URI;
 import org.apache.olingo.client.api.communication.request.streamed.ODataMediaEntityCreateRequest;
 import org.apache.olingo.client.api.communication.request.streamed.ODataMediaEntityUpdateRequest;
 import org.apache.olingo.client.api.communication.request.streamed.ODataStreamUpdateRequest;
-import org.apache.olingo.commons.api.domain.ODataEntity;
-import org.apache.olingo.commons.api.domain.ODataPrimitiveValue;
-import org.apache.olingo.commons.api.domain.ODataProperty;
-import org.apache.olingo.commons.api.domain.ODataSingleton;
+import org.apache.olingo.commons.api.domain.ClientEntity;
+import org.apache.olingo.commons.api.domain.ClientPrimitiveValue;
+import org.apache.olingo.commons.api.domain.ClientProperty;
+import org.apache.olingo.commons.api.domain.ClientSingleton;
 
 public interface CUDRequestFactory {
 
@@ -41,7 +41,7 @@ public interface CUDRequestFactory {
    * @param entity entity to be created.
    * @return new ODataEntityCreateRequest instance.
    */
-  <E extends ODataEntity> ODataEntityCreateRequest<E> getEntityCreateRequest(URI targetURI, E entity);
+  <E extends ClientEntity> ODataEntityCreateRequest<E> getEntityCreateRequest(URI targetURI, E entity);
 
   /**
    * Gets an update request object instance.
@@ -52,7 +52,8 @@ public interface CUDRequestFactory {
    * @param changes changes to be applied.
    * @return new ODataEntityUpdateRequest instance.
    */
-  <E extends ODataEntity> ODataEntityUpdateRequest<E> getEntityUpdateRequest(URI targetURI, UpdateType type, E changes);
+  <E extends ClientEntity> ODataEntityUpdateRequest<E> getEntityUpdateRequest(URI targetURI,
+                                                                              UpdateType type, E changes);
 
   /**
    * Gets an update request object instance; uses entity's edit link as endpoint.
@@ -62,7 +63,7 @@ public interface CUDRequestFactory {
    * @param entity changes to be applied.
    * @return new ODataEntityUpdateRequest instance.
    */
-  <E extends ODataEntity> ODataEntityUpdateRequest<E> getEntityUpdateRequest(UpdateType type, E entity);
+  <E extends ClientEntity> ODataEntityUpdateRequest<E> getEntityUpdateRequest(UpdateType type, E entity);
 
   /**
    * Gets a create request object instance.
@@ -74,7 +75,7 @@ public interface CUDRequestFactory {
    * @param value value to be created.
    * @return new ODataValueUpdateRequest instance.
    */
-  ODataValueUpdateRequest getValueUpdateRequest(URI targetURI, UpdateType type, ODataPrimitiveValue value);
+  ODataValueUpdateRequest getValueUpdateRequest(URI targetURI, UpdateType type, ClientPrimitiveValue value);
 
   /**
    * Gets an update request object instance.
@@ -85,7 +86,7 @@ public interface CUDRequestFactory {
    * @param property value to be update.
    * @return new ODataPropertyUpdateRequest instance.
    */
-  ODataPropertyUpdateRequest getPropertyPrimitiveValueUpdateRequest(URI targetURI, ODataProperty property);
+  ODataPropertyUpdateRequest getPropertyPrimitiveValueUpdateRequest(URI targetURI, ClientProperty property);
 
   /**
    * Gets an update request object instance.
@@ -98,7 +99,7 @@ public interface CUDRequestFactory {
    * @return new ODataPropertyUpdateRequest instance.
    */
   ODataPropertyUpdateRequest
-      getPropertyComplexValueUpdateRequest(URI targetURI, UpdateType type, ODataProperty property);
+      getPropertyComplexValueUpdateRequest(URI targetURI, UpdateType type, ClientProperty property);
 
   /**
    * Gets an update request object instance.
@@ -109,7 +110,7 @@ public interface CUDRequestFactory {
    * @param property value to be update.
    * @return new ODataPropertyUpdateRequest instance.
    */
-  ODataPropertyUpdateRequest getPropertyCollectionValueUpdateRequest(URI targetURI, ODataProperty property);
+  ODataPropertyUpdateRequest getPropertyCollectionValueUpdateRequest(URI targetURI, ClientProperty property);
 
   /**
    * Gets a delete request object instance.
@@ -131,7 +132,7 @@ public interface CUDRequestFactory {
    * @param media entity blob to be created.
    * @return new ODataMediaEntityCreateRequest instance.
    */
-  <E extends ODataEntity> ODataMediaEntityCreateRequest<E> getMediaEntityCreateRequest(
+  <E extends ClientEntity> ODataMediaEntityCreateRequest<E> getMediaEntityCreateRequest(
       URI targetURI, InputStream media);
 
   /**
@@ -155,14 +156,14 @@ public interface CUDRequestFactory {
    * @param media entity blob to be updated.
    * @return new ODataMediaEntityUpdateRequest instance.
    */
-  <E extends ODataEntity> ODataMediaEntityUpdateRequest<E> getMediaEntityUpdateRequest(
+  <E extends ClientEntity> ODataMediaEntityUpdateRequest<E> getMediaEntityUpdateRequest(
       URI editURI, InputStream media);
 
-  ODataEntityUpdateRequest<ODataSingleton> getSingletonUpdateRequest(
-      URI targetURI, UpdateType type, ODataSingleton changes);
+  ODataEntityUpdateRequest<ClientSingleton> getSingletonUpdateRequest(
+      URI targetURI, UpdateType type, ClientSingleton changes);
 
-  ODataEntityUpdateRequest<ODataSingleton> getSingletonUpdateRequest(
-      UpdateType type, ODataSingleton entity);
+  ODataEntityUpdateRequest<ClientSingleton> getSingletonUpdateRequest(
+      UpdateType type, ClientSingleton entity);
 
   /**
    * A successful POST request to a navigation property's references collection adds a relationship to an existing

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/c37d4da5/lib/client-api/src/main/java/org/apache/olingo/client/api/communication/request/cud/ODataEntityCreateRequest.java
----------------------------------------------------------------------
diff --git a/lib/client-api/src/main/java/org/apache/olingo/client/api/communication/request/cud/ODataEntityCreateRequest.java b/lib/client-api/src/main/java/org/apache/olingo/client/api/communication/request/cud/ODataEntityCreateRequest.java
index 54999cc..3799357 100644
--- a/lib/client-api/src/main/java/org/apache/olingo/client/api/communication/request/cud/ODataEntityCreateRequest.java
+++ b/lib/client-api/src/main/java/org/apache/olingo/client/api/communication/request/cud/ODataEntityCreateRequest.java
@@ -21,14 +21,14 @@ package org.apache.olingo.client.api.communication.request.cud;
 import org.apache.olingo.client.api.communication.request.ODataBasicRequest;
 import org.apache.olingo.client.api.communication.request.ODataBatchableRequest;
 import org.apache.olingo.client.api.communication.response.ODataEntityCreateResponse;
-import org.apache.olingo.commons.api.domain.ODataEntity;
+import org.apache.olingo.commons.api.domain.ClientEntity;
 
 /**
  * This interface describes an OData create request.
  *
  * @param <E> concrete ODataEntity implementation
  */
-public interface ODataEntityCreateRequest<E extends ODataEntity>
+public interface ODataEntityCreateRequest<E extends ClientEntity>
     extends ODataBasicRequest<ODataEntityCreateResponse<E>>, ODataBatchableRequest {
 //No additional methods needed for now.
 }

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/c37d4da5/lib/client-api/src/main/java/org/apache/olingo/client/api/communication/request/cud/ODataEntityUpdateRequest.java
----------------------------------------------------------------------
diff --git a/lib/client-api/src/main/java/org/apache/olingo/client/api/communication/request/cud/ODataEntityUpdateRequest.java b/lib/client-api/src/main/java/org/apache/olingo/client/api/communication/request/cud/ODataEntityUpdateRequest.java
index 2eca16d..fa51265 100644
--- a/lib/client-api/src/main/java/org/apache/olingo/client/api/communication/request/cud/ODataEntityUpdateRequest.java
+++ b/lib/client-api/src/main/java/org/apache/olingo/client/api/communication/request/cud/ODataEntityUpdateRequest.java
@@ -21,14 +21,14 @@ package org.apache.olingo.client.api.communication.request.cud;
 import org.apache.olingo.client.api.communication.request.ODataBasicRequest;
 import org.apache.olingo.client.api.communication.request.ODataBatchableRequest;
 import org.apache.olingo.client.api.communication.response.ODataEntityUpdateResponse;
-import org.apache.olingo.commons.api.domain.ODataEntity;
+import org.apache.olingo.commons.api.domain.ClientEntity;
 
 /**
  * This class implements an OData update request.
  *
  * @param <E> concrete ODataEntity implementation
  */
-public interface ODataEntityUpdateRequest<E extends ODataEntity>
+public interface ODataEntityUpdateRequest<E extends ClientEntity>
     extends ODataBasicRequest<ODataEntityUpdateResponse<E>>, ODataBatchableRequest {
 //No additional methods needed for now.
 }

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/c37d4da5/lib/client-api/src/main/java/org/apache/olingo/client/api/communication/request/invoke/ClientNoContent.java
----------------------------------------------------------------------
diff --git a/lib/client-api/src/main/java/org/apache/olingo/client/api/communication/request/invoke/ClientNoContent.java b/lib/client-api/src/main/java/org/apache/olingo/client/api/communication/request/invoke/ClientNoContent.java
new file mode 100644
index 0000000..948570a
--- /dev/null
+++ b/lib/client-api/src/main/java/org/apache/olingo/client/api/communication/request/invoke/ClientNoContent.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.client.api.communication.request.invoke;
+
+import org.apache.olingo.commons.api.domain.ClientInvokeResult;
+
+/**
+ * Marker class for invoke with no return type.
+ */
+public class ClientNoContent implements ClientInvokeResult {
+//No additional methods needed for now.
+}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/c37d4da5/lib/client-api/src/main/java/org/apache/olingo/client/api/communication/request/invoke/EdmEnabledInvokeRequestFactory.java
----------------------------------------------------------------------
diff --git a/lib/client-api/src/main/java/org/apache/olingo/client/api/communication/request/invoke/EdmEnabledInvokeRequestFactory.java b/lib/client-api/src/main/java/org/apache/olingo/client/api/communication/request/invoke/EdmEnabledInvokeRequestFactory.java
index 8ffec0c..cf993f2 100644
--- a/lib/client-api/src/main/java/org/apache/olingo/client/api/communication/request/invoke/EdmEnabledInvokeRequestFactory.java
+++ b/lib/client-api/src/main/java/org/apache/olingo/client/api/communication/request/invoke/EdmEnabledInvokeRequestFactory.java
@@ -21,8 +21,8 @@ package org.apache.olingo.client.api.communication.request.invoke;
 import java.net.URI;
 import java.util.Map;
 
-import org.apache.olingo.commons.api.domain.ODataInvokeResult;
-import org.apache.olingo.commons.api.domain.ODataValue;
+import org.apache.olingo.commons.api.domain.ClientInvokeResult;
+import org.apache.olingo.commons.api.domain.ClientValue;
 import org.apache.olingo.commons.api.edm.FullQualifiedName;
 
 public interface EdmEnabledInvokeRequestFactory extends InvokeRequestFactory {
@@ -34,7 +34,7 @@ public interface EdmEnabledInvokeRequestFactory extends InvokeRequestFactory {
    * @param functionImportName operation to be invoked
    * @return new {@link ODataInvokeRequest} instance.
    */
-  <RES extends ODataInvokeResult> ODataInvokeRequest<RES> getFunctionImportInvokeRequest(
+  <RES extends ClientInvokeResult> ODataInvokeRequest<RES> getFunctionImportInvokeRequest(
           String functionImportName);
 
   /**
@@ -45,8 +45,8 @@ public interface EdmEnabledInvokeRequestFactory extends InvokeRequestFactory {
    * @param parameters parameters to pass to operation import invocation
    * @return new {@link ODataInvokeRequest} instance.
    */
-  <RES extends ODataInvokeResult> ODataInvokeRequest<RES> getFunctionImportInvokeRequest(
-          String functionImportName, Map<String, ODataValue> parameters);
+  <RES extends ClientInvokeResult> ODataInvokeRequest<RES> getFunctionImportInvokeRequest(
+          String functionImportName, Map<String, ClientValue> parameters);
 
   /**
    * Gets an invoke request instance for the action import with the given name.
@@ -55,7 +55,7 @@ public interface EdmEnabledInvokeRequestFactory extends InvokeRequestFactory {
    * @param actionImportName operation to be invoked
    * @return new {@link ODataInvokeRequest} instance.
    */
-  <RES extends ODataInvokeResult> ODataInvokeRequest<RES> getActionImportInvokeRequest(
+  <RES extends ClientInvokeResult> ODataInvokeRequest<RES> getActionImportInvokeRequest(
           String actionImportName);
 
   /**
@@ -66,8 +66,8 @@ public interface EdmEnabledInvokeRequestFactory extends InvokeRequestFactory {
    * @param parameters parameters to pass to operation import invocation
    * @return new {@link ODataInvokeRequest} instance.
    */
-  <RES extends ODataInvokeResult> ODataInvokeRequest<RES> getActionImportInvokeRequest(
-          String actionImportName, Map<String, ODataValue> parameters);
+  <RES extends ClientInvokeResult> ODataInvokeRequest<RES> getActionImportInvokeRequest(
+          String actionImportName, Map<String, ClientValue> parameters);
 
   /**
    * Gets an invoke request instance for the function bound to given URI (no parameters).
@@ -79,7 +79,7 @@ public interface EdmEnabledInvokeRequestFactory extends InvokeRequestFactory {
    * @param isBindingParameterCollection whether binding parameter is collection
    * @return new {@link ODataInvokeRequest} instance.
    */
-  <RES extends ODataInvokeResult> ODataInvokeRequest<RES> getBoundFunctionInvokeRequest(
+  <RES extends ClientInvokeResult> ODataInvokeRequest<RES> getBoundFunctionInvokeRequest(
           URI bindingParameterURI, FullQualifiedName functionName, FullQualifiedName bindingParameterTypeName,
           Boolean isBindingParameterCollection);
 
@@ -94,9 +94,9 @@ public interface EdmEnabledInvokeRequestFactory extends InvokeRequestFactory {
    * @param parameters parameters to pass to function invocation
    * @return new {@link ODataInvokeRequest} instance.
    */
-  <RES extends ODataInvokeResult> ODataInvokeRequest<RES> getBoundFunctionInvokeRequest(
+  <RES extends ClientInvokeResult> ODataInvokeRequest<RES> getBoundFunctionInvokeRequest(
           URI bindingParameterURI, FullQualifiedName functionName, FullQualifiedName bindingParameterTypeName,
-          Boolean isBindingParameterCollection, Map<String, ODataValue> parameters);
+          Boolean isBindingParameterCollection, Map<String, ClientValue> parameters);
 
   /**
    * Gets an invoke request instance for the action bound to given URI (no parameters).
@@ -108,7 +108,7 @@ public interface EdmEnabledInvokeRequestFactory extends InvokeRequestFactory {
    * @param isBindingParameterCollection whether binding parameter is collection
    * @return new {@link ODataInvokeRequest} instance.
    */
-  <RES extends ODataInvokeResult> ODataInvokeRequest<RES> getBoundActionInvokeRequest(
+  <RES extends ClientInvokeResult> ODataInvokeRequest<RES> getBoundActionInvokeRequest(
           URI bindingParameterURI, FullQualifiedName actionName, FullQualifiedName bindingParameterTypeName,
           Boolean isBindingParameterCollection);
 
@@ -123,8 +123,8 @@ public interface EdmEnabledInvokeRequestFactory extends InvokeRequestFactory {
    * @param parameters parameters to pass to function invocation
    * @return new {@link ODataInvokeRequest} instance.
    */
-  <RES extends ODataInvokeResult> ODataInvokeRequest<RES> getBoundActionInvokeRequest(
+  <RES extends ClientInvokeResult> ODataInvokeRequest<RES> getBoundActionInvokeRequest(
           URI bindingParameterURI, FullQualifiedName actionName, FullQualifiedName bindingParameterTypeName,
-          Boolean isBindingParameterCollection, Map<String, ODataValue> parameters);
+          Boolean isBindingParameterCollection, Map<String, ClientValue> parameters);
 
 }

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/c37d4da5/lib/client-api/src/main/java/org/apache/olingo/client/api/communication/request/invoke/InvokeRequestFactory.java
----------------------------------------------------------------------
diff --git a/lib/client-api/src/main/java/org/apache/olingo/client/api/communication/request/invoke/InvokeRequestFactory.java b/lib/client-api/src/main/java/org/apache/olingo/client/api/communication/request/invoke/InvokeRequestFactory.java
index 71c499d..247042f 100644
--- a/lib/client-api/src/main/java/org/apache/olingo/client/api/communication/request/invoke/InvokeRequestFactory.java
+++ b/lib/client-api/src/main/java/org/apache/olingo/client/api/communication/request/invoke/InvokeRequestFactory.java
@@ -21,8 +21,8 @@ package org.apache.olingo.client.api.communication.request.invoke;
 import java.net.URI;
 import java.util.Map;
 
-import org.apache.olingo.commons.api.domain.ODataInvokeResult;
-import org.apache.olingo.commons.api.domain.ODataValue;
+import org.apache.olingo.commons.api.domain.ClientInvokeResult;
+import org.apache.olingo.commons.api.domain.ClientValue;
 import org.apache.olingo.commons.api.http.HttpMethod;
 
 /**
@@ -43,8 +43,8 @@ public interface InvokeRequestFactory {
    * @param parameters parameters to pass to function invocation
    * @return new {@link ODataInvokeRequest} instance.
    */
-  <RES extends ODataInvokeResult> ODataInvokeRequest<RES> getInvokeRequest(
-          HttpMethod method, URI uri, Class<RES> resultRef, Map<String, ODataValue> parameters);
+  <RES extends ClientInvokeResult> ODataInvokeRequest<RES> getInvokeRequest(
+          HttpMethod method, URI uri, Class<RES> resultRef, Map<String, ClientValue> parameters);
 
   /**
    * Gets an invoke request instance for the function bound to given URI (no parameters).
@@ -54,7 +54,7 @@ public interface InvokeRequestFactory {
    * @param resultRef reference Class for result
    * @return new {@link ODataInvokeRequest} instance.
    */
-  <RES extends ODataInvokeResult> ODataInvokeRequest<RES> getFunctionInvokeRequest(URI uri, Class<RES> resultRef);
+  <RES extends ClientInvokeResult> ODataInvokeRequest<RES> getFunctionInvokeRequest(URI uri, Class<RES> resultRef);
 
   /**
    * Gets an invoke request instance for the function bound to given URI (with parameters).
@@ -65,8 +65,8 @@ public interface InvokeRequestFactory {
    * @param parameters parameters to pass to function invocation
    * @return new {@link ODataInvokeRequest} instance.
    */
-  <RES extends ODataInvokeResult> ODataInvokeRequest<RES> getFunctionInvokeRequest(
-          URI uri, Class<RES> resultRef, Map<String, ODataValue> parameters);
+  <RES extends ClientInvokeResult> ODataInvokeRequest<RES> getFunctionInvokeRequest(
+          URI uri, Class<RES> resultRef, Map<String, ClientValue> parameters);
 
   /**
    * Gets an invoke request instance for the action bound to given URI (no parameters).
@@ -76,7 +76,7 @@ public interface InvokeRequestFactory {
    * @param resultRef reference Class for result
    * @return new {@link ODataInvokeRequest} instance.
    */
-  <RES extends ODataInvokeResult> ODataInvokeRequest<RES> getActionInvokeRequest(URI uri, Class<RES> resultRef);
+  <RES extends ClientInvokeResult> ODataInvokeRequest<RES> getActionInvokeRequest(URI uri, Class<RES> resultRef);
 
   /**
    * Gets an invoke request instance for the action bound to given URI (with parameters).
@@ -87,6 +87,6 @@ public interface InvokeRequestFactory {
    * @param parameters parameters to pass to action invocation
    * @return new {@link ODataInvokeRequest} instance.
    */
-  <RES extends ODataInvokeResult> ODataInvokeRequest<RES> getActionInvokeRequest(
-          URI uri, Class<RES> resultRef, Map<String, ODataValue> parameters);
+  <RES extends ClientInvokeResult> ODataInvokeRequest<RES> getActionInvokeRequest(
+          URI uri, Class<RES> resultRef, Map<String, ClientValue> parameters);
 }

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/c37d4da5/lib/client-api/src/main/java/org/apache/olingo/client/api/communication/request/invoke/ODataInvokeRequest.java
----------------------------------------------------------------------
diff --git a/lib/client-api/src/main/java/org/apache/olingo/client/api/communication/request/invoke/ODataInvokeRequest.java b/lib/client-api/src/main/java/org/apache/olingo/client/api/communication/request/invoke/ODataInvokeRequest.java
index 696ff23..3ff05bb 100644
--- a/lib/client-api/src/main/java/org/apache/olingo/client/api/communication/request/invoke/ODataInvokeRequest.java
+++ b/lib/client-api/src/main/java/org/apache/olingo/client/api/communication/request/invoke/ODataInvokeRequest.java
@@ -22,15 +22,15 @@ import java.util.Map;
 
 import org.apache.olingo.client.api.communication.request.ODataBasicRequest;
 import org.apache.olingo.client.api.communication.response.ODataInvokeResponse;
-import org.apache.olingo.commons.api.domain.ODataInvokeResult;
-import org.apache.olingo.commons.api.domain.ODataValue;
+import org.apache.olingo.commons.api.domain.ClientInvokeResult;
+import org.apache.olingo.commons.api.domain.ClientValue;
 
 /**
  * This class implements an OData invoke operation request.
  *
  * @param <T> the actual invoke result
  */
-public interface ODataInvokeRequest<T extends ODataInvokeResult>
+public interface ODataInvokeRequest<T extends ClientInvokeResult>
     extends ODataBasicRequest<ODataInvokeResponse<T>> {
 
   /**
@@ -38,5 +38,5 @@ public interface ODataInvokeRequest<T extends ODataInvokeResult>
    *
    * @param parameters operation parameters.
    */
-  void setParameters(Map<String, ODataValue> parameters);
+  void setParameters(Map<String, ClientValue> parameters);
 }

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/c37d4da5/lib/client-api/src/main/java/org/apache/olingo/client/api/communication/request/invoke/ODataNoContent.java
----------------------------------------------------------------------
diff --git a/lib/client-api/src/main/java/org/apache/olingo/client/api/communication/request/invoke/ODataNoContent.java b/lib/client-api/src/main/java/org/apache/olingo/client/api/communication/request/invoke/ODataNoContent.java
deleted file mode 100644
index a01d822..0000000
--- a/lib/client-api/src/main/java/org/apache/olingo/client/api/communication/request/invoke/ODataNoContent.java
+++ /dev/null
@@ -1,28 +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.client.api.communication.request.invoke;
-
-import org.apache.olingo.commons.api.domain.ODataInvokeResult;
-
-/**
- * Marker class for invoke with no return type.
- */
-public class ODataNoContent implements ODataInvokeResult {
-//No additional methods needed for now.
-}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/c37d4da5/lib/client-api/src/main/java/org/apache/olingo/client/api/communication/request/retrieve/ODataDeltaRequest.java
----------------------------------------------------------------------
diff --git a/lib/client-api/src/main/java/org/apache/olingo/client/api/communication/request/retrieve/ODataDeltaRequest.java b/lib/client-api/src/main/java/org/apache/olingo/client/api/communication/request/retrieve/ODataDeltaRequest.java
index e1631a2..ea028d3 100644
--- a/lib/client-api/src/main/java/org/apache/olingo/client/api/communication/request/retrieve/ODataDeltaRequest.java
+++ b/lib/client-api/src/main/java/org/apache/olingo/client/api/communication/request/retrieve/ODataDeltaRequest.java
@@ -18,11 +18,11 @@
  */
 package org.apache.olingo.client.api.communication.request.retrieve;
 
-import org.apache.olingo.commons.api.domain.ODataDelta;
+import org.apache.olingo.commons.api.domain.ClientDelta;
 
 /**
  * Describes an OData retrieve request returning a delta object.
  */
-public interface ODataDeltaRequest extends ODataRetrieveRequest<ODataDelta> {
+public interface ODataDeltaRequest extends ODataRetrieveRequest<ClientDelta> {
 //No additional methods needed for now.
 }

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/c37d4da5/lib/client-api/src/main/java/org/apache/olingo/client/api/communication/request/retrieve/ODataEntityRequest.java
----------------------------------------------------------------------
diff --git a/lib/client-api/src/main/java/org/apache/olingo/client/api/communication/request/retrieve/ODataEntityRequest.java b/lib/client-api/src/main/java/org/apache/olingo/client/api/communication/request/retrieve/ODataEntityRequest.java
index bb67ce2..c96e417 100644
--- a/lib/client-api/src/main/java/org/apache/olingo/client/api/communication/request/retrieve/ODataEntityRequest.java
+++ b/lib/client-api/src/main/java/org/apache/olingo/client/api/communication/request/retrieve/ODataEntityRequest.java
@@ -18,11 +18,11 @@
  */
 package org.apache.olingo.client.api.communication.request.retrieve;
 
-import org.apache.olingo.commons.api.domain.ODataEntity;
+import org.apache.olingo.commons.api.domain.ClientEntity;
 
 /**
  * Describes an OData retrieve query request returning a single entity.
  */
-public interface ODataEntityRequest<E extends ODataEntity> extends ODataRetrieveRequest<E> {
+public interface ODataEntityRequest<E extends ClientEntity> extends ODataRetrieveRequest<E> {
 //No additional methods needed for now.
 }

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/c37d4da5/lib/client-api/src/main/java/org/apache/olingo/client/api/communication/request/retrieve/ODataEntitySetIteratorRequest.java
----------------------------------------------------------------------
diff --git a/lib/client-api/src/main/java/org/apache/olingo/client/api/communication/request/retrieve/ODataEntitySetIteratorRequest.java b/lib/client-api/src/main/java/org/apache/olingo/client/api/communication/request/retrieve/ODataEntitySetIteratorRequest.java
index 2f0c393..a00525b 100644
--- a/lib/client-api/src/main/java/org/apache/olingo/client/api/communication/request/retrieve/ODataEntitySetIteratorRequest.java
+++ b/lib/client-api/src/main/java/org/apache/olingo/client/api/communication/request/retrieve/ODataEntitySetIteratorRequest.java
@@ -19,13 +19,13 @@
 package org.apache.olingo.client.api.communication.request.retrieve;
 
 import org.apache.olingo.client.api.domain.ODataEntitySetIterator;
-import org.apache.olingo.commons.api.domain.ODataEntity;
-import org.apache.olingo.commons.api.domain.ODataEntitySet;
+import org.apache.olingo.commons.api.domain.ClientEntity;
+import org.apache.olingo.commons.api.domain.ClientEntitySet;
 
 /**
  * This class implements an OData EntitySet query request.
  */
-public interface ODataEntitySetIteratorRequest<ES extends ODataEntitySet, E extends ODataEntity>
+public interface ODataEntitySetIteratorRequest<ES extends ClientEntitySet, E extends ClientEntity>
         extends ODataRetrieveRequest<ODataEntitySetIterator<ES, E>> {
 //No additional methods needed for now.
 }

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/c37d4da5/lib/client-api/src/main/java/org/apache/olingo/client/api/communication/request/retrieve/ODataEntitySetRequest.java
----------------------------------------------------------------------
diff --git a/lib/client-api/src/main/java/org/apache/olingo/client/api/communication/request/retrieve/ODataEntitySetRequest.java b/lib/client-api/src/main/java/org/apache/olingo/client/api/communication/request/retrieve/ODataEntitySetRequest.java
index e78af01..31accd5 100644
--- a/lib/client-api/src/main/java/org/apache/olingo/client/api/communication/request/retrieve/ODataEntitySetRequest.java
+++ b/lib/client-api/src/main/java/org/apache/olingo/client/api/communication/request/retrieve/ODataEntitySetRequest.java
@@ -18,13 +18,13 @@
  */
 package org.apache.olingo.client.api.communication.request.retrieve;
 
-import org.apache.olingo.commons.api.domain.ODataEntitySet;
+import org.apache.olingo.commons.api.domain.ClientEntitySet;
 
 /**
  * This interface describes an OData EntitySet query request.
  *
  * @param <ES> concrete ODataEntitySet implementation
  */
-public interface ODataEntitySetRequest<ES extends ODataEntitySet> extends ODataRetrieveRequest<ES> {
+public interface ODataEntitySetRequest<ES extends ClientEntitySet> extends ODataRetrieveRequest<ES> {
 //No additional methods needed for now.
 }

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/c37d4da5/lib/client-api/src/main/java/org/apache/olingo/client/api/communication/request/retrieve/ODataPropertyRequest.java
----------------------------------------------------------------------
diff --git a/lib/client-api/src/main/java/org/apache/olingo/client/api/communication/request/retrieve/ODataPropertyRequest.java b/lib/client-api/src/main/java/org/apache/olingo/client/api/communication/request/retrieve/ODataPropertyRequest.java
index 567ae93..fd02f03 100644
--- a/lib/client-api/src/main/java/org/apache/olingo/client/api/communication/request/retrieve/ODataPropertyRequest.java
+++ b/lib/client-api/src/main/java/org/apache/olingo/client/api/communication/request/retrieve/ODataPropertyRequest.java
@@ -18,11 +18,11 @@
  */
 package org.apache.olingo.client.api.communication.request.retrieve;
 
-import org.apache.olingo.commons.api.domain.ODataProperty;
+import org.apache.olingo.commons.api.domain.ClientProperty;
 
 /**
  * This class implements an OData entity property query request.
  */
-public interface ODataPropertyRequest<T extends ODataProperty> extends ODataRetrieveRequest<T> {
+public interface ODataPropertyRequest<T extends ClientProperty> extends ODataRetrieveRequest<T> {
 //No additional methods needed for now.
 }

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/c37d4da5/lib/client-api/src/main/java/org/apache/olingo/client/api/communication/request/retrieve/ODataServiceDocumentRequest.java
----------------------------------------------------------------------
diff --git a/lib/client-api/src/main/java/org/apache/olingo/client/api/communication/request/retrieve/ODataServiceDocumentRequest.java b/lib/client-api/src/main/java/org/apache/olingo/client/api/communication/request/retrieve/ODataServiceDocumentRequest.java
index 96858a8..44d04f9 100644
--- a/lib/client-api/src/main/java/org/apache/olingo/client/api/communication/request/retrieve/ODataServiceDocumentRequest.java
+++ b/lib/client-api/src/main/java/org/apache/olingo/client/api/communication/request/retrieve/ODataServiceDocumentRequest.java
@@ -18,11 +18,11 @@
  */
 package org.apache.olingo.client.api.communication.request.retrieve;
 
-import org.apache.olingo.commons.api.domain.ODataServiceDocument;
+import org.apache.olingo.commons.api.domain.ClientServiceDocument;
 
 /**
  * This class implements an OData service document request.
  */
-public interface ODataServiceDocumentRequest extends ODataRetrieveRequest<ODataServiceDocument> {
+public interface ODataServiceDocumentRequest extends ODataRetrieveRequest<ClientServiceDocument> {
 //No additional methods needed for now.
 }

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/c37d4da5/lib/client-api/src/main/java/org/apache/olingo/client/api/communication/request/retrieve/ODataValueRequest.java
----------------------------------------------------------------------
diff --git a/lib/client-api/src/main/java/org/apache/olingo/client/api/communication/request/retrieve/ODataValueRequest.java b/lib/client-api/src/main/java/org/apache/olingo/client/api/communication/request/retrieve/ODataValueRequest.java
index 9324b8f..2b24591 100644
--- a/lib/client-api/src/main/java/org/apache/olingo/client/api/communication/request/retrieve/ODataValueRequest.java
+++ b/lib/client-api/src/main/java/org/apache/olingo/client/api/communication/request/retrieve/ODataValueRequest.java
@@ -18,11 +18,11 @@
  */
 package org.apache.olingo.client.api.communication.request.retrieve;
 
-import org.apache.olingo.commons.api.domain.ODataPrimitiveValue;
+import org.apache.olingo.commons.api.domain.ClientPrimitiveValue;
 
 /**
  * This class implements an OData entity property value query request.
  */
-public interface ODataValueRequest extends ODataRetrieveRequest<ODataPrimitiveValue> {
+public interface ODataValueRequest extends ODataRetrieveRequest<ClientPrimitiveValue> {
 //No additional methods needed for now.
 }

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/c37d4da5/lib/client-api/src/main/java/org/apache/olingo/client/api/communication/request/retrieve/RetrieveRequestFactory.java
----------------------------------------------------------------------
diff --git a/lib/client-api/src/main/java/org/apache/olingo/client/api/communication/request/retrieve/RetrieveRequestFactory.java b/lib/client-api/src/main/java/org/apache/olingo/client/api/communication/request/retrieve/RetrieveRequestFactory.java
index 4d0db79..04c5dfb 100644
--- a/lib/client-api/src/main/java/org/apache/olingo/client/api/communication/request/retrieve/RetrieveRequestFactory.java
+++ b/lib/client-api/src/main/java/org/apache/olingo/client/api/communication/request/retrieve/RetrieveRequestFactory.java
@@ -20,10 +20,10 @@ package org.apache.olingo.client.api.communication.request.retrieve;
 
 import java.net.URI;
 
-import org.apache.olingo.commons.api.domain.ODataEntity;
-import org.apache.olingo.commons.api.domain.ODataEntitySet;
-import org.apache.olingo.commons.api.domain.ODataProperty;
-import org.apache.olingo.commons.api.domain.ODataSingleton;
+import org.apache.olingo.commons.api.domain.ClientEntity;
+import org.apache.olingo.commons.api.domain.ClientEntitySet;
+import org.apache.olingo.commons.api.domain.ClientProperty;
+import org.apache.olingo.commons.api.domain.ClientSingleton;
 
 public interface RetrieveRequestFactory {
 
@@ -63,7 +63,7 @@ public interface RetrieveRequestFactory {
    * @param uri request URI.
    * @return new {@link ODataEntitySetRequest} instance.
    */
-  ODataEntitySetRequest<ODataEntitySet> getEntitySetRequest(URI uri);
+  ODataEntitySetRequest<ClientEntitySet> getEntitySetRequest(URI uri);
 
   /**
    * Gets a uri request returning a set of one or more OData entities.
@@ -74,7 +74,7 @@ public interface RetrieveRequestFactory {
    * @param uri request URI.
    * @return new {@link ODataEntitySetIteratorRequest} instance.
    */
-  ODataEntitySetIteratorRequest<ODataEntitySet, ODataEntity> getEntitySetIteratorRequest(URI uri);
+  ODataEntitySetIteratorRequest<ClientEntitySet, ClientEntity> getEntitySetIteratorRequest(URI uri);
 
   /**
    * Gets a uri request returning a single OData entity.
@@ -82,7 +82,7 @@ public interface RetrieveRequestFactory {
    * @param uri request URI.
    * @return new {@link ODataEntityRequest} instance.
    */
-  ODataEntityRequest<ODataEntity> getEntityRequest(URI uri);
+  ODataEntityRequest<ClientEntity> getEntityRequest(URI uri);
 
   /**
    * Gets a uri request returning a single OData entity property.
@@ -90,7 +90,7 @@ public interface RetrieveRequestFactory {
    * @param uri request URI.
    * @return new {@link ODataPropertyRequest} instance.
    */
-  ODataPropertyRequest<ODataProperty> getPropertyRequest(URI uri);
+  ODataPropertyRequest<ClientProperty> getPropertyRequest(URI uri);
   
   /**
    * Gets a uri request returning a single OData entity property value.
@@ -132,7 +132,7 @@ public interface RetrieveRequestFactory {
    */
   ODataRawRequest getRawRequest(URI uri);
 
-  ODataEntityRequest<ODataSingleton> getSingletonRequest(URI uri);
+  ODataEntityRequest<ClientSingleton> getSingletonRequest(URI uri);
 
   ODataDeltaRequest getDeltaRequest(URI uri);
 }

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/c37d4da5/lib/client-api/src/main/java/org/apache/olingo/client/api/communication/request/streamed/MediaEntityCreateStreamManager.java
----------------------------------------------------------------------
diff --git a/lib/client-api/src/main/java/org/apache/olingo/client/api/communication/request/streamed/MediaEntityCreateStreamManager.java b/lib/client-api/src/main/java/org/apache/olingo/client/api/communication/request/streamed/MediaEntityCreateStreamManager.java
index eb72494..1ef2493 100644
--- a/lib/client-api/src/main/java/org/apache/olingo/client/api/communication/request/streamed/MediaEntityCreateStreamManager.java
+++ b/lib/client-api/src/main/java/org/apache/olingo/client/api/communication/request/streamed/MediaEntityCreateStreamManager.java
@@ -20,14 +20,14 @@ package org.apache.olingo.client.api.communication.request.streamed;
 
 import org.apache.olingo.client.api.communication.request.ODataPayloadManager;
 import org.apache.olingo.client.api.communication.response.ODataMediaEntityCreateResponse;
-import org.apache.olingo.commons.api.domain.ODataEntity;
+import org.apache.olingo.commons.api.domain.ClientEntity;
 
 /**
  * Media entity payload object.
  *
  * @param <E> concrete ODataEntity implementation
  */
-public interface MediaEntityCreateStreamManager<E extends ODataEntity>
+public interface MediaEntityCreateStreamManager<E extends ClientEntity>
         extends ODataPayloadManager<ODataMediaEntityCreateResponse<E>> {
 //No additional methods needed for now.
 }

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/c37d4da5/lib/client-api/src/main/java/org/apache/olingo/client/api/communication/request/streamed/MediaEntityUpdateStreamManager.java
----------------------------------------------------------------------
diff --git a/lib/client-api/src/main/java/org/apache/olingo/client/api/communication/request/streamed/MediaEntityUpdateStreamManager.java b/lib/client-api/src/main/java/org/apache/olingo/client/api/communication/request/streamed/MediaEntityUpdateStreamManager.java
index 2619ea9..cf4bdd0 100644
--- a/lib/client-api/src/main/java/org/apache/olingo/client/api/communication/request/streamed/MediaEntityUpdateStreamManager.java
+++ b/lib/client-api/src/main/java/org/apache/olingo/client/api/communication/request/streamed/MediaEntityUpdateStreamManager.java
@@ -20,14 +20,14 @@ package org.apache.olingo.client.api.communication.request.streamed;
 
 import org.apache.olingo.client.api.communication.request.ODataPayloadManager;
 import org.apache.olingo.client.api.communication.response.ODataMediaEntityUpdateResponse;
-import org.apache.olingo.commons.api.domain.ODataEntity;
+import org.apache.olingo.commons.api.domain.ClientEntity;
 
 /**
  * Media entity payload object.
  *
  * @param <E> concrete ODataEntity implementation
  */
-public interface MediaEntityUpdateStreamManager<E extends ODataEntity>
+public interface MediaEntityUpdateStreamManager<E extends ClientEntity>
         extends ODataPayloadManager<ODataMediaEntityUpdateResponse<E>> {
 //No additional methods needed for now.
 }

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/c37d4da5/lib/client-api/src/main/java/org/apache/olingo/client/api/communication/request/streamed/ODataMediaEntityCreateRequest.java
----------------------------------------------------------------------
diff --git a/lib/client-api/src/main/java/org/apache/olingo/client/api/communication/request/streamed/ODataMediaEntityCreateRequest.java b/lib/client-api/src/main/java/org/apache/olingo/client/api/communication/request/streamed/ODataMediaEntityCreateRequest.java
index 8adc8f0..93570e5 100644
--- a/lib/client-api/src/main/java/org/apache/olingo/client/api/communication/request/streamed/ODataMediaEntityCreateRequest.java
+++ b/lib/client-api/src/main/java/org/apache/olingo/client/api/communication/request/streamed/ODataMediaEntityCreateRequest.java
@@ -20,14 +20,14 @@ package org.apache.olingo.client.api.communication.request.streamed;
 
 import org.apache.olingo.client.api.communication.request.ODataBatchableRequest;
 import org.apache.olingo.client.api.communication.response.ODataMediaEntityCreateResponse;
-import org.apache.olingo.commons.api.domain.ODataEntity;
+import org.apache.olingo.commons.api.domain.ClientEntity;
 
 /**
  * This class implements an OData Media Entity create request. Get instance by using ODataStreamedRequestFactory.
  *
  * @param <E> concrete ODataEntity implementation
  */
-public interface ODataMediaEntityCreateRequest<E extends ODataEntity>
+public interface ODataMediaEntityCreateRequest<E extends ClientEntity>
         extends ODataStreamedEntityRequest<ODataMediaEntityCreateResponse<E>, MediaEntityCreateStreamManager<E>>,
         ODataBatchableRequest{
 //No additional methods needed for now.

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/c37d4da5/lib/client-api/src/main/java/org/apache/olingo/client/api/communication/request/streamed/ODataMediaEntityUpdateRequest.java
----------------------------------------------------------------------
diff --git a/lib/client-api/src/main/java/org/apache/olingo/client/api/communication/request/streamed/ODataMediaEntityUpdateRequest.java b/lib/client-api/src/main/java/org/apache/olingo/client/api/communication/request/streamed/ODataMediaEntityUpdateRequest.java
index 3d4161d..e50620c 100644
--- a/lib/client-api/src/main/java/org/apache/olingo/client/api/communication/request/streamed/ODataMediaEntityUpdateRequest.java
+++ b/lib/client-api/src/main/java/org/apache/olingo/client/api/communication/request/streamed/ODataMediaEntityUpdateRequest.java
@@ -20,14 +20,14 @@ package org.apache.olingo.client.api.communication.request.streamed;
 
 import org.apache.olingo.client.api.communication.request.ODataBatchableRequest;
 import org.apache.olingo.client.api.communication.response.ODataMediaEntityUpdateResponse;
-import org.apache.olingo.commons.api.domain.ODataEntity;
+import org.apache.olingo.commons.api.domain.ClientEntity;
 
 /**
  * This class implements an OData Media Entity create request. Get instance by using ODataStreamedRequestFactory.
  *
  * @param <E> concrete ODataEntity implementation
  */
-public interface ODataMediaEntityUpdateRequest<E extends ODataEntity>
+public interface ODataMediaEntityUpdateRequest<E extends ClientEntity>
         extends ODataStreamedEntityRequest<ODataMediaEntityUpdateResponse<E>, MediaEntityUpdateStreamManager<E>>,
         ODataBatchableRequest {
 //No additional methods needed for now.

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/c37d4da5/lib/client-api/src/main/java/org/apache/olingo/client/api/communication/response/ODataEntityCreateResponse.java
----------------------------------------------------------------------
diff --git a/lib/client-api/src/main/java/org/apache/olingo/client/api/communication/response/ODataEntityCreateResponse.java b/lib/client-api/src/main/java/org/apache/olingo/client/api/communication/response/ODataEntityCreateResponse.java
index c90a25c..5816e71 100644
--- a/lib/client-api/src/main/java/org/apache/olingo/client/api/communication/response/ODataEntityCreateResponse.java
+++ b/lib/client-api/src/main/java/org/apache/olingo/client/api/communication/response/ODataEntityCreateResponse.java
@@ -18,7 +18,7 @@
  */
 package org.apache.olingo.client.api.communication.response;
 
-import org.apache.olingo.commons.api.domain.ODataEntity;
+import org.apache.olingo.commons.api.domain.ClientEntity;
 
 /**
  * This interface describes the response to an OData entity create request.
@@ -26,7 +26,7 @@ import org.apache.olingo.commons.api.domain.ODataEntity;
  * @param <E> concrete ODataEntity implementation
  * @see org.apache.olingo.client.api.communication.request.cud.ODataEntityCreateRequest
  */
-public interface ODataEntityCreateResponse<E extends ODataEntity> extends ODataResponse {
+public interface ODataEntityCreateResponse<E extends ClientEntity> extends ODataResponse {
 
   /**
    * Gets created object.

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/c37d4da5/lib/client-api/src/main/java/org/apache/olingo/client/api/communication/response/ODataEntityUpdateResponse.java
----------------------------------------------------------------------
diff --git a/lib/client-api/src/main/java/org/apache/olingo/client/api/communication/response/ODataEntityUpdateResponse.java b/lib/client-api/src/main/java/org/apache/olingo/client/api/communication/response/ODataEntityUpdateResponse.java
index 2f999bc..1f7f86d 100644
--- a/lib/client-api/src/main/java/org/apache/olingo/client/api/communication/response/ODataEntityUpdateResponse.java
+++ b/lib/client-api/src/main/java/org/apache/olingo/client/api/communication/response/ODataEntityUpdateResponse.java
@@ -18,7 +18,7 @@
  */
 package org.apache.olingo.client.api.communication.response;
 
-import org.apache.olingo.commons.api.domain.ODataEntity;
+import org.apache.olingo.commons.api.domain.ClientEntity;
 
 /**
  * This class implements the response to an OData update request.
@@ -26,7 +26,7 @@ import org.apache.olingo.commons.api.domain.ODataEntity;
  * @param <E> concrete ODataEntity implementation
  * @see org.apache.olingo.client.api.communication.request.cud.ODataEntityUpdateRequest
  */
-public interface ODataEntityUpdateResponse<E extends ODataEntity> extends ODataResponse {
+public interface ODataEntityUpdateResponse<E extends ClientEntity> extends ODataResponse {
 
   /**
    * Gets updated object.

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/c37d4da5/lib/client-api/src/main/java/org/apache/olingo/client/api/communication/response/ODataInvokeResponse.java
----------------------------------------------------------------------
diff --git a/lib/client-api/src/main/java/org/apache/olingo/client/api/communication/response/ODataInvokeResponse.java b/lib/client-api/src/main/java/org/apache/olingo/client/api/communication/response/ODataInvokeResponse.java
index 9d73d11..96ae840 100644
--- a/lib/client-api/src/main/java/org/apache/olingo/client/api/communication/response/ODataInvokeResponse.java
+++ b/lib/client-api/src/main/java/org/apache/olingo/client/api/communication/response/ODataInvokeResponse.java
@@ -18,14 +18,14 @@
  */
 package org.apache.olingo.client.api.communication.response;
 
-import org.apache.olingo.commons.api.domain.ODataInvokeResult;
+import org.apache.olingo.commons.api.domain.ClientInvokeResult;
 
 /**
  * This class implements a response to a specific invoke request.
  *
  * @param <T> the actual invoke result
  */
-public interface ODataInvokeResponse<T extends ODataInvokeResult> extends ODataResponse {
+public interface ODataInvokeResponse<T extends ClientInvokeResult> extends ODataResponse {
 
   /**
    * Gets operation return value if exists.

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/c37d4da5/lib/client-api/src/main/java/org/apache/olingo/client/api/communication/response/ODataMediaEntityCreateResponse.java
----------------------------------------------------------------------
diff --git a/lib/client-api/src/main/java/org/apache/olingo/client/api/communication/response/ODataMediaEntityCreateResponse.java b/lib/client-api/src/main/java/org/apache/olingo/client/api/communication/response/ODataMediaEntityCreateResponse.java
index fde5192..2b5141d 100644
--- a/lib/client-api/src/main/java/org/apache/olingo/client/api/communication/response/ODataMediaEntityCreateResponse.java
+++ b/lib/client-api/src/main/java/org/apache/olingo/client/api/communication/response/ODataMediaEntityCreateResponse.java
@@ -18,14 +18,14 @@
  */
 package org.apache.olingo.client.api.communication.response;
 
-import org.apache.olingo.commons.api.domain.ODataEntity;
+import org.apache.olingo.commons.api.domain.ClientEntity;
 
 /**
  * This class implements the response to an OData media entity create request.
  *
  * @param <E> concrete ODataEntity implementation
  */
-public interface ODataMediaEntityCreateResponse<E extends ODataEntity> extends ODataResponse {
+public interface ODataMediaEntityCreateResponse<E extends ClientEntity> extends ODataResponse {
 
   /**
    * Gets created object.

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/c37d4da5/lib/client-api/src/main/java/org/apache/olingo/client/api/communication/response/ODataMediaEntityUpdateResponse.java
----------------------------------------------------------------------
diff --git a/lib/client-api/src/main/java/org/apache/olingo/client/api/communication/response/ODataMediaEntityUpdateResponse.java b/lib/client-api/src/main/java/org/apache/olingo/client/api/communication/response/ODataMediaEntityUpdateResponse.java
index b267507..a22eebd 100644
--- a/lib/client-api/src/main/java/org/apache/olingo/client/api/communication/response/ODataMediaEntityUpdateResponse.java
+++ b/lib/client-api/src/main/java/org/apache/olingo/client/api/communication/response/ODataMediaEntityUpdateResponse.java
@@ -18,14 +18,14 @@
  */
 package org.apache.olingo.client.api.communication.response;
 
-import org.apache.olingo.commons.api.domain.ODataEntity;
+import org.apache.olingo.commons.api.domain.ClientEntity;
 
 /**
  * This class implements the response to an Odata media entity update request.
  *
  * @param <E> concrete ODataEntity implementation
  */
-public interface ODataMediaEntityUpdateResponse<E extends ODataEntity> extends ODataResponse {
+public interface ODataMediaEntityUpdateResponse<E extends ClientEntity> extends ODataResponse {
 
   /**
    * Gets updated object.


[29/50] [abbrv] olingo-odata4 git commit: [OLINGO-564] Renamed 'OData*' to 'Client*' classes

Posted by mi...@apache.org.
http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/c37d4da5/lib/commons-api/src/main/java/org/apache/olingo/commons/api/domain/ODataEntity.java
----------------------------------------------------------------------
diff --git a/lib/commons-api/src/main/java/org/apache/olingo/commons/api/domain/ODataEntity.java b/lib/commons-api/src/main/java/org/apache/olingo/commons/api/domain/ODataEntity.java
deleted file mode 100644
index 363b522..0000000
--- a/lib/commons-api/src/main/java/org/apache/olingo/commons/api/domain/ODataEntity.java
+++ /dev/null
@@ -1,202 +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.commons.api.domain;
-
-import org.apache.olingo.commons.api.edm.FullQualifiedName;
-
-import java.net.URI;
-import java.util.List;
-
-/**
- * OData entity.
- */
-public interface ODataEntity extends ODataLinked, ODataAnnotatable, ODataInvokeResult {
-
-  /**
-   * @return the type name of this entity.
-   */
-  FullQualifiedName getTypeName();
-
-  /**
-   * @return self link.
-   */
-  URI getLink();
-
-  /**
-   * Returns OData entity edit link.
-   * 
-   * @return entity edit link.
-   */
-  URI getEditLink();
-
-  /**
-   * Sets OData entity edit link.
-   * 
-   * @param editLink edit link.
-   */
-  void setEditLink(URI editLink);
-
-  /**
-   * Gets ETag.
-   * 
-   * @return ETag.
-   */
-  String getETag();
-
-  /**
-   * Sets ETag.
-   * 
-   * @param eTag ETag.
-   */
-  void setETag(String eTag);
-
-  /**
-   * Searches for operation with given title.
-   * 
-   * @param title operation to look for
-   * @return operation if found with given title, <tt>null</tt> otherwise
-   */
-  ODataOperation getOperation(String title);
-
-  /**
-   * Gets operations.
-   * 
-   * @return operations.
-   */
-  List<ODataOperation> getOperations();
-
-  /**
-   * Searches for property with given name.
-   * 
-   * @param name property to look for
-   * @return property if found with given name, <tt>null</tt> otherwise
-   */
-  ODataProperty getProperty(String name);
-
-  /**
-   * Returns OData entity properties.
-   *
-   * @return OData entity properties.
-   */
-  List<ODataProperty> getProperties();
-
-  /**
-   * To request entity references in place of the actual entities, the client issues a GET request with /$ref appended
-   * to the resource path.
-   * <br />
-   * If the resource path does not identify an entity or a collection of entities, the service returns 404 Not Found.
-   * <br />
-   * If the resource path terminates on a collection, the response MUST be the format-specific representation of a
-   * collection of entity references pointing to the related entities. If no entities are related, the response is the
-   * format-specific representation of an empty collection.
-   * <br />
-   * If the resource path terminates on a single entity, the response MUST be the format-specific representation of an
-   * entity reference pointing to the related single entity. If the resource path terminates on a single entity and no
-   * such entity exists, the service returns 404 Not Found.
-   *
-   * @return entity reference.
-   */
-  URI getId();
-
-  /**
-   * Set id for this OData entity.
-   *
-   * @param id the if for this entity
-   */
-  void setId(URI id);
-
-  /**
-   * Gets media-edit link with given name, if available, otherwise <tt>null</tt>.
-   * 
-   * @param name candidate link name
-   * @return media-edit link with given name, if available, otherwise <tt>null</tt>
-   */
-  ODataLink getMediaEditLink(final String name);
-
-  /**
-   * Returns entity media edit links.
-   * 
-   * @return OData entity links.
-   */
-  List<ODataLink> getMediaEditLinks();
-
-  /**
-   * TRUE if read-only entity.
-   * 
-   * @return TRUE if read-only; FALSE otherwise.
-   */
-  boolean isReadOnly();
-
-  /**
-   * Checks if the current entity is a media entity.
-   * 
-   * @return 'TRUE' if media entity; 'FALSE' otherwise.
-   */
-  boolean isMediaEntity();
-
-  /**
-   * Sets media entity flag.
-   * 
-   * @param isMediaEntity media entity flag value.
-   */
-  void setMediaEntity(boolean isMediaEntity);
-
-  /**
-   * Gets media content type.
-   * 
-   * @return media content type.
-   */
-  String getMediaContentType();
-
-  /**
-   * Sets media content type.
-   * 
-   * @param mediaContentType media content type.
-   */
-  void setMediaContentType(String mediaContentType);
-
-  /**
-   * Gets media content source.
-   * 
-   * @return media content source.
-   */
-  URI getMediaContentSource();
-
-  /**
-   * Sets media content source.
-   * 
-   * @param mediaContentSource media content source.
-   */
-  void setMediaContentSource(URI mediaContentSource);
-
-  /**
-   * ETag of the binary stream represented by this media entity or named stream property.
-   * 
-   * @return media ETag value
-   */
-  String getMediaETag();
-
-  /**
-   * Set media ETag.
-   * 
-   * @param eTag media ETag value
-   */
-  void setMediaETag(String eTag);
-
-}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/c37d4da5/lib/commons-api/src/main/java/org/apache/olingo/commons/api/domain/ODataEntitySet.java
----------------------------------------------------------------------
diff --git a/lib/commons-api/src/main/java/org/apache/olingo/commons/api/domain/ODataEntitySet.java b/lib/commons-api/src/main/java/org/apache/olingo/commons/api/domain/ODataEntitySet.java
deleted file mode 100644
index 4175f8f..0000000
--- a/lib/commons-api/src/main/java/org/apache/olingo/commons/api/domain/ODataEntitySet.java
+++ /dev/null
@@ -1,71 +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.commons.api.domain;
-
-import java.net.URI;
-import java.util.List;
-
-/**
- * OData entity collection. If pagination was used to get this instance, forward page navigation URI will be available.
- */
-public interface ODataEntitySet extends ODataInvokeResult, ODataAnnotatable  {
-
-  /**
-   * Gets next page link.
-   * 
-   * @return next page link; null value if single page or last page reached.
-   */
-  URI getNext();
-
-  /**
-   * Gets contained entities.
-   * 
-   * @return entity set's entities.
-   */
-  List<ODataEntity> getEntities();
-
-  /**
-   * Gets in-line count.
-   *
-   * @return in-line count value.
-   */
-  Integer getCount();
-
-  /**
-   * Sets in-line count.
-   *
-   * @param count in-line count value.
-   */
-  void setCount(final int count);
-
-
-  /**
-   * Gets delta link if exists.
-   *
-   * @return delta link if exists; null otherwise.
-   */
-  URI getDeltaLink();
-
-  /**
-   * Sets delta link.
-   *
-   * @param deltaLink delta link.
-   */
-  void setDeltaLink(URI deltaLink);
-}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/c37d4da5/lib/commons-api/src/main/java/org/apache/olingo/commons/api/domain/ODataEnumValue.java
----------------------------------------------------------------------
diff --git a/lib/commons-api/src/main/java/org/apache/olingo/commons/api/domain/ODataEnumValue.java b/lib/commons-api/src/main/java/org/apache/olingo/commons/api/domain/ODataEnumValue.java
deleted file mode 100644
index ef5852d..0000000
--- a/lib/commons-api/src/main/java/org/apache/olingo/commons/api/domain/ODataEnumValue.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.commons.api.domain;
-
-public interface ODataEnumValue extends ODataValue {
-
-  String getValue();
-
-  @Override
-  String toString();
-}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/c37d4da5/lib/commons-api/src/main/java/org/apache/olingo/commons/api/domain/ODataError.java
----------------------------------------------------------------------
diff --git a/lib/commons-api/src/main/java/org/apache/olingo/commons/api/domain/ODataError.java b/lib/commons-api/src/main/java/org/apache/olingo/commons/api/domain/ODataError.java
deleted file mode 100644
index a910f08..0000000
--- a/lib/commons-api/src/main/java/org/apache/olingo/commons/api/domain/ODataError.java
+++ /dev/null
@@ -1,132 +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.commons.api.domain;
-
-import java.util.List;
-import java.util.Map;
-
-/**
- * OData error.
- */
-public class ODataError {
-
-  private String code;
-  private String message;
-  private String target;
-  private List<ODataErrorDetail> details;
-  private Map<String, String> innerError;
-
-  /**
-   * The value for the code name/value pair is a language-independent string. Its value is a service-defined error code.
-   * This code serves as a sub-status for the HTTP error code specified in the response. MAY be null.
-   * @return the error code as a string
-   */
-  public String getCode() {
-    return code;
-  }
-
-  /**
-   * The value for the code name/value pair is a language-independent string. Its value is a service-defined error code.
-   * This code serves as a sub-status for the HTTP error code specified in the response. MAY be null.
-   * @param code
-   * @return this for method chaining
-   */
-  public ODataError setCode(String code) {
-    this.code = code;
-    return this;
-  }
-
-  /**
-   * The value for the message name/value pair MUST be a human-readable, language-dependent representation of the error.
-   * MUST not be null
-   * @return the message string
-   */
-  public String getMessage() {
-    return message;
-  }
-
-  /**
-   * The value for the message name/value pair MUST be a human-readable, language-dependent representation of the error.
-   * MUST not be null
-   * @param message
-   * @return this for method chaining
-   */
-  public ODataError setMessage(String message) {
-    this.message = message;
-    return this;
-  }
-
-  /**
-   * The value for the target name/value pair is the target of the particular error (for example, the name of the
-   * property in error). MAY be null.
-   * @return the target string
-   */
-  public String getTarget() {
-    return target;
-  }
-
-  /**
-   * The value for the target name/value pair is the target of the particular error (for example, the name of the
-   * property in error). MAY be null.
-   * @param target
-   * @return this for method chaining
-   */
-  public ODataError setTarget(String target) {
-    this.target = target;
-    return this;
-  }
-
-  /**
-   * Gets error details.
-   * 
-   * @return ODataErrorDetail list.
-   */
-  public List<ODataErrorDetail> getDetails() {
-    return details;
-  }
-
-  /**
-   * Sets error details.
-   * 
-   * @return this for method chaining.
-   */
-  public ODataError setDetails(List<ODataErrorDetail> details) {
-    this.details = details;
-    return this;
-  }
-
-  /**
-   * Gets server defined key-value pairs for debug environment only.
-   * 
-   * @return a pair representing server defined object. MAY be null.
-   */
-  public Map<String, String> getInnerError() {
-    return innerError;
-  }
-
-  /**
-   * Sets server defined key-value pairs for debug environment only.
-   * 
-   * @return this for method chaining.
-   */
-  public ODataError setInnerError(Map<String, String> innerError) {
-    this.innerError = innerError;
-    return this;
-  }
-}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/c37d4da5/lib/commons-api/src/main/java/org/apache/olingo/commons/api/domain/ODataErrorDetail.java
----------------------------------------------------------------------
diff --git a/lib/commons-api/src/main/java/org/apache/olingo/commons/api/domain/ODataErrorDetail.java b/lib/commons-api/src/main/java/org/apache/olingo/commons/api/domain/ODataErrorDetail.java
deleted file mode 100644
index 573525d..0000000
--- a/lib/commons-api/src/main/java/org/apache/olingo/commons/api/domain/ODataErrorDetail.java
+++ /dev/null
@@ -1,73 +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.commons.api.domain;
-
-/**
- * OData details, for example <tt>{ "error": {..., "details":[
- * {"code": "301","target": "$search" ,"message": "$search query option not supported"}
- * ],...}}</tt>.
- */
-public class ODataErrorDetail {
-
-  private String code;
-  private String message;
-  private String target;
-
-  /**
-   * Gets error code.
-   * 
-   * @return error code.
-   */
-  public String getCode() {
-    return code;
-  }
-
-  public ODataErrorDetail setCode(final String code) {
-    this.code = code;
-    return this;
-  }
-
-  /**
-   * Gets error message.
-   * 
-   * @return error message.
-   */
-  public String getMessage() {
-    return message;
-  }
-
-  public ODataErrorDetail setMessage(final String message) {
-    this.message = message;
-    return this;
-  }
-
-  /**
-   * Gets error target.
-   * 
-   * @return error message.
-   */
-  public String getTarget() {
-    return target;
-  }
-
-  public ODataErrorDetail setTarget(final String target) {
-    this.target = target;
-    return this;
-  }
-}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/c37d4da5/lib/commons-api/src/main/java/org/apache/olingo/commons/api/domain/ODataInlineEntity.java
----------------------------------------------------------------------
diff --git a/lib/commons-api/src/main/java/org/apache/olingo/commons/api/domain/ODataInlineEntity.java b/lib/commons-api/src/main/java/org/apache/olingo/commons/api/domain/ODataInlineEntity.java
deleted file mode 100644
index 6ba0ad6..0000000
--- a/lib/commons-api/src/main/java/org/apache/olingo/commons/api/domain/ODataInlineEntity.java
+++ /dev/null
@@ -1,68 +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.commons.api.domain;
-
-import java.net.URI;
-
-/**
- * OData in-line entity.
- */
-public class ODataInlineEntity extends ODataLink {
-
-  private final ODataEntity entity;
-
-  /**
-   * Constructor.
-   * 
-   * @param uri edit link.
-   * @param type type.
-   * @param title title.
-   * @param entity entity.
-   */
-  public ODataInlineEntity(final URI uri, final ODataLinkType type, final String title, final ODataEntity entity) {
-
-    super(uri, type, title);
-    this.entity = entity;
-  }
-
-  /**
-   * Constructor.
-   * 
-   * @param baseURI base URI.
-   * @param href href.
-   * @param type type.
-   * @param title title.
-   * @param entity entity.
-   */
-  public ODataInlineEntity(final URI baseURI, final String href, final ODataLinkType type, final String title,
-      final ODataEntity entity) {
-
-    super(baseURI, href, type, title);
-    this.entity = entity;
-  }
-
-  /**
-   * Gets wrapped entity.
-   * 
-   * @return wrapped entity.
-   */
-  public ODataEntity getEntity() {
-    return entity;
-  }
-}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/c37d4da5/lib/commons-api/src/main/java/org/apache/olingo/commons/api/domain/ODataInlineEntitySet.java
----------------------------------------------------------------------
diff --git a/lib/commons-api/src/main/java/org/apache/olingo/commons/api/domain/ODataInlineEntitySet.java b/lib/commons-api/src/main/java/org/apache/olingo/commons/api/domain/ODataInlineEntitySet.java
deleted file mode 100644
index c1cf322..0000000
--- a/lib/commons-api/src/main/java/org/apache/olingo/commons/api/domain/ODataInlineEntitySet.java
+++ /dev/null
@@ -1,69 +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.commons.api.domain;
-
-import java.net.URI;
-
-/**
- * OData in-line entity set.
- */
-public class ODataInlineEntitySet extends ODataLink {
-
-  private ODataEntitySet entitySet;
-
-  /**
-   * Constructor.
-   * 
-   * @param uri edit link.
-   * @param type type.
-   * @param title title.
-   * @param entitySet entity set.
-   */
-  public ODataInlineEntitySet(final URI uri, final ODataLinkType type,
-      final String title, final ODataEntitySet entitySet) {
-
-    super(uri, type, title);
-    this.entitySet = entitySet;
-  }
-
-  /**
-   * Constructor.
-   * 
-   * @param baseURI base URI.
-   * @param href href.
-   * @param type type.
-   * @param title title.
-   * @param entitySet entity set.
-   */
-  public ODataInlineEntitySet(final URI baseURI, final String href,
-      final ODataLinkType type, final String title, final ODataEntitySet entitySet) {
-
-    super(baseURI, href, type, title);
-    this.entitySet = entitySet;
-  }
-
-  /**
-   * Gets wrapped entity set.
-   * 
-   * @return wrapped entity set.
-   */
-  public ODataEntitySet getEntitySet() {
-    return entitySet;
-  }
-}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/c37d4da5/lib/commons-api/src/main/java/org/apache/olingo/commons/api/domain/ODataInvokeResult.java
----------------------------------------------------------------------
diff --git a/lib/commons-api/src/main/java/org/apache/olingo/commons/api/domain/ODataInvokeResult.java b/lib/commons-api/src/main/java/org/apache/olingo/commons/api/domain/ODataInvokeResult.java
deleted file mode 100644
index bfd0909..0000000
--- a/lib/commons-api/src/main/java/org/apache/olingo/commons/api/domain/ODataInvokeResult.java
+++ /dev/null
@@ -1,30 +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.commons.api.domain;
-
-/**
- * Marker interface for any OData domain object that can be returned by an operation invocation.
- * 
- * @see ODataEntitySet
- * @see ODataEntity
- * @see ODataProperty
- */
-public interface ODataInvokeResult {
-//No additional methods needed for now.
-}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/c37d4da5/lib/commons-api/src/main/java/org/apache/olingo/commons/api/domain/ODataItem.java
----------------------------------------------------------------------
diff --git a/lib/commons-api/src/main/java/org/apache/olingo/commons/api/domain/ODataItem.java b/lib/commons-api/src/main/java/org/apache/olingo/commons/api/domain/ODataItem.java
deleted file mode 100644
index 589b249..0000000
--- a/lib/commons-api/src/main/java/org/apache/olingo/commons/api/domain/ODataItem.java
+++ /dev/null
@@ -1,96 +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.commons.api.domain;
-
-import java.net.URI;
-
-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.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-/**
- * Abstract representation of OData entities and links.
- */
-public abstract class ODataItem {
-
-  /**
-   * Logger.
-   */
-  protected static final Logger LOG = LoggerFactory.getLogger(ODataItem.class);
-
-  /**
-   * OData entity name/type.
-   */
-  private final String name;
-
-  /**
-   * OData item self link.
-   */
-  protected URI link;
-
-  /**
-   * Constructor.
-   * 
-   * @param name ODataItem name (it's entity type for {@link ODataEntity}).
-   */
-  public ODataItem(final String name) {
-    this.name = name;
-  }
-
-  /**
-   * @return ODataItem name (it's entity type for {@link ODataEntity}).
-   */
-  public String getName() {
-    return name;
-  }
-
-  /**
-   * @return ODataItem link (it's edit link for {@link ODataEntity}).
-   */
-  public URI getLink() {
-    return link;
-  }
-
-  /**
-   * Sets ODataItem link (it's edit link for {@link ODataEntity}).
-   * 
-   * @param link link.
-   */
-  public void setLink(final URI link) {
-    this.link = link;
-  }
-
-  @Override
-  public boolean equals(final Object obj) {
-    return EqualsBuilder.reflectionEquals(this, obj);
-  }
-
-  @Override
-  public int hashCode() {
-    return HashCodeBuilder.reflectionHashCode(this);
-  }
-
-  @Override
-  public String toString() {
-    return ReflectionToStringBuilder.toString(this, ToStringStyle.MULTI_LINE_STYLE);
-  }
-}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/c37d4da5/lib/commons-api/src/main/java/org/apache/olingo/commons/api/domain/ODataLink.java
----------------------------------------------------------------------
diff --git a/lib/commons-api/src/main/java/org/apache/olingo/commons/api/domain/ODataLink.java b/lib/commons-api/src/main/java/org/apache/olingo/commons/api/domain/ODataLink.java
deleted file mode 100644
index 8593679..0000000
--- a/lib/commons-api/src/main/java/org/apache/olingo/commons/api/domain/ODataLink.java
+++ /dev/null
@@ -1,187 +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.commons.api.domain;
-
-import java.net.URI;
-import java.util.ArrayList;
-import java.util.List;
-
-import org.apache.olingo.commons.api.Constants;
-
-/**
- * OData link.
- */
-public class ODataLink extends ODataItem implements ODataAnnotatable {
-
-  public static class Builder {
-
-    protected URI uri;
-
-    protected ODataLinkType type;
-
-    protected String title;
-
-    public Builder setURI(final URI uri) {
-      this.uri = uri;
-      return this;
-    }
-
-    public Builder setURI(final URI baseURI, final String href) {
-      uri = getURI(baseURI, href);
-      return this;
-    }
-
-    public Builder setType(final ODataLinkType type) {
-      this.type = type;
-      return this;
-    }
-
-    public Builder setTitle(final String title) {
-      this.title = title;
-      return this;
-    }
-
-    public ODataLink build() {
-      return new ODataLink(uri, type, title);
-    }
-  }
-
-  /**
-   * Build URI starting from the given base and href.
-   * <br/>
-   * If href is absolute or base is null then base will be ignored.
-   * 
-   * @param base URI prefix.
-   * @param href URI suffix.
-   * @return built URI.
-   */
-  private static URI getURI(final URI base, final String href) {
-    if (href == null) {
-      throw new IllegalArgumentException("Null link provided");
-    }
-
-    URI uri = URI.create(href);
-
-    if (!uri.isAbsolute() && base != null) {
-      uri = URI.create(base.toASCIIString() + "/" + href);
-    }
-
-    return uri.normalize();
-  }
-
-  /**
-   * Link type.
-   */
-  protected final ODataLinkType type;
-
-  /**
-   * Link rel.
-   */
-  protected final String rel;
-
-  /**
-   * ETag for media edit links.
-   */
-  protected String mediaETag;
-
-  private final List<ODataAnnotation> annotations = new ArrayList<ODataAnnotation>();
-
-  /**
-   * Constructor.
-   * 
-   * @param uri URI.
-   * @param type type.
-   * @param title title.
-   */
-  public ODataLink(final URI uri, final ODataLinkType type, final String title) {
-    super(title);
-
-    link = uri;
-    this.type = type;
-
-    switch (this.type) {
-    case ASSOCIATION:
-      rel = Constants.NS_ASSOCIATION_LINK_REL + title;
-      break;
-
-    case ENTITY_NAVIGATION:
-    case ENTITY_SET_NAVIGATION:
-      rel = Constants.NS_NAVIGATION_LINK_REL + title;
-      break;
-
-    case MEDIA_EDIT:
-    default:
-      rel = Constants.NS_MEDIA_EDIT_LINK_REL + title;
-      break;
-    }
-  }
-
-  /**
-   * Constructor.
-   * 
-   * @param version OData service version.
-   * @param baseURI base URI.
-   * @param href href.
-   * @param type type.
-   * @param title title.
-   */
-  protected ODataLink(final URI baseURI, final String href, final ODataLinkType type, final String title) {
-
-    this(getURI(baseURI, href), type, title);
-  }
-
-  /**
-   * Gets link type.
-   * 
-   * @return link type;
-   */
-  public ODataLinkType getType() {
-    return type;
-  }
-
-  public ODataInlineEntity asInlineEntity() {
-    return (this instanceof ODataInlineEntity) ? (ODataInlineEntity) this : null;
-  }
-
-  public ODataInlineEntitySet asInlineEntitySet() {
-    return (this instanceof ODataInlineEntitySet) ? (ODataInlineEntitySet) this : null;
-  }
-
-  /**
-   * Gets link rel.
-   * 
-   * @return link rel
-   */
-  public String getRel() {
-    return rel;
-  }
-
-  /**
-   * Gets Media ETag.
-   * 
-   * @return media ETag
-   */
-  public String getMediaETag() {
-    return mediaETag;
-  }
-
-  public List<ODataAnnotation> getAnnotations() {
-    return annotations;
-  }
-}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/c37d4da5/lib/commons-api/src/main/java/org/apache/olingo/commons/api/domain/ODataLinkType.java
----------------------------------------------------------------------
diff --git a/lib/commons-api/src/main/java/org/apache/olingo/commons/api/domain/ODataLinkType.java b/lib/commons-api/src/main/java/org/apache/olingo/commons/api/domain/ODataLinkType.java
deleted file mode 100644
index 5ae427c..0000000
--- a/lib/commons-api/src/main/java/org/apache/olingo/commons/api/domain/ODataLinkType.java
+++ /dev/null
@@ -1,105 +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.commons.api.domain;
-
-import org.apache.commons.lang3.StringUtils;
-import org.apache.olingo.commons.api.Constants;
-import org.apache.olingo.commons.api.format.ContentType;
-
-/**
- * OData link types.
- */
-public enum ODataLinkType {
-
-  /**
-   * Entity navigation link.
-   */
-  ENTITY_NAVIGATION(ContentType.APPLICATION_ATOM_XML_ENTRY),
-  /**
-   * Entity set navigation link.
-   */
-  ENTITY_SET_NAVIGATION(ContentType.APPLICATION_ATOM_XML_FEED),
-  /**
-   * Association link.
-   */
-  ASSOCIATION(ContentType.APPLICATION_XML),
-  /**
-   * Media-edit link.
-   */
-  MEDIA_EDIT("*/*"),
-
-  /**
-   * Entity binding link.
-   */
-  ENTITY_BINDING(ContentType.APPLICATION_XML),
-
-  /**
-   * Entity collection binding link.
-   */
-  ENTITY_COLLECTION_BINDING(ContentType.APPLICATION_XML);
-
-  private String type;
-
-  private ODataLinkType(final String type) {
-    this.type = type;
-  }
-
-  private ODataLinkType(final ContentType contentType) {
-    this(contentType.toContentTypeString());
-  }
-
-  private ODataLinkType setType(final String type) {
-    this.type = type;
-    return this;
-  }
-
-  /**
-   * Gets
-   * <code>LinkType</code> instance from the given rel and type.
-   * 
-   * @param rel rel.
-   * @param type type.
-   * @return <code>ODataLinkType</code> object.
-   */
-  public static ODataLinkType fromString(final String rel, final String type) {
-    if (StringUtils.isNotBlank(rel) && rel.startsWith(Constants.NS_MEDIA_EDIT_LINK_REL)) {
-
-      return MEDIA_EDIT.setType(StringUtils.isBlank(type) ? "*/*" : type);
-    }
-
-    if (ODataLinkType.ENTITY_NAVIGATION.type.equals(type)) {
-      return ENTITY_NAVIGATION;
-    }
-
-    if (ODataLinkType.ENTITY_SET_NAVIGATION.type.equals(type)) {
-      return ENTITY_SET_NAVIGATION;
-    }
-
-    if (ODataLinkType.ASSOCIATION.type.equals(type)) {
-      return ASSOCIATION;
-    }
-
-    throw new IllegalArgumentException("Invalid link type: " + type);
-  }
-
-  @Override
-  public String toString() {
-    return type;
-  }
-}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/c37d4da5/lib/commons-api/src/main/java/org/apache/olingo/commons/api/domain/ODataLinked.java
----------------------------------------------------------------------
diff --git a/lib/commons-api/src/main/java/org/apache/olingo/commons/api/domain/ODataLinked.java b/lib/commons-api/src/main/java/org/apache/olingo/commons/api/domain/ODataLinked.java
deleted file mode 100644
index fd9d965..0000000
--- a/lib/commons-api/src/main/java/org/apache/olingo/commons/api/domain/ODataLinked.java
+++ /dev/null
@@ -1,70 +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.commons.api.domain;
-
-import java.util.List;
-
-public interface ODataLinked {
-
-  /**
-   * Puts the given link into one of available lists, based on its type.
-   * 
-   * @param link to be added
-   * @return <tt>true</tt> if the given link was added in one of available lists
-   */
-  boolean addLink(ODataLink link);
-
-  /**
-   * Removes the given link from any list (association, navigation, edit-media).
-   * 
-   * @param link to be removed
-   * @return <tt>true</tt> if the given link was contained in one of available lists
-   */
-  boolean removeLink(ODataLink link);
-
-  /**
-   * Gets association link with given name, if available, otherwise <tt>null</tt>.
-   * 
-   * @param name candidate link name
-   * @return association link with given name, if available, otherwise <tt>null</tt>
-   */
-  ODataLink getAssociationLink(String name);
-
-  /**
-   * Returns all entity association links.
-   * 
-   * @return OData entity links.
-   */
-  List<ODataLink> getAssociationLinks();
-
-  /**
-   * Gets navigation link with given name, if available, otherwise <tt>null</tt>.
-   * 
-   * @param name candidate link name
-   * @return navigation link with given name, if available, otherwise <tt>null</tt>
-   */
-  ODataLink getNavigationLink(String name);
-
-  /**
-   * Returns all entity navigation links (including inline entities / entity sets).
-   * 
-   * @return OData entity links.
-   */
-  List<ODataLink> getNavigationLinks();
-}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/c37d4da5/lib/commons-api/src/main/java/org/apache/olingo/commons/api/domain/ODataObjectFactory.java
----------------------------------------------------------------------
diff --git a/lib/commons-api/src/main/java/org/apache/olingo/commons/api/domain/ODataObjectFactory.java b/lib/commons-api/src/main/java/org/apache/olingo/commons/api/domain/ODataObjectFactory.java
deleted file mode 100644
index 3dee5e3..0000000
--- a/lib/commons-api/src/main/java/org/apache/olingo/commons/api/domain/ODataObjectFactory.java
+++ /dev/null
@@ -1,168 +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.commons.api.domain;
-
-import org.apache.olingo.commons.api.edm.FullQualifiedName;
-
-import java.net.URI;
-
-/**
- * Entry point for generating OData domain objects.
- */
-public interface ODataObjectFactory {
-
-  /**
-   * Instantiates a new entity set.
-   * 
-   * @return entity set.
-   */
-  ODataEntitySet newEntitySet();
-
-  /**
-   * Instantiates a new entity set.
-   * 
-   * @param next next link.
-   * @return entity set.
-   */
-  ODataEntitySet newEntitySet(URI next);
-
-  /**
-   * Instantiates a new entity.
-   * 
-   * @param typeName OData entity type name.
-   * @return entity.
-   */
-  ODataEntity newEntity(FullQualifiedName typeName);
-
-  /**
-   * Instantiates a new entity.
-   * 
-   * @param typeName OData entity type name.
-   * @param link self link.
-   * @return entity.
-   */
-  ODataEntity newEntity(FullQualifiedName typeName, URI link);
-
-  /**
-   * Instantiates a new entity set (for deep insert).
-   * 
-   * @param name name.
-   * @param entitySet entity set.
-   * @return in-line entity set.
-   */
-  ODataInlineEntitySet newDeepInsertEntitySet(String name, ODataEntitySet entitySet);
-
-  /**
-   * Instantiates a new entity (for deep insert).
-   * 
-   * @param name name.
-   * @param entity entity.
-   * @return in-line entity.
-   */
-  ODataInlineEntity newDeepInsertEntity(String name, ODataEntity entity);
-
-  /**
-   * Instantiates a new entity set navigation link.
-   * 
-   * @param name name.
-   * @param link link.
-   * @return entity set navigation link.
-   */
-  ODataLink newEntitySetNavigationLink(String name, URI link);
-
-  /**
-   * Instantiates a new singleton entity.
-   *
-   * @param typeName OData singleton entity type name.
-   * @return new singleton entity.
-   */
-  ODataSingleton newSingleton(FullQualifiedName typeName);
-
-  /**
-   * Instantiates a new entity navigation link.
-   *
-   * @param name name.
-   * @param link link.
-   * @return entity navigation link.
-   */
-  ODataLink newEntityNavigationLink(String name, URI link);
-
-  ODataLink newAssociationLink(String name, URI link);
-
-  ODataLink newMediaEditLink(String name, URI link);
-
-  ODataPrimitiveValue.Builder newPrimitiveValueBuilder();
-
-  ODataEnumValue newEnumValue(String typeName, String value);
-
-  ODataComplexValue newComplexValue(String typeName);
-
-  ODataCollectionValue<ODataValue> newCollectionValue(String typeName);
-
-  /**
-   * Instantiates a new primitive property.
-   * 
-   * @param name name.
-   * @param value primitive value.
-   * @return primitive property.
-   */
-  ODataProperty newPrimitiveProperty(String name, ODataPrimitiveValue value);
-
-  /**
-   * Instantiates a new complex property.
-   * 
-   * @param name name.
-   * @param value value.
-   * @return complex property.
-   */
-  ODataProperty newComplexProperty(String name, ODataComplexValue value);
-
-  /**
-   * Instantiates a new collection property.
-   * 
-   * @param name name.
-   * @param value value.
-   * @return collection property.
-   */
-  ODataProperty newCollectionProperty(String name, ODataCollectionValue<? extends ODataValue> value);
-
-  /**
-   * Instantiates a new enum property.
-   *
-   * @param name name.
-   * @param value value.
-   * @return new enum property.
-   */
-  ODataProperty newEnumProperty(String name, ODataEnumValue value);
-
-  /**
-   * Instantiates a new delta property.
-   *
-   * @return new delta property.
-   */
-  ODataDelta newDelta();
-
-  /**
-   * Instantiates a new delta property.
-   *
-   * @param next next link for delta property
-   * @return new delta property.
-   */
-  ODataDelta newDelta(URI next);
-}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/c37d4da5/lib/commons-api/src/main/java/org/apache/olingo/commons/api/domain/ODataOperation.java
----------------------------------------------------------------------
diff --git a/lib/commons-api/src/main/java/org/apache/olingo/commons/api/domain/ODataOperation.java b/lib/commons-api/src/main/java/org/apache/olingo/commons/api/domain/ODataOperation.java
deleted file mode 100644
index 421a405..0000000
--- a/lib/commons-api/src/main/java/org/apache/olingo/commons/api/domain/ODataOperation.java
+++ /dev/null
@@ -1,85 +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.commons.api.domain;
-
-import java.net.URI;
-
-public class ODataOperation {
-
-  private String metadataAnchor;
-
-  private String title;
-
-  private URI target;
-
-  /**
-   * Gets metadata anchor.
-   * 
-   * @return metadata anchor.
-   */
-  public String getMetadataAnchor() {
-    return metadataAnchor;
-  }
-
-  /**
-   * Sets metadata anchor.
-   * 
-   * @param metadataAnchor metadata anchor.
-   */
-  public void setMetadataAnchor(final String metadataAnchor) {
-    this.metadataAnchor = metadataAnchor;
-  }
-
-  /**
-   * Gets title.
-   * 
-   * @return title.
-   */
-  public String getTitle() {
-    return title;
-  }
-
-  /**
-   * Sets title.
-   * 
-   * @param title title.
-   */
-  public void setTitle(final String title) {
-    this.title = title;
-  }
-
-  /**
-   * Gets target.
-   * 
-   * @return target.
-   */
-  public URI getTarget() {
-    return target;
-  }
-
-  /**
-   * Sets target.
-   * 
-   * @param target target.
-   */
-  public void setTarget(final URI target) {
-    this.target = target;
-  }
-
-}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/c37d4da5/lib/commons-api/src/main/java/org/apache/olingo/commons/api/domain/ODataPrimitiveValue.java
----------------------------------------------------------------------
diff --git a/lib/commons-api/src/main/java/org/apache/olingo/commons/api/domain/ODataPrimitiveValue.java b/lib/commons-api/src/main/java/org/apache/olingo/commons/api/domain/ODataPrimitiveValue.java
deleted file mode 100644
index 46c4416..0000000
--- a/lib/commons-api/src/main/java/org/apache/olingo/commons/api/domain/ODataPrimitiveValue.java
+++ /dev/null
@@ -1,88 +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.commons.api.domain;
-
-import org.apache.olingo.commons.api.edm.EdmPrimitiveType;
-import org.apache.olingo.commons.api.edm.EdmPrimitiveTypeException;
-import org.apache.olingo.commons.api.edm.EdmPrimitiveTypeKind;
-import org.apache.olingo.commons.api.edm.EdmType;
-
-import java.util.UUID;
-
-public interface ODataPrimitiveValue extends ODataValue {
-
-  interface Builder {
-
-    Builder setType(EdmType type);
-
-    Builder setType(EdmPrimitiveTypeKind type);
-
-    Builder setValue(Object value);
-
-    ODataPrimitiveValue build();
-
-    ODataPrimitiveValue buildBoolean(Boolean value);
-
-    ODataPrimitiveValue buildInt16(Short value);
-
-    ODataPrimitiveValue buildInt32(Integer value);
-
-    ODataPrimitiveValue buildInt64(Long value);
-
-    ODataPrimitiveValue buildSingle(Float value);
-
-    ODataPrimitiveValue buildDouble(Double value);
-
-    ODataPrimitiveValue buildString(String value);
-
-    ODataPrimitiveValue buildGuid(UUID value);
-
-    ODataPrimitiveValue buildBinary(byte[] value);
-  }
-
-  EdmPrimitiveTypeKind getTypeKind();
-
-  EdmPrimitiveType getType();
-
-  /**
-   * Returns the current value as generic Object.
-   * 
-   * @return an uncasted instance of this value
-   */
-  Object toValue();
-
-  /**
-   * Returns the current value casted to the given type.
-   * 
-   * @param <T> cast type
-   * @param reference class reference
-   * @return the current value as typed java instance
-   * @throws EdmPrimitiveTypeException if the object is not assignable to the type T.
-   */
-  <T> T toCastValue(Class<T> reference) throws EdmPrimitiveTypeException;
-
-  /**
-   * Serialize the current value as String.
-   * 
-   * @return a String representation of this value
-   */
-  @Override
-  String toString();
-
-}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/c37d4da5/lib/commons-api/src/main/java/org/apache/olingo/commons/api/domain/ODataProperty.java
----------------------------------------------------------------------
diff --git a/lib/commons-api/src/main/java/org/apache/olingo/commons/api/domain/ODataProperty.java b/lib/commons-api/src/main/java/org/apache/olingo/commons/api/domain/ODataProperty.java
deleted file mode 100644
index 9007626..0000000
--- a/lib/commons-api/src/main/java/org/apache/olingo/commons/api/domain/ODataProperty.java
+++ /dev/null
@@ -1,32 +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.commons.api.domain;
-
-/**
- * OData entity property.
- */
-public interface ODataProperty extends ODataInvokeResult, ODataAnnotatable, ODataValuable {
-
-  /**
-   * Returns property name.
-   *
-   * @return property name.
-   */
-  String getName();
-}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/c37d4da5/lib/commons-api/src/main/java/org/apache/olingo/commons/api/domain/ODataPropertyType.java
----------------------------------------------------------------------
diff --git a/lib/commons-api/src/main/java/org/apache/olingo/commons/api/domain/ODataPropertyType.java b/lib/commons-api/src/main/java/org/apache/olingo/commons/api/domain/ODataPropertyType.java
deleted file mode 100644
index e7b5b85..0000000
--- a/lib/commons-api/src/main/java/org/apache/olingo/commons/api/domain/ODataPropertyType.java
+++ /dev/null
@@ -1,44 +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.commons.api.domain;
-
-public enum ODataPropertyType {
-
-  /**
-   * Primitive (including geospatial).
-   */
-  PRIMITIVE,
-  /**
-   * Enum.
-   */
-  ENUM,
-  /**
-   * Collection.
-   */
-  COLLECTION,
-  /**
-   * Complex.
-   */
-  COMPLEX,
-  /**
-   * Empty type (possibly, no type information could be retrieved).
-   */
-  EMPTY
-
-}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/c37d4da5/lib/commons-api/src/main/java/org/apache/olingo/commons/api/domain/ODataServiceDocument.java
----------------------------------------------------------------------
diff --git a/lib/commons-api/src/main/java/org/apache/olingo/commons/api/domain/ODataServiceDocument.java b/lib/commons-api/src/main/java/org/apache/olingo/commons/api/domain/ODataServiceDocument.java
deleted file mode 100644
index 8bbff32..0000000
--- a/lib/commons-api/src/main/java/org/apache/olingo/commons/api/domain/ODataServiceDocument.java
+++ /dev/null
@@ -1,163 +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.commons.api.domain;
-
-import java.net.URI;
-import java.util.Collection;
-import java.util.HashMap;
-import java.util.Map;
-
-public class ODataServiceDocument {
-
-  private final Map<String, URI> entitySets = new HashMap<String, URI>();
-
-  private final Map<String, URI> functionImports = new HashMap<String, URI>();
-
-  private final Map<String, URI> singletons = new HashMap<String, URI>();
-
-  private final Map<String, URI> relatedServiceDocuments = new HashMap<String, URI>();
-
-  public Map<String, URI> getEntitySets() {
-    return entitySets;
-  }
-
-  /**
-   * Gets entity set names.
-   * 
-   * @return entity set names.
-   */
-  public Collection<String> getEntitySetNames() {
-    return entitySets.keySet();
-  }
-
-  /**
-   * Gets entity set URIs.
-   * 
-   * @return entity set URIs.
-   */
-  public Collection<URI> getEntitySetURIs() {
-    return entitySets.values();
-  }
-
-  /**
-   * Gets URI about the given entity set.
-   * 
-   * @param name name.
-   * @return URI.
-   */
-  public URI getEntitySetURI(final String name) {
-    return entitySets.get(name);
-  }
-
-  public Map<String, URI> getFunctionImports() {
-    return functionImports;
-  }
-
-  /**
-   * Gets function import names.
-   * 
-   * @return function import names.
-   */
-  public Collection<String> getFunctionImportNames() {
-    return functionImports.keySet();
-  }
-
-  /**
-   * Gets function import URIs.
-   * 
-   * @return function import URIs.
-   */
-  public Collection<URI> getFunctionImportURIs() {
-    return functionImports.values();
-  }
-
-  /**
-   * Gets URI of the given function import.
-   * 
-   * @param name name.
-   * @return URI.
-   */
-  public URI getFunctionImportURI(final String name) {
-    return functionImports.get(name);
-  }
-
-  public Map<String, URI> getSingletons() {
-    return singletons;
-  }
-
-  /**
-   * Gets singleton names.
-   * 
-   * @return singleton names.
-   */
-  public Collection<String> getSingletonNames() {
-    return singletons.keySet();
-  }
-
-  /**
-   * Gets singleton URIs.
-   * 
-   * @return singleton URIs.
-   */
-  public Collection<URI> getSingletonURIs() {
-    return singletons.values();
-  }
-
-  /**
-   * Gets URI of the given singleton.
-   * 
-   * @param name name.
-   * @return URI.
-   */
-  public URI getSingletonURI(final String name) {
-    return singletons.get(name);
-  }
-
-  public Map<String, URI> getRelatedServiceDocuments() {
-    return relatedServiceDocuments;
-  }
-
-  /**
-   * Gets related service documents names.
-   * 
-   * @return related service documents names.
-   */
-  public Collection<String> getRelatedServiceDocumentsNames() {
-    return relatedServiceDocuments.keySet();
-  }
-
-  /**
-   * Gets related service documents URIs.
-   * 
-   * @return related service documents URIs.
-   */
-  public Collection<URI> getRelatedServiceDocumentsURIs() {
-    return relatedServiceDocuments.values();
-  }
-
-  /**
-   * Gets URI of the given related service documents.
-   * 
-   * @param name name.
-   * @return URI.
-   */
-  public URI getRelatedServiceDocumentURI(final String name) {
-    return relatedServiceDocuments.get(name);
-  }
-}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/c37d4da5/lib/commons-api/src/main/java/org/apache/olingo/commons/api/domain/ODataSingleton.java
----------------------------------------------------------------------
diff --git a/lib/commons-api/src/main/java/org/apache/olingo/commons/api/domain/ODataSingleton.java b/lib/commons-api/src/main/java/org/apache/olingo/commons/api/domain/ODataSingleton.java
deleted file mode 100644
index d328f41..0000000
--- a/lib/commons-api/src/main/java/org/apache/olingo/commons/api/domain/ODataSingleton.java
+++ /dev/null
@@ -1,23 +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.commons.api.domain;
-
-public interface ODataSingleton extends ODataEntity {
-//No additional methods needed for now.
-}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/c37d4da5/lib/commons-api/src/main/java/org/apache/olingo/commons/api/domain/ODataValuable.java
----------------------------------------------------------------------
diff --git a/lib/commons-api/src/main/java/org/apache/olingo/commons/api/domain/ODataValuable.java b/lib/commons-api/src/main/java/org/apache/olingo/commons/api/domain/ODataValuable.java
deleted file mode 100644
index 7e0c60c..0000000
--- a/lib/commons-api/src/main/java/org/apache/olingo/commons/api/domain/ODataValuable.java
+++ /dev/null
@@ -1,94 +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.commons.api.domain;
-
-
-public interface ODataValuable {
-
-  /**
-   * Returns annotation value.
-   * 
-   * @return annotation value.
-   */
-  ODataValue getValue();
-
-  /**
-   * Checks if has null value.
-   * 
-   * @return 'TRUE' if has null value; 'FALSE' otherwise.
-   */
-  boolean hasNullValue();
-
-  /**
-   * Checks if has primitive value.
-   * 
-   * @return 'TRUE' if has primitive value; 'FALSE' otherwise.
-   */
-  boolean hasPrimitiveValue();
-
-  /**
-   * Gets primitive value.
-   * 
-   * @return primitive value if exists; null otherwise.
-   */
-  ODataPrimitiveValue getPrimitiveValue();
-
-  /**
-   * Checks if has collection value.
-   * 
-   * @return 'TRUE' if has collection value; 'FALSE' otherwise.
-   */
-  boolean hasCollectionValue();
-
-  /**
-   * Gets collection value.
-   * 
-   * @return collection value if exists; null otherwise.
-   */
-  ODataCollectionValue<ODataValue> getCollectionValue();
-
-  /**
-   * Checks if has complex value.
-   * 
-   * @return 'TRUE' if has complex value; 'FALSE' otherwise.
-   */
-  boolean hasComplexValue();
-
-  /**
-   * Gets complex value.
-   * 
-   * @return complex value if exists; null otherwise.
-   */
-  ODataComplexValue getComplexValue();
-
-  /**
-   * Checks if has enum value.
-   * 
-   * @return 'TRUE' if has enum value; 'FALSE' otherwise.
-   */
-  boolean hasEnumValue();
-
-  /**
-   * Gets enum value.
-   * 
-   * @return enum value if exists; null otherwise.
-   */
-  ODataEnumValue getEnumValue();
-
-}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/c37d4da5/lib/commons-api/src/main/java/org/apache/olingo/commons/api/domain/ODataValue.java
----------------------------------------------------------------------
diff --git a/lib/commons-api/src/main/java/org/apache/olingo/commons/api/domain/ODataValue.java b/lib/commons-api/src/main/java/org/apache/olingo/commons/api/domain/ODataValue.java
deleted file mode 100644
index 57069e8..0000000
--- a/lib/commons-api/src/main/java/org/apache/olingo/commons/api/domain/ODataValue.java
+++ /dev/null
@@ -1,91 +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.commons.api.domain;
-
-
-/**
- * Abstract representation of an OData entity property value.
- */
-public interface ODataValue {
-
-  /**
-   * Gets value type name.
-   * 
-   * @return value type name.
-   */
-  String getTypeName();
-
-  /**
-   * Check is is a primitive value.
-   * 
-   * @return 'TRUE' if primitive; 'FALSE' otherwise.
-   */
-  boolean isPrimitive();
-
-  /**
-   * Casts to primitive value.
-   * 
-   * @return primitive value.
-   */
-  ODataPrimitiveValue asPrimitive();
-
-  /**
-   * Check is is a collection value.
-   * 
-   * @return 'TRUE' if collection; 'FALSE' otherwise.
-   */
-  boolean isCollection();
-
-  /**
-   * Casts to collection value.
-   * 
-   * @param <OV> The actual ODataValue interface.
-   * @return collection value.
-   */
-  <OV extends ODataValue> ODataCollectionValue<OV> asCollection();
-
-  /**
-   * Casts to complex value.
-   * 
-   * @return complex value.
-   */
-  ODataComplexValue asComplex();
-
-  /**
-   * Check is is a linked complex value.
-   * 
-   * @return 'TRUE' if linked complex; 'FALSE' otherwise.
-   */
-  boolean isComplex();
-
-  /**
-   * Check is is an enum value.
-   * 
-   * @return 'TRUE' if enum; 'FALSE' otherwise.
-   */
-  boolean isEnum();
-
-  /**
-   * Casts to enum value.
-   * 
-   * @return enum value.
-   */
-  ODataEnumValue asEnum();
-  
-}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/c37d4da5/lib/commons-api/src/main/java/org/apache/olingo/commons/api/edm/annotation/EdmConstantAnnotationExpression.java
----------------------------------------------------------------------
diff --git a/lib/commons-api/src/main/java/org/apache/olingo/commons/api/edm/annotation/EdmConstantAnnotationExpression.java b/lib/commons-api/src/main/java/org/apache/olingo/commons/api/edm/annotation/EdmConstantAnnotationExpression.java
index 21c1854..cc47fe6 100644
--- a/lib/commons-api/src/main/java/org/apache/olingo/commons/api/edm/annotation/EdmConstantAnnotationExpression.java
+++ b/lib/commons-api/src/main/java/org/apache/olingo/commons/api/edm/annotation/EdmConstantAnnotationExpression.java
@@ -18,10 +18,10 @@
  */
 package org.apache.olingo.commons.api.edm.annotation;
 
-import org.apache.olingo.commons.api.domain.ODataValue;
+import org.apache.olingo.commons.api.domain.ClientValue;
 
 public interface EdmConstantAnnotationExpression extends EdmAnnotationExpression {
 
-  ODataValue getValue();
+  ClientValue getValue();
 
 }

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/c37d4da5/lib/commons-api/src/main/java/org/apache/olingo/commons/api/serialization/ODataDeserializer.java
----------------------------------------------------------------------
diff --git a/lib/commons-api/src/main/java/org/apache/olingo/commons/api/serialization/ODataDeserializer.java b/lib/commons-api/src/main/java/org/apache/olingo/commons/api/serialization/ODataDeserializer.java
index 8e313b1..38ad911 100755
--- a/lib/commons-api/src/main/java/org/apache/olingo/commons/api/serialization/ODataDeserializer.java
+++ b/lib/commons-api/src/main/java/org/apache/olingo/commons/api/serialization/ODataDeserializer.java
@@ -22,7 +22,7 @@ import org.apache.olingo.commons.api.data.Entity;
 import org.apache.olingo.commons.api.data.EntityCollection;
 import org.apache.olingo.commons.api.data.Property;
 import org.apache.olingo.commons.api.data.ResWrap;
-import org.apache.olingo.commons.api.domain.ODataError;
+import org.apache.olingo.commons.api.domain.ClientError;
 
 import java.io.InputStream;
 
@@ -61,5 +61,5 @@ public interface ODataDeserializer {
    * @param input stream to be parsed and de-serialized.
    * @return parsed ODataError object represented by the given InputStream
    */
-  ODataError toError(InputStream input) throws ODataDeserializerException;
+  ClientError toError(InputStream input) throws ODataDeserializerException;
 }

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/c37d4da5/lib/commons-core/src/main/java/org/apache/olingo/commons/core/domain/AbstractClientEntitySet.java
----------------------------------------------------------------------
diff --git a/lib/commons-core/src/main/java/org/apache/olingo/commons/core/domain/AbstractClientEntitySet.java b/lib/commons-core/src/main/java/org/apache/olingo/commons/core/domain/AbstractClientEntitySet.java
new file mode 100644
index 0000000..d11b799
--- /dev/null
+++ b/lib/commons-core/src/main/java/org/apache/olingo/commons/core/domain/AbstractClientEntitySet.java
@@ -0,0 +1,71 @@
+/*
+ * 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.commons.core.domain;
+
+import org.apache.olingo.commons.api.domain.AbstractClientPayload;
+import org.apache.olingo.commons.api.domain.ClientEntitySet;
+
+import java.net.URI;
+
+public abstract class AbstractClientEntitySet extends AbstractClientPayload implements ClientEntitySet {
+
+  /**
+   * Link to the next page.
+   */
+  private URI next;
+
+  /**
+   * Number of ODataEntities contained in this entity set.
+   * <br/>
+   * If <tt>$inlinecount</tt> was requested, this value comes from there.
+   */
+  private Integer count;
+
+  /**
+   * Constructor.
+   */
+  public AbstractClientEntitySet() {
+    super(null);
+  }
+
+  /**
+   * Constructor.
+   * 
+   * @param next next link.
+   */
+  public AbstractClientEntitySet(final URI next) {
+    super(null);
+    this.next = next;
+  }
+
+  @Override
+  public URI getNext() {
+    return next;
+  }
+
+  @Override
+  public Integer getCount() {
+    return count;
+  }
+
+  @Override
+  public void setCount(final int count) {
+    this.count = count;
+  }
+}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/c37d4da5/lib/commons-core/src/main/java/org/apache/olingo/commons/core/domain/AbstractODataEntitySet.java
----------------------------------------------------------------------
diff --git a/lib/commons-core/src/main/java/org/apache/olingo/commons/core/domain/AbstractODataEntitySet.java b/lib/commons-core/src/main/java/org/apache/olingo/commons/core/domain/AbstractODataEntitySet.java
deleted file mode 100644
index f8535b0..0000000
--- a/lib/commons-core/src/main/java/org/apache/olingo/commons/core/domain/AbstractODataEntitySet.java
+++ /dev/null
@@ -1,71 +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.commons.core.domain;
-
-import org.apache.olingo.commons.api.domain.AbstractODataPayload;
-import org.apache.olingo.commons.api.domain.ODataEntitySet;
-
-import java.net.URI;
-
-public abstract class AbstractODataEntitySet extends AbstractODataPayload implements ODataEntitySet {
-
-  /**
-   * Link to the next page.
-   */
-  private URI next;
-
-  /**
-   * Number of ODataEntities contained in this entity set.
-   * <br/>
-   * If <tt>$inlinecount</tt> was requested, this value comes from there.
-   */
-  private Integer count;
-
-  /**
-   * Constructor.
-   */
-  public AbstractODataEntitySet() {
-    super(null);
-  }
-
-  /**
-   * Constructor.
-   * 
-   * @param next next link.
-   */
-  public AbstractODataEntitySet(final URI next) {
-    super(null);
-    this.next = next;
-  }
-
-  @Override
-  public URI getNext() {
-    return next;
-  }
-
-  @Override
-  public Integer getCount() {
-    return count;
-  }
-
-  @Override
-  public void setCount(final int count) {
-    this.count = count;
-  }
-}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/c37d4da5/lib/commons-core/src/main/java/org/apache/olingo/commons/core/domain/ClientAnnotationImpl.java
----------------------------------------------------------------------
diff --git a/lib/commons-core/src/main/java/org/apache/olingo/commons/core/domain/ClientAnnotationImpl.java b/lib/commons-core/src/main/java/org/apache/olingo/commons/core/domain/ClientAnnotationImpl.java
new file mode 100644
index 0000000..b5fae89
--- /dev/null
+++ b/lib/commons-core/src/main/java/org/apache/olingo/commons/core/domain/ClientAnnotationImpl.java
@@ -0,0 +1,102 @@
+/*
+ * 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.commons.core.domain;
+
+import org.apache.olingo.commons.api.domain.ClientAnnotation;
+import org.apache.olingo.commons.api.domain.ClientCollectionValue;
+import org.apache.olingo.commons.api.domain.ClientComplexValue;
+import org.apache.olingo.commons.api.domain.ClientEnumValue;
+import org.apache.olingo.commons.api.domain.ClientPrimitiveValue;
+import org.apache.olingo.commons.api.domain.ClientValuable;
+import org.apache.olingo.commons.api.domain.ClientValue;
+
+public class ClientAnnotationImpl implements ClientAnnotation {
+
+  private final String term;
+
+  private final ClientValuable valuable;
+
+  public ClientAnnotationImpl(final String term, final ClientValue value) {
+    this.term = term;
+    valuable = new ClientValuableImpl(value);
+  }
+
+  @Override
+  public String getTerm() {
+    return term;
+  }
+
+  @Override
+  public ClientValue getValue() {
+    return valuable.getValue();
+  }
+
+  @Override
+  public boolean hasNullValue() {
+    return valuable.hasNullValue();
+  }
+
+  @Override
+  public boolean hasPrimitiveValue() {
+    return valuable.hasPrimitiveValue();
+  }
+
+  @Override
+  public ClientPrimitiveValue getPrimitiveValue() {
+    return valuable.getPrimitiveValue();
+  }
+
+  @Override
+  public boolean hasCollectionValue() {
+    return valuable.hasCollectionValue();
+  }
+
+  @Override
+  public ClientCollectionValue<ClientValue> getCollectionValue() {
+    return valuable.getCollectionValue();
+  }
+
+  @Override
+  public boolean hasComplexValue() {
+    return valuable.hasComplexValue();
+  }
+
+  @Override
+  public ClientComplexValue getComplexValue() {
+    return valuable.getComplexValue();
+  }
+
+  @Override
+  public boolean hasEnumValue() {
+    return valuable.hasEnumValue();
+  }
+
+  @Override
+  public ClientEnumValue getEnumValue() {
+    return valuable.getEnumValue();
+  }
+
+  @Override
+  public String toString() {
+    return "ODataPropertyImpl{"
+        + "term=" + term
+        + ",valuable=" + valuable
+        + '}';
+  }
+}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/c37d4da5/lib/commons-core/src/main/java/org/apache/olingo/commons/core/domain/ClientCollectionValueImpl.java
----------------------------------------------------------------------
diff --git a/lib/commons-core/src/main/java/org/apache/olingo/commons/core/domain/ClientCollectionValueImpl.java b/lib/commons-core/src/main/java/org/apache/olingo/commons/core/domain/ClientCollectionValueImpl.java
new file mode 100644
index 0000000..e7b53ff
--- /dev/null
+++ b/lib/commons-core/src/main/java/org/apache/olingo/commons/core/domain/ClientCollectionValueImpl.java
@@ -0,0 +1,124 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ * 
+ * http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.olingo.commons.core.domain;
+
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.Iterator;
+import java.util.List;
+
+import org.apache.olingo.commons.api.domain.AbstractClientValue;
+import org.apache.olingo.commons.api.domain.ClientCollectionValue;
+import org.apache.olingo.commons.api.domain.ClientEnumValue;
+import org.apache.olingo.commons.api.domain.ClientValue;
+
+public class ClientCollectionValueImpl<OV extends ClientValue> extends AbstractClientValue
+        implements ClientCollectionValue<OV>, ClientValue {
+
+  /**
+   * Constructor.
+   *
+   * @param typeName type name.
+   */
+  public ClientCollectionValueImpl(final String typeName) {
+    super(typeName == null || typeName.startsWith("Collection(") ? typeName : "Collection(" + typeName + ")");
+  }
+
+  @Override
+  public boolean isEnum() {
+    return false;
+  }
+
+  @Override
+  public ClientEnumValue asEnum() {
+    return null;
+  }
+
+  @Override
+  public boolean isComplex() {
+    return false;
+  }
+
+  @Override
+  public Collection<Object> asJavaCollection() {
+    final List<Object> result = new ArrayList<Object>();
+    for (ClientValue value : values) {
+      if (value.isPrimitive()) {
+        result.add(value.asPrimitive().toValue());
+      } else if (value.isComplex()) {
+        result.add(value.asComplex().asJavaMap());
+      } else if (value.isCollection()) {
+        result.add(value.asCollection().asJavaCollection());
+      } else if (value.isEnum()) {
+        result.add(value.asEnum().toString());
+      }
+    }
+
+    return result;
+  }
+
+  /**
+   * Values.
+   */
+  protected final List<OV> values = new ArrayList<OV>();
+
+  /**
+   * Adds a value to the collection.
+   *
+   * @param value value to be added.
+   */
+  @Override
+  @SuppressWarnings("unchecked")
+  public ClientCollectionValue<OV> add(final ClientValue value) {
+    values.add((OV) value);
+    return this;
+  }
+
+  /**
+   * Value iterator.
+   *
+   * @return value iterator.
+   */
+  @Override
+  public Iterator<OV> iterator() {
+    return values.iterator();
+  }
+
+  /**
+   * Gets collection size.
+   *
+   * @return collection size.
+   */
+  @Override
+  public int size() {
+    return values.size();
+  }
+
+  /**
+   * Checks if collection is empty.
+   *
+   * @return 'TRUE' if empty; 'FALSE' otherwise.
+   */
+  @Override
+  public boolean isEmpty() {
+    return values.isEmpty();
+  }
+
+
+}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/c37d4da5/lib/commons-core/src/main/java/org/apache/olingo/commons/core/domain/ClientComplexValueImpl.java
----------------------------------------------------------------------
diff --git a/lib/commons-core/src/main/java/org/apache/olingo/commons/core/domain/ClientComplexValueImpl.java b/lib/commons-core/src/main/java/org/apache/olingo/commons/core/domain/ClientComplexValueImpl.java
new file mode 100644
index 0000000..3881c3a
--- /dev/null
+++ b/lib/commons-core/src/main/java/org/apache/olingo/commons/core/domain/ClientComplexValueImpl.java
@@ -0,0 +1,204 @@
+/*
+ * 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.commons.core.domain;
+
+import java.util.ArrayList;
+import java.util.Iterator;
+import java.util.LinkedHashMap;
+import java.util.List;
+import java.util.Map;
+
+import org.apache.olingo.commons.api.domain.AbstractClientValue;
+import org.apache.olingo.commons.api.domain.ClientAnnotation;
+import org.apache.olingo.commons.api.domain.ClientComplexValue;
+import org.apache.olingo.commons.api.domain.ClientEnumValue;
+import org.apache.olingo.commons.api.domain.ClientLink;
+import org.apache.olingo.commons.api.domain.ClientProperty;
+
+public class ClientComplexValueImpl extends AbstractClientValue implements ClientComplexValue {
+
+  /**
+   * Navigation links (might contain in-line entities or entity sets).
+   */
+  private final List<ClientLink> navigationLinks = new ArrayList<ClientLink>();
+
+  /**
+   * Association links.
+   */
+  private final List<ClientLink> associationLinks = new ArrayList<ClientLink>();
+
+  private final List<ClientAnnotation> annotations = new ArrayList<ClientAnnotation>();
+
+  /**
+   * Complex type fields.
+   */
+  private final Map<String, ClientProperty> fields = new LinkedHashMap<String, ClientProperty>();
+
+  /**
+   * Constructor.
+   *
+   * @param typeName type name.
+   */
+  public ClientComplexValueImpl(final String typeName) {
+    super(typeName);
+  }
+
+  @Override
+  public boolean isEnum() {
+    return false;
+  }
+
+  @Override
+  public ClientEnumValue asEnum() {
+    return null;
+  }
+
+  @Override
+  public boolean isComplex() {
+    return true;
+  }
+
+  @Override
+  public boolean addLink(final ClientLink link) {
+    boolean result = false;
+
+    switch (link.getType()) {
+    case ASSOCIATION:
+      result = associationLinks.contains(link) ? false : associationLinks.add(link);
+      break;
+
+    case ENTITY_NAVIGATION:
+    case ENTITY_SET_NAVIGATION:
+      result = navigationLinks.contains(link) ? false : navigationLinks.add(link);
+      break;
+
+    case MEDIA_EDIT:
+      throw new IllegalArgumentException("Complex values cannot have media links!");
+
+    default:
+    }
+
+    return result;
+  }
+
+  @Override
+  public boolean removeLink(final ClientLink link) {
+    return associationLinks.remove(link) || navigationLinks.remove(link);
+  }
+
+  private ClientLink getLink(final List<ClientLink> links, final String name) {
+    ClientLink result = null;
+    for (ClientLink link : links) {
+      if (name.equals(link.getName())) {
+        result = link;
+        break;
+      }
+    }
+
+    return result;
+  }
+
+  @Override
+  public ClientLink getNavigationLink(final String name) {
+    return getLink(navigationLinks, name);
+  }
+
+  @Override
+  public List<ClientLink> getNavigationLinks() {
+    return navigationLinks;
+  }
+
+  @Override
+  public ClientLink getAssociationLink(final String name) {
+    return getLink(associationLinks, name);
+  }
+
+  @Override
+  public List<ClientLink> getAssociationLinks() {
+    return associationLinks;
+  }
+
+  @Override
+  public Map<String, Object> asJavaMap() {
+    final Map<String, Object> result = new LinkedHashMap<String, Object>();
+    for (Map.Entry<String, ClientProperty> entry : fields.entrySet()) {
+      Object value = null;
+      if (entry.getValue().hasPrimitiveValue()) {
+        value = entry.getValue().getPrimitiveValue().toValue();
+      } else if (entry.getValue().hasComplexValue()) {
+        value = entry.getValue().getComplexValue().asJavaMap();
+      } else if (entry.getValue().hasCollectionValue()) {
+        value = entry.getValue().getCollectionValue().asJavaCollection();
+      } else if (entry.getValue().hasEnumValue()) {
+        value = entry.getValue().getEnumValue().toString();
+      }
+
+      result.put(entry.getKey(), value);
+    }
+
+    return result;
+  }
+
+  @Override
+  public List<ClientAnnotation> getAnnotations() {
+    return annotations;
+  }
+
+  /**
+   * Adds field to the complex type.
+   *
+   * @param field field to be added.
+   */
+  @Override
+  public ClientComplexValue add(final ClientProperty field) {
+    fields.put(field.getName(), field);
+    return this;
+  }
+
+  /**
+   * Gets field.
+   *
+   * @param name name of the field to be retrieved.
+   * @return requested field.
+   */
+  @Override
+  public ClientProperty get(final String name) {
+    return fields.get(name);
+  }
+
+  /**
+   * Complex property fields iterator.
+   *
+   * @return fields iterator.
+   */
+  @Override
+  public Iterator<ClientProperty> iterator() {
+    return fields.values().iterator();
+  }
+
+  /**
+   * Gets number of fields.
+   *
+   * @return number of fields.
+   */
+  @Override
+  public int size() {
+    return fields.size();
+  }
+}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/c37d4da5/lib/commons-core/src/main/java/org/apache/olingo/commons/core/domain/ClientDeletedEntityImpl.java
----------------------------------------------------------------------
diff --git a/lib/commons-core/src/main/java/org/apache/olingo/commons/core/domain/ClientDeletedEntityImpl.java b/lib/commons-core/src/main/java/org/apache/olingo/commons/core/domain/ClientDeletedEntityImpl.java
new file mode 100644
index 0000000..9df7a18
--- /dev/null
+++ b/lib/commons-core/src/main/java/org/apache/olingo/commons/core/domain/ClientDeletedEntityImpl.java
@@ -0,0 +1,54 @@
+/*
+ * 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.commons.core.domain;
+
+import org.apache.olingo.commons.api.domain.ClientDeletedEntity;
+import org.apache.olingo.commons.api.domain.ClientItem;
+
+import java.net.URI;
+
+public class ClientDeletedEntityImpl extends ClientItem implements ClientDeletedEntity {
+
+  private URI id;
+
+  private Reason reason;
+
+  public ClientDeletedEntityImpl() {
+    super(null);
+  }
+
+  @Override
+  public URI getId() {
+    return id;
+  }
+
+  public void setId(final URI id) {
+    this.id = id;
+  }
+
+  @Override
+  public Reason getReason() {
+    return reason;
+  }
+
+  public void setReason(final Reason reason) {
+    this.reason = reason;
+  }
+
+}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/c37d4da5/lib/commons-core/src/main/java/org/apache/olingo/commons/core/domain/ClientDeltaImpl.java
----------------------------------------------------------------------
diff --git a/lib/commons-core/src/main/java/org/apache/olingo/commons/core/domain/ClientDeltaImpl.java b/lib/commons-core/src/main/java/org/apache/olingo/commons/core/domain/ClientDeltaImpl.java
new file mode 100644
index 0000000..1c1e521
--- /dev/null
+++ b/lib/commons-core/src/main/java/org/apache/olingo/commons/core/domain/ClientDeltaImpl.java
@@ -0,0 +1,60 @@
+/*
+ * 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.commons.core.domain;
+
+import org.apache.olingo.commons.api.domain.ClientDeletedEntity;
+import org.apache.olingo.commons.api.domain.ClientDelta;
+import org.apache.olingo.commons.api.domain.ClientDeltaLink;
+
+import java.net.URI;
+import java.util.ArrayList;
+import java.util.List;
+
+public class ClientDeltaImpl extends ClientEntitySetImpl implements ClientDelta {
+
+  private final List<ClientDeletedEntity> deletedEntities = new ArrayList<ClientDeletedEntity>();
+
+  private final List<ClientDeltaLink> addedLinks = new ArrayList<ClientDeltaLink>();
+
+  private final List<ClientDeltaLink> deletedLinks = new ArrayList<ClientDeltaLink>();
+
+  public ClientDeltaImpl() {
+    super();
+  }
+
+  public ClientDeltaImpl(final URI next) {
+    super(next);
+  }
+
+  @Override
+  public List<ClientDeletedEntity> getDeletedEntities() {
+    return deletedEntities;
+  }
+
+  @Override
+  public List<ClientDeltaLink> getAddedLinks() {
+    return addedLinks;
+  }
+
+  @Override
+  public List<ClientDeltaLink> getDeletedLinks() {
+    return deletedLinks;
+  }
+
+}


[32/50] [abbrv] olingo-odata4 git commit: [OLINGO-564] Renamed 'OData*' to 'Client*' classes

Posted by mi...@apache.org.
http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/c37d4da5/lib/client-api/src/main/java/org/apache/olingo/client/api/communication/response/ODataPropertyUpdateResponse.java
----------------------------------------------------------------------
diff --git a/lib/client-api/src/main/java/org/apache/olingo/client/api/communication/response/ODataPropertyUpdateResponse.java b/lib/client-api/src/main/java/org/apache/olingo/client/api/communication/response/ODataPropertyUpdateResponse.java
index ca2ad51..0739e37 100644
--- a/lib/client-api/src/main/java/org/apache/olingo/client/api/communication/response/ODataPropertyUpdateResponse.java
+++ b/lib/client-api/src/main/java/org/apache/olingo/client/api/communication/response/ODataPropertyUpdateResponse.java
@@ -18,7 +18,7 @@
  */
 package org.apache.olingo.client.api.communication.response;
 
-import org.apache.olingo.commons.api.domain.ODataProperty;
+import org.apache.olingo.commons.api.domain.ClientProperty;
 
 /**
  * This class implements the response to an OData update entity property request.
@@ -32,5 +32,5 @@ public interface ODataPropertyUpdateResponse extends ODataResponse {
    *
    * @return updated object.
    */
-  ODataProperty getBody();
+  ClientProperty getBody();
 }

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/c37d4da5/lib/client-api/src/main/java/org/apache/olingo/client/api/communication/response/ODataValueUpdateResponse.java
----------------------------------------------------------------------
diff --git a/lib/client-api/src/main/java/org/apache/olingo/client/api/communication/response/ODataValueUpdateResponse.java b/lib/client-api/src/main/java/org/apache/olingo/client/api/communication/response/ODataValueUpdateResponse.java
index 415ad07..c921c44 100644
--- a/lib/client-api/src/main/java/org/apache/olingo/client/api/communication/response/ODataValueUpdateResponse.java
+++ b/lib/client-api/src/main/java/org/apache/olingo/client/api/communication/response/ODataValueUpdateResponse.java
@@ -18,7 +18,7 @@
  */
 package org.apache.olingo.client.api.communication.response;
 
-import org.apache.olingo.commons.api.domain.ODataPrimitiveValue;
+import org.apache.olingo.commons.api.domain.ClientPrimitiveValue;
 
 /**
  * This class implements the response to an OData update entity property request.
@@ -32,5 +32,5 @@ public interface ODataValueUpdateResponse extends ODataResponse {
    *
    * @return updated object.
    */
-  ODataPrimitiveValue getBody();
+  ClientPrimitiveValue getBody();
 }

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/c37d4da5/lib/client-api/src/main/java/org/apache/olingo/client/api/data/ServiceDocument.java
----------------------------------------------------------------------
diff --git a/lib/client-api/src/main/java/org/apache/olingo/client/api/data/ServiceDocument.java b/lib/client-api/src/main/java/org/apache/olingo/client/api/data/ServiceDocument.java
index 0827165..fd8e4e6 100644
--- a/lib/client-api/src/main/java/org/apache/olingo/client/api/data/ServiceDocument.java
+++ b/lib/client-api/src/main/java/org/apache/olingo/client/api/data/ServiceDocument.java
@@ -24,7 +24,7 @@ import java.util.List;
 /**
  * REST resource for an <tt>ODataServiceDocument</tt>.
  *
- * @see org.apache.olingo.commons.api.domain.ODataServiceDocument
+ * @see org.apache.olingo.commons.api.domain.ClientServiceDocument
  */
 public interface ServiceDocument {
 

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/c37d4da5/lib/client-api/src/main/java/org/apache/olingo/client/api/domain/ODataEntitySetIterator.java
----------------------------------------------------------------------
diff --git a/lib/client-api/src/main/java/org/apache/olingo/client/api/domain/ODataEntitySetIterator.java b/lib/client-api/src/main/java/org/apache/olingo/client/api/domain/ODataEntitySetIterator.java
index 2944471..60fd352 100644
--- a/lib/client-api/src/main/java/org/apache/olingo/client/api/domain/ODataEntitySetIterator.java
+++ b/lib/client-api/src/main/java/org/apache/olingo/client/api/domain/ODataEntitySetIterator.java
@@ -33,8 +33,8 @@ import org.apache.olingo.client.api.ODataClient;
 import org.apache.olingo.commons.api.Constants;
 import org.apache.olingo.commons.api.data.Entity;
 import org.apache.olingo.commons.api.data.ResWrap;
-import org.apache.olingo.commons.api.domain.ODataEntity;
-import org.apache.olingo.commons.api.domain.ODataEntitySet;
+import org.apache.olingo.commons.api.domain.ClientEntity;
+import org.apache.olingo.commons.api.domain.ClientEntitySet;
 import org.apache.olingo.commons.api.format.ODataFormat;
 import org.apache.olingo.commons.api.serialization.ODataDeserializerException;
 import org.slf4j.Logger;
@@ -48,7 +48,7 @@ import org.slf4j.LoggerFactory;
  * @param <E> concrete ODataEntity implementation
  * @param <ES> concrete ODataEntitySet implementation
  */
-public class ODataEntitySetIterator<ES extends ODataEntitySet, E extends ODataEntity>
+public class ODataEntitySetIterator<ES extends ClientEntitySet, E extends ClientEntity>
         implements Iterator<E> {
 
   /**

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/c37d4da5/lib/client-api/src/main/java/org/apache/olingo/client/api/serialization/ODataBinder.java
----------------------------------------------------------------------
diff --git a/lib/client-api/src/main/java/org/apache/olingo/client/api/serialization/ODataBinder.java b/lib/client-api/src/main/java/org/apache/olingo/client/api/serialization/ODataBinder.java
index 6dc57dd..9be8744 100644
--- a/lib/client-api/src/main/java/org/apache/olingo/client/api/serialization/ODataBinder.java
+++ b/lib/client-api/src/main/java/org/apache/olingo/client/api/serialization/ODataBinder.java
@@ -25,12 +25,12 @@ import org.apache.olingo.commons.api.data.EntityCollection;
 import org.apache.olingo.commons.api.data.Link;
 import org.apache.olingo.commons.api.data.Property;
 import org.apache.olingo.commons.api.data.ResWrap;
-import org.apache.olingo.commons.api.domain.ODataDelta;
-import org.apache.olingo.commons.api.domain.ODataEntity;
-import org.apache.olingo.commons.api.domain.ODataEntitySet;
-import org.apache.olingo.commons.api.domain.ODataLink;
-import org.apache.olingo.commons.api.domain.ODataProperty;
-import org.apache.olingo.commons.api.domain.ODataServiceDocument;
+import org.apache.olingo.commons.api.domain.ClientDelta;
+import org.apache.olingo.commons.api.domain.ClientEntity;
+import org.apache.olingo.commons.api.domain.ClientEntitySet;
+import org.apache.olingo.commons.api.domain.ClientLink;
+import org.apache.olingo.commons.api.domain.ClientProperty;
+import org.apache.olingo.commons.api.domain.ClientServiceDocument;
 
 public interface ODataBinder {
 
@@ -40,7 +40,7 @@ public interface ODataBinder {
    * @param entitySet OData entity set.
    * @return {@link EntityCollection} object.
    */
-  EntityCollection getEntitySet(ODataEntitySet entitySet);
+  EntityCollection getEntitySet(ClientEntitySet entitySet);
 
   /**
    * Gets an <tt>Entity</tt> from the given OData entity.
@@ -48,7 +48,7 @@ public interface ODataBinder {
    * @param entity OData entity.
    * @return {@link Entity} object.
    */
-  Entity getEntity(ODataEntity entity);
+  Entity getEntity(ClientEntity entity);
 
   /**
    * Gets a <tt>Link</tt> from the given OData link.
@@ -56,7 +56,7 @@ public interface ODataBinder {
    * @param link OData link.
    * @return <tt>Link</tt> object.
    */
-  Link getLink(ODataLink link);
+  Link getLink(ClientLink link);
 
   /**
    * Gets a <tt>Property</tt> from the given OData property.
@@ -64,7 +64,7 @@ public interface ODataBinder {
    * @param property OData property.
    * @return <tt>Property</tt> object.
    */
-  Property getProperty(ODataProperty property);
+  Property getProperty(ClientProperty property);
 
   /**
    * Adds the given property to the given entity.
@@ -73,7 +73,7 @@ public interface ODataBinder {
    * @param property OData property.
    * @return whether add was successful or not.
    */
-  boolean add(ODataEntity entity, ODataProperty property);
+  boolean add(ClientEntity entity, ClientProperty property);
 
   /**
    * Gets <tt>ODataServiceDocument</tt> from the given service document resource.
@@ -81,31 +81,31 @@ public interface ODataBinder {
    * @param resource service document resource.
    * @return <tt>ODataServiceDocument</tt> object.
    */
-  ODataServiceDocument getODataServiceDocument(ServiceDocument resource);
+  ClientServiceDocument getODataServiceDocument(ServiceDocument resource);
 
   /**
    * Gets <tt>ODataEntitySet</tt> from the given entity set resource.
    *
    * @param resource entity set resource.
-   * @return {@link org.apache.olingo.commons.api.domain.ODataEntitySet} object.
+   * @return {@link ClientEntitySet} object.
    */
-  ODataEntitySet getODataEntitySet(ResWrap<EntityCollection> resource);
+  ClientEntitySet getODataEntitySet(ResWrap<EntityCollection> resource);
 
   /**
    * Gets <tt>ODataEntity</tt> from the given entity resource.
    *
    * @param resource entity resource.
-   * @return {@link org.apache.olingo.commons.api.domain.ODataEntity} object.
+   * @return {@link ClientEntity} object.
    */
-  ODataEntity getODataEntity(ResWrap<Entity> resource);
+  ClientEntity getODataEntity(ResWrap<Entity> resource);
 
   /**
    * Gets an <tt>ODataProperty</tt> from the given property resource.
    *
    * @param resource property resource.
-   * @return {@link org.apache.olingo.commons.api.domain.ODataProperty} object.
+   * @return {@link ClientProperty} object.
    */
-  ODataProperty getODataProperty(ResWrap<Property> resource);
+  ClientProperty getODataProperty(ResWrap<Property> resource);
 
-  ODataDelta getODataDelta(ResWrap<Delta> resource);
+  ClientDelta getODataDelta(ResWrap<Delta> resource);
 }

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/c37d4da5/lib/client-api/src/main/java/org/apache/olingo/client/api/serialization/ODataReader.java
----------------------------------------------------------------------
diff --git a/lib/client-api/src/main/java/org/apache/olingo/client/api/serialization/ODataReader.java b/lib/client-api/src/main/java/org/apache/olingo/client/api/serialization/ODataReader.java
index 0634673..8519a66 100644
--- a/lib/client-api/src/main/java/org/apache/olingo/client/api/serialization/ODataReader.java
+++ b/lib/client-api/src/main/java/org/apache/olingo/client/api/serialization/ODataReader.java
@@ -22,11 +22,11 @@ import java.io.InputStream;
 import java.util.Map;
 
 import org.apache.olingo.commons.api.data.ResWrap;
-import org.apache.olingo.commons.api.domain.ODataEntity;
-import org.apache.olingo.commons.api.domain.ODataEntitySet;
-import org.apache.olingo.commons.api.domain.ODataError;
-import org.apache.olingo.commons.api.domain.ODataProperty;
-import org.apache.olingo.commons.api.domain.ODataServiceDocument;
+import org.apache.olingo.commons.api.domain.ClientEntity;
+import org.apache.olingo.commons.api.domain.ClientEntitySet;
+import org.apache.olingo.commons.api.domain.ClientError;
+import org.apache.olingo.commons.api.domain.ClientProperty;
+import org.apache.olingo.commons.api.domain.ClientServiceDocument;
 import org.apache.olingo.commons.api.edm.Edm;
 import org.apache.olingo.commons.api.edm.provider.CsdlSchema;
 import org.apache.olingo.commons.api.format.ODataFormat;
@@ -65,7 +65,7 @@ public interface ODataReader {
    * @return List of URIs.
    * @throws ODataDeserializerException
    */
-  ODataServiceDocument readServiceDocument(InputStream input, ODataFormat format) throws ODataDeserializerException;
+  ClientServiceDocument readServiceDocument(InputStream input, ODataFormat format) throws ODataDeserializerException;
 
   /**
    * De-Serializes a stream into an OData entity set.
@@ -75,7 +75,7 @@ public interface ODataReader {
    * @return de-serialized entity set.
    * @throws ODataDeserializerException
    */
-  ODataEntitySet readEntitySet(InputStream input, ODataFormat format) throws ODataDeserializerException;
+  ClientEntitySet readEntitySet(InputStream input, ODataFormat format) throws ODataDeserializerException;
 
   /**
    * Parses a stream taking care to de-serializes the first OData entity found.
@@ -85,7 +85,7 @@ public interface ODataReader {
    * @return entity de-serialized.
    * @throws ODataDeserializerException
    */
-  ODataEntity readEntity(InputStream input, ODataFormat format) throws ODataDeserializerException;
+  ClientEntity readEntity(InputStream input, ODataFormat format) throws ODataDeserializerException;
 
   /**
    * Parses a stream taking care to de-serialize the first OData entity property found.
@@ -95,7 +95,7 @@ public interface ODataReader {
    * @return OData entity property de-serialized.
    * @throws ODataDeserializerException
    */
-  ODataProperty readProperty(InputStream input, ODataFormat format) throws ODataDeserializerException;
+  ClientProperty readProperty(InputStream input, ODataFormat format) throws ODataDeserializerException;
 
   /**
    * Parses a stream into an OData error.
@@ -105,7 +105,7 @@ public interface ODataReader {
    * @return OData error.
    * @throws ODataDeserializerException
    */
-  ODataError readError(InputStream inputStream, ODataFormat format) throws ODataDeserializerException;
+  ClientError readError(InputStream inputStream, ODataFormat format) throws ODataDeserializerException;
 
   /**
    * Parses a stream into the object type specified by the given reference.

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/c37d4da5/lib/client-api/src/main/java/org/apache/olingo/client/api/serialization/ODataWriter.java
----------------------------------------------------------------------
diff --git a/lib/client-api/src/main/java/org/apache/olingo/client/api/serialization/ODataWriter.java b/lib/client-api/src/main/java/org/apache/olingo/client/api/serialization/ODataWriter.java
index 1686997..81f07a6 100644
--- a/lib/client-api/src/main/java/org/apache/olingo/client/api/serialization/ODataWriter.java
+++ b/lib/client-api/src/main/java/org/apache/olingo/client/api/serialization/ODataWriter.java
@@ -23,9 +23,9 @@ import java.net.URI;
 import java.util.Collection;
 
 import org.apache.olingo.commons.api.data.ResWrap;
-import org.apache.olingo.commons.api.domain.ODataEntity;
-import org.apache.olingo.commons.api.domain.ODataProperty;
-import org.apache.olingo.commons.api.domain.ODataLink;
+import org.apache.olingo.commons.api.domain.ClientEntity;
+import org.apache.olingo.commons.api.domain.ClientProperty;
+import org.apache.olingo.commons.api.domain.ClientLink;
 import org.apache.olingo.commons.api.format.ODataFormat;
 import org.apache.olingo.commons.api.serialization.ODataSerializerException;
 
@@ -46,7 +46,7 @@ public interface ODataWriter {
    * @return stream of serialized objects.
    * @throws ODataSerializerException
    */
-  InputStream writeEntities(Collection<ODataEntity> entities, ODataFormat format)
+  InputStream writeEntities(Collection<ClientEntity> entities, ODataFormat format)
       throws ODataSerializerException;
 
   /**
@@ -57,7 +57,7 @@ public interface ODataWriter {
    * @return stream of serialized object.
    * @throws ODataSerializerException
    */
-  InputStream writeEntity(ODataEntity entity, ODataFormat format)
+  InputStream writeEntity(ClientEntity entity, ODataFormat format)
       throws ODataSerializerException;
 
   /**
@@ -68,7 +68,7 @@ public interface ODataWriter {
    * @return stream of serialized object.
    * @throws ODataSerializerException
    */
-  InputStream writeProperty(ODataProperty property, ODataFormat format)
+  InputStream writeProperty(ClientProperty property, ODataFormat format)
       throws ODataSerializerException;
 
   /**
@@ -79,7 +79,7 @@ public interface ODataWriter {
    * @return stream of serialized object.
    * @throws ODataSerializerException
    */
-  InputStream writeLink(ODataLink link, ODataFormat format)
+  InputStream writeLink(ClientLink link, ODataFormat format)
       throws ODataSerializerException;
   
   /**

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/c37d4da5/lib/client-core/src/main/java/org/apache/olingo/client/core/ODataClientImpl.java
----------------------------------------------------------------------
diff --git a/lib/client-core/src/main/java/org/apache/olingo/client/core/ODataClientImpl.java b/lib/client-core/src/main/java/org/apache/olingo/client/core/ODataClientImpl.java
index e16b0d7..55d4169 100644
--- a/lib/client-core/src/main/java/org/apache/olingo/client/core/ODataClientImpl.java
+++ b/lib/client-core/src/main/java/org/apache/olingo/client/core/ODataClientImpl.java
@@ -47,11 +47,11 @@ import org.apache.olingo.client.core.serialization.ODataReaderImpl;
 import org.apache.olingo.client.core.serialization.ODataWriterImpl;
 import org.apache.olingo.client.core.uri.FilterFactoryImpl;
 import org.apache.olingo.client.core.uri.URIBuilderImpl;
-import org.apache.olingo.commons.api.domain.ODataObjectFactory;
+import org.apache.olingo.commons.api.domain.ClientObjectFactory;
 import org.apache.olingo.commons.api.edm.constants.ODataServiceVersion;
 import org.apache.olingo.commons.api.format.ODataFormat;
 import org.apache.olingo.commons.api.serialization.ODataSerializer;
-import org.apache.olingo.commons.core.domain.ODataObjectFactoryImpl;
+import org.apache.olingo.commons.core.domain.ClientObjectFactoryImpl;
 import org.apache.olingo.commons.core.serialization.AtomSerializer;
 import org.apache.olingo.commons.core.serialization.JsonSerializer;
 
@@ -65,7 +65,7 @@ public class ODataClientImpl implements ODataClient {
 
   private final ODataBinder binder = new ODataBinderImpl(this);
 
-  private final ODataObjectFactory objectFactory = new ODataObjectFactoryImpl();
+  private final ClientObjectFactory objectFactory = new ClientObjectFactoryImpl();
 
   private final AsyncRequestFactory asyncReqFact = new AsyncRequestFactoryImpl(this);
 
@@ -147,7 +147,7 @@ public class ODataClientImpl implements ODataClient {
   }
 
   @Override
-  public ODataObjectFactory getObjectFactory() {
+  public ClientObjectFactory getObjectFactory() {
     return objectFactory;
   }
 

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/c37d4da5/lib/client-core/src/main/java/org/apache/olingo/client/core/communication/header/ODataErrorResponseChecker.java
----------------------------------------------------------------------
diff --git a/lib/client-core/src/main/java/org/apache/olingo/client/core/communication/header/ODataErrorResponseChecker.java b/lib/client-core/src/main/java/org/apache/olingo/client/core/communication/header/ODataErrorResponseChecker.java
index f1cc64a..717096d 100644
--- a/lib/client-core/src/main/java/org/apache/olingo/client/core/communication/header/ODataErrorResponseChecker.java
+++ b/lib/client-core/src/main/java/org/apache/olingo/client/core/communication/header/ODataErrorResponseChecker.java
@@ -25,7 +25,7 @@ import org.apache.olingo.client.api.ODataClient;
 import org.apache.olingo.client.api.communication.ODataClientErrorException;
 import org.apache.olingo.client.api.communication.ODataServerErrorException;
 import org.apache.olingo.commons.api.ODataRuntimeException;
-import org.apache.olingo.commons.api.domain.ODataError;
+import org.apache.olingo.commons.api.domain.ClientError;
 import org.apache.olingo.commons.api.format.ODataFormat;
 import org.apache.olingo.commons.api.serialization.ODataDeserializerException;
 import org.slf4j.Logger;
@@ -35,8 +35,8 @@ public final class ODataErrorResponseChecker {
 
   protected static final Logger LOG = LoggerFactory.getLogger(ODataErrorResponseChecker.class);
 
-  private static ODataError getGenericError(final int code, final String errorMsg) {
-    final ODataError error = new ODataError();
+  private static ClientError getGenericError(final int code, final String errorMsg) {
+    final ClientError error = new ClientError();
     error.setCode(String.valueOf(code));
     error.setMessage(errorMsg);
     return error;
@@ -53,7 +53,7 @@ public final class ODataErrorResponseChecker {
     } else {
       final ODataFormat format = accept.contains("xml") ? ODataFormat.XML : ODataFormat.JSON;
 
-      ODataError error;
+      ClientError error;
       try {
         error = odataClient.getReader().readError(entity, format);
       } catch (final RuntimeException e) {

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/c37d4da5/lib/client-core/src/main/java/org/apache/olingo/client/core/communication/request/cud/CUDRequestFactoryImpl.java
----------------------------------------------------------------------
diff --git a/lib/client-core/src/main/java/org/apache/olingo/client/core/communication/request/cud/CUDRequestFactoryImpl.java b/lib/client-core/src/main/java/org/apache/olingo/client/core/communication/request/cud/CUDRequestFactoryImpl.java
index 75c3076..be0960a 100644
--- a/lib/client-core/src/main/java/org/apache/olingo/client/core/communication/request/cud/CUDRequestFactoryImpl.java
+++ b/lib/client-core/src/main/java/org/apache/olingo/client/core/communication/request/cud/CUDRequestFactoryImpl.java
@@ -38,10 +38,10 @@ import org.apache.olingo.client.core.communication.request.streamed.ODataMediaEn
 import org.apache.olingo.client.core.communication.request.streamed.ODataStreamUpdateRequestImpl;
 import org.apache.olingo.client.core.uri.URIUtils;
 import org.apache.olingo.commons.api.data.ResWrap;
-import org.apache.olingo.commons.api.domain.ODataEntity;
-import org.apache.olingo.commons.api.domain.ODataPrimitiveValue;
-import org.apache.olingo.commons.api.domain.ODataProperty;
-import org.apache.olingo.commons.api.domain.ODataSingleton;
+import org.apache.olingo.commons.api.domain.ClientEntity;
+import org.apache.olingo.commons.api.domain.ClientPrimitiveValue;
+import org.apache.olingo.commons.api.domain.ClientProperty;
+import org.apache.olingo.commons.api.domain.ClientSingleton;
 import org.apache.olingo.commons.api.http.HttpMethod;
 
 public class CUDRequestFactoryImpl implements CUDRequestFactory {
@@ -53,14 +53,14 @@ public class CUDRequestFactoryImpl implements CUDRequestFactory {
   }
 
   @Override
-  public <E extends ODataEntity> ODataEntityCreateRequest<E> getEntityCreateRequest(
+  public <E extends ClientEntity> ODataEntityCreateRequest<E> getEntityCreateRequest(
       final URI targetURI, final E entity) {
 
     return new ODataEntityCreateRequestImpl<E>(client, targetURI, entity);
   }
 
   @Override
-  public <E extends ODataEntity> ODataEntityUpdateRequest<E> getEntityUpdateRequest(
+  public <E extends ClientEntity> ODataEntityUpdateRequest<E> getEntityUpdateRequest(
       final URI targetURI, final UpdateType type, final E changes) {
 
     final ODataEntityUpdateRequest<E> req;
@@ -76,7 +76,7 @@ public class CUDRequestFactoryImpl implements CUDRequestFactory {
   }
 
   @Override
-  public <E extends ODataEntity> ODataEntityUpdateRequest<E> getEntityUpdateRequest(
+  public <E extends ClientEntity> ODataEntityUpdateRequest<E> getEntityUpdateRequest(
       final UpdateType type, final E entity) {
 
     if (entity.getEditLink() == null) {
@@ -97,7 +97,7 @@ public class CUDRequestFactoryImpl implements CUDRequestFactory {
 
   @Override
   public ODataValueUpdateRequest getValueUpdateRequest(
-      final URI targetURI, final UpdateType type, final ODataPrimitiveValue value) {
+      final URI targetURI, final UpdateType type, final ClientPrimitiveValue value) {
 
     final ODataValueUpdateRequest req;
 
@@ -113,7 +113,7 @@ public class CUDRequestFactoryImpl implements CUDRequestFactory {
 
   @Override
   public ODataPropertyUpdateRequest getPropertyPrimitiveValueUpdateRequest(
-      final URI targetURI, final ODataProperty property) {
+      final URI targetURI, final ClientProperty property) {
 
     if (!property.hasPrimitiveValue()) {
       throw new IllegalArgumentException("A primitive value is required");
@@ -133,7 +133,7 @@ public class CUDRequestFactoryImpl implements CUDRequestFactory {
 
   @Override
   public ODataPropertyUpdateRequest getPropertyComplexValueUpdateRequest(
-      final URI targetURI, final UpdateType type, final ODataProperty property) {
+      final URI targetURI, final UpdateType type, final ClientProperty property) {
 
     if (!property.hasComplexValue()) {
       throw new IllegalArgumentException("A complex value is required");
@@ -153,7 +153,7 @@ public class CUDRequestFactoryImpl implements CUDRequestFactory {
 
   @Override
   public ODataPropertyUpdateRequest getPropertyCollectionValueUpdateRequest(
-      final URI targetURI, final ODataProperty property) {
+      final URI targetURI, final ClientProperty property) {
 
     if (!property.hasCollectionValue()) {
       throw new IllegalArgumentException("A collection value is required");
@@ -186,7 +186,7 @@ public class CUDRequestFactoryImpl implements CUDRequestFactory {
   }
 
   @Override
-  public <E extends ODataEntity> ODataMediaEntityCreateRequest<E> getMediaEntityCreateRequest(
+  public <E extends ClientEntity> ODataMediaEntityCreateRequest<E> getMediaEntityCreateRequest(
       final URI targetURI, final InputStream media) {
 
     return new ODataMediaEntityCreateRequestImpl<E>(client, targetURI, media);
@@ -207,7 +207,7 @@ public class CUDRequestFactoryImpl implements CUDRequestFactory {
   }
 
   @Override
-  public <E extends ODataEntity> ODataMediaEntityUpdateRequest<E> getMediaEntityUpdateRequest(
+  public <E extends ClientEntity> ODataMediaEntityUpdateRequest<E> getMediaEntityUpdateRequest(
       final URI editURI, final InputStream media) {
 
     final ODataMediaEntityUpdateRequest<E> req;
@@ -223,15 +223,15 @@ public class CUDRequestFactoryImpl implements CUDRequestFactory {
   }
 
   @Override
-  public ODataEntityUpdateRequest<ODataSingleton> getSingletonUpdateRequest(
-      final UpdateType type, final ODataSingleton entity) {
+  public ODataEntityUpdateRequest<ClientSingleton> getSingletonUpdateRequest(
+      final UpdateType type, final ClientSingleton entity) {
 
     return getEntityUpdateRequest(type, entity);
   }
 
   @Override
-  public ODataEntityUpdateRequest<ODataSingleton> getSingletonUpdateRequest(
-      final URI targetURI, final UpdateType type, final ODataSingleton changes) {
+  public ODataEntityUpdateRequest<ClientSingleton> getSingletonUpdateRequest(
+      final URI targetURI, final UpdateType type, final ClientSingleton changes) {
 
     return getEntityUpdateRequest(targetURI, type, changes);
   }

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/c37d4da5/lib/client-core/src/main/java/org/apache/olingo/client/core/communication/request/cud/ODataEntityCreateRequestImpl.java
----------------------------------------------------------------------
diff --git a/lib/client-core/src/main/java/org/apache/olingo/client/core/communication/request/cud/ODataEntityCreateRequestImpl.java b/lib/client-core/src/main/java/org/apache/olingo/client/core/communication/request/cud/ODataEntityCreateRequestImpl.java
index 3dc08a4..86d5395 100644
--- a/lib/client-core/src/main/java/org/apache/olingo/client/core/communication/request/cud/ODataEntityCreateRequestImpl.java
+++ b/lib/client-core/src/main/java/org/apache/olingo/client/core/communication/request/cud/ODataEntityCreateRequestImpl.java
@@ -33,7 +33,7 @@ import org.apache.olingo.client.core.communication.response.AbstractODataRespons
 import org.apache.olingo.client.core.uri.URIUtils;
 import org.apache.olingo.commons.api.data.Entity;
 import org.apache.olingo.commons.api.data.ResWrap;
-import org.apache.olingo.commons.api.domain.ODataEntity;
+import org.apache.olingo.commons.api.domain.ClientEntity;
 import org.apache.olingo.commons.api.format.ODataFormat;
 import org.apache.olingo.commons.api.http.HttpMethod;
 import org.apache.olingo.commons.api.serialization.ODataDeserializerException;
@@ -44,7 +44,7 @@ import org.apache.olingo.commons.api.serialization.ODataSerializerException;
  *
  * @param <E> concrete ODataEntity implementation
  */
-public class ODataEntityCreateRequestImpl<E extends ODataEntity>
+public class ODataEntityCreateRequestImpl<E extends ClientEntity>
         extends AbstractODataBasicRequest<ODataEntityCreateResponse<E>>
         implements ODataEntityCreateRequest<E> {
 

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/c37d4da5/lib/client-core/src/main/java/org/apache/olingo/client/core/communication/request/cud/ODataEntityUpdateRequestImpl.java
----------------------------------------------------------------------
diff --git a/lib/client-core/src/main/java/org/apache/olingo/client/core/communication/request/cud/ODataEntityUpdateRequestImpl.java b/lib/client-core/src/main/java/org/apache/olingo/client/core/communication/request/cud/ODataEntityUpdateRequestImpl.java
index d401496..b86e6ae 100644
--- a/lib/client-core/src/main/java/org/apache/olingo/client/core/communication/request/cud/ODataEntityUpdateRequestImpl.java
+++ b/lib/client-core/src/main/java/org/apache/olingo/client/core/communication/request/cud/ODataEntityUpdateRequestImpl.java
@@ -34,7 +34,7 @@ import org.apache.olingo.client.core.communication.response.AbstractODataRespons
 import org.apache.olingo.client.core.uri.URIUtils;
 import org.apache.olingo.commons.api.data.Entity;
 import org.apache.olingo.commons.api.data.ResWrap;
-import org.apache.olingo.commons.api.domain.ODataEntity;
+import org.apache.olingo.commons.api.domain.ClientEntity;
 import org.apache.olingo.commons.api.format.ODataFormat;
 import org.apache.olingo.commons.api.http.HttpMethod;
 import org.apache.olingo.commons.api.serialization.ODataDeserializerException;
@@ -45,7 +45,7 @@ import org.apache.olingo.commons.api.serialization.ODataSerializerException;
  *
  * @param <E> concrete ODataEntity implementation
  */
-public class ODataEntityUpdateRequestImpl<E extends ODataEntity>
+public class ODataEntityUpdateRequestImpl<E extends ClientEntity>
         extends AbstractODataBasicRequest<ODataEntityUpdateResponse<E>>
         implements ODataEntityUpdateRequest<E> {
 

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/c37d4da5/lib/client-core/src/main/java/org/apache/olingo/client/core/communication/request/cud/ODataPropertyUpdateRequestImpl.java
----------------------------------------------------------------------
diff --git a/lib/client-core/src/main/java/org/apache/olingo/client/core/communication/request/cud/ODataPropertyUpdateRequestImpl.java b/lib/client-core/src/main/java/org/apache/olingo/client/core/communication/request/cud/ODataPropertyUpdateRequestImpl.java
index 50b423c..674a342 100644
--- a/lib/client-core/src/main/java/org/apache/olingo/client/core/communication/request/cud/ODataPropertyUpdateRequestImpl.java
+++ b/lib/client-core/src/main/java/org/apache/olingo/client/core/communication/request/cud/ODataPropertyUpdateRequestImpl.java
@@ -33,7 +33,7 @@ import org.apache.olingo.client.core.communication.response.AbstractODataRespons
 import org.apache.olingo.client.core.uri.URIUtils;
 import org.apache.olingo.commons.api.data.Property;
 import org.apache.olingo.commons.api.data.ResWrap;
-import org.apache.olingo.commons.api.domain.ODataProperty;
+import org.apache.olingo.commons.api.domain.ClientProperty;
 import org.apache.olingo.commons.api.format.ODataFormat;
 import org.apache.olingo.commons.api.http.HttpMethod;
 import org.apache.olingo.commons.api.serialization.ODataDeserializerException;
@@ -48,7 +48,7 @@ public class ODataPropertyUpdateRequestImpl extends AbstractODataBasicRequest<OD
   /**
    * Value to be created.
    */
-  private final ODataProperty property;
+  private final ClientProperty property;
 
   /**
    * Constructor.
@@ -59,7 +59,7 @@ public class ODataPropertyUpdateRequestImpl extends AbstractODataBasicRequest<OD
    * @param property value to be created.
    */
   ODataPropertyUpdateRequestImpl(final ODataClient odataClient,
-          final HttpMethod method, final URI targetURI, final ODataProperty property) {
+          final HttpMethod method, final URI targetURI, final ClientProperty property) {
 
     super(odataClient, method, targetURI);
     // set request body
@@ -97,7 +97,7 @@ public class ODataPropertyUpdateRequestImpl extends AbstractODataBasicRequest<OD
    */
   private class ODataPropertyUpdateResponseImpl extends AbstractODataResponse implements ODataPropertyUpdateResponse {
 
-    private ODataProperty resProperty = null;
+    private ClientProperty resProperty = null;
 
     private ODataPropertyUpdateResponseImpl(final ODataClient odataClient, final HttpClient httpClient,
             final HttpResponse res) {
@@ -106,7 +106,7 @@ public class ODataPropertyUpdateRequestImpl extends AbstractODataBasicRequest<OD
     }
 
     @Override
-    public ODataProperty getBody() {
+    public ClientProperty getBody() {
       if (resProperty == null) {
         try {
           final ResWrap<Property> resource = odataClient.getDeserializer(ODataFormat.fromString(getAccept())).

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/c37d4da5/lib/client-core/src/main/java/org/apache/olingo/client/core/communication/request/cud/ODataValueUpdateRequestImpl.java
----------------------------------------------------------------------
diff --git a/lib/client-core/src/main/java/org/apache/olingo/client/core/communication/request/cud/ODataValueUpdateRequestImpl.java b/lib/client-core/src/main/java/org/apache/olingo/client/core/communication/request/cud/ODataValueUpdateRequestImpl.java
index ddff3b9..a7dfb5f 100644
--- a/lib/client-core/src/main/java/org/apache/olingo/client/core/communication/request/cud/ODataValueUpdateRequestImpl.java
+++ b/lib/client-core/src/main/java/org/apache/olingo/client/core/communication/request/cud/ODataValueUpdateRequestImpl.java
@@ -32,7 +32,7 @@ import org.apache.olingo.client.api.http.HttpClientException;
 import org.apache.olingo.client.core.communication.request.AbstractODataBasicRequest;
 import org.apache.olingo.client.core.communication.response.AbstractODataResponse;
 import org.apache.olingo.client.core.uri.URIUtils;
-import org.apache.olingo.commons.api.domain.ODataPrimitiveValue;
+import org.apache.olingo.commons.api.domain.ClientPrimitiveValue;
 import org.apache.olingo.commons.api.edm.EdmPrimitiveTypeKind;
 import org.apache.olingo.commons.api.format.ODataFormat;
 import org.apache.olingo.commons.api.http.HttpMethod;
@@ -46,7 +46,7 @@ public class ODataValueUpdateRequestImpl extends AbstractODataBasicRequest<OData
   /**
    * Value to be created.
    */
-  private final ODataPrimitiveValue value;
+  private final ClientPrimitiveValue value;
 
   /**
    * Constructor.
@@ -57,7 +57,7 @@ public class ODataValueUpdateRequestImpl extends AbstractODataBasicRequest<OData
    * @param value value to be created.
    */
   ODataValueUpdateRequestImpl(final ODataClient odataClient,
-          final HttpMethod method, final URI targetURI, final ODataPrimitiveValue value) {
+          final HttpMethod method, final URI targetURI, final ClientPrimitiveValue value) {
 
     super(odataClient, method, targetURI);
     // set request body
@@ -94,7 +94,7 @@ public class ODataValueUpdateRequestImpl extends AbstractODataBasicRequest<OData
    */
   private class ODataValueUpdateResponseImpl extends AbstractODataResponse implements ODataValueUpdateResponse {
 
-    private ODataPrimitiveValue resValue = null;
+    private ClientPrimitiveValue resValue = null;
 
     private ODataValueUpdateResponseImpl(final ODataClient odataClient, final HttpClient httpClient,
             final HttpResponse res) {
@@ -103,7 +103,7 @@ public class ODataValueUpdateRequestImpl extends AbstractODataBasicRequest<OData
     }
 
     @Override
-    public ODataPrimitiveValue getBody() {
+    public ClientPrimitiveValue getBody() {
       if (resValue == null) {
         final ODataFormat format = ODataFormat.fromString(getAccept());
 

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/c37d4da5/lib/client-core/src/main/java/org/apache/olingo/client/core/communication/request/invoke/AbstractEdmEnabledInvokeRequestFactory.java
----------------------------------------------------------------------
diff --git a/lib/client-core/src/main/java/org/apache/olingo/client/core/communication/request/invoke/AbstractEdmEnabledInvokeRequestFactory.java b/lib/client-core/src/main/java/org/apache/olingo/client/core/communication/request/invoke/AbstractEdmEnabledInvokeRequestFactory.java
index 7892239..e4d67b5 100644
--- a/lib/client-core/src/main/java/org/apache/olingo/client/core/communication/request/invoke/AbstractEdmEnabledInvokeRequestFactory.java
+++ b/lib/client-core/src/main/java/org/apache/olingo/client/core/communication/request/invoke/AbstractEdmEnabledInvokeRequestFactory.java
@@ -25,8 +25,8 @@ import java.util.Map;
 import org.apache.olingo.client.api.EdmEnabledODataClient;
 import org.apache.olingo.client.api.communication.request.invoke.EdmEnabledInvokeRequestFactory;
 import org.apache.olingo.client.api.communication.request.invoke.ODataInvokeRequest;
-import org.apache.olingo.commons.api.domain.ODataInvokeResult;
-import org.apache.olingo.commons.api.domain.ODataValue;
+import org.apache.olingo.commons.api.domain.ClientInvokeResult;
+import org.apache.olingo.commons.api.domain.ClientValue;
 import org.apache.olingo.commons.api.edm.EdmAction;
 import org.apache.olingo.commons.api.edm.EdmActionImport;
 import org.apache.olingo.commons.api.edm.EdmEntityContainer;
@@ -46,7 +46,7 @@ public abstract class AbstractEdmEnabledInvokeRequestFactory extends AbstractInv
   }
 
   @Override
-  public <RES extends ODataInvokeResult> ODataInvokeRequest<RES> getFunctionImportInvokeRequest(
+  public <RES extends ClientInvokeResult> ODataInvokeRequest<RES> getFunctionImportInvokeRequest(
           final String functionImportName) {
 
     return getFunctionImportInvokeRequest(functionImportName, null);
@@ -54,8 +54,8 @@ public abstract class AbstractEdmEnabledInvokeRequestFactory extends AbstractInv
 
   @Override
   @SuppressWarnings("unchecked")
-  public <RES extends ODataInvokeResult> ODataInvokeRequest<RES> getFunctionImportInvokeRequest(
-          final String functionImportName, final Map<String, ODataValue> parameters) {
+  public <RES extends ClientInvokeResult> ODataInvokeRequest<RES> getFunctionImportInvokeRequest(
+          final String functionImportName, final Map<String, ClientValue> parameters) {
 
     EdmFunctionImport efi = null;
     for (EdmSchema schema : edmClient.getCachedEdm().getSchemas()) {
@@ -82,7 +82,7 @@ public abstract class AbstractEdmEnabledInvokeRequestFactory extends AbstractInv
   }
 
   @Override
-  public <RES extends ODataInvokeResult> ODataInvokeRequest<RES> getActionImportInvokeRequest(
+  public <RES extends ClientInvokeResult> ODataInvokeRequest<RES> getActionImportInvokeRequest(
           final String actionImportName) {
 
     return getActionImportInvokeRequest(actionImportName, null);
@@ -90,8 +90,8 @@ public abstract class AbstractEdmEnabledInvokeRequestFactory extends AbstractInv
 
   @Override
   @SuppressWarnings("unchecked")
-  public <RES extends ODataInvokeResult> ODataInvokeRequest<RES> getActionImportInvokeRequest(
-          final String actionImportName, final Map<String, ODataValue> parameters) {
+  public <RES extends ClientInvokeResult> ODataInvokeRequest<RES> getActionImportInvokeRequest(
+          final String actionImportName, final Map<String, ClientValue> parameters) {
 
     EdmActionImport eai = null;
     for (EdmSchema schema : edmClient.getCachedEdm().getSchemas()) {
@@ -111,7 +111,7 @@ public abstract class AbstractEdmEnabledInvokeRequestFactory extends AbstractInv
   }
 
   @Override
-  public <RES extends ODataInvokeResult> ODataInvokeRequest<RES> getBoundFunctionInvokeRequest(
+  public <RES extends ClientInvokeResult> ODataInvokeRequest<RES> getBoundFunctionInvokeRequest(
           final URI bindingParameterURI, final FullQualifiedName functionName,
           final FullQualifiedName bindingParameterTypeName, final Boolean isBindingParameterCollection) {
 
@@ -121,10 +121,10 @@ public abstract class AbstractEdmEnabledInvokeRequestFactory extends AbstractInv
 
   @Override
   @SuppressWarnings("unchecked")
-  public <RES extends ODataInvokeResult> ODataInvokeRequest<RES> getBoundFunctionInvokeRequest(
+  public <RES extends ClientInvokeResult> ODataInvokeRequest<RES> getBoundFunctionInvokeRequest(
           final URI bindingParameterURI, final FullQualifiedName functionName,
           final FullQualifiedName bindingParameterTypeName, final Boolean isBindingParameterCollection,
-          final Map<String, ODataValue> parameters) {
+          final Map<String, ClientValue> parameters) {
 
     final EdmFunction function = edmClient.getCachedEdm().getBoundFunction(
             functionName, bindingParameterTypeName, isBindingParameterCollection,
@@ -141,7 +141,7 @@ public abstract class AbstractEdmEnabledInvokeRequestFactory extends AbstractInv
   }
 
   @Override
-  public <RES extends ODataInvokeResult> ODataInvokeRequest<RES> getBoundActionInvokeRequest(
+  public <RES extends ClientInvokeResult> ODataInvokeRequest<RES> getBoundActionInvokeRequest(
           final URI bindingParameterURI, final FullQualifiedName actionName,
           final FullQualifiedName bindingParameterTypeName, final Boolean isBindingParameterCollection) {
 
@@ -151,10 +151,10 @@ public abstract class AbstractEdmEnabledInvokeRequestFactory extends AbstractInv
 
   @Override
   @SuppressWarnings("unchecked")
-  public <RES extends ODataInvokeResult> ODataInvokeRequest<RES> getBoundActionInvokeRequest(
+  public <RES extends ClientInvokeResult> ODataInvokeRequest<RES> getBoundActionInvokeRequest(
           final URI bindingParameterURI, final FullQualifiedName actionName,
           final FullQualifiedName bindingParameterTypeName, final Boolean isBindingParameterCollection,
-          final Map<String, ODataValue> parameters) {
+          final Map<String, ClientValue> parameters) {
 
     final EdmAction action = edmClient.getCachedEdm().getBoundAction(
             actionName, bindingParameterTypeName, isBindingParameterCollection);

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/c37d4da5/lib/client-core/src/main/java/org/apache/olingo/client/core/communication/request/invoke/AbstractInvokeRequestFactory.java
----------------------------------------------------------------------
diff --git a/lib/client-core/src/main/java/org/apache/olingo/client/core/communication/request/invoke/AbstractInvokeRequestFactory.java b/lib/client-core/src/main/java/org/apache/olingo/client/core/communication/request/invoke/AbstractInvokeRequestFactory.java
index fdd0f27..75ee264 100644
--- a/lib/client-core/src/main/java/org/apache/olingo/client/core/communication/request/invoke/AbstractInvokeRequestFactory.java
+++ b/lib/client-core/src/main/java/org/apache/olingo/client/core/communication/request/invoke/AbstractInvokeRequestFactory.java
@@ -23,12 +23,12 @@ import java.util.Map;
 
 import org.apache.olingo.client.api.communication.request.invoke.InvokeRequestFactory;
 import org.apache.olingo.client.api.communication.request.invoke.ODataInvokeRequest;
-import org.apache.olingo.client.api.communication.request.invoke.ODataNoContent;
-import org.apache.olingo.commons.api.domain.ODataEntity;
-import org.apache.olingo.commons.api.domain.ODataEntitySet;
-import org.apache.olingo.commons.api.domain.ODataProperty;
-import org.apache.olingo.commons.api.domain.ODataInvokeResult;
-import org.apache.olingo.commons.api.domain.ODataValue;
+import org.apache.olingo.client.api.communication.request.invoke.ClientNoContent;
+import org.apache.olingo.commons.api.domain.ClientEntity;
+import org.apache.olingo.commons.api.domain.ClientEntitySet;
+import org.apache.olingo.commons.api.domain.ClientProperty;
+import org.apache.olingo.commons.api.domain.ClientInvokeResult;
+import org.apache.olingo.commons.api.domain.ClientValue;
 import org.apache.olingo.commons.api.edm.EdmReturnType;
 import org.apache.olingo.commons.api.edm.constants.EdmTypeKind;
 import org.apache.olingo.commons.api.http.HttpMethod;
@@ -36,46 +36,46 @@ import org.apache.olingo.commons.api.http.HttpMethod;
 public abstract class AbstractInvokeRequestFactory implements InvokeRequestFactory {
 
   @Override
-  public <RES extends ODataInvokeResult> ODataInvokeRequest<RES> getFunctionInvokeRequest(
+  public <RES extends ClientInvokeResult> ODataInvokeRequest<RES> getFunctionInvokeRequest(
           final URI uri, final Class<RES> resultRef) {
 
     return getFunctionInvokeRequest(uri, resultRef, null);
   }
 
   @Override
-  public <RES extends ODataInvokeResult> ODataInvokeRequest<RES> getFunctionInvokeRequest(
-          final URI uri, final Class<RES> resultRef, final Map<String, ODataValue> parameters) {
+  public <RES extends ClientInvokeResult> ODataInvokeRequest<RES> getFunctionInvokeRequest(
+          final URI uri, final Class<RES> resultRef, final Map<String, ClientValue> parameters) {
 
     return getInvokeRequest(HttpMethod.GET, uri, resultRef, parameters);
   }
 
   @Override
-  public <RES extends ODataInvokeResult> ODataInvokeRequest<RES> getActionInvokeRequest(
+  public <RES extends ClientInvokeResult> ODataInvokeRequest<RES> getActionInvokeRequest(
           final URI uri, final Class<RES> resultRef) {
 
     return getActionInvokeRequest(uri, resultRef, null);
   }
 
   @Override
-  public <RES extends ODataInvokeResult> ODataInvokeRequest<RES> getActionInvokeRequest(
-          final URI uri, final Class<RES> resultRef, final Map<String, ODataValue> parameters) {
+  public <RES extends ClientInvokeResult> ODataInvokeRequest<RES> getActionInvokeRequest(
+          final URI uri, final Class<RES> resultRef, final Map<String, ClientValue> parameters) {
 
     return getInvokeRequest(HttpMethod.POST, uri, resultRef, parameters);
   }
 
   @SuppressWarnings("unchecked")
-  protected <RES extends ODataInvokeResult> Class<RES> getResultReference(final EdmReturnType returnType) {
+  protected <RES extends ClientInvokeResult> Class<RES> getResultReference(final EdmReturnType returnType) {
     Class<RES> result;
 
     if (returnType == null) {
-      result = (Class<RES>) ODataNoContent.class;
+      result = (Class<RES>) ClientNoContent.class;
     } else {
       if (returnType.isCollection() && returnType.getType().getKind() == EdmTypeKind.ENTITY) {
-        result = (Class<RES>) ODataEntitySet.class;
+        result = (Class<RES>) ClientEntitySet.class;
       } else if (!returnType.isCollection() && returnType.getType().getKind() == EdmTypeKind.ENTITY) {
-        result = (Class<RES>) ODataEntity.class;
+        result = (Class<RES>) ClientEntity.class;
       } else {
-        result = (Class<RES>) ODataProperty.class;
+        result = (Class<RES>) ClientProperty.class;
       }
     }
 

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/c37d4da5/lib/client-core/src/main/java/org/apache/olingo/client/core/communication/request/invoke/AbstractODataInvokeRequest.java
----------------------------------------------------------------------
diff --git a/lib/client-core/src/main/java/org/apache/olingo/client/core/communication/request/invoke/AbstractODataInvokeRequest.java b/lib/client-core/src/main/java/org/apache/olingo/client/core/communication/request/invoke/AbstractODataInvokeRequest.java
index e9801cc..2f26161 100644
--- a/lib/client-core/src/main/java/org/apache/olingo/client/core/communication/request/invoke/AbstractODataInvokeRequest.java
+++ b/lib/client-core/src/main/java/org/apache/olingo/client/core/communication/request/invoke/AbstractODataInvokeRequest.java
@@ -32,17 +32,17 @@ import org.apache.http.client.methods.HttpRequestBase;
 import org.apache.olingo.client.api.ODataClient;
 import org.apache.olingo.client.api.communication.request.ODataBatchableRequest;
 import org.apache.olingo.client.api.communication.request.invoke.ODataInvokeRequest;
-import org.apache.olingo.client.api.communication.request.invoke.ODataNoContent;
+import org.apache.olingo.client.api.communication.request.invoke.ClientNoContent;
 import org.apache.olingo.client.api.communication.response.ODataInvokeResponse;
 import org.apache.olingo.client.api.http.HttpClientException;
 import org.apache.olingo.client.core.communication.request.AbstractODataBasicRequest;
 import org.apache.olingo.client.core.communication.response.AbstractODataResponse;
 import org.apache.olingo.client.core.uri.URIUtils;
-import org.apache.olingo.commons.api.domain.ODataEntity;
-import org.apache.olingo.commons.api.domain.ODataEntitySet;
-import org.apache.olingo.commons.api.domain.ODataInvokeResult;
-import org.apache.olingo.commons.api.domain.ODataProperty;
-import org.apache.olingo.commons.api.domain.ODataValue;
+import org.apache.olingo.commons.api.domain.ClientEntity;
+import org.apache.olingo.commons.api.domain.ClientEntitySet;
+import org.apache.olingo.commons.api.domain.ClientInvokeResult;
+import org.apache.olingo.commons.api.domain.ClientProperty;
+import org.apache.olingo.commons.api.domain.ClientValue;
 import org.apache.olingo.commons.api.format.ODataFormat;
 import org.apache.olingo.commons.api.http.HttpMethod;
 import org.apache.olingo.commons.api.serialization.ODataDeserializerException;
@@ -51,7 +51,7 @@ import org.apache.olingo.commons.api.serialization.ODataSerializerException;
 /**
  * This class implements an OData invoke operation request.
  */
-public abstract class AbstractODataInvokeRequest<T extends ODataInvokeResult>
+public abstract class AbstractODataInvokeRequest<T extends ClientInvokeResult>
     extends AbstractODataBasicRequest<ODataInvokeResponse<T>>
     implements ODataInvokeRequest<T>, ODataBatchableRequest {
 
@@ -60,7 +60,7 @@ public abstract class AbstractODataInvokeRequest<T extends ODataInvokeResult>
   /**
    * Function parameters.
    */
-  protected Map<String, ODataValue> parameters;
+  protected Map<String, ClientValue> parameters;
 
   /**
    * Constructor.
@@ -79,11 +79,11 @@ public abstract class AbstractODataInvokeRequest<T extends ODataInvokeResult>
     super(odataClient, method, uri);
 
     this.reference = reference;
-    this.parameters = new LinkedHashMap<String, ODataValue>();
+    this.parameters = new LinkedHashMap<String, ClientValue>();
   }
 
   @Override
-  public void setParameters(final Map<String, ODataValue> parameters) {
+  public void setParameters(final Map<String, ClientValue> parameters) {
     this.parameters.clear();
     if (parameters != null && !parameters.isEmpty()) {
       this.parameters.putAll(parameters);
@@ -96,7 +96,7 @@ public abstract class AbstractODataInvokeRequest<T extends ODataInvokeResult>
   }
 
   private String getActualFormat(final ODataFormat format) {
-    return ((ODataProperty.class.isAssignableFrom(reference) && format == ODataFormat.ATOM)
+    return ((ClientProperty.class.isAssignableFrom(reference) && format == ODataFormat.ATOM)
         ? ODataFormat.XML : format).getContentType().toContentTypeString();
   }
 
@@ -113,9 +113,9 @@ public abstract class AbstractODataInvokeRequest<T extends ODataInvokeResult>
   protected InputStream getPayload() {
     if (!this.parameters.isEmpty() && this.method == HttpMethod.POST) {
       // Additional, non-binding parameters MUST be sent as JSON
-      final ODataEntity tmp = odataClient.getObjectFactory().newEntity(null);
-      for (Map.Entry<String, ODataValue> param : parameters.entrySet()) {
-        ODataProperty property = null;
+      final ClientEntity tmp = odataClient.getObjectFactory().newEntity(null);
+      for (Map.Entry<String, ClientValue> param : parameters.entrySet()) {
+        ClientProperty property = null;
 
         if (param.getValue().isPrimitive()) {
           property = odataClient.getObjectFactory().
@@ -190,18 +190,18 @@ public abstract class AbstractODataInvokeRequest<T extends ODataInvokeResult>
     public T getBody() {
       if (invokeResult == null) {
         try {
-          if (ODataNoContent.class.isAssignableFrom(reference)) {
-            invokeResult = reference.cast(new ODataNoContent());
+          if (ClientNoContent.class.isAssignableFrom(reference)) {
+            invokeResult = reference.cast(new ClientNoContent());
           } else {
             // avoid getContent() twice:IllegalStateException: Content has been consumed
             final InputStream responseStream = this.payload == null ? res.getEntity().getContent() : this.payload;
-            if (ODataEntitySet.class.isAssignableFrom(reference)) {
+            if (ClientEntitySet.class.isAssignableFrom(reference)) {
               invokeResult = reference.cast(odataClient.getReader().readEntitySet(responseStream,
                   ODataFormat.fromString(getContentType())));
-            } else if (ODataEntity.class.isAssignableFrom(reference)) {
+            } else if (ClientEntity.class.isAssignableFrom(reference)) {
               invokeResult = reference.cast(odataClient.getReader().readEntity(responseStream,
                   ODataFormat.fromString(getContentType())));
-            } else if (ODataProperty.class.isAssignableFrom(reference)) {
+            } else if (ClientProperty.class.isAssignableFrom(reference)) {
               invokeResult = reference.cast(odataClient.getReader().readProperty(responseStream,
                   ODataFormat.fromString(getContentType())));
             }

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/c37d4da5/lib/client-core/src/main/java/org/apache/olingo/client/core/communication/request/invoke/EdmEnabledInvokeRequestFactoryImpl.java
----------------------------------------------------------------------
diff --git a/lib/client-core/src/main/java/org/apache/olingo/client/core/communication/request/invoke/EdmEnabledInvokeRequestFactoryImpl.java b/lib/client-core/src/main/java/org/apache/olingo/client/core/communication/request/invoke/EdmEnabledInvokeRequestFactoryImpl.java
index 9f1aaae..27691c5 100644
--- a/lib/client-core/src/main/java/org/apache/olingo/client/core/communication/request/invoke/EdmEnabledInvokeRequestFactoryImpl.java
+++ b/lib/client-core/src/main/java/org/apache/olingo/client/core/communication/request/invoke/EdmEnabledInvokeRequestFactoryImpl.java
@@ -23,8 +23,8 @@ import java.util.Map;
 
 import org.apache.olingo.client.api.EdmEnabledODataClient;
 import org.apache.olingo.client.api.communication.request.invoke.ODataInvokeRequest;
-import org.apache.olingo.commons.api.domain.ODataInvokeResult;
-import org.apache.olingo.commons.api.domain.ODataValue;
+import org.apache.olingo.commons.api.domain.ClientInvokeResult;
+import org.apache.olingo.commons.api.domain.ClientValue;
 import org.apache.olingo.commons.api.http.HttpMethod;
 
 public class EdmEnabledInvokeRequestFactoryImpl extends AbstractEdmEnabledInvokeRequestFactory {
@@ -37,9 +37,9 @@ public class EdmEnabledInvokeRequestFactoryImpl extends AbstractEdmEnabledInvoke
   }
 
   @Override
-  public <RES extends ODataInvokeResult> ODataInvokeRequest<RES> getInvokeRequest(
+  public <RES extends ClientInvokeResult> ODataInvokeRequest<RES> getInvokeRequest(
           final HttpMethod method, final URI uri, final Class<RES> resultRef,
-          final Map<String, ODataValue> parameters) {
+          final Map<String, ClientValue> parameters) {
 
     final ODataInvokeRequest<RES> request = new ODataInvokeRequestImpl<RES>(edmClient, resultRef, method, uri);
     if (parameters != null) {

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/c37d4da5/lib/client-core/src/main/java/org/apache/olingo/client/core/communication/request/invoke/InvokeRequestFactoryImpl.java
----------------------------------------------------------------------
diff --git a/lib/client-core/src/main/java/org/apache/olingo/client/core/communication/request/invoke/InvokeRequestFactoryImpl.java b/lib/client-core/src/main/java/org/apache/olingo/client/core/communication/request/invoke/InvokeRequestFactoryImpl.java
index 315071e..7b8506c 100644
--- a/lib/client-core/src/main/java/org/apache/olingo/client/core/communication/request/invoke/InvokeRequestFactoryImpl.java
+++ b/lib/client-core/src/main/java/org/apache/olingo/client/core/communication/request/invoke/InvokeRequestFactoryImpl.java
@@ -23,8 +23,8 @@ import java.util.Map;
 
 import org.apache.olingo.client.api.ODataClient;
 import org.apache.olingo.client.api.communication.request.invoke.ODataInvokeRequest;
-import org.apache.olingo.commons.api.domain.ODataInvokeResult;
-import org.apache.olingo.commons.api.domain.ODataValue;
+import org.apache.olingo.commons.api.domain.ClientInvokeResult;
+import org.apache.olingo.commons.api.domain.ClientValue;
 import org.apache.olingo.commons.api.http.HttpMethod;
 
 public class InvokeRequestFactoryImpl extends AbstractInvokeRequestFactory {
@@ -36,9 +36,9 @@ public class InvokeRequestFactoryImpl extends AbstractInvokeRequestFactory {
   }
 
   @Override
-  public <RES extends ODataInvokeResult> ODataInvokeRequest<RES> getInvokeRequest(
+  public <RES extends ClientInvokeResult> ODataInvokeRequest<RES> getInvokeRequest(
           final HttpMethod method, final URI uri, final Class<RES> resultRef,
-          final Map<String, ODataValue> parameters) {
+          final Map<String, ClientValue> parameters) {
 
     final ODataInvokeRequest<RES> request = new ODataInvokeRequestImpl<RES>(client, resultRef, method, uri);
     if (parameters != null) {

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/c37d4da5/lib/client-core/src/main/java/org/apache/olingo/client/core/communication/request/invoke/ODataInvokeRequestImpl.java
----------------------------------------------------------------------
diff --git a/lib/client-core/src/main/java/org/apache/olingo/client/core/communication/request/invoke/ODataInvokeRequestImpl.java b/lib/client-core/src/main/java/org/apache/olingo/client/core/communication/request/invoke/ODataInvokeRequestImpl.java
index ce49d47..adf2214 100644
--- a/lib/client-core/src/main/java/org/apache/olingo/client/core/communication/request/invoke/ODataInvokeRequestImpl.java
+++ b/lib/client-core/src/main/java/org/apache/olingo/client/core/communication/request/invoke/ODataInvokeRequestImpl.java
@@ -21,11 +21,11 @@ package org.apache.olingo.client.core.communication.request.invoke;
 import java.net.URI;
 
 import org.apache.olingo.client.api.ODataClient;
-import org.apache.olingo.commons.api.domain.ODataInvokeResult;
+import org.apache.olingo.commons.api.domain.ClientInvokeResult;
 import org.apache.olingo.commons.api.format.ODataFormat;
 import org.apache.olingo.commons.api.http.HttpMethod;
 
-public class ODataInvokeRequestImpl<T extends ODataInvokeResult> extends AbstractODataInvokeRequest<T> {
+public class ODataInvokeRequestImpl<T extends ClientInvokeResult> extends AbstractODataInvokeRequest<T> {
 
   private ODataFormat format;
 

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/c37d4da5/lib/client-core/src/main/java/org/apache/olingo/client/core/communication/request/retrieve/ODataDeltaRequestImpl.java
----------------------------------------------------------------------
diff --git a/lib/client-core/src/main/java/org/apache/olingo/client/core/communication/request/retrieve/ODataDeltaRequestImpl.java b/lib/client-core/src/main/java/org/apache/olingo/client/core/communication/request/retrieve/ODataDeltaRequestImpl.java
index e01da68..4412ef0 100644
--- a/lib/client-core/src/main/java/org/apache/olingo/client/core/communication/request/retrieve/ODataDeltaRequestImpl.java
+++ b/lib/client-core/src/main/java/org/apache/olingo/client/core/communication/request/retrieve/ODataDeltaRequestImpl.java
@@ -29,11 +29,11 @@ import org.apache.olingo.client.api.communication.response.ODataRetrieveResponse
 import org.apache.olingo.client.api.http.HttpClientException;
 import org.apache.olingo.commons.api.data.Delta;
 import org.apache.olingo.commons.api.data.ResWrap;
-import org.apache.olingo.commons.api.domain.ODataDelta;
+import org.apache.olingo.commons.api.domain.ClientDelta;
 import org.apache.olingo.commons.api.format.ODataFormat;
 import org.apache.olingo.commons.api.serialization.ODataDeserializerException;
 
-public class ODataDeltaRequestImpl extends AbstractODataRetrieveRequest<ODataDelta>
+public class ODataDeltaRequestImpl extends AbstractODataRetrieveRequest<ClientDelta>
     implements ODataDeltaRequest {
 
   public ODataDeltaRequestImpl(final ODataClient odataClient, final URI query) {
@@ -46,14 +46,14 @@ public class ODataDeltaRequestImpl extends AbstractODataRetrieveRequest<ODataDel
   }
 
   @Override
-  public ODataRetrieveResponse<ODataDelta> execute() {
+  public ODataRetrieveResponse<ClientDelta> execute() {
     final HttpResponse res = doExecute();
     return new ODataDeltaResponseImpl(odataClient, httpClient, res);
   }
 
   protected class ODataDeltaResponseImpl extends AbstractODataRetrieveResponse {
 
-    private ODataDelta delta = null;
+    private ClientDelta delta = null;
 
     private ODataDeltaResponseImpl(final ODataClient odataClient, final HttpClient httpClient,
         final HttpResponse res) {
@@ -62,7 +62,7 @@ public class ODataDeltaRequestImpl extends AbstractODataRetrieveRequest<ODataDel
     }
 
     @Override
-    public ODataDelta getBody() {
+    public ClientDelta getBody() {
       if (delta == null) {
         try {
           final ResWrap<Delta> resource = odataClient.getDeserializer(ODataFormat.fromString(getContentType())).

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/c37d4da5/lib/client-core/src/main/java/org/apache/olingo/client/core/communication/request/retrieve/ODataEntityRequestImpl.java
----------------------------------------------------------------------
diff --git a/lib/client-core/src/main/java/org/apache/olingo/client/core/communication/request/retrieve/ODataEntityRequestImpl.java b/lib/client-core/src/main/java/org/apache/olingo/client/core/communication/request/retrieve/ODataEntityRequestImpl.java
index f247ec9..eec258b 100644
--- a/lib/client-core/src/main/java/org/apache/olingo/client/core/communication/request/retrieve/ODataEntityRequestImpl.java
+++ b/lib/client-core/src/main/java/org/apache/olingo/client/core/communication/request/retrieve/ODataEntityRequestImpl.java
@@ -27,14 +27,14 @@ import org.apache.olingo.client.api.communication.request.retrieve.ODataEntityRe
 import org.apache.olingo.client.api.communication.response.ODataRetrieveResponse;
 import org.apache.olingo.commons.api.data.Entity;
 import org.apache.olingo.commons.api.data.ResWrap;
-import org.apache.olingo.commons.api.domain.ODataEntity;
+import org.apache.olingo.commons.api.domain.ClientEntity;
 import org.apache.olingo.commons.api.format.ODataFormat;
 import org.apache.olingo.commons.api.serialization.ODataDeserializerException;
 
 /**
  * This class implements an OData retrieve query request returning a single entity.
  */
-public class ODataEntityRequestImpl<E extends ODataEntity>
+public class ODataEntityRequestImpl<E extends ClientEntity>
         extends AbstractODataRetrieveRequest<E> implements ODataEntityRequest<E> {
 
   /**

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/c37d4da5/lib/client-core/src/main/java/org/apache/olingo/client/core/communication/request/retrieve/ODataEntitySetIteratorRequestImpl.java
----------------------------------------------------------------------
diff --git a/lib/client-core/src/main/java/org/apache/olingo/client/core/communication/request/retrieve/ODataEntitySetIteratorRequestImpl.java b/lib/client-core/src/main/java/org/apache/olingo/client/core/communication/request/retrieve/ODataEntitySetIteratorRequestImpl.java
index 737305b..04adfb6 100644
--- a/lib/client-core/src/main/java/org/apache/olingo/client/core/communication/request/retrieve/ODataEntitySetIteratorRequestImpl.java
+++ b/lib/client-core/src/main/java/org/apache/olingo/client/core/communication/request/retrieve/ODataEntitySetIteratorRequestImpl.java
@@ -26,14 +26,14 @@ import org.apache.olingo.client.api.ODataClient;
 import org.apache.olingo.client.api.communication.request.retrieve.ODataEntitySetIteratorRequest;
 import org.apache.olingo.client.api.communication.response.ODataRetrieveResponse;
 import org.apache.olingo.client.api.domain.ODataEntitySetIterator;
-import org.apache.olingo.commons.api.domain.ODataEntity;
-import org.apache.olingo.commons.api.domain.ODataEntitySet;
+import org.apache.olingo.commons.api.domain.ClientEntity;
+import org.apache.olingo.commons.api.domain.ClientEntitySet;
 import org.apache.olingo.commons.api.format.ODataFormat;
 
 /**
  * This class implements an OData EntitySet query request.
  */
-public class ODataEntitySetIteratorRequestImpl<ES extends ODataEntitySet, E extends ODataEntity>
+public class ODataEntitySetIteratorRequestImpl<ES extends ClientEntitySet, E extends ClientEntity>
         extends AbstractODataRetrieveRequest<ODataEntitySetIterator<ES, E>>
         implements ODataEntitySetIteratorRequest<ES, E> {
 

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/c37d4da5/lib/client-core/src/main/java/org/apache/olingo/client/core/communication/request/retrieve/ODataEntitySetRequestImpl.java
----------------------------------------------------------------------
diff --git a/lib/client-core/src/main/java/org/apache/olingo/client/core/communication/request/retrieve/ODataEntitySetRequestImpl.java b/lib/client-core/src/main/java/org/apache/olingo/client/core/communication/request/retrieve/ODataEntitySetRequestImpl.java
index 20d75b7..44de4c1 100644
--- a/lib/client-core/src/main/java/org/apache/olingo/client/core/communication/request/retrieve/ODataEntitySetRequestImpl.java
+++ b/lib/client-core/src/main/java/org/apache/olingo/client/core/communication/request/retrieve/ODataEntitySetRequestImpl.java
@@ -27,7 +27,7 @@ import org.apache.olingo.client.api.communication.request.retrieve.ODataEntitySe
 import org.apache.olingo.client.api.communication.response.ODataRetrieveResponse;
 import org.apache.olingo.commons.api.data.EntityCollection;
 import org.apache.olingo.commons.api.data.ResWrap;
-import org.apache.olingo.commons.api.domain.ODataEntitySet;
+import org.apache.olingo.commons.api.domain.ClientEntitySet;
 import org.apache.olingo.commons.api.format.ODataFormat;
 import org.apache.olingo.commons.api.serialization.ODataDeserializerException;
 
@@ -36,7 +36,7 @@ import org.apache.olingo.commons.api.serialization.ODataDeserializerException;
  *
  * @param <ES> concrete ODataEntitySet implementation
  */
-public class ODataEntitySetRequestImpl<ES extends ODataEntitySet>
+public class ODataEntitySetRequestImpl<ES extends ClientEntitySet>
     extends AbstractODataRetrieveRequest<ES> implements ODataEntitySetRequest<ES> {
 
   private ES entitySet = null;

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/c37d4da5/lib/client-core/src/main/java/org/apache/olingo/client/core/communication/request/retrieve/ODataPropertyRequestImpl.java
----------------------------------------------------------------------
diff --git a/lib/client-core/src/main/java/org/apache/olingo/client/core/communication/request/retrieve/ODataPropertyRequestImpl.java b/lib/client-core/src/main/java/org/apache/olingo/client/core/communication/request/retrieve/ODataPropertyRequestImpl.java
index 07f753b..91644bf 100644
--- a/lib/client-core/src/main/java/org/apache/olingo/client/core/communication/request/retrieve/ODataPropertyRequestImpl.java
+++ b/lib/client-core/src/main/java/org/apache/olingo/client/core/communication/request/retrieve/ODataPropertyRequestImpl.java
@@ -29,14 +29,14 @@ import org.apache.olingo.client.api.communication.response.ODataRetrieveResponse
 import org.apache.olingo.client.api.http.HttpClientException;
 import org.apache.olingo.commons.api.data.Property;
 import org.apache.olingo.commons.api.data.ResWrap;
-import org.apache.olingo.commons.api.domain.ODataProperty;
+import org.apache.olingo.commons.api.domain.ClientProperty;
 import org.apache.olingo.commons.api.format.ODataFormat;
 import org.apache.olingo.commons.api.serialization.ODataDeserializerException;
 
 /**
  * This class implements an OData entity property query request.
  */
-public class ODataPropertyRequestImpl<T extends ODataProperty>
+public class ODataPropertyRequestImpl<T extends ClientProperty>
         extends AbstractODataRetrieveRequest<T> implements ODataPropertyRequest<T> {
 
   /**

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/c37d4da5/lib/client-core/src/main/java/org/apache/olingo/client/core/communication/request/retrieve/ODataServiceDocumentRequestImpl.java
----------------------------------------------------------------------
diff --git a/lib/client-core/src/main/java/org/apache/olingo/client/core/communication/request/retrieve/ODataServiceDocumentRequestImpl.java b/lib/client-core/src/main/java/org/apache/olingo/client/core/communication/request/retrieve/ODataServiceDocumentRequestImpl.java
index ce2f477..771525e 100644
--- a/lib/client-core/src/main/java/org/apache/olingo/client/core/communication/request/retrieve/ODataServiceDocumentRequestImpl.java
+++ b/lib/client-core/src/main/java/org/apache/olingo/client/core/communication/request/retrieve/ODataServiceDocumentRequestImpl.java
@@ -27,14 +27,14 @@ import org.apache.olingo.client.api.communication.request.retrieve.ODataServiceD
 import org.apache.olingo.client.api.communication.response.ODataRetrieveResponse;
 import org.apache.olingo.client.api.data.ServiceDocument;
 import org.apache.olingo.commons.api.data.ResWrap;
-import org.apache.olingo.commons.api.domain.ODataServiceDocument;
+import org.apache.olingo.commons.api.domain.ClientServiceDocument;
 import org.apache.olingo.commons.api.format.ODataFormat;
 import org.apache.olingo.commons.api.serialization.ODataDeserializerException;
 
 /**
  * This class implements an OData service document request.
  */
-public class ODataServiceDocumentRequestImpl extends AbstractODataRetrieveRequest<ODataServiceDocument>
+public class ODataServiceDocumentRequestImpl extends AbstractODataRetrieveRequest<ClientServiceDocument>
         implements ODataServiceDocumentRequest {
 
   /**
@@ -53,7 +53,7 @@ public class ODataServiceDocumentRequestImpl extends AbstractODataRetrieveReques
   }
 
   @Override
-  public ODataRetrieveResponse<ODataServiceDocument> execute() {
+  public ODataRetrieveResponse<ClientServiceDocument> execute() {
     final HttpResponse res = doExecute();
     return new ODataServiceResponseImpl(odataClient, httpClient, res);
   }
@@ -63,7 +63,7 @@ public class ODataServiceDocumentRequestImpl extends AbstractODataRetrieveReques
    */
   protected class ODataServiceResponseImpl extends AbstractODataRetrieveResponse {
 
-    private ODataServiceDocument serviceDocument = null;
+    private ClientServiceDocument serviceDocument = null;
 
     private ODataServiceResponseImpl(final ODataClient odataClient, final HttpClient httpClient,
             final HttpResponse res) {
@@ -72,7 +72,7 @@ public class ODataServiceDocumentRequestImpl extends AbstractODataRetrieveReques
     }
 
     @Override
-    public ODataServiceDocument getBody() {
+    public ClientServiceDocument getBody() {
       if (serviceDocument == null) {
         try {
           final ResWrap<ServiceDocument> resource = odataClient.

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/c37d4da5/lib/client-core/src/main/java/org/apache/olingo/client/core/communication/request/retrieve/ODataValueRequestImpl.java
----------------------------------------------------------------------
diff --git a/lib/client-core/src/main/java/org/apache/olingo/client/core/communication/request/retrieve/ODataValueRequestImpl.java b/lib/client-core/src/main/java/org/apache/olingo/client/core/communication/request/retrieve/ODataValueRequestImpl.java
index ffb2caf..e6de8a6 100644
--- a/lib/client-core/src/main/java/org/apache/olingo/client/core/communication/request/retrieve/ODataValueRequestImpl.java
+++ b/lib/client-core/src/main/java/org/apache/olingo/client/core/communication/request/retrieve/ODataValueRequestImpl.java
@@ -27,14 +27,14 @@ import org.apache.olingo.client.api.ODataClient;
 import org.apache.olingo.client.api.communication.request.retrieve.ODataValueRequest;
 import org.apache.olingo.client.api.communication.response.ODataRetrieveResponse;
 import org.apache.olingo.client.api.http.HttpClientException;
-import org.apache.olingo.commons.api.domain.ODataPrimitiveValue;
+import org.apache.olingo.commons.api.domain.ClientPrimitiveValue;
 import org.apache.olingo.commons.api.edm.EdmPrimitiveTypeKind;
 import org.apache.olingo.commons.api.format.ODataFormat;
 
 /**
  * This class implements an OData entity property value query request.
  */
-public class ODataValueRequestImpl extends AbstractODataRetrieveRequest<ODataPrimitiveValue>
+public class ODataValueRequestImpl extends AbstractODataRetrieveRequest<ClientPrimitiveValue>
         implements ODataValueRequest {
 
   /**
@@ -53,7 +53,7 @@ public class ODataValueRequestImpl extends AbstractODataRetrieveRequest<ODataPri
   }
 
   @Override
-  public ODataRetrieveResponse<ODataPrimitiveValue> execute() {
+  public ODataRetrieveResponse<ClientPrimitiveValue> execute() {
     final HttpResponse res = doExecute();
     return new ODataValueResponseImpl(odataClient, httpClient, res);
   }
@@ -63,7 +63,7 @@ public class ODataValueRequestImpl extends AbstractODataRetrieveRequest<ODataPri
    */
   protected class ODataValueResponseImpl extends AbstractODataRetrieveResponse {
 
-    private ODataPrimitiveValue value = null;
+    private ClientPrimitiveValue value = null;
 
     private ODataValueResponseImpl(final ODataClient odataClient, final HttpClient httpClient,
             final HttpResponse res) {
@@ -72,7 +72,7 @@ public class ODataValueRequestImpl extends AbstractODataRetrieveRequest<ODataPri
     }
 
     @Override
-    public ODataPrimitiveValue getBody() {
+    public ClientPrimitiveValue getBody() {
       if (value == null) {
         final ODataFormat format = ODataFormat.fromString(getContentType());
 

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/c37d4da5/lib/client-core/src/main/java/org/apache/olingo/client/core/communication/request/retrieve/RetrieveRequestFactoryImpl.java
----------------------------------------------------------------------
diff --git a/lib/client-core/src/main/java/org/apache/olingo/client/core/communication/request/retrieve/RetrieveRequestFactoryImpl.java b/lib/client-core/src/main/java/org/apache/olingo/client/core/communication/request/retrieve/RetrieveRequestFactoryImpl.java
index f765875..4717f7a 100644
--- a/lib/client-core/src/main/java/org/apache/olingo/client/core/communication/request/retrieve/RetrieveRequestFactoryImpl.java
+++ b/lib/client-core/src/main/java/org/apache/olingo/client/core/communication/request/retrieve/RetrieveRequestFactoryImpl.java
@@ -35,10 +35,10 @@ import org.apache.olingo.client.api.communication.request.retrieve.ODataValueReq
 import org.apache.olingo.client.api.communication.request.retrieve.RetrieveRequestFactory;
 import org.apache.olingo.client.api.communication.request.retrieve.XMLMetadataRequest;
 import org.apache.olingo.client.core.uri.URIUtils;
-import org.apache.olingo.commons.api.domain.ODataEntity;
-import org.apache.olingo.commons.api.domain.ODataEntitySet;
-import org.apache.olingo.commons.api.domain.ODataProperty;
-import org.apache.olingo.commons.api.domain.ODataSingleton;
+import org.apache.olingo.commons.api.domain.ClientEntity;
+import org.apache.olingo.commons.api.domain.ClientEntitySet;
+import org.apache.olingo.commons.api.domain.ClientProperty;
+import org.apache.olingo.commons.api.domain.ClientSingleton;
 
 public class RetrieveRequestFactoryImpl implements RetrieveRequestFactory {
 
@@ -93,28 +93,28 @@ public class RetrieveRequestFactoryImpl implements RetrieveRequestFactory {
   }
 
   @Override
-  public ODataEntitySetRequest<ODataEntitySet> getEntitySetRequest(final URI uri) {
-    return new ODataEntitySetRequestImpl<ODataEntitySet>(client, uri);
+  public ODataEntitySetRequest<ClientEntitySet> getEntitySetRequest(final URI uri) {
+    return new ODataEntitySetRequestImpl<ClientEntitySet>(client, uri);
   }
 
   @Override
-  public ODataEntitySetIteratorRequest<ODataEntitySet, ODataEntity> getEntitySetIteratorRequest(final URI uri) {
-    return new ODataEntitySetIteratorRequestImpl<ODataEntitySet, ODataEntity>(client, uri);
+  public ODataEntitySetIteratorRequest<ClientEntitySet, ClientEntity> getEntitySetIteratorRequest(final URI uri) {
+    return new ODataEntitySetIteratorRequestImpl<ClientEntitySet, ClientEntity>(client, uri);
   }
 
   @Override
-  public ODataEntityRequest<ODataSingleton> getSingletonRequest(final URI uri) {
-    return new ODataEntityRequestImpl<ODataSingleton>(client, uri);
+  public ODataEntityRequest<ClientSingleton> getSingletonRequest(final URI uri) {
+    return new ODataEntityRequestImpl<ClientSingleton>(client, uri);
   }
 
   @Override
-  public ODataEntityRequest<ODataEntity> getEntityRequest(final URI uri) {
-    return new ODataEntityRequestImpl<ODataEntity>(client, uri);
+  public ODataEntityRequest<ClientEntity> getEntityRequest(final URI uri) {
+    return new ODataEntityRequestImpl<ClientEntity>(client, uri);
   }
 
   @Override
-  public ODataPropertyRequest<ODataProperty> getPropertyRequest(final URI uri) {
-    return new ODataPropertyRequestImpl<ODataProperty>(client, uri);
+  public ODataPropertyRequest<ClientProperty> getPropertyRequest(final URI uri) {
+    return new ODataPropertyRequestImpl<ClientProperty>(client, uri);
   }
 
   @Override

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/c37d4da5/lib/client-core/src/main/java/org/apache/olingo/client/core/communication/request/streamed/ODataMediaEntityCreateRequestImpl.java
----------------------------------------------------------------------
diff --git a/lib/client-core/src/main/java/org/apache/olingo/client/core/communication/request/streamed/ODataMediaEntityCreateRequestImpl.java b/lib/client-core/src/main/java/org/apache/olingo/client/core/communication/request/streamed/ODataMediaEntityCreateRequestImpl.java
index 8f1fede..a6bcb13 100644
--- a/lib/client-core/src/main/java/org/apache/olingo/client/core/communication/request/streamed/ODataMediaEntityCreateRequestImpl.java
+++ b/lib/client-core/src/main/java/org/apache/olingo/client/core/communication/request/streamed/ODataMediaEntityCreateRequestImpl.java
@@ -32,7 +32,7 @@ import org.apache.olingo.client.core.communication.request.AbstractODataStreamMa
 import org.apache.olingo.client.core.communication.response.AbstractODataResponse;
 import org.apache.olingo.commons.api.data.Entity;
 import org.apache.olingo.commons.api.data.ResWrap;
-import org.apache.olingo.commons.api.domain.ODataEntity;
+import org.apache.olingo.commons.api.domain.ClientEntity;
 import org.apache.olingo.commons.api.http.HttpMethod;
 import org.apache.olingo.commons.api.serialization.ODataDeserializerException;
 
@@ -41,7 +41,7 @@ import org.apache.olingo.commons.api.serialization.ODataDeserializerException;
  *
  * @param <E> concrete ODataEntity implementation
  */
-public class ODataMediaEntityCreateRequestImpl<E extends ODataEntity>
+public class ODataMediaEntityCreateRequestImpl<E extends ClientEntity>
         extends AbstractODataStreamedEntityRequest<ODataMediaEntityCreateResponse<E>, MediaEntityCreateStreamManager<E>>
         implements ODataMediaEntityCreateRequest<E> {
 

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/c37d4da5/lib/client-core/src/main/java/org/apache/olingo/client/core/communication/request/streamed/ODataMediaEntityUpdateRequestImpl.java
----------------------------------------------------------------------
diff --git a/lib/client-core/src/main/java/org/apache/olingo/client/core/communication/request/streamed/ODataMediaEntityUpdateRequestImpl.java b/lib/client-core/src/main/java/org/apache/olingo/client/core/communication/request/streamed/ODataMediaEntityUpdateRequestImpl.java
index 5e98d43..d2b287c 100644
--- a/lib/client-core/src/main/java/org/apache/olingo/client/core/communication/request/streamed/ODataMediaEntityUpdateRequestImpl.java
+++ b/lib/client-core/src/main/java/org/apache/olingo/client/core/communication/request/streamed/ODataMediaEntityUpdateRequestImpl.java
@@ -32,7 +32,7 @@ import org.apache.olingo.client.core.communication.request.AbstractODataStreamMa
 import org.apache.olingo.client.core.communication.response.AbstractODataResponse;
 import org.apache.olingo.commons.api.data.Entity;
 import org.apache.olingo.commons.api.data.ResWrap;
-import org.apache.olingo.commons.api.domain.ODataEntity;
+import org.apache.olingo.commons.api.domain.ClientEntity;
 import org.apache.olingo.commons.api.http.HttpMethod;
 import org.apache.olingo.commons.api.serialization.ODataDeserializerException;
 
@@ -41,7 +41,7 @@ import org.apache.olingo.commons.api.serialization.ODataDeserializerException;
  *
  * @param <E> concrete ODataEntity implementation
  */
-public class ODataMediaEntityUpdateRequestImpl<E extends ODataEntity>
+public class ODataMediaEntityUpdateRequestImpl<E extends ClientEntity>
         extends AbstractODataStreamedEntityRequest<ODataMediaEntityUpdateResponse<E>, MediaEntityUpdateStreamManager<E>>
         implements ODataMediaEntityUpdateRequest<E> {
 

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/c37d4da5/lib/client-core/src/main/java/org/apache/olingo/client/core/serialization/ClientODataDeserializerImpl.java
----------------------------------------------------------------------
diff --git a/lib/client-core/src/main/java/org/apache/olingo/client/core/serialization/ClientODataDeserializerImpl.java b/lib/client-core/src/main/java/org/apache/olingo/client/core/serialization/ClientODataDeserializerImpl.java
index a668aaf..916c360 100644
--- a/lib/client-core/src/main/java/org/apache/olingo/client/core/serialization/ClientODataDeserializerImpl.java
+++ b/lib/client-core/src/main/java/org/apache/olingo/client/core/serialization/ClientODataDeserializerImpl.java
@@ -35,7 +35,7 @@ import org.apache.olingo.commons.api.data.Entity;
 import org.apache.olingo.commons.api.data.EntityCollection;
 import org.apache.olingo.commons.api.data.Property;
 import org.apache.olingo.commons.api.data.ResWrap;
-import org.apache.olingo.commons.api.domain.ODataError;
+import org.apache.olingo.commons.api.domain.ClientError;
 import org.apache.olingo.commons.api.edm.EdmPrimitiveTypeException;
 import org.apache.olingo.commons.api.format.ODataFormat;
 import org.apache.olingo.commons.api.serialization.ODataDeserializer;
@@ -86,7 +86,7 @@ public class ClientODataDeserializerImpl implements ClientODataDeserializer {
   }
 
   @Override
-  public ODataError toError(final InputStream input) throws ODataDeserializerException {
+  public ClientError toError(final InputStream input) throws ODataDeserializerException {
     return deserializer.toError(input);
   }
 


[42/50] [abbrv] olingo-odata4 git commit: [OLINGO-564] Renamed 'OData*' to 'Client*' classes

Posted by mi...@apache.org.
[OLINGO-564] Renamed 'OData*' to 'Client*' classes


Project: http://git-wip-us.apache.org/repos/asf/olingo-odata4/repo
Commit: http://git-wip-us.apache.org/repos/asf/olingo-odata4/commit/c37d4da5
Tree: http://git-wip-us.apache.org/repos/asf/olingo-odata4/tree/c37d4da5
Diff: http://git-wip-us.apache.org/repos/asf/olingo-odata4/diff/c37d4da5

Branch: refs/heads/master
Commit: c37d4da5710eb7919c601aaae9a80de1ff83cba9
Parents: 53b10f6
Author: Michael Bolz <mi...@sap.com>
Authored: Tue Apr 28 23:11:55 2015 +0200
Committer: Michael Bolz <mi...@sap.com>
Committed: Tue Apr 28 23:11:55 2015 +0200

----------------------------------------------------------------------
 .../AbstractCollectionInvocationHandler.java    |  14 +-
 ...stractEntityCollectionInvocationHandler.java |  26 +-
 .../commons/AbstractInvocationHandler.java      |   8 +-
 .../commons/AbstractPersistenceManager.java     |  38 +-
 .../AbstractStructuredInvocationHandler.java    |  38 +-
 .../commons/AnnotatableInvocationHandler.java   |  26 +-
 .../ComplexCollectionInvocationHandler.java     |  22 +-
 .../proxy/commons/ComplexInvocationHandler.java |  46 +-
 .../EntityContainerInvocationHandler.java       |   4 +-
 .../proxy/commons/EntityInvocationHandler.java  |  44 +-
 .../commons/EntitySetInvocationHandler.java     |  14 +-
 .../ext/proxy/commons/EntitySetIterator.java    |   4 +-
 .../proxy/commons/InvokerInvocationHandler.java |  38 +-
 .../commons/OperationInvocationHandler.java     |  18 +-
 .../PrimitiveCollectionInvocationHandler.java   |  19 +-
 ...turedComposableInvokerInvocationHandler.java |   4 +-
 .../ext/proxy/context/EntityLinkDesc.java       |  10 +-
 .../olingo/ext/proxy/utils/CoreUtils.java       |  94 +--
 .../olingo/ext/proxy/utils/ProxyUtils.java      |  14 +-
 .../olingo/fit/AbstractBaseTestITCase.java      |  12 +-
 .../fit/tecsvc/client/ActionImportITCase.java   | 128 +--
 .../BasicHttpExceptionHandlingITCase.java       |   2 +-
 .../olingo/fit/tecsvc/client/BasicITCase.java   | 793 ++++++++++---------
 .../fit/tecsvc/client/BatchClientITCase.java    | 128 +--
 .../olingo/fit/tecsvc/client/BindingITCase.java | 228 +++---
 .../fit/tecsvc/client/DeepInsertITCase.java     | 255 +++---
 .../fit/tecsvc/client/ExpandSelectITCase.java   |  72 +-
 .../ExpandWithSystemQueryOptionsITCase.java     | 290 +++----
 .../tecsvc/client/FilterSystemQueryITCase.java  | 534 ++++++-------
 .../fit/tecsvc/client/FunctionImportITCase.java |  92 +--
 .../olingo/fit/tecsvc/client/MediaITCase.java   |  32 +-
 .../fit/tecsvc/client/NavigationITCase.java     |  52 +-
 .../tecsvc/client/OrderBySystemQueryITCase.java |  91 +--
 .../tecsvc/client/PrimitiveComplexITCase.java   |  94 +--
 .../tecsvc/client/SystemQueryOptionITCase.java  |  49 +-
 .../olingo/fit/v4/AbstractTestITCase.java       |  76 +-
 .../apache/olingo/fit/v4/AsyncTestITCase.java   |  63 +-
 .../olingo/fit/v4/AuthBatchTestITCase.java      |  24 +-
 .../apache/olingo/fit/v4/BatchTestITCase.java   | 124 +--
 .../fit/v4/BoundOperationInvokeTestITCase.java  | 208 ++---
 .../olingo/fit/v4/ConformanceTestITCase.java    | 109 +--
 .../apache/olingo/fit/v4/DeltaTestITCase.java   |  30 +-
 .../olingo/fit/v4/DerivedTypeTestITCase.java    |  44 +-
 .../olingo/fit/v4/EntityCreateTestITCase.java   |  51 +-
 .../olingo/fit/v4/EntityRetrieveTestITCase.java | 141 ++--
 .../olingo/fit/v4/EntitySetTestITCase.java      |  36 +-
 .../olingo/fit/v4/EntityUpdateTestITCase.java   |  48 +-
 .../olingo/fit/v4/ErrorResponseTestITCase.java  |  24 +-
 .../olingo/fit/v4/FilterFactoryTestITCase.java  |  26 +-
 .../fit/v4/JSONFormatConformanceTestITCase.java | 222 +++---
 .../olingo/fit/v4/KeyAsSegmentTestITCase.java   |  49 +-
 .../olingo/fit/v4/MediaEntityTestITCase.java    |  44 +-
 .../olingo/fit/v4/MetadataTestITCase.java       |  34 +-
 .../apache/olingo/fit/v4/OAuth2TestITCase.java  |  35 +-
 .../olingo/fit/v4/OpenTypeTestITCase.java       |  32 +-
 .../fit/v4/OperationImportInvokeTestITCase.java | 160 ++--
 .../olingo/fit/v4/PropertyTestITCase.java       |  52 +-
 .../olingo/fit/v4/PropertyValueTestITCase.java  |  36 +-
 .../olingo/fit/v4/QueryOptionsTestITCase.java   |  83 +-
 .../fit/v4/ServiceDocumentTestITCase.java       |  22 +-
 .../olingo/fit/v4/SingletonTestITCase.java      |  43 +-
 .../apache/olingo/client/api/ODataClient.java   |   4 +-
 .../ODataClientErrorException.java              |  10 +-
 .../request/cud/CUDRequestFactory.java          |  35 +-
 .../request/cud/ODataEntityCreateRequest.java   |   4 +-
 .../request/cud/ODataEntityUpdateRequest.java   |   4 +-
 .../request/invoke/ClientNoContent.java         |  28 +
 .../invoke/EdmEnabledInvokeRequestFactory.java  |  28 +-
 .../request/invoke/InvokeRequestFactory.java    |  20 +-
 .../request/invoke/ODataInvokeRequest.java      |   8 +-
 .../request/invoke/ODataNoContent.java          |  28 -
 .../request/retrieve/ODataDeltaRequest.java     |   4 +-
 .../request/retrieve/ODataEntityRequest.java    |   4 +-
 .../retrieve/ODataEntitySetIteratorRequest.java |   6 +-
 .../request/retrieve/ODataEntitySetRequest.java |   4 +-
 .../request/retrieve/ODataPropertyRequest.java  |   4 +-
 .../retrieve/ODataServiceDocumentRequest.java   |   4 +-
 .../request/retrieve/ODataValueRequest.java     |   4 +-
 .../retrieve/RetrieveRequestFactory.java        |  18 +-
 .../MediaEntityCreateStreamManager.java         |   4 +-
 .../MediaEntityUpdateStreamManager.java         |   4 +-
 .../streamed/ODataMediaEntityCreateRequest.java |   4 +-
 .../streamed/ODataMediaEntityUpdateRequest.java |   4 +-
 .../response/ODataEntityCreateResponse.java     |   4 +-
 .../response/ODataEntityUpdateResponse.java     |   4 +-
 .../response/ODataInvokeResponse.java           |   4 +-
 .../ODataMediaEntityCreateResponse.java         |   4 +-
 .../ODataMediaEntityUpdateResponse.java         |   4 +-
 .../response/ODataPropertyUpdateResponse.java   |   4 +-
 .../response/ODataValueUpdateResponse.java      |   4 +-
 .../olingo/client/api/data/ServiceDocument.java |   2 +-
 .../api/domain/ODataEntitySetIterator.java      |   6 +-
 .../client/api/serialization/ODataBinder.java   |  38 +-
 .../client/api/serialization/ODataReader.java   |  20 +-
 .../client/api/serialization/ODataWriter.java   |  14 +-
 .../olingo/client/core/ODataClientImpl.java     |   8 +-
 .../header/ODataErrorResponseChecker.java       |   8 +-
 .../request/cud/CUDRequestFactoryImpl.java      |  34 +-
 .../cud/ODataEntityCreateRequestImpl.java       |   4 +-
 .../cud/ODataEntityUpdateRequestImpl.java       |   4 +-
 .../cud/ODataPropertyUpdateRequestImpl.java     |  10 +-
 .../cud/ODataValueUpdateRequestImpl.java        |  10 +-
 .../AbstractEdmEnabledInvokeRequestFactory.java |  28 +-
 .../invoke/AbstractInvokeRequestFactory.java    |  34 +-
 .../invoke/AbstractODataInvokeRequest.java      |  38 +-
 .../EdmEnabledInvokeRequestFactoryImpl.java     |   8 +-
 .../invoke/InvokeRequestFactoryImpl.java        |   8 +-
 .../request/invoke/ODataInvokeRequestImpl.java  |   4 +-
 .../request/retrieve/ODataDeltaRequestImpl.java |  10 +-
 .../retrieve/ODataEntityRequestImpl.java        |   4 +-
 .../ODataEntitySetIteratorRequestImpl.java      |   6 +-
 .../retrieve/ODataEntitySetRequestImpl.java     |   4 +-
 .../retrieve/ODataPropertyRequestImpl.java      |   4 +-
 .../ODataServiceDocumentRequestImpl.java        |  10 +-
 .../request/retrieve/ODataValueRequestImpl.java |  10 +-
 .../retrieve/RetrieveRequestFactoryImpl.java    |  28 +-
 .../ODataMediaEntityCreateRequestImpl.java      |   4 +-
 .../ODataMediaEntityUpdateRequestImpl.java      |   4 +-
 .../ClientODataDeserializerImpl.java            |   4 +-
 .../core/serialization/ODataBinderImpl.java     | 174 ++--
 .../core/serialization/ODataReaderImpl.java     |  36 +-
 .../core/serialization/ODataWriterImpl.java     |  18 +-
 .../apache/olingo/client/core/uri/URIUtils.java |   6 +-
 .../olingo/client/core/v4/EntitySetTest.java    |  14 +-
 .../olingo/client/core/v4/EntityTest.java       |  88 +-
 .../apache/olingo/client/core/v4/ErrorTest.java |   8 +-
 .../apache/olingo/client/core/v4/JSONTest.java  |  16 +-
 .../client/core/v4/PrimitiveValueTest.java      |   6 +-
 .../olingo/client/core/v4/PropertyTest.java     |  38 +-
 .../client/core/v4/ServiceDocumentTest.java     |   6 +-
 .../apache/olingo/commons/api/data/Entity.java  |   6 +-
 .../api/domain/AbstractClientPayload.java       |  50 ++
 .../commons/api/domain/AbstractClientValue.java | 120 +++
 .../api/domain/AbstractODataPayload.java        |  50 --
 .../commons/api/domain/AbstractODataValue.java  | 120 ---
 .../commons/api/domain/ClientAnnotatable.java   |  26 +
 .../commons/api/domain/ClientAnnotation.java    |  30 +
 .../api/domain/ClientCollectionValue.java       |  57 ++
 .../commons/api/domain/ClientComplexValue.java  |  58 ++
 .../commons/api/domain/ClientDeletedEntity.java |  36 +
 .../olingo/commons/api/domain/ClientDelta.java  |  31 +
 .../commons/api/domain/ClientDeltaLink.java     |  36 +
 .../olingo/commons/api/domain/ClientEntity.java | 202 +++++
 .../commons/api/domain/ClientEntitySet.java     |  71 ++
 .../commons/api/domain/ClientEnumValue.java     |  27 +
 .../olingo/commons/api/domain/ClientError.java  | 132 +++
 .../commons/api/domain/ClientErrorDetail.java   |  73 ++
 .../commons/api/domain/ClientInlineEntity.java  |  68 ++
 .../api/domain/ClientInlineEntitySet.java       |  69 ++
 .../commons/api/domain/ClientInvokeResult.java  |  30 +
 .../olingo/commons/api/domain/ClientItem.java   |  96 +++
 .../olingo/commons/api/domain/ClientLink.java   | 187 +++++
 .../commons/api/domain/ClientLinkType.java      | 105 +++
 .../olingo/commons/api/domain/ClientLinked.java |  70 ++
 .../commons/api/domain/ClientObjectFactory.java | 168 ++++
 .../commons/api/domain/ClientOperation.java     |  85 ++
 .../api/domain/ClientPrimitiveValue.java        |  88 ++
 .../commons/api/domain/ClientProperty.java      |  32 +
 .../commons/api/domain/ClientPropertyType.java  |  44 +
 .../api/domain/ClientServiceDocument.java       | 163 ++++
 .../commons/api/domain/ClientSingleton.java     |  23 +
 .../commons/api/domain/ClientValuable.java      |  94 +++
 .../olingo/commons/api/domain/ClientValue.java  |  91 +++
 .../commons/api/domain/ODataAnnotatable.java    |  26 -
 .../commons/api/domain/ODataAnnotation.java     |  30 -
 .../api/domain/ODataCollectionValue.java        |  57 --
 .../commons/api/domain/ODataComplexValue.java   |  58 --
 .../commons/api/domain/ODataDeletedEntity.java  |  36 -
 .../olingo/commons/api/domain/ODataDelta.java   |  31 -
 .../commons/api/domain/ODataDeltaLink.java      |  36 -
 .../olingo/commons/api/domain/ODataEntity.java  | 202 -----
 .../commons/api/domain/ODataEntitySet.java      |  71 --
 .../commons/api/domain/ODataEnumValue.java      |  27 -
 .../olingo/commons/api/domain/ODataError.java   | 132 ---
 .../commons/api/domain/ODataErrorDetail.java    |  73 --
 .../commons/api/domain/ODataInlineEntity.java   |  68 --
 .../api/domain/ODataInlineEntitySet.java        |  69 --
 .../commons/api/domain/ODataInvokeResult.java   |  30 -
 .../olingo/commons/api/domain/ODataItem.java    |  96 ---
 .../olingo/commons/api/domain/ODataLink.java    | 187 -----
 .../commons/api/domain/ODataLinkType.java       | 105 ---
 .../olingo/commons/api/domain/ODataLinked.java  |  70 --
 .../commons/api/domain/ODataObjectFactory.java  | 168 ----
 .../commons/api/domain/ODataOperation.java      |  85 --
 .../commons/api/domain/ODataPrimitiveValue.java |  88 --
 .../commons/api/domain/ODataProperty.java       |  32 -
 .../commons/api/domain/ODataPropertyType.java   |  44 -
 .../api/domain/ODataServiceDocument.java        | 163 ----
 .../commons/api/domain/ODataSingleton.java      |  23 -
 .../commons/api/domain/ODataValuable.java       |  94 ---
 .../olingo/commons/api/domain/ODataValue.java   |  91 ---
 .../EdmConstantAnnotationExpression.java        |   4 +-
 .../api/serialization/ODataDeserializer.java    |   4 +-
 .../core/domain/AbstractClientEntitySet.java    |  71 ++
 .../core/domain/AbstractODataEntitySet.java     |  71 --
 .../core/domain/ClientAnnotationImpl.java       | 102 +++
 .../core/domain/ClientCollectionValueImpl.java  | 124 +++
 .../core/domain/ClientComplexValueImpl.java     | 204 +++++
 .../core/domain/ClientDeletedEntityImpl.java    |  54 ++
 .../commons/core/domain/ClientDeltaImpl.java    |  60 ++
 .../core/domain/ClientDeltaLinkImpl.java        |  78 ++
 .../commons/core/domain/ClientEntityImpl.java   | 298 +++++++
 .../core/domain/ClientEntitySetImpl.java        |  65 ++
 .../core/domain/ClientEnumValueImpl.java        |  59 ++
 .../core/domain/ClientObjectFactoryImpl.java    | 155 ++++
 .../core/domain/ClientPrimitiveValueImpl.java   | 222 ++++++
 .../commons/core/domain/ClientPropertyImpl.java | 163 ++++
 .../commons/core/domain/ClientValuableImpl.java | 111 +++
 .../core/domain/ODataAnnotationImpl.java        | 102 ---
 .../core/domain/ODataCollectionValueImpl.java   | 124 ---
 .../core/domain/ODataComplexValueImpl.java      | 204 -----
 .../core/domain/ODataDeletedEntityImpl.java     |  54 --
 .../commons/core/domain/ODataDeltaImpl.java     |  60 --
 .../commons/core/domain/ODataDeltaLinkImpl.java |  78 --
 .../commons/core/domain/ODataEntityImpl.java    | 298 -------
 .../commons/core/domain/ODataEntitySetImpl.java |  65 --
 .../commons/core/domain/ODataEnumValueImpl.java |  59 --
 .../core/domain/ODataObjectFactoryImpl.java     | 155 ----
 .../core/domain/ODataPrimitiveValueImpl.java    | 222 ------
 .../commons/core/domain/ODataPropertyImpl.java  | 163 ----
 .../commons/core/domain/ODataValuableImpl.java  | 111 ---
 .../EdmConstantAnnotationExpressionImpl.java    |  26 +-
 .../core/serialization/AtomDeserializer.java    |  46 +-
 .../core/serialization/AtomSerializer.java      |   4 +-
 .../core/serialization/JsonDeserializer.java    |  46 +-
 .../serialization/JsonEntityDeserializer.java   |   8 +-
 .../serialization/JsonEntitySerializer.java     |   4 +-
 .../JsonODataErrorDeserializer.java             |  10 +-
 .../JsonODataErrorDetailDeserializer.java       |   8 +-
 .../core/serialization/JsonSerializer.java      |   8 +-
 .../olingo/server/api/ClientServerError.java    | 138 ++++
 .../olingo/server/api/ODataServerError.java     | 138 ----
 .../server/api/processor/DefaultProcessor.java  |   4 +-
 .../server/api/processor/ErrorProcessor.java    |   4 +-
 .../server/api/serializer/ODataSerializer.java  |   4 +-
 .../apache/olingo/server/core/ErrorHandler.java |  26 +-
 .../server/core/responses/EntityResponse.java   |   4 +-
 .../core/responses/EntitySetResponse.java       |   4 +-
 .../server/core/responses/MetadataResponse.java |   4 +-
 .../server/core/responses/PropertyResponse.java |   4 +-
 .../server/core/responses/ResponseUtil.java     |   6 +-
 .../core/responses/ServiceDocumentResponse.java |   4 +-
 .../server/core/ODataExceptionHelper.java       |  50 +-
 .../apache/olingo/server/core/ODataHandler.java |  24 +-
 .../server/core/ODataHttpHandlerImpl.java       |   4 +-
 .../json/ODataJsonDeserializer.java             |  10 +-
 .../serializer/json/ODataErrorSerializer.java   |   8 +-
 .../serializer/json/ODataJsonSerializer.java    |   4 +-
 .../serializer/xml/ODataXmlSerializerImpl.java  |   4 +-
 .../json/ClientErrorSerializerTest.java         | 136 ++++
 .../json/ODataErrorSerializerTest.java          | 136 ----
 .../olingo/server/tecsvc/data/DataCreator.java  |   6 +-
 .../olingo/server/core/ODataHandlerTest.java    |   4 +-
 .../json/ODataDeserializerDeepInsertTest.java   |   6 +-
 .../json/ODataJsonDeserializerEntityTest.java   |   6 +-
 255 files changed, 7699 insertions(+), 7655 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/c37d4da5/ext/client-proxy/src/main/java/org/apache/olingo/ext/proxy/commons/AbstractCollectionInvocationHandler.java
----------------------------------------------------------------------
diff --git a/ext/client-proxy/src/main/java/org/apache/olingo/ext/proxy/commons/AbstractCollectionInvocationHandler.java b/ext/client-proxy/src/main/java/org/apache/olingo/ext/proxy/commons/AbstractCollectionInvocationHandler.java
index 3f75544..276d6e4 100644
--- a/ext/client-proxy/src/main/java/org/apache/olingo/ext/proxy/commons/AbstractCollectionInvocationHandler.java
+++ b/ext/client-proxy/src/main/java/org/apache/olingo/ext/proxy/commons/AbstractCollectionInvocationHandler.java
@@ -35,7 +35,7 @@ import org.apache.commons.lang3.tuple.Triple;
 import org.apache.olingo.client.api.uri.QueryOption;
 import org.apache.olingo.client.api.uri.URIBuilder;
 import org.apache.olingo.client.api.uri.URIFilter;
-import org.apache.olingo.commons.api.domain.ODataAnnotation;
+import org.apache.olingo.commons.api.domain.ClientAnnotation;
 import org.apache.olingo.ext.proxy.AbstractService;
 import org.apache.olingo.ext.proxy.api.AbstractTerm;
 import org.apache.olingo.ext.proxy.api.EntityType;
@@ -59,7 +59,7 @@ public abstract class AbstractCollectionInvocationHandler<T extends Serializable
 
   protected final Class<T> itemRef;
 
-  protected final List<ODataAnnotation> annotations = new ArrayList<ODataAnnotation>();
+  protected final List<ClientAnnotation> annotations = new ArrayList<ClientAnnotation>();
 
   private final Map<Class<? extends AbstractTerm>, Object> annotationsByTerm =
           new HashMap<Class<? extends AbstractTerm>, Object>();
@@ -92,7 +92,7 @@ public abstract class AbstractCollectionInvocationHandler<T extends Serializable
 
   public Collection<T> execute() {
     if (this.uri != null) {
-      final Triple<List<T>, URI, List<ODataAnnotation>> res = fetchPartial(this.uri.build(), itemRef);
+      final Triple<List<T>, URI, List<ClientAnnotation>> res = fetchPartial(this.uri.build(), itemRef);
       this.nextPageURI = res.getMiddle();
 
       if (items == null) {
@@ -109,9 +109,9 @@ public abstract class AbstractCollectionInvocationHandler<T extends Serializable
     return this;
   }
 
-  public abstract Triple<List<T>, URI, List<ODataAnnotation>> fetchPartial(final URI uri, final Class<T> typeRef);
+  public abstract Triple<List<T>, URI, List<ClientAnnotation>> fetchPartial(final URI uri, final Class<T> typeRef);
 
-  public void setAnnotations(final List<ODataAnnotation> annotations) {
+  public void setAnnotations(final List<ClientAnnotation> annotations) {
     this.annotations.clear();
     this.annotationsByTerm.clear();
     this.annotations.addAll(annotations);
@@ -145,8 +145,8 @@ public abstract class AbstractCollectionInvocationHandler<T extends Serializable
       try {
         final Term termAnn = term.getAnnotation(Term.class);
         final Namespace namespaceAnn = term.getAnnotation(Namespace.class);
-        ODataAnnotation annotation = null;
-        for (ODataAnnotation _annotation : annotations) {
+        ClientAnnotation annotation = null;
+        for (ClientAnnotation _annotation : annotations) {
           if ((namespaceAnn.value() + "." + termAnn.name()).equals(_annotation.getTerm())) {
             annotation = _annotation;
           }

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/c37d4da5/ext/client-proxy/src/main/java/org/apache/olingo/ext/proxy/commons/AbstractEntityCollectionInvocationHandler.java
----------------------------------------------------------------------
diff --git a/ext/client-proxy/src/main/java/org/apache/olingo/ext/proxy/commons/AbstractEntityCollectionInvocationHandler.java b/ext/client-proxy/src/main/java/org/apache/olingo/ext/proxy/commons/AbstractEntityCollectionInvocationHandler.java
index 01e5843..90309c5 100644
--- a/ext/client-proxy/src/main/java/org/apache/olingo/ext/proxy/commons/AbstractEntityCollectionInvocationHandler.java
+++ b/ext/client-proxy/src/main/java/org/apache/olingo/ext/proxy/commons/AbstractEntityCollectionInvocationHandler.java
@@ -30,10 +30,10 @@ import org.apache.olingo.client.api.ODataClient;
 import org.apache.olingo.client.api.communication.request.retrieve.ODataEntitySetRequest;
 import org.apache.olingo.client.api.communication.response.ODataRetrieveResponse;
 import org.apache.olingo.client.api.uri.URIBuilder;
-import org.apache.olingo.commons.api.domain.ODataAnnotation;
-import org.apache.olingo.commons.api.domain.ODataEntity;
-import org.apache.olingo.commons.api.domain.ODataEntitySet;
-import org.apache.olingo.commons.api.domain.ODataSingleton;
+import org.apache.olingo.commons.api.domain.ClientAnnotation;
+import org.apache.olingo.commons.api.domain.ClientEntity;
+import org.apache.olingo.commons.api.domain.ClientEntitySet;
+import org.apache.olingo.commons.api.domain.ClientSingleton;
 import org.apache.olingo.ext.proxy.AbstractService;
 import org.apache.olingo.ext.proxy.api.AbstractEntitySet;
 import org.apache.olingo.ext.proxy.api.AbstractSingleton;
@@ -93,27 +93,27 @@ public abstract class AbstractEntityCollectionInvocationHandler<T extends Entity
 
   @SuppressWarnings("unchecked")
   @Override
-  public Triple<List<T>, URI, List<ODataAnnotation>> fetchPartial(
+  public Triple<List<T>, URI, List<ClientAnnotation>> fetchPartial(
       final URI uri, final Class<T> typeRef) {
 
-    final List<ODataEntity> entities = new ArrayList<ODataEntity>();
+    final List<ClientEntity> entities = new ArrayList<ClientEntity>();
     final URI next;
-    final List<ODataAnnotation> anns = new ArrayList<ODataAnnotation>();
+    final List<ClientAnnotation> anns = new ArrayList<ClientAnnotation>();
 
     if (isSingleton) {
-      final ODataRetrieveResponse<ODataSingleton> res =
+      final ODataRetrieveResponse<ClientSingleton> res =
           ((ODataClient) getClient()).getRetrieveRequestFactory().getSingletonRequest(uri).execute();
 
       entities.add(res.getBody());
       next = null;
     } else {
-      final ODataEntitySetRequest<ODataEntitySet> req =
+      final ODataEntitySetRequest<ClientEntitySet> req =
           getClient().getRetrieveRequestFactory().getEntitySetRequest(uri);
       req.setPrefer(getClient().newPreferences().includeAnnotations("*"));
 
-      final ODataRetrieveResponse<ODataEntitySet> res = req.execute();
+      final ODataRetrieveResponse<ClientEntitySet> res = req.execute();
 
-      final ODataEntitySet entitySet = res.getBody();
+      final ClientEntitySet entitySet = res.getBody();
       entities.addAll(entitySet.getEntities());
       next = entitySet.getNext();
       anns.addAll(entitySet.getAnnotations());
@@ -121,7 +121,7 @@ public abstract class AbstractEntityCollectionInvocationHandler<T extends Entity
 
     final List<T> res = new ArrayList<T>(entities.size());
 
-    for (ODataEntity entity : entities) {
+    for (ClientEntity entity : entities) {
       Class<?> actualRef = null;
       if (entity.getTypeName() != null) {
         actualRef = service.getEntityTypeClass(entity.getTypeName().toString());
@@ -150,6 +150,6 @@ public abstract class AbstractEntityCollectionInvocationHandler<T extends Entity
           handlerInTheContext == null ? handler : handlerInTheContext));
     }
 
-    return new ImmutableTriple<List<T>, URI, List<ODataAnnotation>>(res, next, anns);
+    return new ImmutableTriple<List<T>, URI, List<ClientAnnotation>>(res, next, anns);
   }
 }

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/c37d4da5/ext/client-proxy/src/main/java/org/apache/olingo/ext/proxy/commons/AbstractInvocationHandler.java
----------------------------------------------------------------------
diff --git a/ext/client-proxy/src/main/java/org/apache/olingo/ext/proxy/commons/AbstractInvocationHandler.java b/ext/client-proxy/src/main/java/org/apache/olingo/ext/proxy/commons/AbstractInvocationHandler.java
index abc0ee8..a1005a3 100644
--- a/ext/client-proxy/src/main/java/org/apache/olingo/ext/proxy/commons/AbstractInvocationHandler.java
+++ b/ext/client-proxy/src/main/java/org/apache/olingo/ext/proxy/commons/AbstractInvocationHandler.java
@@ -32,8 +32,8 @@ import org.apache.commons.lang3.builder.ReflectionToStringBuilder;
 import org.apache.commons.lang3.builder.ToStringStyle;
 import org.apache.olingo.client.api.EdmEnabledODataClient;
 import org.apache.olingo.client.api.uri.URIBuilder;
-import org.apache.olingo.commons.api.domain.ODataEntity;
-import org.apache.olingo.commons.api.domain.ODataValue;
+import org.apache.olingo.commons.api.domain.ClientEntity;
+import org.apache.olingo.commons.api.domain.ClientValue;
 import org.apache.olingo.commons.api.edm.FullQualifiedName;
 import org.apache.olingo.ext.proxy.AbstractService;
 import org.apache.olingo.ext.proxy.api.ComplexType;
@@ -94,7 +94,7 @@ abstract class AbstractInvocationHandler implements InvocationHandler {
 
   protected ComplexType<?> getComplex(
       final String name,
-      final ODataValue value,
+      final ClientValue value,
       final Class<?> ref,
       final EntityInvocationHandler handler,
       final URI baseURI,
@@ -153,7 +153,7 @@ abstract class AbstractInvocationHandler implements InvocationHandler {
 
     final String namespace = handler.getUUID().getType().getAnnotation(Namespace.class).value();
 
-    final ODataEntity template;
+    final ClientEntity template;
 
     final URI entityURI;
     if (handler.getEntityURI() == null || handler.getUUID().getKey() == null) {

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/c37d4da5/ext/client-proxy/src/main/java/org/apache/olingo/ext/proxy/commons/AbstractPersistenceManager.java
----------------------------------------------------------------------
diff --git a/ext/client-proxy/src/main/java/org/apache/olingo/ext/proxy/commons/AbstractPersistenceManager.java b/ext/client-proxy/src/main/java/org/apache/olingo/ext/proxy/commons/AbstractPersistenceManager.java
index 06c190a..d29aad4 100644
--- a/ext/client-proxy/src/main/java/org/apache/olingo/ext/proxy/commons/AbstractPersistenceManager.java
+++ b/ext/client-proxy/src/main/java/org/apache/olingo/ext/proxy/commons/AbstractPersistenceManager.java
@@ -40,9 +40,9 @@ import org.apache.olingo.client.api.communication.request.cud.ODataReferenceAddi
 import org.apache.olingo.client.api.communication.request.streamed.ODataMediaEntityUpdateRequest;
 import org.apache.olingo.client.api.communication.request.streamed.ODataStreamUpdateRequest;
 import org.apache.olingo.client.core.uri.URIUtils;
-import org.apache.olingo.commons.api.domain.ODataEntity;
-import org.apache.olingo.commons.api.domain.ODataLink;
-import org.apache.olingo.commons.api.domain.ODataLinkType;
+import org.apache.olingo.commons.api.domain.ClientEntity;
+import org.apache.olingo.commons.api.domain.ClientLink;
+import org.apache.olingo.commons.api.domain.ClientLinkType;
 import org.apache.olingo.ext.proxy.AbstractService;
 import org.apache.olingo.ext.proxy.api.EdmStreamValue;
 import org.apache.olingo.ext.proxy.api.PersistenceManager;
@@ -118,8 +118,8 @@ abstract class AbstractPersistenceManager implements PersistenceManager {
     service.getContext().detachAll();
   }
 
-  private ODataLink buildNavigationLink(final String name, final URI uri, final ODataLinkType type) {
-    ODataLink result;
+  private ClientLink buildNavigationLink(final String name, final URI uri, final ClientLinkType type) {
+    ClientLink result;
 
     switch (type) {
     case ENTITY_NAVIGATION:
@@ -146,7 +146,7 @@ abstract class AbstractPersistenceManager implements PersistenceManager {
     int posNumber = pos;
     items.put(handler, null);
 
-    final ODataEntity entity = handler.getEntity();
+    final ClientEntity entity = handler.getEntity();
     entity.getNavigationLinks().clear();
 
     final AttachedEntityStatus currentStatus = service.getContext().entityContext().getStatus(handler);
@@ -166,13 +166,13 @@ abstract class AbstractPersistenceManager implements PersistenceManager {
     }
 
     for (Map.Entry<NavigationProperty, Object> property : handler.getLinkChanges().entrySet()) {
-      final ODataLinkType type = Collection.class.isAssignableFrom(property.getValue().getClass())
-          ? ODataLinkType.ENTITY_SET_NAVIGATION
-          : ODataLinkType.ENTITY_NAVIGATION;
+      final ClientLinkType type = Collection.class.isAssignableFrom(property.getValue().getClass())
+          ? ClientLinkType.ENTITY_SET_NAVIGATION
+          : ClientLinkType.ENTITY_NAVIGATION;
 
       final Set<EntityInvocationHandler> toBeLinked = new HashSet<EntityInvocationHandler>();
 
-      for (Object proxy : type == ODataLinkType.ENTITY_SET_NAVIGATION
+      for (Object proxy : type == ClientLinkType.ENTITY_SET_NAVIGATION
           ? (Collection<?>) property.getValue() : Collections.singleton(property.getValue())) {
 
         final EntityInvocationHandler target = (EntityInvocationHandler) Proxy.getInvocationHandler(proxy);
@@ -312,7 +312,7 @@ abstract class AbstractPersistenceManager implements PersistenceManager {
         posNumber++;
         items.put(delayedUpdate.getSource(), posNumber);
 
-        final ODataEntity changes =
+        final ClientEntity changes =
             service.getClient().getObjectFactory().newEntity(delayedUpdate.getSource().getEntity().getTypeName());
 
         AttachedEntityStatus status = service.getContext().entityContext().getStatus(delayedUpdate.getSource());
@@ -339,7 +339,7 @@ abstract class AbstractPersistenceManager implements PersistenceManager {
             targetURI = URI.create("$" + targetPos);
           }
 
-          changes.addLink(delayedUpdate.getType() == ODataLinkType.ENTITY_NAVIGATION
+          changes.addLink(delayedUpdate.getType() == ClientLinkType.ENTITY_NAVIGATION
               ? service.getClient().getObjectFactory().
                   newEntityNavigationLink(delayedUpdate.getSourceName(), targetURI)
               : service.getClient().getObjectFactory().
@@ -366,7 +366,7 @@ abstract class AbstractPersistenceManager implements PersistenceManager {
 
   private AttachedEntityStatus queue(
       final EntityInvocationHandler handler,
-      final ODataEntity entity,
+      final ClientEntity entity,
       final PersistenceChanges changeset) {
 
     switch (service.getContext().entityContext().getStatus(handler)) {
@@ -390,7 +390,7 @@ abstract class AbstractPersistenceManager implements PersistenceManager {
 
   private void queueCreate(
       final EntityInvocationHandler handler,
-      final ODataEntity entity,
+      final ClientEntity entity,
       final PersistenceChanges changeset) {
 
     LOG.debug("Create '{}'", handler);
@@ -445,12 +445,12 @@ abstract class AbstractPersistenceManager implements PersistenceManager {
 
   private void queueUpdate(
       final EntityInvocationHandler handler,
-      final ODataEntity changes,
+      final ClientEntity changes,
       final PersistenceChanges changeset) {
 
     LOG.debug("Update '{}'", handler.getEntityURI());
 
-    final ODataEntityUpdateRequest<ODataEntity> req =
+    final ODataEntityUpdateRequest<ClientEntity> req =
         ((EdmEnabledODataClient) service.getClient()).getCUDRequestFactory().
             getEntityUpdateRequest(handler.getEntityURI(),
                 org.apache.olingo.client.api.communication.request.cud.UpdateType.PATCH, changes);
@@ -490,12 +490,12 @@ abstract class AbstractPersistenceManager implements PersistenceManager {
   private void queueUpdate(
       final EntityInvocationHandler handler,
       final URI uri,
-      final ODataEntity changes,
+      final ClientEntity changes,
       final PersistenceChanges changeset) {
 
     LOG.debug("Update '{}'", uri);
 
-    final ODataEntityUpdateRequest<ODataEntity> req =
+    final ODataEntityUpdateRequest<ClientEntity> req =
         ((EdmEnabledODataClient) service.getClient()).getCUDRequestFactory().
             getEntityUpdateRequest(uri,
                 org.apache.olingo.client.api.communication.request.cud.UpdateType.PATCH, changes);
@@ -511,7 +511,7 @@ abstract class AbstractPersistenceManager implements PersistenceManager {
 
   private void queueDelete(
       final EntityInvocationHandler handler,
-      final ODataEntity entity,
+      final ClientEntity entity,
       final PersistenceChanges changeset) {
     final URI deleteURI = entity.getEditLink() == null ? handler.getEntityURI() : entity.getEditLink();
     changeset.addChange(buildDeleteRequest(deleteURI, handler.getETag()), handler);

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/c37d4da5/ext/client-proxy/src/main/java/org/apache/olingo/ext/proxy/commons/AbstractStructuredInvocationHandler.java
----------------------------------------------------------------------
diff --git a/ext/client-proxy/src/main/java/org/apache/olingo/ext/proxy/commons/AbstractStructuredInvocationHandler.java b/ext/client-proxy/src/main/java/org/apache/olingo/ext/proxy/commons/AbstractStructuredInvocationHandler.java
index e1b735e..0795e8b 100644
--- a/ext/client-proxy/src/main/java/org/apache/olingo/ext/proxy/commons/AbstractStructuredInvocationHandler.java
+++ b/ext/client-proxy/src/main/java/org/apache/olingo/ext/proxy/commons/AbstractStructuredInvocationHandler.java
@@ -41,13 +41,13 @@ import org.apache.commons.lang3.StringUtils;
 import org.apache.olingo.client.api.uri.QueryOption;
 import org.apache.olingo.client.api.uri.URIBuilder;
 import org.apache.olingo.client.core.uri.URIUtils;
-import org.apache.olingo.commons.api.domain.ODataEntity;
-import org.apache.olingo.commons.api.domain.ODataInlineEntity;
-import org.apache.olingo.commons.api.domain.ODataInlineEntitySet;
-import org.apache.olingo.commons.api.domain.ODataLink;
-import org.apache.olingo.commons.api.domain.ODataLinked;
-import org.apache.olingo.commons.api.domain.ODataProperty;
-import org.apache.olingo.commons.api.domain.ODataValue;
+import org.apache.olingo.commons.api.domain.ClientEntity;
+import org.apache.olingo.commons.api.domain.ClientInlineEntity;
+import org.apache.olingo.commons.api.domain.ClientInlineEntitySet;
+import org.apache.olingo.commons.api.domain.ClientLink;
+import org.apache.olingo.commons.api.domain.ClientLinked;
+import org.apache.olingo.commons.api.domain.ClientProperty;
+import org.apache.olingo.commons.api.domain.ClientValue;
 import org.apache.olingo.commons.api.edm.EdmPrimitiveTypeKind;
 import org.apache.olingo.commons.api.edm.FullQualifiedName;
 import org.apache.olingo.ext.proxy.AbstractService;
@@ -309,7 +309,7 @@ public abstract class AbstractStructuredInvocationHandler extends AbstractInvoca
         } else if (propertyCache.containsKey(name)) {
           res = propertyCache.get(name);
         } else {
-          final ODataProperty property = getInternalProperty(name);
+          final ClientProperty property = getInternalProperty(name);
 
           if (ref != null && ClassUtils.getTypeClass(type).isAnnotationPresent(ComplexType.class)) {
             res = getComplex(
@@ -332,7 +332,7 @@ public abstract class AbstractStructuredInvocationHandler extends AbstractInvoca
             } else {
               List items = new ArrayList();
 
-              for (ODataValue item : property.getValue().asCollection()) {
+              for (ClientValue item : property.getValue().asCollection()) {
                 items.add(getComplex(
                         name,
                         item,
@@ -364,7 +364,7 @@ public abstract class AbstractStructuredInvocationHandler extends AbstractInvoca
                       ? null : getClient().newURIBuilder(baseURI.toASCIIString()).appendPropertySegment(name));
             } else {
               List items = new ArrayList();
-              for (ODataValue item : property.getValue().asCollection()) {
+              for (ClientValue item : property.getValue().asCollection()) {
                 items.add(item.asPrimitive().toValue());
               }
               collectionHandler = new PrimitiveCollectionInvocationHandler(
@@ -450,25 +450,25 @@ public abstract class AbstractStructuredInvocationHandler extends AbstractInvoca
     final Object navPropValue;
 
     URI targetEntitySetURI = CoreUtils.getTargetEntitySetURI(getClient(), property);
-    final ODataLink link = ((ODataLinked) internal).getNavigationLink(property.name());
+    final ClientLink link = ((ClientLinked) internal).getNavigationLink(property.name());
 
-    if (link instanceof ODataInlineEntity) {
+    if (link instanceof ClientInlineEntity) {
       // return entity
       navPropValue = ProxyUtils.getEntityProxy(
               service,
-              ((ODataInlineEntity) link).getEntity(),
+              ((ClientInlineEntity) link).getEntity(),
               targetEntitySetURI,
               type,
               null,
               false);
-    } else if (link instanceof ODataInlineEntitySet) {
+    } else if (link instanceof ClientInlineEntitySet) {
       // return entity set
       navPropValue = ProxyUtils.getEntityCollectionProxy(
               service,
               collItemType,
               type,
               targetEntitySetURI,
-              ((ODataInlineEntitySet) link).getEntitySet(),
+              ((ClientInlineEntitySet) link).getEntitySet(),
               targetEntitySetURI,
               false);
     } else {
@@ -494,7 +494,7 @@ public abstract class AbstractStructuredInvocationHandler extends AbstractInvoca
         EntityInvocationHandler handler = getContext().entityContext().getEntity(uuid);
 
         if (handler == null) {
-          final ODataEntity entity = getClient().getObjectFactory().newEntity(new FullQualifiedName(
+          final ClientEntity entity = getClient().getObjectFactory().newEntity(new FullQualifiedName(
                   collItemType.getAnnotation(Namespace.class).value(), ClassUtils.getEntityTypeName(collItemType)));
 
           handler = EntityInvocationHandler.getInstance(
@@ -543,7 +543,7 @@ public abstract class AbstractStructuredInvocationHandler extends AbstractInvoca
       }
     }
 
-    for (ODataProperty property : getInternalProperties()) {
+    for (ClientProperty property : getInternalProperties()) {
       if (!propertyNames.contains(property.getName())) {
         res.add(property.getName());
       }
@@ -644,7 +644,7 @@ public abstract class AbstractStructuredInvocationHandler extends AbstractInvoca
 
   public abstract boolean isChanged();
 
-  protected abstract <T extends ODataProperty> List<T> getInternalProperties();
+  protected abstract <T extends ClientProperty> List<T> getInternalProperties();
 
-  protected abstract ODataProperty getInternalProperty(final String name);
+  protected abstract ClientProperty getInternalProperty(final String name);
 }

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/c37d4da5/ext/client-proxy/src/main/java/org/apache/olingo/ext/proxy/commons/AnnotatableInvocationHandler.java
----------------------------------------------------------------------
diff --git a/ext/client-proxy/src/main/java/org/apache/olingo/ext/proxy/commons/AnnotatableInvocationHandler.java b/ext/client-proxy/src/main/java/org/apache/olingo/ext/proxy/commons/AnnotatableInvocationHandler.java
index 9da95ff..4b66898 100644
--- a/ext/client-proxy/src/main/java/org/apache/olingo/ext/proxy/commons/AnnotatableInvocationHandler.java
+++ b/ext/client-proxy/src/main/java/org/apache/olingo/ext/proxy/commons/AnnotatableInvocationHandler.java
@@ -27,9 +27,9 @@ import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
 
-import org.apache.olingo.commons.api.domain.ODataAnnotation;
-import org.apache.olingo.commons.api.domain.ODataComplexValue;
-import org.apache.olingo.commons.api.domain.ODataEntity;
+import org.apache.olingo.commons.api.domain.ClientAnnotation;
+import org.apache.olingo.commons.api.domain.ClientComplexValue;
+import org.apache.olingo.commons.api.domain.ClientEntity;
 import org.apache.olingo.ext.proxy.AbstractService;
 import org.apache.olingo.ext.proxy.api.AbstractTerm;
 import org.apache.olingo.ext.proxy.api.Annotatable;
@@ -77,17 +77,17 @@ public class AnnotatableInvocationHandler extends AbstractInvocationHandler impl
     return annotations;
   }
 
-  private List<ODataAnnotation> internalAnnotations() {
-    List<ODataAnnotation> result = Collections.<ODataAnnotation> emptyList();
+  private List<ClientAnnotation> internalAnnotations() {
+    List<ClientAnnotation> result = Collections.<ClientAnnotation> emptyList();
 
-    if (targetHandler.getInternal() instanceof ODataEntity) {
+    if (targetHandler.getInternal() instanceof ClientEntity) {
       result = propName == null
-          ? ((ODataEntity) targetHandler.getInternal()).getNavigationLink(navPropName).getAnnotations()
-          : ((ODataEntity) targetHandler.getInternal()).getProperty(propName).getAnnotations();
-    } else if (targetHandler.getInternal() instanceof ODataComplexValue) {
+          ? ((ClientEntity) targetHandler.getInternal()).getNavigationLink(navPropName).getAnnotations()
+          : ((ClientEntity) targetHandler.getInternal()).getProperty(propName).getAnnotations();
+    } else if (targetHandler.getInternal() instanceof ClientComplexValue) {
       result = propName == null
-          ? ((ODataComplexValue) targetHandler.getInternal()).getNavigationLink(navPropName).getAnnotations()
-          : ((ODataComplexValue) targetHandler.getInternal()).get(propName).getAnnotations();
+          ? ((ClientComplexValue) targetHandler.getInternal()).getNavigationLink(navPropName).getAnnotations()
+          : ((ClientComplexValue) targetHandler.getInternal()).get(propName).getAnnotations();
     }
 
     return result;
@@ -146,8 +146,8 @@ public class AnnotatableInvocationHandler extends AbstractInvocationHandler impl
       try {
         final Term termAnn = term.getAnnotation(Term.class);
         final Namespace namespaceAnn = term.getAnnotation(Namespace.class);
-        ODataAnnotation annotation = null;
-        for (ODataAnnotation _annotation : internalAnnotations()) {
+        ClientAnnotation annotation = null;
+        for (ClientAnnotation _annotation : internalAnnotations()) {
           if ((namespaceAnn.value() + "." + termAnn.name()).equals(_annotation.getTerm())) {
             annotation = _annotation;
           }

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/c37d4da5/ext/client-proxy/src/main/java/org/apache/olingo/ext/proxy/commons/ComplexCollectionInvocationHandler.java
----------------------------------------------------------------------
diff --git a/ext/client-proxy/src/main/java/org/apache/olingo/ext/proxy/commons/ComplexCollectionInvocationHandler.java b/ext/client-proxy/src/main/java/org/apache/olingo/ext/proxy/commons/ComplexCollectionInvocationHandler.java
index fc46c80..1607cfe 100644
--- a/ext/client-proxy/src/main/java/org/apache/olingo/ext/proxy/commons/ComplexCollectionInvocationHandler.java
+++ b/ext/client-proxy/src/main/java/org/apache/olingo/ext/proxy/commons/ComplexCollectionInvocationHandler.java
@@ -33,10 +33,10 @@ import org.apache.commons.lang3.tuple.Triple;
 import org.apache.olingo.client.api.communication.request.retrieve.ODataPropertyRequest;
 import org.apache.olingo.client.api.communication.response.ODataRetrieveResponse;
 import org.apache.olingo.client.api.uri.URIBuilder;
-import org.apache.olingo.commons.api.domain.ODataAnnotation;
-import org.apache.olingo.commons.api.domain.ODataCollectionValue;
-import org.apache.olingo.commons.api.domain.ODataProperty;
-import org.apache.olingo.commons.api.domain.ODataValue;
+import org.apache.olingo.commons.api.domain.ClientAnnotation;
+import org.apache.olingo.commons.api.domain.ClientCollectionValue;
+import org.apache.olingo.commons.api.domain.ClientProperty;
+import org.apache.olingo.commons.api.domain.ClientValue;
 import org.apache.olingo.ext.proxy.AbstractService;
 import org.apache.olingo.ext.proxy.api.ComplexCollection;
 import org.apache.olingo.ext.proxy.api.ComplexType;
@@ -96,18 +96,18 @@ public class ComplexCollectionInvocationHandler<T extends ComplexType<?>>
 
   @SuppressWarnings("unchecked")
   @Override
-  public Triple<List<T>, URI, List<ODataAnnotation>> fetchPartial(final URI uri, final Class<T> typeRef) {
-    final ODataPropertyRequest<ODataProperty> req =
+  public Triple<List<T>, URI, List<ClientAnnotation>> fetchPartial(final URI uri, final Class<T> typeRef) {
+    final ODataPropertyRequest<ClientProperty> req =
         getClient().getRetrieveRequestFactory().getPropertyRequest(uri);
     req.setPrefer(getClient().newPreferences().includeAnnotations("*"));
 
-    final ODataRetrieveResponse<ODataProperty> res = req.execute();
+    final ODataRetrieveResponse<ClientProperty> res = req.execute();
 
     final List<T> resItems = new ArrayList<T>();
 
-    final ODataProperty property = res.getBody();
+    final ClientProperty property = res.getBody();
     if (property != null && property.hasCollectionValue()) {
-      for (ODataValue item : (ODataCollectionValue<ODataValue>) property.getValue()) {
+      for (ClientValue item : (ClientCollectionValue<ClientValue>) property.getValue()) {
         Class<?> actualRef = null;
         if (StringUtils.isNotBlank(item.getTypeName())) {
           actualRef = service.getComplexTypeClass(item.getTypeName());
@@ -120,7 +120,7 @@ public class ComplexCollectionInvocationHandler<T extends ComplexType<?>>
       }
     }
 
-    return new ImmutableTriple<List<T>, URI, List<ODataAnnotation>>(
-        resItems, null, Collections.<ODataAnnotation> emptyList());
+    return new ImmutableTriple<List<T>, URI, List<ClientAnnotation>>(
+        resItems, null, Collections.<ClientAnnotation> emptyList());
   }
 }

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/c37d4da5/ext/client-proxy/src/main/java/org/apache/olingo/ext/proxy/commons/ComplexInvocationHandler.java
----------------------------------------------------------------------
diff --git a/ext/client-proxy/src/main/java/org/apache/olingo/ext/proxy/commons/ComplexInvocationHandler.java b/ext/client-proxy/src/main/java/org/apache/olingo/ext/proxy/commons/ComplexInvocationHandler.java
index 2e1deb6..16467c2 100644
--- a/ext/client-proxy/src/main/java/org/apache/olingo/ext/proxy/commons/ComplexInvocationHandler.java
+++ b/ext/client-proxy/src/main/java/org/apache/olingo/ext/proxy/commons/ComplexInvocationHandler.java
@@ -28,9 +28,9 @@ import org.apache.commons.lang3.tuple.Pair;
 import org.apache.olingo.client.api.communication.request.retrieve.ODataPropertyRequest;
 import org.apache.olingo.client.api.communication.response.ODataRetrieveResponse;
 import org.apache.olingo.client.api.uri.URIBuilder;
-import org.apache.olingo.commons.api.domain.ODataComplexValue;
-import org.apache.olingo.commons.api.domain.ODataLinked;
-import org.apache.olingo.commons.api.domain.ODataProperty;
+import org.apache.olingo.commons.api.domain.ClientComplexValue;
+import org.apache.olingo.commons.api.domain.ClientLinked;
+import org.apache.olingo.commons.api.domain.ClientProperty;
 import org.apache.olingo.commons.api.edm.FullQualifiedName;
 import org.apache.olingo.ext.proxy.AbstractService;
 import org.apache.olingo.ext.proxy.api.annotations.ComplexType;
@@ -39,7 +39,7 @@ import org.apache.olingo.ext.proxy.utils.ClassUtils;
 
 public class ComplexInvocationHandler extends AbstractStructuredInvocationHandler {
 
-  private static Pair<ODataComplexValue, Class<?>> init(
+  private static Pair<ClientComplexValue, Class<?>> init(
           final Class<?> typeRef,
           final AbstractService<?> service) {
 
@@ -57,10 +57,10 @@ public class ComplexInvocationHandler extends AbstractStructuredInvocationHandle
 
     final FullQualifiedName typeName =
             new FullQualifiedName(ClassUtils.getNamespace(complexTypeRef), annotation.name());
-    final ODataComplexValue complex =
+    final ClientComplexValue complex =
             service.getClient().getObjectFactory().newComplexValue(typeName.toString());
 
-    return new ImmutablePair<ODataComplexValue, Class<?>>(complex, complexTypeRef);
+    return new ImmutablePair<ClientComplexValue, Class<?>>(complex, complexTypeRef);
   }
 
   public static ComplexInvocationHandler getInstance(
@@ -68,12 +68,12 @@ public class ComplexInvocationHandler extends AbstractStructuredInvocationHandle
           final EntityInvocationHandler handler,
           final Class<?> typeRef) {
 
-    final Pair<ODataComplexValue, Class<?>> init = init(typeRef, handler.service);
+    final Pair<ClientComplexValue, Class<?>> init = init(typeRef, handler.service);
     return new ComplexInvocationHandler(init.getLeft(), init.getRight(), handler);
   }
 
   public static ComplexInvocationHandler getInstance(
-          final ODataComplexValue complex,
+          final ClientComplexValue complex,
           final Class<?> typeRef,
           final AbstractService<?> service) {
 
@@ -84,7 +84,7 @@ public class ComplexInvocationHandler extends AbstractStructuredInvocationHandle
           final Class<?> typeRef,
           final AbstractService<?> service) {
       
-    final Pair<ODataComplexValue, Class<?>> init = init(typeRef, service);
+    final Pair<ClientComplexValue, Class<?>> init = init(typeRef, service);
     return new ComplexInvocationHandler(init.getLeft(), init.getRight(), service);
   }
 
@@ -93,12 +93,12 @@ public class ComplexInvocationHandler extends AbstractStructuredInvocationHandle
           final AbstractService<?> service,
           final URIBuilder uri) {
       
-    final Pair<ODataComplexValue, Class<?>> init = init(typeRef, service);
+    final Pair<ClientComplexValue, Class<?>> init = init(typeRef, service);
     return new ComplexInvocationHandler(init.getLeft(), init.getRight(), service, uri);
   }
 
   public static ComplexInvocationHandler getInstance(
-          final ODataComplexValue complex,
+          final ClientComplexValue complex,
           final Class<?> typeRef,
           final AbstractService<?> service,
           final URIBuilder uri) {
@@ -107,7 +107,7 @@ public class ComplexInvocationHandler extends AbstractStructuredInvocationHandle
   }
 
   private ComplexInvocationHandler(
-          final ODataComplexValue complex,
+          final ClientComplexValue complex,
           final Class<?> typeRef,
           final AbstractService<?> service,
           final URIBuilder uri) {
@@ -118,7 +118,7 @@ public class ComplexInvocationHandler extends AbstractStructuredInvocationHandle
   }
 
   private ComplexInvocationHandler(
-          final ODataComplexValue complex,
+          final ClientComplexValue complex,
           final Class<?> typeRef,
           final EntityInvocationHandler handler) {
 
@@ -127,7 +127,7 @@ public class ComplexInvocationHandler extends AbstractStructuredInvocationHandle
   }
 
   private ComplexInvocationHandler(
-          final ODataComplexValue complex,
+          final ClientComplexValue complex,
           final Class<?> typeRef,
           final AbstractService<?> service) {
 
@@ -135,13 +135,13 @@ public class ComplexInvocationHandler extends AbstractStructuredInvocationHandle
     this.uri = null;
   }
 
-  public ODataComplexValue getComplex() {
-    return (ODataComplexValue) this.internal;
+  public ClientComplexValue getComplex() {
+    return (ClientComplexValue) this.internal;
   }
 
   @Override
   protected Object getNavigationPropertyValue(final NavigationProperty property, final Method getter) {
-    if (!(internal instanceof ODataLinked)) {
+    if (!(internal instanceof ClientLinked)) {
       throw new UnsupportedOperationException("Internal object is not navigable");
     }
 
@@ -157,10 +157,10 @@ public class ComplexInvocationHandler extends AbstractStructuredInvocationHandle
   protected void load() {
     try {
       if (this.uri != null) {
-        final ODataPropertyRequest<ODataProperty> req =
+        final ODataPropertyRequest<ClientProperty> req =
                 getClient().getRetrieveRequestFactory().getPropertyRequest(uri.build());
 
-        final ODataRetrieveResponse<ODataProperty> res = req.execute();
+        final ODataRetrieveResponse<ClientProperty> res = req.execute();
         this.internal = res.getBody().getValue();
       }
     } catch (IllegalArgumentException e) {
@@ -173,10 +173,10 @@ public class ComplexInvocationHandler extends AbstractStructuredInvocationHandle
   }
 
   @Override
-  protected List<ODataProperty> getInternalProperties() {
-    final List<ODataProperty> res = new ArrayList<ODataProperty>();
+  protected List<ClientProperty> getInternalProperties() {
+    final List<ClientProperty> res = new ArrayList<ClientProperty>();
     if (getComplex() != null) {
-      for (ODataProperty property : getComplex()) {
+      for (ClientProperty property : getComplex()) {
         res.add(property);
       }
     }
@@ -184,7 +184,7 @@ public class ComplexInvocationHandler extends AbstractStructuredInvocationHandle
   }
 
   @Override
-  protected ODataProperty getInternalProperty(final String name) {
+  protected ClientProperty getInternalProperty(final String name) {
     return getComplex() == null ? null : getComplex().get(name);
   }
 }

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/c37d4da5/ext/client-proxy/src/main/java/org/apache/olingo/ext/proxy/commons/EntityContainerInvocationHandler.java
----------------------------------------------------------------------
diff --git a/ext/client-proxy/src/main/java/org/apache/olingo/ext/proxy/commons/EntityContainerInvocationHandler.java b/ext/client-proxy/src/main/java/org/apache/olingo/ext/proxy/commons/EntityContainerInvocationHandler.java
index ffb5902..b903fdb 100644
--- a/ext/client-proxy/src/main/java/org/apache/olingo/ext/proxy/commons/EntityContainerInvocationHandler.java
+++ b/ext/client-proxy/src/main/java/org/apache/olingo/ext/proxy/commons/EntityContainerInvocationHandler.java
@@ -25,7 +25,7 @@ import java.lang.reflect.Method;
 import java.lang.reflect.Proxy;
 import java.net.URI;
 import org.apache.commons.lang3.ArrayUtils;
-import org.apache.olingo.commons.api.domain.ODataEntity;
+import org.apache.olingo.commons.api.domain.ClientEntity;
 import org.apache.olingo.commons.api.edm.FullQualifiedName;
 import org.apache.olingo.ext.proxy.AbstractService;
 import org.apache.olingo.ext.proxy.api.ComplexCollection;
@@ -120,7 +120,7 @@ public final class EntityContainerInvocationHandler extends AbstractInvocationHa
     EntityInvocationHandler handler = getContext().entityContext().getEntity(uuid);
 
     if (handler == null) {
-      final ODataEntity entity = getClient().getObjectFactory().newEntity(new FullQualifiedName(
+      final ClientEntity entity = getClient().getObjectFactory().newEntity(new FullQualifiedName(
               typeRef.getAnnotation(Namespace.class).value(), ClassUtils.getEntityTypeName(typeRef)));
 
       handler = EntityInvocationHandler.getInstance(entity, uri, uri, typeRef, service);

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/c37d4da5/ext/client-proxy/src/main/java/org/apache/olingo/ext/proxy/commons/EntityInvocationHandler.java
----------------------------------------------------------------------
diff --git a/ext/client-proxy/src/main/java/org/apache/olingo/ext/proxy/commons/EntityInvocationHandler.java b/ext/client-proxy/src/main/java/org/apache/olingo/ext/proxy/commons/EntityInvocationHandler.java
index d3d7476..fff16b4 100644
--- a/ext/client-proxy/src/main/java/org/apache/olingo/ext/proxy/commons/EntityInvocationHandler.java
+++ b/ext/client-proxy/src/main/java/org/apache/olingo/ext/proxy/commons/EntityInvocationHandler.java
@@ -34,9 +34,9 @@ import org.apache.olingo.client.api.communication.request.retrieve.ODataEntityRe
 import org.apache.olingo.client.api.communication.request.retrieve.ODataMediaRequest;
 import org.apache.olingo.client.api.communication.response.ODataRetrieveResponse;
 import org.apache.olingo.client.api.uri.URIBuilder;
-import org.apache.olingo.commons.api.domain.ODataAnnotation;
-import org.apache.olingo.commons.api.domain.ODataEntity;
-import org.apache.olingo.commons.api.domain.ODataProperty;
+import org.apache.olingo.commons.api.domain.ClientAnnotation;
+import org.apache.olingo.commons.api.domain.ClientEntity;
+import org.apache.olingo.commons.api.domain.ClientProperty;
 import org.apache.olingo.commons.api.edm.FullQualifiedName;
 import org.apache.olingo.commons.api.format.ODataFormat;
 import org.apache.olingo.ext.proxy.AbstractService;
@@ -63,7 +63,7 @@ public class EntityInvocationHandler extends AbstractStructuredInvocationHandler
   private EntityUUID uuid;
 
   static EntityInvocationHandler getInstance(
-      final ODataEntity entity,
+      final ClientEntity entity,
       final EntitySetInvocationHandler<?, ?, ?> entitySet,
       final Class<?> typeRef) {
 
@@ -77,7 +77,7 @@ public class EntityInvocationHandler extends AbstractStructuredInvocationHandler
 
   static EntityInvocationHandler getInstance(
       final Object key,
-      final ODataEntity entity,
+      final ClientEntity entity,
       final URI entitySetURI,
       final Class<?> typeRef,
       final AbstractService<?> service) {
@@ -86,7 +86,7 @@ public class EntityInvocationHandler extends AbstractStructuredInvocationHandler
   }
 
   public static EntityInvocationHandler getInstance(
-      final ODataEntity entity,
+      final ClientEntity entity,
       final URI entitySetURI,
       final Class<?> typeRef,
       final AbstractService<?> service) {
@@ -95,7 +95,7 @@ public class EntityInvocationHandler extends AbstractStructuredInvocationHandler
   }
 
   public static EntityInvocationHandler getInstance(
-      final ODataEntity entity,
+      final ClientEntity entity,
       final URI entitySetURI,
       final URI entityURI,
       final Class<?> typeRef,
@@ -129,7 +129,7 @@ public class EntityInvocationHandler extends AbstractStructuredInvocationHandler
     final String namespace = typeRef.getAnnotation(Namespace.class).value();
 
     this.internal = service.getClient().getObjectFactory().newEntity(new FullQualifiedName(namespace, name));
-    ODataEntity.class.cast(this.internal).setMediaEntity(typeRef.getAnnotation(EntityType.class).hasStream());
+    ClientEntity.class.cast(this.internal).setMediaEntity(typeRef.getAnnotation(EntityType.class).hasStream());
 
     this.uuid = new EntityUUID(null, typeRef, null);
   }
@@ -145,7 +145,7 @@ public class EntityInvocationHandler extends AbstractStructuredInvocationHandler
     final String namespace = typeRef.getAnnotation(Namespace.class).value();
 
     this.internal = service.getClient().getObjectFactory().newEntity(new FullQualifiedName(namespace, name));
-    ODataEntity.class.cast(this.internal).setMediaEntity(typeRef.getAnnotation(EntityType.class).hasStream());
+    ClientEntity.class.cast(this.internal).setMediaEntity(typeRef.getAnnotation(EntityType.class).hasStream());
 
     this.baseURI = entityURI;
     this.uri = entityURI == null ? null : getClient().newURIBuilder(baseURI.toASCIIString());
@@ -154,7 +154,7 @@ public class EntityInvocationHandler extends AbstractStructuredInvocationHandler
   }
 
   private EntityInvocationHandler(
-      final ODataEntity entity,
+      final ClientEntity entity,
       final URI entitySetURI,
       final URI entityURI,
       final Class<?> typeRef,
@@ -177,7 +177,7 @@ public class EntityInvocationHandler extends AbstractStructuredInvocationHandler
 
   private EntityInvocationHandler(
       final Object entityKey,
-      final ODataEntity entity,
+      final ClientEntity entity,
       final URI entitySetURI,
       final Class<?> typeRef,
       final AbstractService<?> service) {
@@ -207,7 +207,7 @@ public class EntityInvocationHandler extends AbstractStructuredInvocationHandler
     this.uuid = new EntityUUID(entitySetURI, typeRef, key);
   }
 
-  public void setEntity(final ODataEntity entity) {
+  public void setEntity(final ClientEntity entity) {
     this.internal = entity;
     getEntity().setMediaEntity(typeRef.getAnnotation(EntityType.class).hasStream());
 
@@ -240,7 +240,7 @@ public class EntityInvocationHandler extends AbstractStructuredInvocationHandler
     return uuid;
   }
 
-  public EntityUUID updateEntityUUID(final URI entitySetURI, final Class<?> type, final ODataEntity entity) {
+  public EntityUUID updateEntityUUID(final URI entitySetURI, final Class<?> type, final ClientEntity entity) {
     CoreUtils.addProperties(service.getClient(), this.getPropertyChanges(), entity);
     final Object key = CoreUtils.getKey(getClient(), this, this.getUUID().getType(), entity);
     return updateUUID(entitySetURI, type, key);
@@ -266,8 +266,8 @@ public class EntityInvocationHandler extends AbstractStructuredInvocationHandler
     return uuid.getEntitySetURI();
   }
 
-  public final ODataEntity getEntity() {
-    return (ODataEntity) internal;
+  public final ClientEntity getEntity() {
+    return (ClientEntity) internal;
   }
 
   public URI getEntityURI() {
@@ -414,8 +414,8 @@ public class EntityInvocationHandler extends AbstractStructuredInvocationHandler
       try {
         final Term termAnn = term.getAnnotation(Term.class);
         final Namespace namespaceAnn = term.getAnnotation(Namespace.class);
-        ODataAnnotation annotation = null;
-        for (ODataAnnotation _annotation : getEntity().getAnnotations()) {
+        ClientAnnotation annotation = null;
+        for (ClientAnnotation _annotation : getEntity().getAnnotations()) {
           if ((namespaceAnn.value() + "." + termAnn.name()).equals(_annotation.getTerm())) {
             annotation = _annotation;
           }
@@ -445,14 +445,14 @@ public class EntityInvocationHandler extends AbstractStructuredInvocationHandler
     final Object key = uuid.getKey();
 
     try {
-      final ODataEntityRequest<ODataEntity> req =
+      final ODataEntityRequest<ClientEntity> req =
           getClient().getRetrieveRequestFactory().getEntityRequest(uri.build());
 
       req.setPrefer(getClient().newPreferences().includeAnnotations("*"));
 
-      final ODataRetrieveResponse<ODataEntity> res = req.execute();
+      final ODataRetrieveResponse<ClientEntity> res = req.execute();
 
-      final ODataEntity entity = res.getBody();
+      final ClientEntity entity = res.getBody();
       if (entity == null) {
         throw new IllegalArgumentException("Invalid " + typeRef.getSimpleName() + "(" + key + ")");
       }
@@ -479,12 +479,12 @@ public class EntityInvocationHandler extends AbstractStructuredInvocationHandler
 
   @Override
   @SuppressWarnings("unchecked")
-  protected <T extends ODataProperty> List<T> getInternalProperties() {
+  protected <T extends ClientProperty> List<T> getInternalProperties() {
     return getEntity() == null ? Collections.<T> emptyList() : (List<T>) getEntity().getProperties();
   }
 
   @Override
-  protected ODataProperty getInternalProperty(final String name) {
+  protected ClientProperty getInternalProperty(final String name) {
     return getEntity() == null ? null : getEntity().getProperty(name);
   }
 

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/c37d4da5/ext/client-proxy/src/main/java/org/apache/olingo/ext/proxy/commons/EntitySetInvocationHandler.java
----------------------------------------------------------------------
diff --git a/ext/client-proxy/src/main/java/org/apache/olingo/ext/proxy/commons/EntitySetInvocationHandler.java b/ext/client-proxy/src/main/java/org/apache/olingo/ext/proxy/commons/EntitySetInvocationHandler.java
index 2f943d6..950b0ff 100644
--- a/ext/client-proxy/src/main/java/org/apache/olingo/ext/proxy/commons/EntitySetInvocationHandler.java
+++ b/ext/client-proxy/src/main/java/org/apache/olingo/ext/proxy/commons/EntitySetInvocationHandler.java
@@ -30,8 +30,8 @@ import java.util.concurrent.Future;
 import org.apache.commons.lang3.tuple.Triple;
 import org.apache.olingo.client.api.communication.request.retrieve.ODataValueRequest;
 import org.apache.olingo.client.api.uri.URIBuilder;
-import org.apache.olingo.commons.api.domain.ODataAnnotation;
-import org.apache.olingo.commons.api.domain.ODataEntity;
+import org.apache.olingo.commons.api.domain.ClientAnnotation;
+import org.apache.olingo.commons.api.domain.ClientEntity;
 import org.apache.olingo.commons.api.edm.FullQualifiedName;
 import org.apache.olingo.commons.api.format.ODataFormat;
 import org.apache.olingo.ext.proxy.AbstractService;
@@ -128,7 +128,7 @@ public class EntitySetInvocationHandler<
     EntityInvocationHandler handler = getContext().entityContext().getEntity(uuid);
 
     if (handler == null) {
-      final ODataEntity entity = getClient().getObjectFactory().newEntity(new FullQualifiedName(
+      final ClientEntity entity = getClient().getObjectFactory().newEntity(new FullQualifiedName(
               typeRef.getAnnotation(Namespace.class).value(), ClassUtils.getEntityTypeName(typeRef)));
 
       handler = EntityInvocationHandler.getInstance(key, entity, this.baseURI, typeRef, service);
@@ -175,9 +175,9 @@ public class EntitySetInvocationHandler<
               ClassUtils.getNamespace(ref), ClassUtils.getEntityTypeName(ref)).toString());
     }
 
-    final List<ODataAnnotation> anns = new ArrayList<ODataAnnotation>();
+    final List<ClientAnnotation> anns = new ArrayList<ClientAnnotation>();
 
-    final Triple<List<T>, URI, List<ODataAnnotation>> entitySet = fetchPartial(uri.build(), (Class<T>) ref);
+    final Triple<List<T>, URI, List<ClientAnnotation>> entitySet = fetchPartial(uri.build(), (Class<T>) ref);
     anns.addAll(entitySet.getRight());
 
     final EntityCollectionInvocationHandler<S> entityCollectionHandler = new EntityCollectionInvocationHandler<S>(
@@ -212,11 +212,11 @@ public class EntitySetInvocationHandler<
           final URIBuilder uriBuilder, final Class<S> typeRef, final Class<SEC> collTypeRef) {
 
     final List<S> res = new ArrayList<S>();
-    final List<ODataAnnotation> anns = new ArrayList<ODataAnnotation>();
+    final List<ClientAnnotation> anns = new ArrayList<ClientAnnotation>();
 
     URI nextURI = uriBuilder.build();
     while (nextURI != null) {
-      final Triple<List<T>, URI, List<ODataAnnotation>> entitySet = fetchPartial(nextURI, (Class<T>) typeRef);
+      final Triple<List<T>, URI, List<ClientAnnotation>> entitySet = fetchPartial(nextURI, (Class<T>) typeRef);
       res.addAll((List<S>) entitySet.getLeft());
       nextURI = entitySet.getMiddle();
       anns.addAll(entitySet.getRight());

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/c37d4da5/ext/client-proxy/src/main/java/org/apache/olingo/ext/proxy/commons/EntitySetIterator.java
----------------------------------------------------------------------
diff --git a/ext/client-proxy/src/main/java/org/apache/olingo/ext/proxy/commons/EntitySetIterator.java b/ext/client-proxy/src/main/java/org/apache/olingo/ext/proxy/commons/EntitySetIterator.java
index 60ff883..9bbeeb0 100644
--- a/ext/client-proxy/src/main/java/org/apache/olingo/ext/proxy/commons/EntitySetIterator.java
+++ b/ext/client-proxy/src/main/java/org/apache/olingo/ext/proxy/commons/EntitySetIterator.java
@@ -26,7 +26,7 @@ import java.util.List;
 import java.util.NoSuchElementException;
 
 import org.apache.commons.lang3.tuple.Triple;
-import org.apache.olingo.commons.api.domain.ODataAnnotation;
+import org.apache.olingo.commons.api.domain.ClientAnnotation;
 import org.apache.olingo.ext.proxy.api.EntityCollection;
 import org.apache.olingo.ext.proxy.api.EntityType;
 
@@ -81,7 +81,7 @@ class EntitySetIterator<T extends EntityType<?>, KEY extends Serializable, EC ex
   }
 
   private void goOn() {
-    final Triple<List<T>, URI, List<ODataAnnotation>> entitySet = esi.fetchPartial(this.next, this.esi.getTypeRef());
+    final Triple<List<T>, URI, List<ClientAnnotation>> entitySet = esi.fetchPartial(this.next, this.esi.getTypeRef());
     this.current = entitySet.getLeft().iterator();
     this.next = entitySet.getMiddle();
   }

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/c37d4da5/ext/client-proxy/src/main/java/org/apache/olingo/ext/proxy/commons/InvokerInvocationHandler.java
----------------------------------------------------------------------
diff --git a/ext/client-proxy/src/main/java/org/apache/olingo/ext/proxy/commons/InvokerInvocationHandler.java b/ext/client-proxy/src/main/java/org/apache/olingo/ext/proxy/commons/InvokerInvocationHandler.java
index 44a2d30..733391c 100644
--- a/ext/client-proxy/src/main/java/org/apache/olingo/ext/proxy/commons/InvokerInvocationHandler.java
+++ b/ext/client-proxy/src/main/java/org/apache/olingo/ext/proxy/commons/InvokerInvocationHandler.java
@@ -30,15 +30,15 @@ import java.util.concurrent.Future;
 
 import org.apache.commons.lang3.ArrayUtils;
 import org.apache.commons.lang3.StringUtils;
-import org.apache.olingo.client.api.communication.request.invoke.ODataNoContent;
+import org.apache.olingo.client.api.communication.request.invoke.ClientNoContent;
 import org.apache.olingo.client.api.uri.URIBuilder;
 import org.apache.olingo.client.api.uri.URIFilter;
 import org.apache.olingo.client.core.uri.URIUtils;
-import org.apache.olingo.commons.api.domain.ODataEntity;
-import org.apache.olingo.commons.api.domain.ODataEntitySet;
-import org.apache.olingo.commons.api.domain.ODataInvokeResult;
-import org.apache.olingo.commons.api.domain.ODataProperty;
-import org.apache.olingo.commons.api.domain.ODataValue;
+import org.apache.olingo.commons.api.domain.ClientEntity;
+import org.apache.olingo.commons.api.domain.ClientEntitySet;
+import org.apache.olingo.commons.api.domain.ClientInvokeResult;
+import org.apache.olingo.commons.api.domain.ClientProperty;
+import org.apache.olingo.commons.api.domain.ClientValue;
 import org.apache.olingo.commons.api.edm.EdmFunction;
 import org.apache.olingo.commons.api.edm.EdmOperation;
 import org.apache.olingo.commons.api.edm.EdmReturnType;
@@ -63,7 +63,7 @@ public class InvokerInvocationHandler<T, O extends Operations> extends AbstractI
 
   private URIBuilder uri;
 
-  private final Map<String, ODataValue> parameters;
+  private final Map<String, ClientValue> parameters;
 
   private final Operation operation;
 
@@ -75,7 +75,7 @@ public class InvokerInvocationHandler<T, O extends Operations> extends AbstractI
 
   public InvokerInvocationHandler(
           final URI uri,
-          final Map<String, ODataValue> parameters,
+          final Map<String, ClientValue> parameters,
           final Operation operation,
           final EdmOperation edmOperation,
           final Type[] references,
@@ -120,7 +120,7 @@ public class InvokerInvocationHandler<T, O extends Operations> extends AbstractI
       }
 
       // 2. invoke
-      final ODataInvokeResult result = service.getClient().getInvokeRequestFactory().getInvokeRequest(
+      final ClientInvokeResult result = service.getClient().getInvokeRequestFactory().getInvokeRequest(
               edmOperation instanceof EdmFunction ? HttpMethod.GET : HttpMethod.POST,
               uri.build(),
               getResultReference(edmOperation.getReturnType()),
@@ -143,13 +143,13 @@ public class InvokerInvocationHandler<T, O extends Operations> extends AbstractI
                   collItemType,
                   targetRef,
                   null,
-                  (ODataEntitySet) result,
+                  (ClientEntitySet) result,
                   this.baseURI,
                   false);
         } else {
           return (T) ProxyUtils.getEntityProxy(
                   service,
-                  (ODataEntity) result,
+                  (ClientEntity) result,
                   null,
                   targetRef,
                   null,
@@ -159,7 +159,7 @@ public class InvokerInvocationHandler<T, O extends Operations> extends AbstractI
         Object res;
 
         final Class<?> ref = ClassUtils.getTypeClass(targetRef);
-        final ODataProperty property = (ODataProperty) result;
+        final ClientProperty property = (ClientProperty) result;
 
         if (property == null || property.hasNullValue()) {
           res = null;
@@ -168,7 +168,7 @@ public class InvokerInvocationHandler<T, O extends Operations> extends AbstractI
             final Class<?> itemRef = ClassUtils.extractTypeArg(ref, ComplexCollection.class);
             final List items = new ArrayList();
 
-            for (ODataValue item : property.getValue().asCollection()) {
+            for (ClientValue item : property.getValue().asCollection()) {
               items.add(ProxyUtils.getComplexProxy(
                       service,
                       property.getName(),
@@ -189,7 +189,7 @@ public class InvokerInvocationHandler<T, O extends Operations> extends AbstractI
           } else {
             final List items = new ArrayList();
 
-            for (ODataValue item : property.getValue().asCollection()) {
+            for (ClientValue item : property.getValue().asCollection()) {
               items.add(item.asPrimitive().toValue());
             }
 
@@ -218,18 +218,18 @@ public class InvokerInvocationHandler<T, O extends Operations> extends AbstractI
   }
 
   @SuppressWarnings("unchecked")
-  private <RES extends ODataInvokeResult> Class<RES> getResultReference(final EdmReturnType returnType) {
+  private <RES extends ClientInvokeResult> Class<RES> getResultReference(final EdmReturnType returnType) {
     Class<RES> result;
 
     if (returnType == null) {
-      result = (Class<RES>) ODataNoContent.class;
+      result = (Class<RES>) ClientNoContent.class;
     } else {
       if (returnType.isCollection() && returnType.getType().getKind() == EdmTypeKind.ENTITY) {
-        result = (Class<RES>) ODataEntitySet.class;
+        result = (Class<RES>) ClientEntitySet.class;
       } else if (!returnType.isCollection() && returnType.getType().getKind() == EdmTypeKind.ENTITY) {
-        result = (Class<RES>) ODataEntity.class;
+        result = (Class<RES>) ClientEntity.class;
       } else {
-        result = (Class<RES>) ODataProperty.class;
+        result = (Class<RES>) ClientProperty.class;
       }
     }
 

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/c37d4da5/ext/client-proxy/src/main/java/org/apache/olingo/ext/proxy/commons/OperationInvocationHandler.java
----------------------------------------------------------------------
diff --git a/ext/client-proxy/src/main/java/org/apache/olingo/ext/proxy/commons/OperationInvocationHandler.java b/ext/client-proxy/src/main/java/org/apache/olingo/ext/proxy/commons/OperationInvocationHandler.java
index 73daaf3..d92d39e 100644
--- a/ext/client-proxy/src/main/java/org/apache/olingo/ext/proxy/commons/OperationInvocationHandler.java
+++ b/ext/client-proxy/src/main/java/org/apache/olingo/ext/proxy/commons/OperationInvocationHandler.java
@@ -30,9 +30,9 @@ import java.util.List;
 import java.util.Map;
 
 import org.apache.olingo.client.api.uri.URIBuilder;
-import org.apache.olingo.commons.api.domain.ODataEntity;
-import org.apache.olingo.commons.api.domain.ODataOperation;
-import org.apache.olingo.commons.api.domain.ODataValue;
+import org.apache.olingo.commons.api.domain.ClientEntity;
+import org.apache.olingo.commons.api.domain.ClientOperation;
+import org.apache.olingo.commons.api.domain.ClientValue;
 import org.apache.olingo.commons.api.edm.EdmAction;
 import org.apache.olingo.commons.api.edm.EdmEntityContainer;
 import org.apache.olingo.commons.api.edm.EdmEntityType;
@@ -171,7 +171,7 @@ final class OperationInvocationHandler extends AbstractInvocationHandler {
           throw new IllegalStateException("Invalid target invocation");
         }
 
-        final Map<String, ODataValue> parameterValues = new LinkedHashMap<String, ODataValue>();
+        final Map<String, ClientValue> parameterValues = new LinkedHashMap<String, ClientValue>();
         for (Map.Entry<Parameter, Object> parameter : parameters.entrySet()) {
           if (!parameter.getKey().nullable() && parameter.getValue() == null) {
             throw new IllegalArgumentException(
@@ -181,7 +181,7 @@ final class OperationInvocationHandler extends AbstractInvocationHandler {
           final EdmTypeInfo parameterType = new EdmTypeInfo.Builder().
                   setEdm(service.getClient().getCachedEdm()).setTypeExpression(parameter.getKey().type()).build();
 
-          final ODataValue paramValue = parameter.getValue() == null
+          final ClientValue paramValue = parameter.getValue() == null
                   ? null
                   : CoreUtils.getODataValue(service.getClient(), parameterType, parameter.getValue());
 
@@ -239,10 +239,10 @@ final class OperationInvocationHandler extends AbstractInvocationHandler {
   }
 
   private Map.Entry<URI, EdmOperation> getBoundOperation(final Operation operation, final List<String> parameterNames) {
-    final ODataEntity entity = EntityInvocationHandler.class.cast(target).getEntity();
+    final ClientEntity entity = EntityInvocationHandler.class.cast(target).getEntity();
     final URI entityURI = EntityInvocationHandler.class.cast(target).getEntityURI();
 
-    ODataOperation boundOp = entity.getOperation(operation.name());
+    ClientOperation boundOp = entity.getOperation(operation.name());
     if (boundOp == null) {
       boundOp = entity.getOperation(new FullQualifiedName(targetFQN.getNamespace(), operation.name()).toString());
     }
@@ -261,7 +261,7 @@ final class OperationInvocationHandler extends AbstractInvocationHandler {
       if (action == null) {
         baseType = baseType.getBaseType();
       } else {
-        boundOp = new ODataOperation();
+        boundOp = new ClientOperation();
         boundOp.setMetadataAnchor(action.getFullQualifiedName().toString());
         boundOp.setTitle(boundOp.getMetadataAnchor());
         boundOp.setTarget(URI.create(entityURI.toASCIIString() + "/"
@@ -279,7 +279,7 @@ final class OperationInvocationHandler extends AbstractInvocationHandler {
       if (func == null) {
         baseType = baseType.getBaseType();
       } else {
-        boundOp = new ODataOperation();
+        boundOp = new ClientOperation();
         boundOp.setMetadataAnchor(func.getFullQualifiedName().toString());
         boundOp.setTitle(boundOp.getMetadataAnchor());
         boundOp.setTarget(URI.create(entityURI.toASCIIString() + "/"

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/c37d4da5/ext/client-proxy/src/main/java/org/apache/olingo/ext/proxy/commons/PrimitiveCollectionInvocationHandler.java
----------------------------------------------------------------------
diff --git a/ext/client-proxy/src/main/java/org/apache/olingo/ext/proxy/commons/PrimitiveCollectionInvocationHandler.java b/ext/client-proxy/src/main/java/org/apache/olingo/ext/proxy/commons/PrimitiveCollectionInvocationHandler.java
index e5f4e5a..e40593d 100644
--- a/ext/client-proxy/src/main/java/org/apache/olingo/ext/proxy/commons/PrimitiveCollectionInvocationHandler.java
+++ b/ext/client-proxy/src/main/java/org/apache/olingo/ext/proxy/commons/PrimitiveCollectionInvocationHandler.java
@@ -34,8 +34,9 @@ import org.apache.commons.lang3.tuple.Triple;
 import org.apache.olingo.client.api.communication.request.retrieve.ODataPropertyRequest;
 import org.apache.olingo.client.api.communication.response.ODataRetrieveResponse;
 import org.apache.olingo.client.api.uri.URIBuilder;
-import org.apache.olingo.commons.api.domain.ODataAnnotation;
-import org.apache.olingo.commons.api.domain.ODataValue;
+import org.apache.olingo.commons.api.domain.ClientProperty;
+import org.apache.olingo.commons.api.domain.ClientAnnotation;
+import org.apache.olingo.commons.api.domain.ClientValue;
 import org.apache.olingo.ext.proxy.AbstractService;
 import org.apache.olingo.ext.proxy.api.PrimitiveCollection;
 
@@ -90,24 +91,24 @@ public class PrimitiveCollectionInvocationHandler<T extends Serializable>
 
   @Override
   @SuppressWarnings("unchecked")
-  public Triple<List<T>, URI, List<ODataAnnotation>> fetchPartial(final URI uri, final Class<T> typeRef) {
-    final ODataPropertyRequest<org.apache.olingo.commons.api.domain.ODataProperty> req =
+  public Triple<List<T>, URI, List<ClientAnnotation>> fetchPartial(final URI uri, final Class<T> typeRef) {
+    final ODataPropertyRequest<ClientProperty> req =
             getClient().getRetrieveRequestFactory().getPropertyRequest(uri);
       req.setPrefer(getClient().newPreferences().includeAnnotations("*"));
 
-    final ODataRetrieveResponse<org.apache.olingo.commons.api.domain.ODataProperty> res = req.execute();
+    final ODataRetrieveResponse<ClientProperty> res = req.execute();
 
     final List<T> resItems = new ArrayList<T>();
 
-    final org.apache.olingo.commons.api.domain.ODataProperty property = res.getBody();
+    final ClientProperty property = res.getBody();
     if (property != null && !property.hasNullValue()) {
-      for (ODataValue item : property.getCollectionValue()) {
+      for (ClientValue item : property.getCollectionValue()) {
         resItems.add((T) item.asPrimitive().toValue());
       }
     }
 
-    return new ImmutableTriple<List<T>, URI, List<ODataAnnotation>>(
-            resItems, null, Collections.<ODataAnnotation>emptyList());
+    return new ImmutableTriple<List<T>, URI, List<ClientAnnotation>>(
+            resItems, null, Collections.<ClientAnnotation>emptyList());
   }
 
   public void delete() {

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/c37d4da5/ext/client-proxy/src/main/java/org/apache/olingo/ext/proxy/commons/StructuredComposableInvokerInvocationHandler.java
----------------------------------------------------------------------
diff --git a/ext/client-proxy/src/main/java/org/apache/olingo/ext/proxy/commons/StructuredComposableInvokerInvocationHandler.java b/ext/client-proxy/src/main/java/org/apache/olingo/ext/proxy/commons/StructuredComposableInvokerInvocationHandler.java
index c909ab0..2ca7b86 100644
--- a/ext/client-proxy/src/main/java/org/apache/olingo/ext/proxy/commons/StructuredComposableInvokerInvocationHandler.java
+++ b/ext/client-proxy/src/main/java/org/apache/olingo/ext/proxy/commons/StructuredComposableInvokerInvocationHandler.java
@@ -24,7 +24,7 @@ import java.net.URI;
 import java.util.Map;
 
 import org.apache.commons.lang3.ArrayUtils;
-import org.apache.olingo.commons.api.domain.ODataValue;
+import org.apache.olingo.commons.api.domain.ClientValue;
 import org.apache.olingo.commons.api.edm.EdmOperation;
 import org.apache.olingo.commons.core.edm.EdmTypeInfo;
 import org.apache.olingo.ext.proxy.AbstractService;
@@ -38,7 +38,7 @@ public class StructuredComposableInvokerInvocationHandler<T, O extends Operation
 
   public StructuredComposableInvokerInvocationHandler(
           final URI uri,
-          final Map<String, ODataValue> parameters,
+          final Map<String, ClientValue> parameters,
           final Operation operation,
           final EdmOperation edmOperation,
           final Type[] references,

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/c37d4da5/ext/client-proxy/src/main/java/org/apache/olingo/ext/proxy/context/EntityLinkDesc.java
----------------------------------------------------------------------
diff --git a/ext/client-proxy/src/main/java/org/apache/olingo/ext/proxy/context/EntityLinkDesc.java b/ext/client-proxy/src/main/java/org/apache/olingo/ext/proxy/context/EntityLinkDesc.java
index 5a53181..1506655 100644
--- a/ext/client-proxy/src/main/java/org/apache/olingo/ext/proxy/context/EntityLinkDesc.java
+++ b/ext/client-proxy/src/main/java/org/apache/olingo/ext/proxy/context/EntityLinkDesc.java
@@ -22,7 +22,7 @@ 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.commons.api.domain.ODataLinkType;
+import org.apache.olingo.commons.api.domain.ClientLinkType;
 import org.apache.olingo.ext.proxy.commons.EntityInvocationHandler;
 
 import java.io.Serializable;
@@ -39,7 +39,7 @@ public class EntityLinkDesc implements Serializable {
 
   private final Collection<EntityInvocationHandler> targets;
 
-  private final ODataLinkType type;
+  private final ClientLinkType type;
 
   private final String reference;
 
@@ -47,7 +47,7 @@ public class EntityLinkDesc implements Serializable {
           final String sourceName,
           final EntityInvocationHandler source,
           final Collection<EntityInvocationHandler> target,
-          final ODataLinkType type) {
+          final ClientLinkType type) {
     this.sourceName = sourceName;
     this.source = source;
     this.targets = target;
@@ -59,7 +59,7 @@ public class EntityLinkDesc implements Serializable {
           final String sourceName,
           final EntityInvocationHandler source,
           final EntityInvocationHandler target,
-          final ODataLinkType type) {
+          final ClientLinkType type) {
     this.sourceName = sourceName;
     this.source = source;
     this.targets = Collections.<EntityInvocationHandler>singleton(target);
@@ -90,7 +90,7 @@ public class EntityLinkDesc implements Serializable {
     return targets;
   }
 
-  public ODataLinkType getType() {
+  public ClientLinkType getType() {
     return type;
   }
 


[49/50] [abbrv] olingo-odata4 git commit: [OLINGO-564] first step for common -> client extraction

Posted by mi...@apache.org.
[OLINGO-564] first step for common -> client extraction


Project: http://git-wip-us.apache.org/repos/asf/olingo-odata4/repo
Commit: http://git-wip-us.apache.org/repos/asf/olingo-odata4/commit/17152920
Tree: http://git-wip-us.apache.org/repos/asf/olingo-odata4/tree/17152920
Diff: http://git-wip-us.apache.org/repos/asf/olingo-odata4/diff/17152920

Branch: refs/heads/master
Commit: 17152920f0f3d267db681a1c89be38c3ac67e34c
Parents: c37d4da
Author: Michael Bolz <mi...@sap.com>
Authored: Wed Apr 29 10:04:12 2015 +0200
Committer: Michael Bolz <mi...@sap.com>
Committed: Thu Apr 30 06:04:42 2015 +0200

----------------------------------------------------------------------
 .../AbstractCollectionInvocationHandler.java    |   2 +-
 ...stractEntityCollectionInvocationHandler.java |   8 +-
 .../commons/AbstractInvocationHandler.java      |   4 +-
 .../commons/AbstractPersistenceManager.java     |   6 +-
 .../AbstractStructuredInvocationHandler.java    |  14 +-
 .../commons/AnnotatableInvocationHandler.java   |   6 +-
 .../ComplexCollectionInvocationHandler.java     |   8 +-
 .../proxy/commons/ComplexInvocationHandler.java |   6 +-
 .../EntityContainerInvocationHandler.java       |   2 +-
 .../proxy/commons/EntityInvocationHandler.java  |   6 +-
 .../commons/EntitySetInvocationHandler.java     |   4 +-
 .../ext/proxy/commons/EntitySetIterator.java    |   2 +-
 .../proxy/commons/InvokerInvocationHandler.java |  10 +-
 .../commons/OperationInvocationHandler.java     |   6 +-
 .../PrimitiveCollectionInvocationHandler.java   |   6 +-
 ...turedComposableInvokerInvocationHandler.java |   2 +-
 .../ext/proxy/context/EntityLinkDesc.java       |   2 +-
 .../olingo/ext/proxy/utils/CoreUtils.java       |  20 +-
 .../olingo/ext/proxy/utils/ProxyUtils.java      |   6 +-
 .../olingo/fit/AbstractBaseTestITCase.java      |   6 +-
 .../fit/tecsvc/client/ActionImportITCase.java   |  12 +-
 .../olingo/fit/tecsvc/client/BasicITCase.java   | 125 ++++----
 .../fit/tecsvc/client/BatchClientITCase.java    |   6 +-
 .../olingo/fit/tecsvc/client/BindingITCase.java |  15 +-
 .../fit/tecsvc/client/DeepInsertITCase.java     |  18 +-
 .../fit/tecsvc/client/ExpandSelectITCase.java   |  12 +-
 .../ExpandWithSystemQueryOptionsITCase.java     |   4 +-
 .../tecsvc/client/FilterSystemQueryITCase.java  |   8 +-
 .../fit/tecsvc/client/FunctionImportITCase.java |  10 +-
 .../olingo/fit/tecsvc/client/MediaITCase.java   |   4 +-
 .../fit/tecsvc/client/NavigationITCase.java     |   6 +-
 .../tecsvc/client/OrderBySystemQueryITCase.java |   6 +-
 .../tecsvc/client/PrimitiveComplexITCase.java   |   4 +-
 .../tecsvc/client/SystemQueryOptionITCase.java  |   4 +-
 .../olingo/fit/v4/AbstractTestITCase.java       |  10 +-
 .../apache/olingo/fit/v4/AsyncTestITCase.java   |  10 +-
 .../olingo/fit/v4/AuthBatchTestITCase.java      |   2 +-
 .../apache/olingo/fit/v4/BatchTestITCase.java   |   4 +-
 .../fit/v4/BoundOperationInvokeTestITCase.java  |  20 +-
 .../olingo/fit/v4/ConformanceTestITCase.java    |  14 +-
 .../apache/olingo/fit/v4/DeltaTestITCase.java   |   6 +-
 .../olingo/fit/v4/DerivedTypeTestITCase.java    |   8 +-
 .../olingo/fit/v4/EntityCreateTestITCase.java   |   8 +-
 .../olingo/fit/v4/EntityRetrieveTestITCase.java |  14 +-
 .../olingo/fit/v4/EntitySetTestITCase.java      |   4 +-
 .../olingo/fit/v4/EntityUpdateTestITCase.java   |   4 +-
 .../olingo/fit/v4/ErrorResponseTestITCase.java  |   8 +-
 .../olingo/fit/v4/FilterFactoryTestITCase.java  |   4 +-
 .../fit/v4/JSONFormatConformanceTestITCase.java |  12 +-
 .../olingo/fit/v4/KeyAsSegmentTestITCase.java   |   4 +-
 .../olingo/fit/v4/MediaEntityTestITCase.java    |   4 +-
 .../olingo/fit/v4/MetadataTestITCase.java       |   5 +-
 .../apache/olingo/fit/v4/OAuth2TestITCase.java  |   2 +-
 .../olingo/fit/v4/OpenTypeTestITCase.java       |   4 +-
 .../fit/v4/OperationImportInvokeTestITCase.java |  16 +-
 .../olingo/fit/v4/PropertyTestITCase.java       |   6 +-
 .../olingo/fit/v4/PropertyValueTestITCase.java  |   6 +-
 .../olingo/fit/v4/QueryOptionsTestITCase.java   |   6 +-
 .../fit/v4/ServiceDocumentTestITCase.java       |   2 +-
 .../olingo/fit/v4/SingletonTestITCase.java      |   6 +-
 .../apache/olingo/client/api/ODataClient.java   |   2 +-
 .../ODataClientErrorException.java              |  10 +-
 .../request/cud/CUDRequestFactory.java          |   8 +-
 .../request/cud/ODataEntityCreateRequest.java   |   2 +-
 .../request/cud/ODataEntityUpdateRequest.java   |   2 +-
 .../request/invoke/ClientNoContent.java         |   2 +-
 .../invoke/EdmEnabledInvokeRequestFactory.java  |   4 +-
 .../request/invoke/InvokeRequestFactory.java    |   4 +-
 .../request/invoke/ODataInvokeRequest.java      |   4 +-
 .../request/retrieve/ODataDeltaRequest.java     |   2 +-
 .../request/retrieve/ODataEntityRequest.java    |   2 +-
 .../retrieve/ODataEntitySetIteratorRequest.java |   4 +-
 .../request/retrieve/ODataEntitySetRequest.java |   2 +-
 .../request/retrieve/ODataPropertyRequest.java  |   2 +-
 .../retrieve/ODataServiceDocumentRequest.java   |   2 +-
 .../request/retrieve/ODataValueRequest.java     |   2 +-
 .../retrieve/RetrieveRequestFactory.java        |   8 +-
 .../MediaEntityCreateStreamManager.java         |   2 +-
 .../MediaEntityUpdateStreamManager.java         |   2 +-
 .../streamed/ODataMediaEntityCreateRequest.java |   2 +-
 .../streamed/ODataMediaEntityUpdateRequest.java |   2 +-
 .../response/ODataEntityCreateResponse.java     |   2 +-
 .../response/ODataEntityUpdateResponse.java     |   2 +-
 .../response/ODataInvokeResponse.java           |   2 +-
 .../ODataMediaEntityCreateResponse.java         |   2 +-
 .../ODataMediaEntityUpdateResponse.java         |   2 +-
 .../response/ODataPropertyUpdateResponse.java   |   2 +-
 .../response/ODataValueUpdateResponse.java      |   2 +-
 .../olingo/client/api/data/ServiceDocument.java |   4 +-
 .../api/domain/AbstractClientPayload.java       |  50 ++++
 .../client/api/domain/AbstractClientValue.java  | 120 ++++++++
 .../client/api/domain/ClientAnnotatable.java    |  26 ++
 .../client/api/domain/ClientAnnotation.java     |  30 ++
 .../api/domain/ClientCollectionValue.java       |  57 ++++
 .../client/api/domain/ClientComplexValue.java   |  58 ++++
 .../client/api/domain/ClientDeletedEntity.java  |  36 +++
 .../olingo/client/api/domain/ClientDelta.java   |  31 ++
 .../client/api/domain/ClientDeltaLink.java      |  36 +++
 .../olingo/client/api/domain/ClientEntity.java  | 202 +++++++++++++
 .../client/api/domain/ClientEntitySet.java      |  71 +++++
 .../client/api/domain/ClientEnumValue.java      |  27 ++
 .../client/api/domain/ClientInlineEntity.java   |  68 +++++
 .../api/domain/ClientInlineEntitySet.java       |  69 +++++
 .../client/api/domain/ClientInvokeResult.java   |  30 ++
 .../olingo/client/api/domain/ClientItem.java    |  96 ++++++
 .../olingo/client/api/domain/ClientLink.java    | 187 ++++++++++++
 .../client/api/domain/ClientLinkType.java       | 105 +++++++
 .../olingo/client/api/domain/ClientLinked.java  |  70 +++++
 .../client/api/domain/ClientObjectFactory.java  | 168 +++++++++++
 .../client/api/domain/ClientOperation.java      |  85 ++++++
 .../client/api/domain/ClientPrimitiveValue.java |  88 ++++++
 .../client/api/domain/ClientProperty.java       |  32 ++
 .../api/domain/ClientServiceDocument.java       | 163 ++++++++++
 .../client/api/domain/ClientSingleton.java      |  23 ++
 .../client/api/domain/ClientValuable.java       |  94 ++++++
 .../olingo/client/api/domain/ClientValue.java   |  91 ++++++
 .../api/domain/ODataEntitySetIterator.java      |   2 -
 .../client/api/serialization/ODataBinder.java   |  12 +-
 .../client/api/serialization/ODataReader.java   |  12 +-
 .../client/api/serialization/ODataWriter.java   |   6 +-
 .../olingo/client/core/ODataClientImpl.java     |   4 +-
 .../header/ODataErrorResponseChecker.java       |   8 +-
 .../request/cud/CUDRequestFactoryImpl.java      |   8 +-
 .../cud/ODataEntityCreateRequestImpl.java       |   2 +-
 .../cud/ODataEntityUpdateRequestImpl.java       |   2 +-
 .../cud/ODataPropertyUpdateRequestImpl.java     |   2 +-
 .../cud/ODataValueUpdateRequestImpl.java        |   2 +-
 .../AbstractEdmEnabledInvokeRequestFactory.java |   4 +-
 .../invoke/AbstractInvokeRequestFactory.java    |  10 +-
 .../invoke/AbstractODataInvokeRequest.java      |  10 +-
 .../EdmEnabledInvokeRequestFactoryImpl.java     |   4 +-
 .../invoke/InvokeRequestFactoryImpl.java        |   4 +-
 .../request/invoke/ODataInvokeRequestImpl.java  |   2 +-
 .../request/retrieve/ODataDeltaRequestImpl.java |   2 +-
 .../retrieve/ODataEntityRequestImpl.java        |   2 +-
 .../ODataEntitySetIteratorRequestImpl.java      |   4 +-
 .../retrieve/ODataEntitySetRequestImpl.java     |   2 +-
 .../retrieve/ODataPropertyRequestImpl.java      |   2 +-
 .../ODataServiceDocumentRequestImpl.java        |   2 +-
 .../request/retrieve/ODataValueRequestImpl.java |   2 +-
 .../retrieve/RetrieveRequestFactoryImpl.java    |   8 +-
 .../ODataMediaEntityCreateRequestImpl.java      |   2 +-
 .../ODataMediaEntityUpdateRequestImpl.java      |   2 +-
 .../core/domain/AbstractClientEntitySet.java    |  71 +++++
 .../core/domain/ClientAnnotationImpl.java       | 102 +++++++
 .../core/domain/ClientCollectionValueImpl.java  | 124 ++++++++
 .../core/domain/ClientComplexValueImpl.java     | 204 +++++++++++++
 .../core/domain/ClientDeletedEntityImpl.java    |  54 ++++
 .../client/core/domain/ClientDeltaImpl.java     |  60 ++++
 .../client/core/domain/ClientDeltaLinkImpl.java |  78 +++++
 .../client/core/domain/ClientEntityImpl.java    | 298 +++++++++++++++++++
 .../client/core/domain/ClientEntitySetImpl.java |  65 ++++
 .../client/core/domain/ClientEnumValueImpl.java |  59 ++++
 .../core/domain/ClientObjectFactoryImpl.java    | 155 ++++++++++
 .../core/domain/ClientPrimitiveValueImpl.java   | 222 ++++++++++++++
 .../client/core/domain/ClientPropertyImpl.java  | 163 ++++++++++
 .../client/core/domain/ClientValuableImpl.java  | 111 +++++++
 .../ClientODataDeserializerImpl.java            |   4 +-
 .../core/serialization/ODataBinderImpl.java     |  54 ++--
 .../core/serialization/ODataReaderImpl.java     |  16 +-
 .../core/serialization/ODataWriterImpl.java     |   6 +-
 .../apache/olingo/client/core/uri/URIUtils.java |   2 +-
 .../olingo/client/core/v4/EntitySetTest.java    |   4 +-
 .../olingo/client/core/v4/EntityTest.java       |  18 +-
 .../apache/olingo/client/core/v4/ErrorTest.java |   8 +-
 .../apache/olingo/client/core/v4/JSONTest.java  |   8 +-
 .../olingo/client/core/v4/MetadataTest.java     |   8 +-
 .../client/core/v4/PrimitiveValueTest.java      |   2 +-
 .../olingo/client/core/v4/PropertyTest.java     |   8 +-
 .../client/core/v4/ServiceDocumentTest.java     |   2 +-
 .../apache/olingo/commons/api/Constants.java    |   8 +
 .../apache/olingo/commons/api/data/Entity.java  |   6 +-
 .../olingo/commons/api/data/Operation.java      |  85 ++++++
 .../api/domain/AbstractClientPayload.java       |  50 ----
 .../commons/api/domain/AbstractClientValue.java | 120 --------
 .../commons/api/domain/ClientAnnotatable.java   |  26 --
 .../commons/api/domain/ClientAnnotation.java    |  30 --
 .../api/domain/ClientCollectionValue.java       |  57 ----
 .../commons/api/domain/ClientComplexValue.java  |  58 ----
 .../commons/api/domain/ClientDeletedEntity.java |  36 ---
 .../olingo/commons/api/domain/ClientDelta.java  |  31 --
 .../commons/api/domain/ClientDeltaLink.java     |  36 ---
 .../olingo/commons/api/domain/ClientEntity.java | 202 -------------
 .../commons/api/domain/ClientEntitySet.java     |  71 -----
 .../commons/api/domain/ClientEnumValue.java     |  27 --
 .../olingo/commons/api/domain/ClientError.java  | 132 --------
 .../commons/api/domain/ClientErrorDetail.java   |  73 -----
 .../commons/api/domain/ClientInlineEntity.java  |  68 -----
 .../api/domain/ClientInlineEntitySet.java       |  69 -----
 .../commons/api/domain/ClientInvokeResult.java  |  30 --
 .../olingo/commons/api/domain/ClientItem.java   |  96 ------
 .../olingo/commons/api/domain/ClientLink.java   | 187 ------------
 .../commons/api/domain/ClientLinkType.java      | 105 -------
 .../olingo/commons/api/domain/ClientLinked.java |  70 -----
 .../commons/api/domain/ClientObjectFactory.java | 168 -----------
 .../commons/api/domain/ClientOperation.java     |  85 ------
 .../api/domain/ClientPrimitiveValue.java        |  88 ------
 .../commons/api/domain/ClientProperty.java      |  32 --
 .../commons/api/domain/ClientPropertyType.java  |  44 ---
 .../api/domain/ClientServiceDocument.java       | 163 ----------
 .../commons/api/domain/ClientSingleton.java     |  23 --
 .../commons/api/domain/ClientValuable.java      |  94 ------
 .../olingo/commons/api/domain/ClientValue.java  |  91 ------
 .../olingo/commons/api/domain/ODataError.java   | 132 ++++++++
 .../commons/api/domain/ODataErrorDetail.java    |  73 +++++
 .../commons/api/domain/ODataPropertyType.java   |  44 +++
 .../EdmConstantAnnotationExpression.java        |   4 +-
 .../api/serialization/ODataDeserializer.java    |   4 +-
 .../core/domain/AbstractClientEntitySet.java    |  71 -----
 .../core/domain/ClientAnnotationImpl.java       | 102 -------
 .../core/domain/ClientCollectionValueImpl.java  | 124 --------
 .../core/domain/ClientComplexValueImpl.java     | 204 -------------
 .../core/domain/ClientDeletedEntityImpl.java    |  54 ----
 .../commons/core/domain/ClientDeltaImpl.java    |  60 ----
 .../core/domain/ClientDeltaLinkImpl.java        |  78 -----
 .../commons/core/domain/ClientEntityImpl.java   | 298 -------------------
 .../core/domain/ClientEntitySetImpl.java        |  65 ----
 .../core/domain/ClientEnumValueImpl.java        |  59 ----
 .../core/domain/ClientObjectFactoryImpl.java    | 155 ----------
 .../core/domain/ClientPrimitiveValueImpl.java   | 222 --------------
 .../commons/core/domain/ClientPropertyImpl.java | 163 ----------
 .../commons/core/domain/ClientValuableImpl.java | 111 -------
 .../EdmConstantAnnotationExpressionImpl.java    |  72 +++--
 .../core/serialization/AtomDeserializer.java    |  46 +--
 .../core/serialization/AtomSerializer.java      |   4 +-
 .../core/serialization/JsonDeserializer.java    |  45 ++-
 .../serialization/JsonEntityDeserializer.java   |   7 +-
 .../serialization/JsonEntitySerializer.java     |   4 +-
 .../JsonODataErrorDeserializer.java             |  10 +-
 .../JsonODataErrorDetailDeserializer.java       |   8 +-
 .../core/serialization/JsonSerializer.java      |  14 +-
 .../olingo/server/api/ClientServerError.java    |   8 +-
 .../server/core/responses/ResponseUtil.java     |   6 +-
 .../json/ODataJsonDeserializer.java             |   9 +-
 .../serializer/json/ODataErrorSerializer.java   |   8 +-
 .../json/ClientErrorSerializerTest.java         |  12 +-
 .../olingo/server/tecsvc/data/DataCreator.java  |   6 +-
 .../json/ODataDeserializerDeepInsertTest.java   |   6 +-
 .../json/ODataJsonDeserializerEntityTest.java   |   6 +-
 239 files changed, 4822 insertions(+), 4711 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/17152920/ext/client-proxy/src/main/java/org/apache/olingo/ext/proxy/commons/AbstractCollectionInvocationHandler.java
----------------------------------------------------------------------
diff --git a/ext/client-proxy/src/main/java/org/apache/olingo/ext/proxy/commons/AbstractCollectionInvocationHandler.java b/ext/client-proxy/src/main/java/org/apache/olingo/ext/proxy/commons/AbstractCollectionInvocationHandler.java
index 276d6e4..dd10b75 100644
--- a/ext/client-proxy/src/main/java/org/apache/olingo/ext/proxy/commons/AbstractCollectionInvocationHandler.java
+++ b/ext/client-proxy/src/main/java/org/apache/olingo/ext/proxy/commons/AbstractCollectionInvocationHandler.java
@@ -35,7 +35,7 @@ import org.apache.commons.lang3.tuple.Triple;
 import org.apache.olingo.client.api.uri.QueryOption;
 import org.apache.olingo.client.api.uri.URIBuilder;
 import org.apache.olingo.client.api.uri.URIFilter;
-import org.apache.olingo.commons.api.domain.ClientAnnotation;
+import org.apache.olingo.client.api.domain.ClientAnnotation;
 import org.apache.olingo.ext.proxy.AbstractService;
 import org.apache.olingo.ext.proxy.api.AbstractTerm;
 import org.apache.olingo.ext.proxy.api.EntityType;

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/17152920/ext/client-proxy/src/main/java/org/apache/olingo/ext/proxy/commons/AbstractEntityCollectionInvocationHandler.java
----------------------------------------------------------------------
diff --git a/ext/client-proxy/src/main/java/org/apache/olingo/ext/proxy/commons/AbstractEntityCollectionInvocationHandler.java b/ext/client-proxy/src/main/java/org/apache/olingo/ext/proxy/commons/AbstractEntityCollectionInvocationHandler.java
index 90309c5..891ba1c 100644
--- a/ext/client-proxy/src/main/java/org/apache/olingo/ext/proxy/commons/AbstractEntityCollectionInvocationHandler.java
+++ b/ext/client-proxy/src/main/java/org/apache/olingo/ext/proxy/commons/AbstractEntityCollectionInvocationHandler.java
@@ -30,10 +30,10 @@ import org.apache.olingo.client.api.ODataClient;
 import org.apache.olingo.client.api.communication.request.retrieve.ODataEntitySetRequest;
 import org.apache.olingo.client.api.communication.response.ODataRetrieveResponse;
 import org.apache.olingo.client.api.uri.URIBuilder;
-import org.apache.olingo.commons.api.domain.ClientAnnotation;
-import org.apache.olingo.commons.api.domain.ClientEntity;
-import org.apache.olingo.commons.api.domain.ClientEntitySet;
-import org.apache.olingo.commons.api.domain.ClientSingleton;
+import org.apache.olingo.client.api.domain.ClientAnnotation;
+import org.apache.olingo.client.api.domain.ClientEntity;
+import org.apache.olingo.client.api.domain.ClientEntitySet;
+import org.apache.olingo.client.api.domain.ClientSingleton;
 import org.apache.olingo.ext.proxy.AbstractService;
 import org.apache.olingo.ext.proxy.api.AbstractEntitySet;
 import org.apache.olingo.ext.proxy.api.AbstractSingleton;

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/17152920/ext/client-proxy/src/main/java/org/apache/olingo/ext/proxy/commons/AbstractInvocationHandler.java
----------------------------------------------------------------------
diff --git a/ext/client-proxy/src/main/java/org/apache/olingo/ext/proxy/commons/AbstractInvocationHandler.java b/ext/client-proxy/src/main/java/org/apache/olingo/ext/proxy/commons/AbstractInvocationHandler.java
index a1005a3..258a496 100644
--- a/ext/client-proxy/src/main/java/org/apache/olingo/ext/proxy/commons/AbstractInvocationHandler.java
+++ b/ext/client-proxy/src/main/java/org/apache/olingo/ext/proxy/commons/AbstractInvocationHandler.java
@@ -32,8 +32,8 @@ import org.apache.commons.lang3.builder.ReflectionToStringBuilder;
 import org.apache.commons.lang3.builder.ToStringStyle;
 import org.apache.olingo.client.api.EdmEnabledODataClient;
 import org.apache.olingo.client.api.uri.URIBuilder;
-import org.apache.olingo.commons.api.domain.ClientEntity;
-import org.apache.olingo.commons.api.domain.ClientValue;
+import org.apache.olingo.client.api.domain.ClientEntity;
+import org.apache.olingo.client.api.domain.ClientValue;
 import org.apache.olingo.commons.api.edm.FullQualifiedName;
 import org.apache.olingo.ext.proxy.AbstractService;
 import org.apache.olingo.ext.proxy.api.ComplexType;

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/17152920/ext/client-proxy/src/main/java/org/apache/olingo/ext/proxy/commons/AbstractPersistenceManager.java
----------------------------------------------------------------------
diff --git a/ext/client-proxy/src/main/java/org/apache/olingo/ext/proxy/commons/AbstractPersistenceManager.java b/ext/client-proxy/src/main/java/org/apache/olingo/ext/proxy/commons/AbstractPersistenceManager.java
index d29aad4..6bb8673 100644
--- a/ext/client-proxy/src/main/java/org/apache/olingo/ext/proxy/commons/AbstractPersistenceManager.java
+++ b/ext/client-proxy/src/main/java/org/apache/olingo/ext/proxy/commons/AbstractPersistenceManager.java
@@ -40,9 +40,9 @@ import org.apache.olingo.client.api.communication.request.cud.ODataReferenceAddi
 import org.apache.olingo.client.api.communication.request.streamed.ODataMediaEntityUpdateRequest;
 import org.apache.olingo.client.api.communication.request.streamed.ODataStreamUpdateRequest;
 import org.apache.olingo.client.core.uri.URIUtils;
-import org.apache.olingo.commons.api.domain.ClientEntity;
-import org.apache.olingo.commons.api.domain.ClientLink;
-import org.apache.olingo.commons.api.domain.ClientLinkType;
+import org.apache.olingo.client.api.domain.ClientEntity;
+import org.apache.olingo.client.api.domain.ClientLink;
+import org.apache.olingo.client.api.domain.ClientLinkType;
 import org.apache.olingo.ext.proxy.AbstractService;
 import org.apache.olingo.ext.proxy.api.EdmStreamValue;
 import org.apache.olingo.ext.proxy.api.PersistenceManager;

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/17152920/ext/client-proxy/src/main/java/org/apache/olingo/ext/proxy/commons/AbstractStructuredInvocationHandler.java
----------------------------------------------------------------------
diff --git a/ext/client-proxy/src/main/java/org/apache/olingo/ext/proxy/commons/AbstractStructuredInvocationHandler.java b/ext/client-proxy/src/main/java/org/apache/olingo/ext/proxy/commons/AbstractStructuredInvocationHandler.java
index 0795e8b..96b3f26 100644
--- a/ext/client-proxy/src/main/java/org/apache/olingo/ext/proxy/commons/AbstractStructuredInvocationHandler.java
+++ b/ext/client-proxy/src/main/java/org/apache/olingo/ext/proxy/commons/AbstractStructuredInvocationHandler.java
@@ -41,13 +41,13 @@ import org.apache.commons.lang3.StringUtils;
 import org.apache.olingo.client.api.uri.QueryOption;
 import org.apache.olingo.client.api.uri.URIBuilder;
 import org.apache.olingo.client.core.uri.URIUtils;
-import org.apache.olingo.commons.api.domain.ClientEntity;
-import org.apache.olingo.commons.api.domain.ClientInlineEntity;
-import org.apache.olingo.commons.api.domain.ClientInlineEntitySet;
-import org.apache.olingo.commons.api.domain.ClientLink;
-import org.apache.olingo.commons.api.domain.ClientLinked;
-import org.apache.olingo.commons.api.domain.ClientProperty;
-import org.apache.olingo.commons.api.domain.ClientValue;
+import org.apache.olingo.client.api.domain.ClientEntity;
+import org.apache.olingo.client.api.domain.ClientInlineEntity;
+import org.apache.olingo.client.api.domain.ClientInlineEntitySet;
+import org.apache.olingo.client.api.domain.ClientLink;
+import org.apache.olingo.client.api.domain.ClientLinked;
+import org.apache.olingo.client.api.domain.ClientProperty;
+import org.apache.olingo.client.api.domain.ClientValue;
 import org.apache.olingo.commons.api.edm.EdmPrimitiveTypeKind;
 import org.apache.olingo.commons.api.edm.FullQualifiedName;
 import org.apache.olingo.ext.proxy.AbstractService;

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/17152920/ext/client-proxy/src/main/java/org/apache/olingo/ext/proxy/commons/AnnotatableInvocationHandler.java
----------------------------------------------------------------------
diff --git a/ext/client-proxy/src/main/java/org/apache/olingo/ext/proxy/commons/AnnotatableInvocationHandler.java b/ext/client-proxy/src/main/java/org/apache/olingo/ext/proxy/commons/AnnotatableInvocationHandler.java
index 4b66898..a0b18ba 100644
--- a/ext/client-proxy/src/main/java/org/apache/olingo/ext/proxy/commons/AnnotatableInvocationHandler.java
+++ b/ext/client-proxy/src/main/java/org/apache/olingo/ext/proxy/commons/AnnotatableInvocationHandler.java
@@ -27,9 +27,9 @@ import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
 
-import org.apache.olingo.commons.api.domain.ClientAnnotation;
-import org.apache.olingo.commons.api.domain.ClientComplexValue;
-import org.apache.olingo.commons.api.domain.ClientEntity;
+import org.apache.olingo.client.api.domain.ClientAnnotation;
+import org.apache.olingo.client.api.domain.ClientComplexValue;
+import org.apache.olingo.client.api.domain.ClientEntity;
 import org.apache.olingo.ext.proxy.AbstractService;
 import org.apache.olingo.ext.proxy.api.AbstractTerm;
 import org.apache.olingo.ext.proxy.api.Annotatable;

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/17152920/ext/client-proxy/src/main/java/org/apache/olingo/ext/proxy/commons/ComplexCollectionInvocationHandler.java
----------------------------------------------------------------------
diff --git a/ext/client-proxy/src/main/java/org/apache/olingo/ext/proxy/commons/ComplexCollectionInvocationHandler.java b/ext/client-proxy/src/main/java/org/apache/olingo/ext/proxy/commons/ComplexCollectionInvocationHandler.java
index 1607cfe..ff4fc66 100644
--- a/ext/client-proxy/src/main/java/org/apache/olingo/ext/proxy/commons/ComplexCollectionInvocationHandler.java
+++ b/ext/client-proxy/src/main/java/org/apache/olingo/ext/proxy/commons/ComplexCollectionInvocationHandler.java
@@ -33,10 +33,10 @@ import org.apache.commons.lang3.tuple.Triple;
 import org.apache.olingo.client.api.communication.request.retrieve.ODataPropertyRequest;
 import org.apache.olingo.client.api.communication.response.ODataRetrieveResponse;
 import org.apache.olingo.client.api.uri.URIBuilder;
-import org.apache.olingo.commons.api.domain.ClientAnnotation;
-import org.apache.olingo.commons.api.domain.ClientCollectionValue;
-import org.apache.olingo.commons.api.domain.ClientProperty;
-import org.apache.olingo.commons.api.domain.ClientValue;
+import org.apache.olingo.client.api.domain.ClientAnnotation;
+import org.apache.olingo.client.api.domain.ClientCollectionValue;
+import org.apache.olingo.client.api.domain.ClientProperty;
+import org.apache.olingo.client.api.domain.ClientValue;
 import org.apache.olingo.ext.proxy.AbstractService;
 import org.apache.olingo.ext.proxy.api.ComplexCollection;
 import org.apache.olingo.ext.proxy.api.ComplexType;

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/17152920/ext/client-proxy/src/main/java/org/apache/olingo/ext/proxy/commons/ComplexInvocationHandler.java
----------------------------------------------------------------------
diff --git a/ext/client-proxy/src/main/java/org/apache/olingo/ext/proxy/commons/ComplexInvocationHandler.java b/ext/client-proxy/src/main/java/org/apache/olingo/ext/proxy/commons/ComplexInvocationHandler.java
index 16467c2..3aa3326 100644
--- a/ext/client-proxy/src/main/java/org/apache/olingo/ext/proxy/commons/ComplexInvocationHandler.java
+++ b/ext/client-proxy/src/main/java/org/apache/olingo/ext/proxy/commons/ComplexInvocationHandler.java
@@ -28,9 +28,9 @@ import org.apache.commons.lang3.tuple.Pair;
 import org.apache.olingo.client.api.communication.request.retrieve.ODataPropertyRequest;
 import org.apache.olingo.client.api.communication.response.ODataRetrieveResponse;
 import org.apache.olingo.client.api.uri.URIBuilder;
-import org.apache.olingo.commons.api.domain.ClientComplexValue;
-import org.apache.olingo.commons.api.domain.ClientLinked;
-import org.apache.olingo.commons.api.domain.ClientProperty;
+import org.apache.olingo.client.api.domain.ClientComplexValue;
+import org.apache.olingo.client.api.domain.ClientLinked;
+import org.apache.olingo.client.api.domain.ClientProperty;
 import org.apache.olingo.commons.api.edm.FullQualifiedName;
 import org.apache.olingo.ext.proxy.AbstractService;
 import org.apache.olingo.ext.proxy.api.annotations.ComplexType;

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/17152920/ext/client-proxy/src/main/java/org/apache/olingo/ext/proxy/commons/EntityContainerInvocationHandler.java
----------------------------------------------------------------------
diff --git a/ext/client-proxy/src/main/java/org/apache/olingo/ext/proxy/commons/EntityContainerInvocationHandler.java b/ext/client-proxy/src/main/java/org/apache/olingo/ext/proxy/commons/EntityContainerInvocationHandler.java
index b903fdb..b31e624 100644
--- a/ext/client-proxy/src/main/java/org/apache/olingo/ext/proxy/commons/EntityContainerInvocationHandler.java
+++ b/ext/client-proxy/src/main/java/org/apache/olingo/ext/proxy/commons/EntityContainerInvocationHandler.java
@@ -25,7 +25,7 @@ import java.lang.reflect.Method;
 import java.lang.reflect.Proxy;
 import java.net.URI;
 import org.apache.commons.lang3.ArrayUtils;
-import org.apache.olingo.commons.api.domain.ClientEntity;
+import org.apache.olingo.client.api.domain.ClientEntity;
 import org.apache.olingo.commons.api.edm.FullQualifiedName;
 import org.apache.olingo.ext.proxy.AbstractService;
 import org.apache.olingo.ext.proxy.api.ComplexCollection;

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/17152920/ext/client-proxy/src/main/java/org/apache/olingo/ext/proxy/commons/EntityInvocationHandler.java
----------------------------------------------------------------------
diff --git a/ext/client-proxy/src/main/java/org/apache/olingo/ext/proxy/commons/EntityInvocationHandler.java b/ext/client-proxy/src/main/java/org/apache/olingo/ext/proxy/commons/EntityInvocationHandler.java
index fff16b4..66bc66c 100644
--- a/ext/client-proxy/src/main/java/org/apache/olingo/ext/proxy/commons/EntityInvocationHandler.java
+++ b/ext/client-proxy/src/main/java/org/apache/olingo/ext/proxy/commons/EntityInvocationHandler.java
@@ -34,9 +34,9 @@ import org.apache.olingo.client.api.communication.request.retrieve.ODataEntityRe
 import org.apache.olingo.client.api.communication.request.retrieve.ODataMediaRequest;
 import org.apache.olingo.client.api.communication.response.ODataRetrieveResponse;
 import org.apache.olingo.client.api.uri.URIBuilder;
-import org.apache.olingo.commons.api.domain.ClientAnnotation;
-import org.apache.olingo.commons.api.domain.ClientEntity;
-import org.apache.olingo.commons.api.domain.ClientProperty;
+import org.apache.olingo.client.api.domain.ClientAnnotation;
+import org.apache.olingo.client.api.domain.ClientEntity;
+import org.apache.olingo.client.api.domain.ClientProperty;
 import org.apache.olingo.commons.api.edm.FullQualifiedName;
 import org.apache.olingo.commons.api.format.ODataFormat;
 import org.apache.olingo.ext.proxy.AbstractService;

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/17152920/ext/client-proxy/src/main/java/org/apache/olingo/ext/proxy/commons/EntitySetInvocationHandler.java
----------------------------------------------------------------------
diff --git a/ext/client-proxy/src/main/java/org/apache/olingo/ext/proxy/commons/EntitySetInvocationHandler.java b/ext/client-proxy/src/main/java/org/apache/olingo/ext/proxy/commons/EntitySetInvocationHandler.java
index 950b0ff..6c8d35f 100644
--- a/ext/client-proxy/src/main/java/org/apache/olingo/ext/proxy/commons/EntitySetInvocationHandler.java
+++ b/ext/client-proxy/src/main/java/org/apache/olingo/ext/proxy/commons/EntitySetInvocationHandler.java
@@ -30,8 +30,8 @@ import java.util.concurrent.Future;
 import org.apache.commons.lang3.tuple.Triple;
 import org.apache.olingo.client.api.communication.request.retrieve.ODataValueRequest;
 import org.apache.olingo.client.api.uri.URIBuilder;
-import org.apache.olingo.commons.api.domain.ClientAnnotation;
-import org.apache.olingo.commons.api.domain.ClientEntity;
+import org.apache.olingo.client.api.domain.ClientAnnotation;
+import org.apache.olingo.client.api.domain.ClientEntity;
 import org.apache.olingo.commons.api.edm.FullQualifiedName;
 import org.apache.olingo.commons.api.format.ODataFormat;
 import org.apache.olingo.ext.proxy.AbstractService;

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/17152920/ext/client-proxy/src/main/java/org/apache/olingo/ext/proxy/commons/EntitySetIterator.java
----------------------------------------------------------------------
diff --git a/ext/client-proxy/src/main/java/org/apache/olingo/ext/proxy/commons/EntitySetIterator.java b/ext/client-proxy/src/main/java/org/apache/olingo/ext/proxy/commons/EntitySetIterator.java
index 9bbeeb0..87bc08d 100644
--- a/ext/client-proxy/src/main/java/org/apache/olingo/ext/proxy/commons/EntitySetIterator.java
+++ b/ext/client-proxy/src/main/java/org/apache/olingo/ext/proxy/commons/EntitySetIterator.java
@@ -26,7 +26,7 @@ import java.util.List;
 import java.util.NoSuchElementException;
 
 import org.apache.commons.lang3.tuple.Triple;
-import org.apache.olingo.commons.api.domain.ClientAnnotation;
+import org.apache.olingo.client.api.domain.ClientAnnotation;
 import org.apache.olingo.ext.proxy.api.EntityCollection;
 import org.apache.olingo.ext.proxy.api.EntityType;
 

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/17152920/ext/client-proxy/src/main/java/org/apache/olingo/ext/proxy/commons/InvokerInvocationHandler.java
----------------------------------------------------------------------
diff --git a/ext/client-proxy/src/main/java/org/apache/olingo/ext/proxy/commons/InvokerInvocationHandler.java b/ext/client-proxy/src/main/java/org/apache/olingo/ext/proxy/commons/InvokerInvocationHandler.java
index 733391c..53208f7 100644
--- a/ext/client-proxy/src/main/java/org/apache/olingo/ext/proxy/commons/InvokerInvocationHandler.java
+++ b/ext/client-proxy/src/main/java/org/apache/olingo/ext/proxy/commons/InvokerInvocationHandler.java
@@ -34,11 +34,11 @@ import org.apache.olingo.client.api.communication.request.invoke.ClientNoContent
 import org.apache.olingo.client.api.uri.URIBuilder;
 import org.apache.olingo.client.api.uri.URIFilter;
 import org.apache.olingo.client.core.uri.URIUtils;
-import org.apache.olingo.commons.api.domain.ClientEntity;
-import org.apache.olingo.commons.api.domain.ClientEntitySet;
-import org.apache.olingo.commons.api.domain.ClientInvokeResult;
-import org.apache.olingo.commons.api.domain.ClientProperty;
-import org.apache.olingo.commons.api.domain.ClientValue;
+import org.apache.olingo.client.api.domain.ClientEntity;
+import org.apache.olingo.client.api.domain.ClientEntitySet;
+import org.apache.olingo.client.api.domain.ClientInvokeResult;
+import org.apache.olingo.client.api.domain.ClientProperty;
+import org.apache.olingo.client.api.domain.ClientValue;
 import org.apache.olingo.commons.api.edm.EdmFunction;
 import org.apache.olingo.commons.api.edm.EdmOperation;
 import org.apache.olingo.commons.api.edm.EdmReturnType;

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/17152920/ext/client-proxy/src/main/java/org/apache/olingo/ext/proxy/commons/OperationInvocationHandler.java
----------------------------------------------------------------------
diff --git a/ext/client-proxy/src/main/java/org/apache/olingo/ext/proxy/commons/OperationInvocationHandler.java b/ext/client-proxy/src/main/java/org/apache/olingo/ext/proxy/commons/OperationInvocationHandler.java
index d92d39e..bdab06c 100644
--- a/ext/client-proxy/src/main/java/org/apache/olingo/ext/proxy/commons/OperationInvocationHandler.java
+++ b/ext/client-proxy/src/main/java/org/apache/olingo/ext/proxy/commons/OperationInvocationHandler.java
@@ -30,9 +30,9 @@ import java.util.List;
 import java.util.Map;
 
 import org.apache.olingo.client.api.uri.URIBuilder;
-import org.apache.olingo.commons.api.domain.ClientEntity;
-import org.apache.olingo.commons.api.domain.ClientOperation;
-import org.apache.olingo.commons.api.domain.ClientValue;
+import org.apache.olingo.client.api.domain.ClientEntity;
+import org.apache.olingo.client.api.domain.ClientOperation;
+import org.apache.olingo.client.api.domain.ClientValue;
 import org.apache.olingo.commons.api.edm.EdmAction;
 import org.apache.olingo.commons.api.edm.EdmEntityContainer;
 import org.apache.olingo.commons.api.edm.EdmEntityType;

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/17152920/ext/client-proxy/src/main/java/org/apache/olingo/ext/proxy/commons/PrimitiveCollectionInvocationHandler.java
----------------------------------------------------------------------
diff --git a/ext/client-proxy/src/main/java/org/apache/olingo/ext/proxy/commons/PrimitiveCollectionInvocationHandler.java b/ext/client-proxy/src/main/java/org/apache/olingo/ext/proxy/commons/PrimitiveCollectionInvocationHandler.java
index e40593d..553af6e 100644
--- a/ext/client-proxy/src/main/java/org/apache/olingo/ext/proxy/commons/PrimitiveCollectionInvocationHandler.java
+++ b/ext/client-proxy/src/main/java/org/apache/olingo/ext/proxy/commons/PrimitiveCollectionInvocationHandler.java
@@ -34,9 +34,9 @@ import org.apache.commons.lang3.tuple.Triple;
 import org.apache.olingo.client.api.communication.request.retrieve.ODataPropertyRequest;
 import org.apache.olingo.client.api.communication.response.ODataRetrieveResponse;
 import org.apache.olingo.client.api.uri.URIBuilder;
-import org.apache.olingo.commons.api.domain.ClientProperty;
-import org.apache.olingo.commons.api.domain.ClientAnnotation;
-import org.apache.olingo.commons.api.domain.ClientValue;
+import org.apache.olingo.client.api.domain.ClientProperty;
+import org.apache.olingo.client.api.domain.ClientAnnotation;
+import org.apache.olingo.client.api.domain.ClientValue;
 import org.apache.olingo.ext.proxy.AbstractService;
 import org.apache.olingo.ext.proxy.api.PrimitiveCollection;
 

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/17152920/ext/client-proxy/src/main/java/org/apache/olingo/ext/proxy/commons/StructuredComposableInvokerInvocationHandler.java
----------------------------------------------------------------------
diff --git a/ext/client-proxy/src/main/java/org/apache/olingo/ext/proxy/commons/StructuredComposableInvokerInvocationHandler.java b/ext/client-proxy/src/main/java/org/apache/olingo/ext/proxy/commons/StructuredComposableInvokerInvocationHandler.java
index 2ca7b86..41ec9ce 100644
--- a/ext/client-proxy/src/main/java/org/apache/olingo/ext/proxy/commons/StructuredComposableInvokerInvocationHandler.java
+++ b/ext/client-proxy/src/main/java/org/apache/olingo/ext/proxy/commons/StructuredComposableInvokerInvocationHandler.java
@@ -24,7 +24,7 @@ import java.net.URI;
 import java.util.Map;
 
 import org.apache.commons.lang3.ArrayUtils;
-import org.apache.olingo.commons.api.domain.ClientValue;
+import org.apache.olingo.client.api.domain.ClientValue;
 import org.apache.olingo.commons.api.edm.EdmOperation;
 import org.apache.olingo.commons.core.edm.EdmTypeInfo;
 import org.apache.olingo.ext.proxy.AbstractService;

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/17152920/ext/client-proxy/src/main/java/org/apache/olingo/ext/proxy/context/EntityLinkDesc.java
----------------------------------------------------------------------
diff --git a/ext/client-proxy/src/main/java/org/apache/olingo/ext/proxy/context/EntityLinkDesc.java b/ext/client-proxy/src/main/java/org/apache/olingo/ext/proxy/context/EntityLinkDesc.java
index 1506655..91a7dec 100644
--- a/ext/client-proxy/src/main/java/org/apache/olingo/ext/proxy/context/EntityLinkDesc.java
+++ b/ext/client-proxy/src/main/java/org/apache/olingo/ext/proxy/context/EntityLinkDesc.java
@@ -22,7 +22,7 @@ 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.commons.api.domain.ClientLinkType;
+import org.apache.olingo.client.api.domain.ClientLinkType;
 import org.apache.olingo.ext.proxy.commons.EntityInvocationHandler;
 
 import java.io.Serializable;

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/17152920/ext/client-proxy/src/main/java/org/apache/olingo/ext/proxy/utils/CoreUtils.java
----------------------------------------------------------------------
diff --git a/ext/client-proxy/src/main/java/org/apache/olingo/ext/proxy/utils/CoreUtils.java b/ext/client-proxy/src/main/java/org/apache/olingo/ext/proxy/utils/CoreUtils.java
index 882f0f6..2776f3b 100644
--- a/ext/client-proxy/src/main/java/org/apache/olingo/ext/proxy/utils/CoreUtils.java
+++ b/ext/client-proxy/src/main/java/org/apache/olingo/ext/proxy/utils/CoreUtils.java
@@ -40,22 +40,22 @@ import org.apache.commons.lang3.StringUtils;
 import org.apache.olingo.client.api.EdmEnabledODataClient;
 import org.apache.olingo.client.api.uri.URIBuilder;
 import org.apache.olingo.client.core.uri.URIUtils;
-import org.apache.olingo.commons.api.domain.ClientAnnotatable;
-import org.apache.olingo.commons.api.domain.ClientAnnotation;
-import org.apache.olingo.commons.api.domain.ClientComplexValue;
-import org.apache.olingo.commons.api.domain.ClientEntity;
-import org.apache.olingo.commons.api.domain.ClientEnumValue;
-import org.apache.olingo.commons.api.domain.ClientLink;
-import org.apache.olingo.commons.api.domain.ClientPrimitiveValue;
-import org.apache.olingo.commons.api.domain.ClientProperty;
-import org.apache.olingo.commons.api.domain.ClientValue;
+import org.apache.olingo.client.api.domain.ClientAnnotatable;
+import org.apache.olingo.client.api.domain.ClientAnnotation;
+import org.apache.olingo.client.api.domain.ClientComplexValue;
+import org.apache.olingo.client.api.domain.ClientEntity;
+import org.apache.olingo.client.api.domain.ClientEnumValue;
+import org.apache.olingo.client.api.domain.ClientLink;
+import org.apache.olingo.client.api.domain.ClientPrimitiveValue;
+import org.apache.olingo.client.api.domain.ClientProperty;
+import org.apache.olingo.client.api.domain.ClientValue;
 import org.apache.olingo.commons.api.edm.EdmElement;
 import org.apache.olingo.commons.api.edm.EdmPrimitiveTypeException;
 import org.apache.olingo.commons.api.edm.EdmPrimitiveTypeKind;
 import org.apache.olingo.commons.api.edm.EdmTerm;
 import org.apache.olingo.commons.api.edm.EdmType;
 import org.apache.olingo.commons.api.edm.FullQualifiedName;
-import org.apache.olingo.commons.core.domain.ClientAnnotationImpl;
+import org.apache.olingo.client.core.domain.ClientAnnotationImpl;
 import org.apache.olingo.commons.core.edm.primitivetype.EdmPrimitiveTypeFactory;
 import org.apache.olingo.commons.core.edm.EdmTypeInfo;
 import org.apache.olingo.ext.proxy.AbstractService;

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/17152920/ext/client-proxy/src/main/java/org/apache/olingo/ext/proxy/utils/ProxyUtils.java
----------------------------------------------------------------------
diff --git a/ext/client-proxy/src/main/java/org/apache/olingo/ext/proxy/utils/ProxyUtils.java b/ext/client-proxy/src/main/java/org/apache/olingo/ext/proxy/utils/ProxyUtils.java
index cb17b14..1800b1f 100644
--- a/ext/client-proxy/src/main/java/org/apache/olingo/ext/proxy/utils/ProxyUtils.java
+++ b/ext/client-proxy/src/main/java/org/apache/olingo/ext/proxy/utils/ProxyUtils.java
@@ -22,9 +22,9 @@ import java.util.List;
 
 import org.apache.commons.lang3.StringUtils;
 import org.apache.olingo.client.api.uri.URIBuilder;
-import org.apache.olingo.commons.api.domain.ClientEntity;
-import org.apache.olingo.commons.api.domain.ClientEntitySet;
-import org.apache.olingo.commons.api.domain.ClientValue;
+import org.apache.olingo.client.api.domain.ClientEntity;
+import org.apache.olingo.client.api.domain.ClientEntitySet;
+import org.apache.olingo.client.api.domain.ClientValue;
 import org.apache.olingo.ext.proxy.AbstractService;
 import org.apache.olingo.ext.proxy.commons.ComplexInvocationHandler;
 import org.apache.olingo.ext.proxy.commons.EntityCollectionInvocationHandler;

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/17152920/fit/src/test/java/org/apache/olingo/fit/AbstractBaseTestITCase.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/AbstractBaseTestITCase.java b/fit/src/test/java/org/apache/olingo/fit/AbstractBaseTestITCase.java
index da0e742..823592d 100644
--- a/fit/src/test/java/org/apache/olingo/fit/AbstractBaseTestITCase.java
+++ b/fit/src/test/java/org/apache/olingo/fit/AbstractBaseTestITCase.java
@@ -32,9 +32,9 @@ import org.apache.commons.io.IOUtils;
 import org.apache.olingo.client.api.ODataClient;
 import org.apache.olingo.commons.api.data.Entity;
 import org.apache.olingo.commons.api.data.EntityCollection;
-import org.apache.olingo.commons.api.domain.ClientEntity;
-import org.apache.olingo.commons.api.domain.ClientProperty;
-import org.apache.olingo.commons.api.domain.ClientValue;
+import org.apache.olingo.client.api.domain.ClientEntity;
+import org.apache.olingo.client.api.domain.ClientProperty;
+import org.apache.olingo.client.api.domain.ClientValue;
 import org.apache.olingo.commons.api.format.ODataFormat;
 import org.apache.olingo.commons.api.serialization.ODataSerializerException;
 import org.apache.olingo.fit.server.TomcatTestServer;

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/17152920/fit/src/test/java/org/apache/olingo/fit/tecsvc/client/ActionImportITCase.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/tecsvc/client/ActionImportITCase.java b/fit/src/test/java/org/apache/olingo/fit/tecsvc/client/ActionImportITCase.java
index 9f6c183..1037a9c 100644
--- a/fit/src/test/java/org/apache/olingo/fit/tecsvc/client/ActionImportITCase.java
+++ b/fit/src/test/java/org/apache/olingo/fit/tecsvc/client/ActionImportITCase.java
@@ -34,12 +34,12 @@ import org.apache.olingo.client.api.ODataClient;
 import org.apache.olingo.client.api.communication.ODataClientErrorException;
 import org.apache.olingo.client.api.communication.response.ODataInvokeResponse;
 import org.apache.olingo.client.core.ODataClientFactory;
-import org.apache.olingo.commons.api.domain.ClientCollectionValue;
-import org.apache.olingo.commons.api.domain.ClientComplexValue;
-import org.apache.olingo.commons.api.domain.ClientEntity;
-import org.apache.olingo.commons.api.domain.ClientEntitySet;
-import org.apache.olingo.commons.api.domain.ClientProperty;
-import org.apache.olingo.commons.api.domain.ClientValue;
+import org.apache.olingo.client.api.domain.ClientCollectionValue;
+import org.apache.olingo.client.api.domain.ClientComplexValue;
+import org.apache.olingo.client.api.domain.ClientEntity;
+import org.apache.olingo.client.api.domain.ClientEntitySet;
+import org.apache.olingo.client.api.domain.ClientProperty;
+import org.apache.olingo.client.api.domain.ClientValue;
 import org.apache.olingo.commons.api.edm.EdmPrimitiveTypeKind;
 import org.apache.olingo.commons.api.format.ODataFormat;
 import org.apache.olingo.fit.AbstractBaseTestITCase;

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/17152920/fit/src/test/java/org/apache/olingo/fit/tecsvc/client/BasicITCase.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/tecsvc/client/BasicITCase.java b/fit/src/test/java/org/apache/olingo/fit/tecsvc/client/BasicITCase.java
index 8a19000..5463ffa 100644
--- a/fit/src/test/java/org/apache/olingo/fit/tecsvc/client/BasicITCase.java
+++ b/fit/src/test/java/org/apache/olingo/fit/tecsvc/client/BasicITCase.java
@@ -53,17 +53,17 @@ import org.apache.olingo.client.api.communication.response.ODataRetrieveResponse
 import org.apache.olingo.client.api.edm.xml.Reference;
 import org.apache.olingo.client.api.edm.xml.XMLMetadata;
 import org.apache.olingo.client.core.ODataClientFactory;
-import org.apache.olingo.commons.api.domain.ClientAnnotation;
-import org.apache.olingo.commons.api.domain.ClientComplexValue;
-import org.apache.olingo.commons.api.domain.ClientEntity;
-import org.apache.olingo.commons.api.domain.ClientEntitySet;
-import org.apache.olingo.commons.api.domain.ClientError;
-import org.apache.olingo.commons.api.domain.ClientInlineEntity;
-import org.apache.olingo.commons.api.domain.ClientInlineEntitySet;
-import org.apache.olingo.commons.api.domain.ClientObjectFactory;
-import org.apache.olingo.commons.api.domain.ClientProperty;
-import org.apache.olingo.commons.api.domain.ClientServiceDocument;
-import org.apache.olingo.commons.api.domain.ClientValue;
+import org.apache.olingo.client.api.domain.ClientAnnotation;
+import org.apache.olingo.client.api.domain.ClientComplexValue;
+import org.apache.olingo.client.api.domain.ClientEntity;
+import org.apache.olingo.client.api.domain.ClientEntitySet;
+import org.apache.olingo.commons.api.domain.ODataError;
+import org.apache.olingo.client.api.domain.ClientInlineEntity;
+import org.apache.olingo.client.api.domain.ClientInlineEntitySet;
+import org.apache.olingo.client.api.domain.ClientObjectFactory;
+import org.apache.olingo.client.api.domain.ClientProperty;
+import org.apache.olingo.client.api.domain.ClientServiceDocument;
+import org.apache.olingo.client.api.domain.ClientValue;
 import org.apache.olingo.commons.api.edm.Edm;
 import org.apache.olingo.commons.api.edm.EdmPrimitiveTypeException;
 import org.apache.olingo.commons.api.edm.FullQualifiedName;
@@ -174,7 +174,7 @@ public class BasicITCase extends AbstractBaseTestITCase {
       fail("Expected Exception not thrown!");
     } catch (final ODataClientErrorException e) {
       assertEquals(HttpStatusCode.BAD_REQUEST.getStatusCode(), e.getStatusLine().getStatusCode());
-      final ClientError error = e.getODataError();
+      final ODataError error = e.getODataError();
       assertThat(error.getMessage(), containsString("key property"));
     }
   }
@@ -464,22 +464,26 @@ public class BasicITCase extends AbstractBaseTestITCase {
                 .add(
                     of.newComplexValue("CTPrimComp")
                         .add(
-                            of.newPrimitiveProperty("PropertyInt16", of.newPrimitiveValueBuilder().buildInt16(
-                                (short) 42)))
+                            of.newPrimitiveProperty("PropertyInt16", of.newPrimitiveValueBuilder()
+                                .buildInt16(
+                                    (short) 42)))
                         .add(
                             of.newComplexProperty("PropertyComp", of.newComplexValue("CTAllPrim")
                                 .add(
-                                    of.newPrimitiveProperty("PropertyString", of.newPrimitiveValueBuilder()
+                                    of.newPrimitiveProperty("PropertyString", of
+                                        .newPrimitiveValueBuilder()
                                         .buildString("42"))))))
                 .add(
                     of.newComplexValue("CTPrimComp")
                         .add(
-                            of.newPrimitiveProperty("PropertyInt16", of.newPrimitiveValueBuilder().buildInt16(
-                                (short) 43)))
+                            of.newPrimitiveProperty("PropertyInt16", of.newPrimitiveValueBuilder()
+                                .buildInt16(
+                                    (short) 43)))
                         .add(
                             of.newComplexProperty("PropertyComp", of.newComplexValue("CTAllPrim")
                                 .add(
-                                    of.newPrimitiveProperty("PropertyString", of.newPrimitiveValueBuilder()
+                                    of.newPrimitiveProperty("PropertyString", of
+                                        .newPrimitiveValueBuilder()
                                         .buildString("43"))))))));
 
     final URI uri = getClient().newURIBuilder(SERVICE_URI)
@@ -489,8 +493,8 @@ public class BasicITCase extends AbstractBaseTestITCase {
 
     final ODataEntityUpdateResponse<ClientEntity> response = getClient().getCUDRequestFactory()
         .getEntityUpdateRequest(uri,
-            UpdateType.PATCH,
-            entity)
+                UpdateType.PATCH,
+                entity)
         .execute();
 
     assertEquals(HttpStatusCode.NO_CONTENT.getStatusCode(), response.getStatusCode());
@@ -536,38 +540,27 @@ public class BasicITCase extends AbstractBaseTestITCase {
     final ClientEntity entity = of.newEntity(new FullQualifiedName("olingo.odata.test1", "ETKeyNav"));
     entity.getProperties().add(
         of.newPrimitiveProperty("PropertyString",
-            of.newPrimitiveValueBuilder().buildString("Complex collection test")));
+                                of.newPrimitiveValueBuilder().buildString("Complex collection test")));
     entity.getProperties().add(of.newComplexProperty("PropertyCompTwoPrim",
-        of.newComplexValue("CTTwoPrim")
-            .add(of.newPrimitiveProperty("PropertyInt16", of.newPrimitiveValueBuilder().buildInt16((short) 1)))
-            .add(of.newPrimitiveProperty("PropertyString", of.newPrimitiveValueBuilder().buildString("1")))));
-
-    entity.getProperties().add(
-        of.newCollectionProperty("CollPropertyComp",
-            of.newCollectionValue("CTPrimComp")
-                .add(
-                    of.newComplexValue("CTPrimComp")
-                        .add(
-                            of.newPrimitiveProperty("PropertyInt16", of.newPrimitiveValueBuilder()
-                                .buildInt16((short) 1)))
-                        .add(
-                            of.newComplexProperty("PropertyComp", of.newComplexValue("CTAllPrim")
-                                .add(
-                                    of.newPrimitiveProperty("PropertyString", of.newPrimitiveValueBuilder()
-                                        .buildString("1"))))))
-                .add(
-                    of.newComplexValue("CTPrimComp")
-                        .add(
-                            of.newComplexProperty("PropertyComp", of.newComplexValue("CTAllPrim")
-                                .add(
-                                    of.newPrimitiveProperty("PropertyString", of.newPrimitiveValueBuilder()
-                                        .buildString("2")))
-                                .add(
-                                    of.newPrimitiveProperty("PropertyInt16", of.newPrimitiveValueBuilder().buildInt16(
-                                        (short) 2)))
-                                .add(
-                                    of.newPrimitiveProperty("PropertySingle", of.newPrimitiveValueBuilder()
-                                        .buildSingle(2.0f))))))));
+         of.newComplexValue("CTTwoPrim")
+           .add(of.newPrimitiveProperty("PropertyInt16", of.newPrimitiveValueBuilder().buildInt16((short) 1)))
+           .add(of.newPrimitiveProperty("PropertyString", of.newPrimitiveValueBuilder().buildString("1")))));
+
+    entity.getProperties().add(of.newCollectionProperty("CollPropertyComp",
+        of.newCollectionValue("CTPrimComp")
+          .add(of.newComplexValue("CTPrimComp")
+                  .add(of.newPrimitiveProperty("PropertyInt16", of.newPrimitiveValueBuilder().buildInt16((short) 1)))
+                  .add(of.newComplexProperty("PropertyComp", of.newComplexValue("CTAllPrim")
+                          .add(of.newPrimitiveProperty("PropertyString",
+                                  of.newPrimitiveValueBuilder().buildString("1"))))))
+          .add(of.newComplexValue("CTPrimComp")
+                  .add(of.newComplexProperty("PropertyComp", of.newComplexValue("CTAllPrim")
+                          .add(of.newPrimitiveProperty("PropertyString", of.newPrimitiveValueBuilder().buildString
+                                  ("2")))
+                          .add(of.newPrimitiveProperty("PropertyInt16", of.newPrimitiveValueBuilder().buildInt16(
+                                  (short) 2)))
+                          .add(of.newPrimitiveProperty("PropertySingle",
+                                  of.newPrimitiveValueBuilder().buildSingle(2.0f))))))));
 
     entity.addLink(of.newEntityNavigationLink("NavPropertyETTwoKeyNavOne",
         getClient().newURIBuilder(SERVICE_URI)
@@ -678,9 +671,9 @@ public class BasicITCase extends AbstractBaseTestITCase {
 
     final ODataEntityRequest<ClientEntity> entityRequest = client.getRetrieveRequestFactory()
         .getEntityRequest(client.newURIBuilder()
-            .appendEntitySetSegment("ESTwoPrim")
-            .appendKeySegment(key)
-            .build());
+                .appendEntitySetSegment("ESTwoPrim")
+                .appendKeySegment(key)
+                .build());
     entityRequest.addCustomHeader(HttpHeader.COOKIE, cookie);
     final ODataRetrieveResponse<ClientEntity> responseEntityRequest = entityRequest.execute();
     assertEquals(HttpStatusCode.OK.getStatusCode(), responseEntityRequest.getStatusCode());
@@ -754,7 +747,7 @@ public class BasicITCase extends AbstractBaseTestITCase {
     entity.getProperties().add(of.newComplexProperty("PropertyCompAllPrim",
         of.newComplexValue("CTAllPrim")
             .add(of.newPrimitiveProperty("PropertyString",
-                of.newPrimitiveValueBuilder().buildString("Changed")))));
+                    of.newPrimitiveValueBuilder().buildString("Changed")))));
 
     final ODataEntityUpdateResponse<ClientEntity> response = client.getCUDRequestFactory()
         .getEntityUpdateRequest(targetURI, UpdateType.PATCH, entity)
@@ -765,11 +758,11 @@ public class BasicITCase extends AbstractBaseTestITCase {
 
     final ODataEntityRequest<ClientEntity> entityRequest = client.getRetrieveRequestFactory()
         .getEntityRequest(
-            client.newURIBuilder()
-                .appendEntitySetSegment("ESKeyNav")
-                .appendKeySegment(1)
-                .expand("NavPropertyETKeyNavOne", "NavPropertyETKeyNavMany")
-                .build());
+                client.newURIBuilder()
+                        .appendEntitySetSegment("ESKeyNav")
+                        .appendKeySegment(1)
+                        .expand("NavPropertyETKeyNavOne", "NavPropertyETKeyNavMany")
+                        .build());
     entityRequest.addCustomHeader(HttpHeader.COOKIE, cookie);
     final ODataRetrieveResponse<ClientEntity> entitytResponse = entityRequest.execute();
 
@@ -854,7 +847,7 @@ public class BasicITCase extends AbstractBaseTestITCase {
     entity.getProperties().add(of.newComplexProperty("PropertyCompAllPrim",
         of.newComplexValue("CTAllPrim")
             .add(of.newPrimitiveProperty("PropertyString",
-                of.newPrimitiveValueBuilder().buildString("Changed")))));
+                    of.newPrimitiveValueBuilder().buildString("Changed")))));
 
     final ODataEntityUpdateResponse<ClientEntity> response = client.getCUDRequestFactory()
         .getEntityUpdateRequest(targetURI, UpdateType.REPLACE, entity)
@@ -865,11 +858,11 @@ public class BasicITCase extends AbstractBaseTestITCase {
 
     final ODataEntityRequest<ClientEntity> entityRequest = client.getRetrieveRequestFactory()
         .getEntityRequest(
-            client.newURIBuilder()
-                .appendEntitySetSegment("ESKeyNav")
-                .appendKeySegment(1)
-                .expand("NavPropertyETKeyNavOne", "NavPropertyETKeyNavMany")
-                .build());
+                client.newURIBuilder()
+                        .appendEntitySetSegment("ESKeyNav")
+                        .appendKeySegment(1)
+                        .expand("NavPropertyETKeyNavOne", "NavPropertyETKeyNavMany")
+                        .build());
     entityRequest.addCustomHeader(HttpHeader.COOKIE, cookie);
     final ODataRetrieveResponse<ClientEntity> entitytResponse = entityRequest.execute();
 

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/17152920/fit/src/test/java/org/apache/olingo/fit/tecsvc/client/BatchClientITCase.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/tecsvc/client/BatchClientITCase.java b/fit/src/test/java/org/apache/olingo/fit/tecsvc/client/BatchClientITCase.java
index c03490c..08bb95a 100644
--- a/fit/src/test/java/org/apache/olingo/fit/tecsvc/client/BatchClientITCase.java
+++ b/fit/src/test/java/org/apache/olingo/fit/tecsvc/client/BatchClientITCase.java
@@ -45,9 +45,9 @@ import org.apache.olingo.client.api.communication.response.ODataRetrieveResponse
 import org.apache.olingo.client.api.http.HttpClientException;
 import org.apache.olingo.client.api.uri.URIBuilder;
 import org.apache.olingo.client.core.communication.request.batch.ODataChangesetResponseItem;
-import org.apache.olingo.commons.api.domain.ClientEntity;
-import org.apache.olingo.commons.api.domain.ClientEntitySet;
-import org.apache.olingo.commons.api.domain.ClientObjectFactory;
+import org.apache.olingo.client.api.domain.ClientEntity;
+import org.apache.olingo.client.api.domain.ClientEntitySet;
+import org.apache.olingo.client.api.domain.ClientObjectFactory;
 import org.apache.olingo.commons.api.edm.EdmPrimitiveTypeException;
 import org.apache.olingo.commons.api.edm.FullQualifiedName;
 import org.apache.olingo.commons.api.format.ContentType;

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/17152920/fit/src/test/java/org/apache/olingo/fit/tecsvc/client/BindingITCase.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/tecsvc/client/BindingITCase.java b/fit/src/test/java/org/apache/olingo/fit/tecsvc/client/BindingITCase.java
index 57a3ed2..daad079 100644
--- a/fit/src/test/java/org/apache/olingo/fit/tecsvc/client/BindingITCase.java
+++ b/fit/src/test/java/org/apache/olingo/fit/tecsvc/client/BindingITCase.java
@@ -35,12 +35,12 @@ import org.apache.olingo.client.api.communication.response.ODataEntityCreateResp
 import org.apache.olingo.client.api.communication.response.ODataEntityUpdateResponse;
 import org.apache.olingo.client.api.communication.response.ODataRetrieveResponse;
 import org.apache.olingo.client.core.ODataClientFactory;
-import org.apache.olingo.commons.api.domain.ClientEntity;
-import org.apache.olingo.commons.api.domain.ClientInlineEntity;
-import org.apache.olingo.commons.api.domain.ClientLink;
-import org.apache.olingo.commons.api.domain.ClientObjectFactory;
-import org.apache.olingo.commons.api.domain.ClientProperty;
-import org.apache.olingo.commons.api.domain.ClientValue;
+import org.apache.olingo.client.api.domain.ClientEntity;
+import org.apache.olingo.client.api.domain.ClientInlineEntity;
+import org.apache.olingo.client.api.domain.ClientLink;
+import org.apache.olingo.client.api.domain.ClientObjectFactory;
+import org.apache.olingo.client.api.domain.ClientProperty;
+import org.apache.olingo.client.api.domain.ClientValue;
 import org.apache.olingo.commons.api.edm.EdmPrimitiveTypeException;
 import org.apache.olingo.commons.api.edm.FullQualifiedName;
 import org.apache.olingo.commons.api.format.ODataFormat;
@@ -107,6 +107,7 @@ public class BindingITCase extends AbstractBaseTestITCase {
             .appendEntitySetSegment(ES_TWO_KEY_NAV)
             .appendKeySegment(new LinkedHashMap<String, Object>() {
               private static final long serialVersionUID = 3109256773218160485L;
+
               {
                 put(PROPERTY_INT16, 3);
                 put(PROPERTY_STRING, "1");
@@ -348,6 +349,7 @@ public class BindingITCase extends AbstractBaseTestITCase {
             .appendEntitySetSegment(ES_TWO_KEY_NAV)
             .appendKeySegment(new LinkedHashMap<String, Object>() {
               private static final long serialVersionUID = 3109256773218160485L;
+
               {
                 put(PROPERTY_INT16, 3);
                 put(PROPERTY_STRING, "1");
@@ -362,6 +364,7 @@ public class BindingITCase extends AbstractBaseTestITCase {
             .appendEntitySetSegment(ES_TWO_KEY_NAV)
             .appendKeySegment(new LinkedHashMap<String, Object>() {
               private static final long serialVersionUID = 3109256773218160485L;
+
               {
                 put(PROPERTY_INT16, 3);
                 put(PROPERTY_STRING, "1");

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/17152920/fit/src/test/java/org/apache/olingo/fit/tecsvc/client/DeepInsertITCase.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/tecsvc/client/DeepInsertITCase.java b/fit/src/test/java/org/apache/olingo/fit/tecsvc/client/DeepInsertITCase.java
index 5e25b79..4bec968 100644
--- a/fit/src/test/java/org/apache/olingo/fit/tecsvc/client/DeepInsertITCase.java
+++ b/fit/src/test/java/org/apache/olingo/fit/tecsvc/client/DeepInsertITCase.java
@@ -40,15 +40,15 @@ import org.apache.olingo.client.api.communication.response.ODataEntityCreateResp
 import org.apache.olingo.client.api.communication.response.ODataEntityUpdateResponse;
 import org.apache.olingo.client.api.communication.response.ODataRetrieveResponse;
 import org.apache.olingo.client.core.ODataClientFactory;
-import org.apache.olingo.commons.api.domain.ClientComplexValue;
-import org.apache.olingo.commons.api.domain.ClientEntity;
-import org.apache.olingo.commons.api.domain.ClientEntitySet;
-import org.apache.olingo.commons.api.domain.ClientInlineEntity;
-import org.apache.olingo.commons.api.domain.ClientInlineEntitySet;
-import org.apache.olingo.commons.api.domain.ClientLink;
-import org.apache.olingo.commons.api.domain.ClientObjectFactory;
-import org.apache.olingo.commons.api.domain.ClientProperty;
-import org.apache.olingo.commons.api.domain.ClientValue;
+import org.apache.olingo.client.api.domain.ClientComplexValue;
+import org.apache.olingo.client.api.domain.ClientEntity;
+import org.apache.olingo.client.api.domain.ClientEntitySet;
+import org.apache.olingo.client.api.domain.ClientInlineEntity;
+import org.apache.olingo.client.api.domain.ClientInlineEntitySet;
+import org.apache.olingo.client.api.domain.ClientLink;
+import org.apache.olingo.client.api.domain.ClientObjectFactory;
+import org.apache.olingo.client.api.domain.ClientProperty;
+import org.apache.olingo.client.api.domain.ClientValue;
 import org.apache.olingo.commons.api.edm.EdmPrimitiveTypeException;
 import org.apache.olingo.commons.api.edm.FullQualifiedName;
 import org.apache.olingo.commons.api.format.ODataFormat;

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/17152920/fit/src/test/java/org/apache/olingo/fit/tecsvc/client/ExpandSelectITCase.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/tecsvc/client/ExpandSelectITCase.java b/fit/src/test/java/org/apache/olingo/fit/tecsvc/client/ExpandSelectITCase.java
index 9a430ff..a4fc570 100644
--- a/fit/src/test/java/org/apache/olingo/fit/tecsvc/client/ExpandSelectITCase.java
+++ b/fit/src/test/java/org/apache/olingo/fit/tecsvc/client/ExpandSelectITCase.java
@@ -28,12 +28,12 @@ import org.apache.olingo.client.api.ODataClient;
 import org.apache.olingo.client.api.communication.request.retrieve.ODataEntityRequest;
 import org.apache.olingo.client.api.communication.response.ODataRetrieveResponse;
 import org.apache.olingo.client.core.ODataClientFactory;
-import org.apache.olingo.commons.api.domain.ClientEntity;
-import org.apache.olingo.commons.api.domain.ClientInlineEntity;
-import org.apache.olingo.commons.api.domain.ClientInlineEntitySet;
-import org.apache.olingo.commons.api.domain.ClientLink;
-import org.apache.olingo.commons.api.domain.ClientLinkType;
-import org.apache.olingo.commons.api.domain.ClientProperty;
+import org.apache.olingo.client.api.domain.ClientEntity;
+import org.apache.olingo.client.api.domain.ClientInlineEntity;
+import org.apache.olingo.client.api.domain.ClientInlineEntitySet;
+import org.apache.olingo.client.api.domain.ClientLink;
+import org.apache.olingo.client.api.domain.ClientLinkType;
+import org.apache.olingo.client.api.domain.ClientProperty;
 import org.apache.olingo.commons.api.http.HttpStatusCode;
 import org.apache.olingo.fit.AbstractBaseTestITCase;
 import org.apache.olingo.fit.tecsvc.TecSvcConst;

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/17152920/fit/src/test/java/org/apache/olingo/fit/tecsvc/client/ExpandWithSystemQueryOptionsITCase.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/tecsvc/client/ExpandWithSystemQueryOptionsITCase.java b/fit/src/test/java/org/apache/olingo/fit/tecsvc/client/ExpandWithSystemQueryOptionsITCase.java
index 38aec61..1f13f88 100644
--- a/fit/src/test/java/org/apache/olingo/fit/tecsvc/client/ExpandWithSystemQueryOptionsITCase.java
+++ b/fit/src/test/java/org/apache/olingo/fit/tecsvc/client/ExpandWithSystemQueryOptionsITCase.java
@@ -33,8 +33,8 @@ import org.apache.olingo.client.api.communication.request.retrieve.ODataEntitySe
 import org.apache.olingo.client.api.communication.response.ODataRetrieveResponse;
 import org.apache.olingo.client.api.uri.QueryOption;
 import org.apache.olingo.client.core.ODataClientFactory;
-import org.apache.olingo.commons.api.domain.ClientEntity;
-import org.apache.olingo.commons.api.domain.ClientEntitySet;
+import org.apache.olingo.client.api.domain.ClientEntity;
+import org.apache.olingo.client.api.domain.ClientEntitySet;
 import org.apache.olingo.commons.api.format.ODataFormat;
 import org.apache.olingo.commons.api.http.HttpHeader;
 import org.apache.olingo.commons.api.http.HttpStatusCode;

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/17152920/fit/src/test/java/org/apache/olingo/fit/tecsvc/client/FilterSystemQueryITCase.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/tecsvc/client/FilterSystemQueryITCase.java b/fit/src/test/java/org/apache/olingo/fit/tecsvc/client/FilterSystemQueryITCase.java
index 383b709..02a287c 100644
--- a/fit/src/test/java/org/apache/olingo/fit/tecsvc/client/FilterSystemQueryITCase.java
+++ b/fit/src/test/java/org/apache/olingo/fit/tecsvc/client/FilterSystemQueryITCase.java
@@ -30,10 +30,10 @@ import org.apache.olingo.client.api.communication.request.retrieve.ODataEntitySe
 import org.apache.olingo.client.api.communication.response.ODataEntityCreateResponse;
 import org.apache.olingo.client.api.communication.response.ODataRetrieveResponse;
 import org.apache.olingo.client.core.ODataClientFactory;
-import org.apache.olingo.commons.api.domain.ClientEntity;
-import org.apache.olingo.commons.api.domain.ClientEntitySet;
-import org.apache.olingo.commons.api.domain.ClientObjectFactory;
-import org.apache.olingo.commons.api.domain.ClientValuable;
+import org.apache.olingo.client.api.domain.ClientEntity;
+import org.apache.olingo.client.api.domain.ClientEntitySet;
+import org.apache.olingo.client.api.domain.ClientObjectFactory;
+import org.apache.olingo.client.api.domain.ClientValuable;
 import org.apache.olingo.commons.api.edm.FullQualifiedName;
 import org.apache.olingo.commons.api.format.ODataFormat;
 import org.apache.olingo.commons.api.http.HttpHeader;

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/17152920/fit/src/test/java/org/apache/olingo/fit/tecsvc/client/FunctionImportITCase.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/tecsvc/client/FunctionImportITCase.java b/fit/src/test/java/org/apache/olingo/fit/tecsvc/client/FunctionImportITCase.java
index 9078d8f..ae7dabf 100644
--- a/fit/src/test/java/org/apache/olingo/fit/tecsvc/client/FunctionImportITCase.java
+++ b/fit/src/test/java/org/apache/olingo/fit/tecsvc/client/FunctionImportITCase.java
@@ -34,11 +34,11 @@ import org.apache.olingo.client.api.communication.response.ODataInvokeResponse;
 import org.apache.olingo.client.api.communication.response.ODataRawResponse;
 import org.apache.olingo.client.api.communication.response.ODataRetrieveResponse;
 import org.apache.olingo.client.core.ODataClientFactory;
-import org.apache.olingo.commons.api.domain.ClientEntity;
-import org.apache.olingo.commons.api.domain.ClientEntitySet;
-import org.apache.olingo.commons.api.domain.ClientPrimitiveValue;
-import org.apache.olingo.commons.api.domain.ClientProperty;
-import org.apache.olingo.commons.api.domain.ClientValue;
+import org.apache.olingo.client.api.domain.ClientEntity;
+import org.apache.olingo.client.api.domain.ClientEntitySet;
+import org.apache.olingo.client.api.domain.ClientPrimitiveValue;
+import org.apache.olingo.client.api.domain.ClientProperty;
+import org.apache.olingo.client.api.domain.ClientValue;
 import org.apache.olingo.commons.api.format.ODataFormat;
 import org.apache.olingo.commons.api.http.HttpStatusCode;
 import org.apache.olingo.fit.AbstractBaseTestITCase;

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/17152920/fit/src/test/java/org/apache/olingo/fit/tecsvc/client/MediaITCase.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/tecsvc/client/MediaITCase.java b/fit/src/test/java/org/apache/olingo/fit/tecsvc/client/MediaITCase.java
index 5df211c..582cf43 100644
--- a/fit/src/test/java/org/apache/olingo/fit/tecsvc/client/MediaITCase.java
+++ b/fit/src/test/java/org/apache/olingo/fit/tecsvc/client/MediaITCase.java
@@ -39,8 +39,8 @@ import org.apache.olingo.client.api.communication.response.ODataMediaEntityCreat
 import org.apache.olingo.client.api.communication.response.ODataMediaEntityUpdateResponse;
 import org.apache.olingo.client.api.communication.response.ODataRetrieveResponse;
 import org.apache.olingo.client.core.ODataClientFactory;
-import org.apache.olingo.commons.api.domain.ClientEntity;
-import org.apache.olingo.commons.api.domain.ClientProperty;
+import org.apache.olingo.client.api.domain.ClientEntity;
+import org.apache.olingo.client.api.domain.ClientProperty;
 import org.apache.olingo.commons.api.format.ContentType;
 import org.apache.olingo.commons.api.format.ODataFormat;
 import org.apache.olingo.commons.api.http.HttpHeader;

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/17152920/fit/src/test/java/org/apache/olingo/fit/tecsvc/client/NavigationITCase.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/tecsvc/client/NavigationITCase.java b/fit/src/test/java/org/apache/olingo/fit/tecsvc/client/NavigationITCase.java
index 46261b2..b3db254 100644
--- a/fit/src/test/java/org/apache/olingo/fit/tecsvc/client/NavigationITCase.java
+++ b/fit/src/test/java/org/apache/olingo/fit/tecsvc/client/NavigationITCase.java
@@ -24,9 +24,9 @@ import static org.junit.Assert.assertNotNull;
 import org.apache.olingo.client.api.ODataClient;
 import org.apache.olingo.client.api.communication.response.ODataRetrieveResponse;
 import org.apache.olingo.client.core.ODataClientFactory;
-import org.apache.olingo.commons.api.domain.ClientEntity;
-import org.apache.olingo.commons.api.domain.ClientEntitySet;
-import org.apache.olingo.commons.api.domain.ClientProperty;
+import org.apache.olingo.client.api.domain.ClientEntity;
+import org.apache.olingo.client.api.domain.ClientEntitySet;
+import org.apache.olingo.client.api.domain.ClientProperty;
 import org.apache.olingo.commons.api.format.ODataFormat;
 import org.apache.olingo.commons.api.http.HttpStatusCode;
 import org.apache.olingo.fit.AbstractBaseTestITCase;

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/17152920/fit/src/test/java/org/apache/olingo/fit/tecsvc/client/OrderBySystemQueryITCase.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/tecsvc/client/OrderBySystemQueryITCase.java b/fit/src/test/java/org/apache/olingo/fit/tecsvc/client/OrderBySystemQueryITCase.java
index 629f856..26be32e 100644
--- a/fit/src/test/java/org/apache/olingo/fit/tecsvc/client/OrderBySystemQueryITCase.java
+++ b/fit/src/test/java/org/apache/olingo/fit/tecsvc/client/OrderBySystemQueryITCase.java
@@ -27,9 +27,9 @@ import org.apache.olingo.client.api.communication.ODataClientErrorException;
 import org.apache.olingo.client.api.communication.request.retrieve.ODataEntitySetRequest;
 import org.apache.olingo.client.api.communication.response.ODataRetrieveResponse;
 import org.apache.olingo.client.core.ODataClientFactory;
-import org.apache.olingo.commons.api.domain.ClientEntity;
-import org.apache.olingo.commons.api.domain.ClientEntitySet;
-import org.apache.olingo.commons.api.domain.ClientValuable;
+import org.apache.olingo.client.api.domain.ClientEntity;
+import org.apache.olingo.client.api.domain.ClientEntitySet;
+import org.apache.olingo.client.api.domain.ClientValuable;
 import org.apache.olingo.commons.api.format.ODataFormat;
 import org.apache.olingo.commons.api.http.HttpStatusCode;
 import org.apache.olingo.fit.AbstractBaseTestITCase;

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/17152920/fit/src/test/java/org/apache/olingo/fit/tecsvc/client/PrimitiveComplexITCase.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/tecsvc/client/PrimitiveComplexITCase.java b/fit/src/test/java/org/apache/olingo/fit/tecsvc/client/PrimitiveComplexITCase.java
index 892cdd5..814fad4 100644
--- a/fit/src/test/java/org/apache/olingo/fit/tecsvc/client/PrimitiveComplexITCase.java
+++ b/fit/src/test/java/org/apache/olingo/fit/tecsvc/client/PrimitiveComplexITCase.java
@@ -36,8 +36,8 @@ import org.apache.olingo.client.api.communication.request.retrieve.ODataValueReq
 import org.apache.olingo.client.api.communication.response.ODataDeleteResponse;
 import org.apache.olingo.client.api.communication.response.ODataRetrieveResponse;
 import org.apache.olingo.client.core.ODataClientFactory;
-import org.apache.olingo.commons.api.domain.ClientPrimitiveValue;
-import org.apache.olingo.commons.api.domain.ClientProperty;
+import org.apache.olingo.client.api.domain.ClientPrimitiveValue;
+import org.apache.olingo.client.api.domain.ClientProperty;
 import org.apache.olingo.commons.api.format.ContentType;
 import org.apache.olingo.commons.api.format.ODataFormat;
 import org.apache.olingo.commons.api.http.HttpHeader;

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/17152920/fit/src/test/java/org/apache/olingo/fit/tecsvc/client/SystemQueryOptionITCase.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/tecsvc/client/SystemQueryOptionITCase.java b/fit/src/test/java/org/apache/olingo/fit/tecsvc/client/SystemQueryOptionITCase.java
index 995925b..4362f44 100644
--- a/fit/src/test/java/org/apache/olingo/fit/tecsvc/client/SystemQueryOptionITCase.java
+++ b/fit/src/test/java/org/apache/olingo/fit/tecsvc/client/SystemQueryOptionITCase.java
@@ -28,8 +28,8 @@ import org.apache.olingo.client.api.communication.ODataClientErrorException;
 import org.apache.olingo.client.api.communication.response.ODataRetrieveResponse;
 import org.apache.olingo.client.api.uri.QueryOption;
 import org.apache.olingo.client.core.ODataClientFactory;
-import org.apache.olingo.commons.api.domain.ClientEntity;
-import org.apache.olingo.commons.api.domain.ClientEntitySet;
+import org.apache.olingo.client.api.domain.ClientEntity;
+import org.apache.olingo.client.api.domain.ClientEntitySet;
 import org.apache.olingo.commons.api.format.ODataFormat;
 import org.apache.olingo.commons.api.http.HttpStatusCode;
 import org.apache.olingo.fit.AbstractBaseTestITCase;

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/17152920/fit/src/test/java/org/apache/olingo/fit/v4/AbstractTestITCase.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/v4/AbstractTestITCase.java b/fit/src/test/java/org/apache/olingo/fit/v4/AbstractTestITCase.java
index 8a4bcdc..c740607 100644
--- a/fit/src/test/java/org/apache/olingo/fit/v4/AbstractTestITCase.java
+++ b/fit/src/test/java/org/apache/olingo/fit/v4/AbstractTestITCase.java
@@ -26,15 +26,15 @@ import org.apache.olingo.client.api.communication.request.retrieve.ODataEntityRe
 import org.apache.olingo.client.api.communication.response.ODataDeleteResponse;
 import org.apache.olingo.client.api.communication.response.ODataRetrieveResponse;
 import org.apache.olingo.client.core.ODataClientFactory;
-import org.apache.olingo.commons.api.domain.ClientCollectionValue;
-import org.apache.olingo.commons.api.domain.ClientEntity;
-import org.apache.olingo.commons.api.domain.ClientProperty;
-import org.apache.olingo.commons.api.domain.ClientValue;
+import org.apache.olingo.client.api.domain.ClientCollectionValue;
+import org.apache.olingo.client.api.domain.ClientEntity;
+import org.apache.olingo.client.api.domain.ClientProperty;
+import org.apache.olingo.client.api.domain.ClientValue;
 import org.apache.olingo.commons.api.edm.EdmPrimitiveTypeKind;
 import org.apache.olingo.commons.api.edm.FullQualifiedName;
 import org.apache.olingo.commons.api.format.ContentType;
 import org.apache.olingo.commons.api.format.ODataFormat;
-import org.apache.olingo.commons.core.domain.ClientEntityImpl;
+import org.apache.olingo.client.core.domain.ClientEntityImpl;
 import org.apache.olingo.fit.AbstractBaseTestITCase;
 import org.junit.BeforeClass;
 

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/17152920/fit/src/test/java/org/apache/olingo/fit/v4/AsyncTestITCase.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/v4/AsyncTestITCase.java b/fit/src/test/java/org/apache/olingo/fit/v4/AsyncTestITCase.java
index 3e9a85f..ad89514 100644
--- a/fit/src/test/java/org/apache/olingo/fit/v4/AsyncTestITCase.java
+++ b/fit/src/test/java/org/apache/olingo/fit/v4/AsyncTestITCase.java
@@ -24,11 +24,11 @@ import org.apache.olingo.client.api.communication.request.retrieve.ODataEntitySe
 import org.apache.olingo.client.api.communication.response.AsyncResponseWrapper;
 import org.apache.olingo.client.api.communication.response.ODataRetrieveResponse;
 import org.apache.olingo.client.api.uri.URIBuilder;
-import org.apache.olingo.commons.api.domain.ClientEntity;
-import org.apache.olingo.commons.api.domain.ClientProperty;
-import org.apache.olingo.commons.api.domain.ClientEntitySet;
-import org.apache.olingo.commons.api.domain.ClientInlineEntity;
-import org.apache.olingo.commons.api.domain.ClientLink;
+import org.apache.olingo.client.api.domain.ClientEntity;
+import org.apache.olingo.client.api.domain.ClientProperty;
+import org.apache.olingo.client.api.domain.ClientEntitySet;
+import org.apache.olingo.client.api.domain.ClientInlineEntity;
+import org.apache.olingo.client.api.domain.ClientLink;
 import org.apache.olingo.commons.api.format.ODataFormat;
 import org.junit.Test;
 

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/17152920/fit/src/test/java/org/apache/olingo/fit/v4/AuthBatchTestITCase.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/v4/AuthBatchTestITCase.java b/fit/src/test/java/org/apache/olingo/fit/v4/AuthBatchTestITCase.java
index a76e97a..f5175e0 100644
--- a/fit/src/test/java/org/apache/olingo/fit/v4/AuthBatchTestITCase.java
+++ b/fit/src/test/java/org/apache/olingo/fit/v4/AuthBatchTestITCase.java
@@ -31,7 +31,7 @@ import org.apache.olingo.client.api.http.HttpClientException;
 import org.apache.olingo.client.api.uri.URIBuilder;
 import org.apache.olingo.client.core.ODataClientFactory;
 import org.apache.olingo.client.core.http.BasicAuthHttpClientFactory;
-import org.apache.olingo.commons.api.domain.ClientEntity;
+import org.apache.olingo.client.api.domain.ClientEntity;
 import org.apache.olingo.commons.api.edm.EdmPrimitiveTypeException;
 import org.apache.olingo.commons.api.edm.FullQualifiedName;
 import org.apache.olingo.commons.api.format.ContentType;

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/17152920/fit/src/test/java/org/apache/olingo/fit/v4/BatchTestITCase.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/v4/BatchTestITCase.java b/fit/src/test/java/org/apache/olingo/fit/v4/BatchTestITCase.java
index 880dd95..33509da 100644
--- a/fit/src/test/java/org/apache/olingo/fit/v4/BatchTestITCase.java
+++ b/fit/src/test/java/org/apache/olingo/fit/v4/BatchTestITCase.java
@@ -46,8 +46,8 @@ import org.apache.olingo.client.core.communication.request.batch.ODataSingleResp
 import org.apache.olingo.client.core.communication.request.retrieve.ODataEntityRequestImpl;
 import org.apache.olingo.client.core.communication.request.retrieve.ODataEntityRequestImpl.ODataEntityResponseImpl;
 import org.apache.olingo.client.core.uri.URIUtils;
-import org.apache.olingo.commons.api.domain.ClientEntity;
-import org.apache.olingo.commons.api.domain.ClientEntitySet;
+import org.apache.olingo.client.api.domain.ClientEntity;
+import org.apache.olingo.client.api.domain.ClientEntitySet;
 import org.apache.olingo.commons.api.edm.EdmPrimitiveTypeException;
 import org.apache.olingo.commons.api.edm.EdmPrimitiveTypeKind;
 import org.apache.olingo.commons.api.edm.FullQualifiedName;

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/17152920/fit/src/test/java/org/apache/olingo/fit/v4/BoundOperationInvokeTestITCase.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/v4/BoundOperationInvokeTestITCase.java b/fit/src/test/java/org/apache/olingo/fit/v4/BoundOperationInvokeTestITCase.java
index b48902f..1437e8c 100644
--- a/fit/src/test/java/org/apache/olingo/fit/v4/BoundOperationInvokeTestITCase.java
+++ b/fit/src/test/java/org/apache/olingo/fit/v4/BoundOperationInvokeTestITCase.java
@@ -21,16 +21,16 @@ package org.apache.olingo.fit.v4;
 import org.apache.olingo.client.api.communication.request.invoke.ODataInvokeRequest;
 import org.apache.olingo.client.api.communication.request.retrieve.ODataEntityRequest;
 import org.apache.olingo.client.api.uri.URIBuilder;
-import org.apache.olingo.commons.api.domain.ClientCollectionValue;
-import org.apache.olingo.commons.api.domain.ClientComplexValue;
-import org.apache.olingo.commons.api.domain.ClientEntity;
-import org.apache.olingo.commons.api.domain.ClientEntitySet;
-import org.apache.olingo.commons.api.domain.ClientEnumValue;
-import org.apache.olingo.commons.api.domain.ClientOperation;
-import org.apache.olingo.commons.api.domain.ClientPrimitiveValue;
-import org.apache.olingo.commons.api.domain.ClientProperty;
-import org.apache.olingo.commons.api.domain.ClientSingleton;
-import org.apache.olingo.commons.api.domain.ClientValue;
+import org.apache.olingo.client.api.domain.ClientCollectionValue;
+import org.apache.olingo.client.api.domain.ClientComplexValue;
+import org.apache.olingo.client.api.domain.ClientEntity;
+import org.apache.olingo.client.api.domain.ClientEntitySet;
+import org.apache.olingo.client.api.domain.ClientEnumValue;
+import org.apache.olingo.client.api.domain.ClientOperation;
+import org.apache.olingo.client.api.domain.ClientPrimitiveValue;
+import org.apache.olingo.client.api.domain.ClientProperty;
+import org.apache.olingo.client.api.domain.ClientSingleton;
+import org.apache.olingo.client.api.domain.ClientValue;
 import org.apache.olingo.commons.api.edm.EdmPrimitiveTypeException;
 import org.apache.olingo.commons.api.edm.EdmPrimitiveTypeKind;
 import org.apache.olingo.commons.api.edm.FullQualifiedName;

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/17152920/fit/src/test/java/org/apache/olingo/fit/v4/ConformanceTestITCase.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/v4/ConformanceTestITCase.java b/fit/src/test/java/org/apache/olingo/fit/v4/ConformanceTestITCase.java
index 06e3552..3ca87ce 100644
--- a/fit/src/test/java/org/apache/olingo/fit/v4/ConformanceTestITCase.java
+++ b/fit/src/test/java/org/apache/olingo/fit/v4/ConformanceTestITCase.java
@@ -46,16 +46,16 @@ import org.apache.olingo.client.api.uri.URIBuilder;
 import org.apache.olingo.client.core.http.BasicAuthHttpClientFactory;
 import org.apache.olingo.client.core.http.DefaultHttpClientFactory;
 import org.apache.olingo.client.core.uri.URIUtils;
-import org.apache.olingo.commons.api.domain.ClientCollectionValue;
-import org.apache.olingo.commons.api.domain.ClientDelta;
-import org.apache.olingo.commons.api.domain.ClientEntity;
-import org.apache.olingo.commons.api.domain.ClientEntitySet;
-import org.apache.olingo.commons.api.domain.ClientProperty;
-import org.apache.olingo.commons.api.domain.ClientValue;
+import org.apache.olingo.client.api.domain.ClientCollectionValue;
+import org.apache.olingo.client.api.domain.ClientDelta;
+import org.apache.olingo.client.api.domain.ClientEntity;
+import org.apache.olingo.client.api.domain.ClientEntitySet;
+import org.apache.olingo.client.api.domain.ClientProperty;
+import org.apache.olingo.client.api.domain.ClientValue;
 import org.apache.olingo.commons.api.edm.EdmPrimitiveTypeKind;
 import org.apache.olingo.commons.api.edm.FullQualifiedName;
 import org.apache.olingo.commons.api.format.ODataFormat;
-import org.apache.olingo.commons.core.domain.ClientEntityImpl;
+import org.apache.olingo.client.core.domain.ClientEntityImpl;
 import org.junit.Test;
 
 /**


[39/50] [abbrv] olingo-odata4 git commit: [OLINGO-564] Renamed 'OData*' to 'Client*' classes

Posted by mi...@apache.org.
http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/c37d4da5/fit/src/test/java/org/apache/olingo/fit/tecsvc/client/BindingITCase.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/tecsvc/client/BindingITCase.java b/fit/src/test/java/org/apache/olingo/fit/tecsvc/client/BindingITCase.java
index 74b7718..57a3ed2 100644
--- a/fit/src/test/java/org/apache/olingo/fit/tecsvc/client/BindingITCase.java
+++ b/fit/src/test/java/org/apache/olingo/fit/tecsvc/client/BindingITCase.java
@@ -35,12 +35,12 @@ import org.apache.olingo.client.api.communication.response.ODataEntityCreateResp
 import org.apache.olingo.client.api.communication.response.ODataEntityUpdateResponse;
 import org.apache.olingo.client.api.communication.response.ODataRetrieveResponse;
 import org.apache.olingo.client.core.ODataClientFactory;
-import org.apache.olingo.commons.api.domain.ODataEntity;
-import org.apache.olingo.commons.api.domain.ODataInlineEntity;
-import org.apache.olingo.commons.api.domain.ODataLink;
-import org.apache.olingo.commons.api.domain.ODataObjectFactory;
-import org.apache.olingo.commons.api.domain.ODataProperty;
-import org.apache.olingo.commons.api.domain.ODataValue;
+import org.apache.olingo.commons.api.domain.ClientEntity;
+import org.apache.olingo.commons.api.domain.ClientInlineEntity;
+import org.apache.olingo.commons.api.domain.ClientLink;
+import org.apache.olingo.commons.api.domain.ClientObjectFactory;
+import org.apache.olingo.commons.api.domain.ClientProperty;
+import org.apache.olingo.commons.api.domain.ClientValue;
 import org.apache.olingo.commons.api.edm.EdmPrimitiveTypeException;
 import org.apache.olingo.commons.api.edm.FullQualifiedName;
 import org.apache.olingo.commons.api.format.ODataFormat;
@@ -77,10 +77,10 @@ public class BindingITCase extends AbstractBaseTestITCase {
   public void testCreateBindingSimple() throws EdmPrimitiveTypeException {
     final ODataClient client = getClient();
     final URI createURI = client.newURIBuilder(SERVICE_URI).appendEntitySetSegment(ES_KEY_NAV).build();
-    final ODataObjectFactory of = client.getObjectFactory();
+    final ClientObjectFactory of = client.getObjectFactory();
 
     // Create entity (EntitySet: ESKeyNav, Type: ETKeyNav)
-    final ODataEntity entity = of.newEntity(ET_KEY_NAV);
+    final ClientEntity entity = of.newEntity(ET_KEY_NAV);
     entity.getProperties()
         .add(of.newPrimitiveProperty(PROPERTY_INT16, of.newPrimitiveValueBuilder().buildInt16((short) 42)));
     entity.getProperties()
@@ -102,26 +102,26 @@ public class BindingITCase extends AbstractBaseTestITCase {
                 .add(of.newPrimitiveProperty(PROPERTY_INT16, of.newPrimitiveValueBuilder().buildInt16((short) 42)))))));
 
     // Bind existing entities via binding synatx
-    entity.addLink(of.newEntityNavigationLink(NAV_PROPERTY_ET_TWO_KEY_NAV_ONE, 
+    entity.addLink(of.newEntityNavigationLink(NAV_PROPERTY_ET_TWO_KEY_NAV_ONE,
         client.newURIBuilder(SERVICE_URI)
-              .appendEntitySetSegment(ES_TWO_KEY_NAV)
-              .appendKeySegment(new LinkedHashMap<String, Object>() {
-                private static final long serialVersionUID = 3109256773218160485L;
-                {
-                  put(PROPERTY_INT16, 3);
-                  put(PROPERTY_STRING, "1");
-                }
-              }).build()));
-    
-    final ODataLink navLinkOne =
+            .appendEntitySetSegment(ES_TWO_KEY_NAV)
+            .appendKeySegment(new LinkedHashMap<String, Object>() {
+              private static final long serialVersionUID = 3109256773218160485L;
+              {
+                put(PROPERTY_INT16, 3);
+                put(PROPERTY_STRING, "1");
+              }
+            }).build()));
+
+    final ClientLink navLinkOne =
         of.newEntityNavigationLink(NAV_PROPERTY_ET_KEY_NAV_ONE, client.newURIBuilder(SERVICE_URI)
             .appendEntitySetSegment(
                 ES_KEY_NAV).appendKeySegment(1).build());
-    final ODataLink navLinkMany1 =
+    final ClientLink navLinkMany1 =
         of.newEntitySetNavigationLink(NAV_PROPERTY_ET_KEY_NAV_MANY, client.newURIBuilder(SERVICE_URI)
             .appendEntitySetSegment(
                 ES_KEY_NAV).appendKeySegment(2).build());
-    final ODataLink navLinkMany2 =
+    final ClientLink navLinkMany2 =
         of.newEntitySetNavigationLink(NAV_PROPERTY_ET_KEY_NAV_MANY, client.newURIBuilder(SERVICE_URI)
             .appendEntitySetSegment(
                 ES_KEY_NAV).appendKeySegment(3).build());
@@ -129,7 +129,7 @@ public class BindingITCase extends AbstractBaseTestITCase {
     final HashMap<String, Object> combinedKey = new HashMap<String, Object>();
     combinedKey.put(PROPERTY_INT16, 1);
     combinedKey.put(PROPERTY_STRING, "1");
-    final ODataLink navLink2Many =
+    final ClientLink navLink2Many =
         of.newEntitySetNavigationLink(NAV_PROPERTY_ET_TWO_KEY_NAV_MANY, client.newURIBuilder(SERVICE_URI)
             .appendEntitySetSegment(ES_TWO_KEY_NAV).appendKeySegment(combinedKey).build());
 
@@ -138,7 +138,7 @@ public class BindingITCase extends AbstractBaseTestITCase {
     entity.addLink(navLinkMany2);
     entity.addLink(navLink2Many);
 
-    final ODataEntityCreateResponse<ODataEntity> createResponse =
+    final ODataEntityCreateResponse<ClientEntity> createResponse =
         client.getCUDRequestFactory().getEntityCreateRequest(createURI, entity).execute();
     final String cookie = createResponse.getHeader(HttpHeader.SET_COOKIE).iterator().next();
     final Short entityInt16Key =
@@ -149,17 +149,17 @@ public class BindingITCase extends AbstractBaseTestITCase {
         client.newURIBuilder(SERVICE_URI).appendEntitySetSegment(ES_KEY_NAV).appendKeySegment(entityInt16Key).expand(
             NAV_PROPERTY_ET_KEY_NAV_ONE, NAV_PROPERTY_ET_KEY_NAV_MANY, NAV_PROPERTY_ET_TWO_KEY_NAV_MANY).build();
 
-    final ODataEntityRequest<ODataEntity> entityGetRequest =
+    final ODataEntityRequest<ClientEntity> entityGetRequest =
         client.getRetrieveRequestFactory().getEntityRequest(entityGetURI);
     entityGetRequest.addCustomHeader(HttpHeader.COOKIE, cookie);
-    final ODataRetrieveResponse<ODataEntity> entityGetResponse = entityGetRequest.execute();
+    final ODataRetrieveResponse<ClientEntity> entityGetResponse = entityGetRequest.execute();
 
     // NAV_PROPERTY_ET_KEY_NAV_ONE
     assertEquals(1, entityGetResponse.getBody().getProperty(NAV_PROPERTY_ET_KEY_NAV_ONE).getComplexValue().get(
         PROPERTY_INT16).getPrimitiveValue().toValue());
 
     // NAV_PROPERTY_ET_KEY_NAV_MANY(0)
-    Iterator<ODataValue> iterator =
+    Iterator<ClientValue> iterator =
         entityGetResponse.getBody().getProperty(NAV_PROPERTY_ET_KEY_NAV_MANY).getCollectionValue().iterator();
     assertEquals(2, iterator.next().asComplex().get(PROPERTY_INT16).getPrimitiveValue().toValue());
 
@@ -176,10 +176,10 @@ public class BindingITCase extends AbstractBaseTestITCase {
     final URI etTwoKeyNavEntityURI =
         client.newURIBuilder(SERVICE_URI).appendEntitySetSegment(ES_TWO_KEY_NAV).appendKeySegment(combinedKey).expand(
             NAV_PROPERTY_ET_KEY_NAV_ONE).build();
-    final ODataEntityRequest<ODataEntity> etTwoKeyNavEntityRequest =
+    final ODataEntityRequest<ClientEntity> etTwoKeyNavEntityRequest =
         client.getRetrieveRequestFactory().getEntityRequest(etTwoKeyNavEntityURI);
     etTwoKeyNavEntityRequest.addCustomHeader(HttpHeader.COOKIE, cookie);
-    final ODataRetrieveResponse<ODataEntity> etTwoKeyNavEntityResponse = etTwoKeyNavEntityRequest.execute();
+    final ODataRetrieveResponse<ClientEntity> etTwoKeyNavEntityResponse = etTwoKeyNavEntityRequest.execute();
 
     assertEquals(entityInt16Key, etTwoKeyNavEntityResponse.getBody().getProperty(NAV_PROPERTY_ET_KEY_NAV_ONE)
         .getComplexValue().get(PROPERTY_INT16).getPrimitiveValue().toCastValue(Short.class));
@@ -194,23 +194,23 @@ public class BindingITCase extends AbstractBaseTestITCase {
     final ODataClient client = getClient();
     final URI entityURI =
         client.newURIBuilder(SERVICE_URI).appendEntitySetSegment(ES_KEY_NAV).appendKeySegment(1).build();
-    final ODataObjectFactory of = client.getObjectFactory();
+    final ClientObjectFactory of = client.getObjectFactory();
 
     // ESKeyNav(1).NavPropertyETKeyNavOne = ESKeyNav(2)
     // ESKeyNav(1).NavPropertyETKeyNavMany = { ESKeyNav(1), ESKeyNav(2) }
     // => Replace NavPropertyETKeyNavOne with ESKeyNav(3)
     // => Add to NavPropertyETKeyNavOne ESKeyNav(3)
-    final ODataEntity entity = of.newEntity(ET_KEY_NAV);
-    final ODataLink navLinkOne =
+    final ClientEntity entity = of.newEntity(ET_KEY_NAV);
+    final ClientLink navLinkOne =
         of.newEntityNavigationLink(NAV_PROPERTY_ET_KEY_NAV_ONE, client.newURIBuilder(SERVICE_URI)
             .appendEntitySetSegment(ES_KEY_NAV).appendKeySegment(3).build());
-    final ODataLink navLinkMany =
+    final ClientLink navLinkMany =
         of.newEntitySetNavigationLink(NAV_PROPERTY_ET_KEY_NAV_MANY, client.newURIBuilder(SERVICE_URI)
             .appendEntitySetSegment(ES_KEY_NAV).appendKeySegment(3).build());
     entity.addLink(navLinkOne);
     entity.addLink(navLinkMany);
 
-    final ODataEntityUpdateResponse<ODataEntity> updateResponse =
+    final ODataEntityUpdateResponse<ClientEntity> updateResponse =
         client.getCUDRequestFactory().getEntityUpdateRequest(entityURI, UpdateType.PATCH, entity).execute();
     final String cookie = updateResponse.getHeader(HttpHeader.SET_COOKIE).iterator().next();
 
@@ -218,16 +218,16 @@ public class BindingITCase extends AbstractBaseTestITCase {
     final URI entityGetURI =
         client.newURIBuilder(SERVICE_URI).appendEntitySetSegment(ES_KEY_NAV).appendKeySegment(1).expand(
             NAV_PROPERTY_ET_KEY_NAV_ONE, NAV_PROPERTY_ET_KEY_NAV_MANY).build();
-    final ODataEntityRequest<ODataEntity> entityRequest =
+    final ODataEntityRequest<ClientEntity> entityRequest =
         client.getRetrieveRequestFactory().getEntityRequest(entityGetURI);
     entityRequest.addCustomHeader(HttpHeader.COOKIE, cookie);
-    final ODataRetrieveResponse<ODataEntity> entityResponse = entityRequest.execute();
+    final ODataRetrieveResponse<ClientEntity> entityResponse = entityRequest.execute();
 
     assertEquals(3, entityResponse.getBody().getProperty(NAV_PROPERTY_ET_KEY_NAV_ONE).getComplexValue().get(
         PROPERTY_INT16).getPrimitiveValue().toValue());
     assertEquals(3, entityResponse.getBody().getProperty(NAV_PROPERTY_ET_KEY_NAV_MANY).getCollectionValue().size());
 
-    Iterator<ODataValue> iterator =
+    Iterator<ClientValue> iterator =
         entityResponse.getBody().getProperty(NAV_PROPERTY_ET_KEY_NAV_MANY).getCollectionValue().iterator();
     assertEquals(1, iterator.next().asComplex().get(PROPERTY_INT16).getPrimitiveValue().toValue());
     assertEquals(2, iterator.next().asComplex().get(PROPERTY_INT16).getPrimitiveValue().toValue());
@@ -244,16 +244,16 @@ public class BindingITCase extends AbstractBaseTestITCase {
     final ODataClient client = getClient();
     final URI entityURI =
         client.newURIBuilder(SERVICE_URI).appendEntitySetSegment(ES_KEY_NAV).appendKeySegment(1).build();
-    final ODataObjectFactory of = client.getObjectFactory();
+    final ClientObjectFactory of = client.getObjectFactory();
 
     // Request to single (non collection) navigation property
-    ODataEntity entity = of.newEntity(ET_KEY_NAV);
-    final ODataLink navLinkOne =
+    ClientEntity entity = of.newEntity(ET_KEY_NAV);
+    final ClientLink navLinkOne =
         of.newEntityNavigationLink(NAV_PROPERTY_ET_KEY_NAV_ONE, client.newURIBuilder(SERVICE_URI)
             .appendEntitySetSegment(ES_KEY_NAV).appendKeySegment(42).build());
     entity.addLink(navLinkOne);
 
-    ODataEntityUpdateResponse<ODataEntity> updateResponse = null;
+    ODataEntityUpdateResponse<ClientEntity> updateResponse = null;
     try {
       updateResponse =
           client.getCUDRequestFactory().getEntityUpdateRequest(entityURI, UpdateType.PATCH, entity).execute();
@@ -264,7 +264,7 @@ public class BindingITCase extends AbstractBaseTestITCase {
 
     // Request to collection navigation propetry
     entity = of.newEntity(ET_KEY_NAV);
-    final ODataLink navLinkMany =
+    final ClientLink navLinkMany =
         of.newEntitySetNavigationLink(NAV_PROPERTY_ET_KEY_NAV_MANY, client.newURIBuilder(SERVICE_URI)
             .appendEntitySetSegment(ES_KEY_NAV).appendKeySegment(3).build());
     entity.addLink(navLinkMany);
@@ -282,114 +282,114 @@ public class BindingITCase extends AbstractBaseTestITCase {
     final ODataClient client = getClient();
     final URI entityURI =
         client.newURIBuilder(SERVICE_URI).appendEntitySetSegment(ES_KEY_NAV).appendKeySegment(1).build();
-    final ODataObjectFactory of = client.getObjectFactory();
+    final ClientObjectFactory of = client.getObjectFactory();
 
     // Request to single (non collection) navigation property
-    ODataEntity entity = of.newEntity(ET_KEY_NAV);
-    final ODataProperty navPropery = of.newComplexProperty(NAV_PROPERTY_ET_KEY_NAV_ONE, null);
+    ClientEntity entity = of.newEntity(ET_KEY_NAV);
+    final ClientProperty navPropery = of.newComplexProperty(NAV_PROPERTY_ET_KEY_NAV_ONE, null);
     entity.getProperties().add(navPropery);
 
-    ODataEntityUpdateResponse<ODataEntity> updateResponse =
+    ODataEntityUpdateResponse<ClientEntity> updateResponse =
         client.getCUDRequestFactory().getEntityUpdateRequest(entityURI, UpdateType.PATCH, entity).execute();
     assertEquals(HttpStatusCode.NO_CONTENT.getStatusCode(), updateResponse.getStatusCode());
 
-    final ODataEntityRequest<ODataEntity> getRequest =
+    final ODataEntityRequest<ClientEntity> getRequest =
         client.getRetrieveRequestFactory().getEntityRequest(
             client.newURIBuilder(SERVICE_URI).appendEntitySetSegment(ES_KEY_NAV).appendKeySegment(1).expand(
                 NAV_PROPERTY_ET_KEY_NAV_ONE).build());
     getRequest.addCustomHeader(HttpHeader.COOKIE, updateResponse.getHeader(HttpHeader.SET_COOKIE).iterator().next());
-    final ODataRetrieveResponse<ODataEntity> getResponse = getRequest.execute();
+    final ODataRetrieveResponse<ClientEntity> getResponse = getRequest.execute();
 
-    ODataProperty property = getResponse.getBody().getProperty(NAV_PROPERTY_ET_KEY_NAV_ONE);
+    ClientProperty property = getResponse.getBody().getProperty(NAV_PROPERTY_ET_KEY_NAV_ONE);
     assertEquals(null, property.getPrimitiveValue());
   }
-  
+
   @Test
   public void testUpdateCollectionNavigationPropertyWithNull() {
     final ODataClient client = getClient();
     final URI entityURI =
         client.newURIBuilder(SERVICE_URI).appendEntitySetSegment(ES_KEY_NAV).appendKeySegment(1).build();
-    final ODataObjectFactory of = client.getObjectFactory();
+    final ClientObjectFactory of = client.getObjectFactory();
 
     // Request to single (non collection) navigation property
-    ODataEntity entity = of.newEntity(ET_KEY_NAV);
-    final ODataProperty navPropery = of.newComplexProperty(NAV_PROPERTY_ET_KEY_NAV_MANY, null);
+    ClientEntity entity = of.newEntity(ET_KEY_NAV);
+    final ClientProperty navPropery = of.newComplexProperty(NAV_PROPERTY_ET_KEY_NAV_MANY, null);
     entity.getProperties().add(navPropery);
 
     try {
       client.getCUDRequestFactory().getEntityUpdateRequest(entityURI, UpdateType.PATCH, entity).execute();
       fail();
-    } catch(ODataClientErrorException e) {
+    } catch (ODataClientErrorException e) {
       assertEquals(HttpStatusCode.BAD_REQUEST.getStatusCode(), e.getStatusLine().getStatusCode());
     }
   }
-  
+
   @Test
   public void testDeepInsertWithBindingSameNavigationProperty() {
-   final EdmEnabledODataClient client = ODataClientFactory.getEdmEnabledClient(SERVICE_URI);
-   client.getConfiguration().setDefaultPubFormat(ODataFormat.JSON);
-   final ODataObjectFactory of = client.getObjectFactory();
-   
-   final ODataEntity entity = of.newEntity(ET_KEY_NAV);
-   entity.getProperties().add(of.newPrimitiveProperty(PROPERTY_STRING, of.newPrimitiveValueBuilder()
-         .buildString("1")));
-   entity.getProperties().add(of.newComplexProperty(PROPERTY_COMP_TWO_PRIM, of.newComplexValue(CT_TWO_PRIM)
-       .add(of.newPrimitiveProperty(PROPERTY_INT16, of.newPrimitiveValueBuilder().buildInt16((short)1)))
-       .add(of.newPrimitiveProperty(PROPERTY_STRING, of.newPrimitiveValueBuilder().buildString("1")))));
-   
-   final ODataEntity innerEntity = of.newEntity(ET_KEY_NAV);
-   innerEntity.getProperties().add(of.newPrimitiveProperty(PROPERTY_STRING, of.newPrimitiveValueBuilder()
+    final EdmEnabledODataClient client = ODataClientFactory.getEdmEnabledClient(SERVICE_URI);
+    client.getConfiguration().setDefaultPubFormat(ODataFormat.JSON);
+    final ClientObjectFactory of = client.getObjectFactory();
+
+    final ClientEntity entity = of.newEntity(ET_KEY_NAV);
+    entity.getProperties().add(of.newPrimitiveProperty(PROPERTY_STRING, of.newPrimitiveValueBuilder()
+        .buildString("1")));
+    entity.getProperties().add(of.newComplexProperty(PROPERTY_COMP_TWO_PRIM, of.newComplexValue(CT_TWO_PRIM)
+        .add(of.newPrimitiveProperty(PROPERTY_INT16, of.newPrimitiveValueBuilder().buildInt16((short) 1)))
+        .add(of.newPrimitiveProperty(PROPERTY_STRING, of.newPrimitiveValueBuilder().buildString("1")))));
+
+    final ClientEntity innerEntity = of.newEntity(ET_KEY_NAV);
+    innerEntity.getProperties().add(of.newPrimitiveProperty(PROPERTY_STRING, of.newPrimitiveValueBuilder()
         .buildString("2")));
-   innerEntity.getProperties().add(of.newComplexProperty(PROPERTY_COMP_TWO_PRIM, of.newComplexValue(CT_TWO_PRIM)
+    innerEntity.getProperties().add(of.newComplexProperty(PROPERTY_COMP_TWO_PRIM, of.newComplexValue(CT_TWO_PRIM)
         .add(of.newPrimitiveProperty(PROPERTY_INT16, of.newPrimitiveValueBuilder().buildInt16((short) 1)))
         .add(of.newPrimitiveProperty(PROPERTY_STRING, of.newPrimitiveValueBuilder().buildString("2")))));
-   innerEntity.addLink(of.newEntityNavigationLink(NAV_PROPERTY_ET_TWO_KEY_NAV_ONE, 
-       client.newURIBuilder(SERVICE_URI)
-             .appendEntitySetSegment(ES_TWO_KEY_NAV)
-             .appendKeySegment(new LinkedHashMap<String, Object>() {
-               private static final long serialVersionUID = 3109256773218160485L;
-               {
-                 put(PROPERTY_INT16, 3);
-                 put(PROPERTY_STRING, "1");
-               }
-             }).build()));
-   
-   final ODataInlineEntity inlineLink = of.newDeepInsertEntity(NAV_PROPERTY_ET_KEY_NAV_ONE, innerEntity);
-   entity.addLink(inlineLink);
-   
-   entity.addLink(of.newEntityNavigationLink(NAV_PROPERTY_ET_TWO_KEY_NAV_ONE, 
-       client.newURIBuilder(SERVICE_URI)
-             .appendEntitySetSegment(ES_TWO_KEY_NAV)
-             .appendKeySegment(new LinkedHashMap<String, Object>() {
-               private static final long serialVersionUID = 3109256773218160485L;
-               {
-                 put(PROPERTY_INT16, 3);
-                 put(PROPERTY_STRING, "1");
-               }
-             }).build()));
-   
-   final URI bindingURI = client.newURIBuilder(SERVICE_URI).appendEntitySetSegment(ES_KEY_NAV)
-                                                           .appendKeySegment(3)
-                                                           .build();
-   
-   entity.addLink(of.newEntityNavigationLink(NAV_PROPERTY_ET_KEY_NAV_ONE, bindingURI));
-   
-   final URI targetURI = client.newURIBuilder(SERVICE_URI).appendEntitySetSegment(ES_KEY_NAV).build();
-   final ODataEntityCreateResponse<ODataEntity> response = 
-       client.getCUDRequestFactory().getEntityCreateRequest(targetURI, entity).execute();
-   
-   assertEquals(HttpStatusCode.CREATED.getStatusCode(), response.getStatusCode());
-   
-   assertEquals(1, response.getBody().getNavigationLink(NAV_PROPERTY_ET_KEY_NAV_ONE)
-                                      .asInlineEntity()
-                                      .getEntity()
-              .getProperty(PROPERTY_COMP_TWO_PRIM)
-                    .getComplexValue()
-                                      .get(PROPERTY_INT16)
-                                      .getPrimitiveValue()
-                                      .toValue());
+    innerEntity.addLink(of.newEntityNavigationLink(NAV_PROPERTY_ET_TWO_KEY_NAV_ONE,
+        client.newURIBuilder(SERVICE_URI)
+            .appendEntitySetSegment(ES_TWO_KEY_NAV)
+            .appendKeySegment(new LinkedHashMap<String, Object>() {
+              private static final long serialVersionUID = 3109256773218160485L;
+              {
+                put(PROPERTY_INT16, 3);
+                put(PROPERTY_STRING, "1");
+              }
+            }).build()));
+
+    final ClientInlineEntity inlineLink = of.newDeepInsertEntity(NAV_PROPERTY_ET_KEY_NAV_ONE, innerEntity);
+    entity.addLink(inlineLink);
+
+    entity.addLink(of.newEntityNavigationLink(NAV_PROPERTY_ET_TWO_KEY_NAV_ONE,
+        client.newURIBuilder(SERVICE_URI)
+            .appendEntitySetSegment(ES_TWO_KEY_NAV)
+            .appendKeySegment(new LinkedHashMap<String, Object>() {
+              private static final long serialVersionUID = 3109256773218160485L;
+              {
+                put(PROPERTY_INT16, 3);
+                put(PROPERTY_STRING, "1");
+              }
+            }).build()));
+
+    final URI bindingURI = client.newURIBuilder(SERVICE_URI).appendEntitySetSegment(ES_KEY_NAV)
+        .appendKeySegment(3)
+        .build();
+
+    entity.addLink(of.newEntityNavigationLink(NAV_PROPERTY_ET_KEY_NAV_ONE, bindingURI));
+
+    final URI targetURI = client.newURIBuilder(SERVICE_URI).appendEntitySetSegment(ES_KEY_NAV).build();
+    final ODataEntityCreateResponse<ClientEntity> response =
+        client.getCUDRequestFactory().getEntityCreateRequest(targetURI, entity).execute();
+
+    assertEquals(HttpStatusCode.CREATED.getStatusCode(), response.getStatusCode());
+
+    assertEquals(1, response.getBody().getNavigationLink(NAV_PROPERTY_ET_KEY_NAV_ONE)
+        .asInlineEntity()
+        .getEntity()
+        .getProperty(PROPERTY_COMP_TWO_PRIM)
+        .getComplexValue()
+        .get(PROPERTY_INT16)
+        .getPrimitiveValue()
+        .toValue());
   }
-  
+
   @Override
   protected ODataClient getClient() {
     ODataClient odata = ODataClientFactory.getClient();

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/c37d4da5/fit/src/test/java/org/apache/olingo/fit/tecsvc/client/DeepInsertITCase.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/tecsvc/client/DeepInsertITCase.java b/fit/src/test/java/org/apache/olingo/fit/tecsvc/client/DeepInsertITCase.java
index b043a02..5e25b79 100644
--- a/fit/src/test/java/org/apache/olingo/fit/tecsvc/client/DeepInsertITCase.java
+++ b/fit/src/test/java/org/apache/olingo/fit/tecsvc/client/DeepInsertITCase.java
@@ -40,15 +40,15 @@ import org.apache.olingo.client.api.communication.response.ODataEntityCreateResp
 import org.apache.olingo.client.api.communication.response.ODataEntityUpdateResponse;
 import org.apache.olingo.client.api.communication.response.ODataRetrieveResponse;
 import org.apache.olingo.client.core.ODataClientFactory;
-import org.apache.olingo.commons.api.domain.ODataComplexValue;
-import org.apache.olingo.commons.api.domain.ODataEntity;
-import org.apache.olingo.commons.api.domain.ODataEntitySet;
-import org.apache.olingo.commons.api.domain.ODataInlineEntity;
-import org.apache.olingo.commons.api.domain.ODataInlineEntitySet;
-import org.apache.olingo.commons.api.domain.ODataLink;
-import org.apache.olingo.commons.api.domain.ODataObjectFactory;
-import org.apache.olingo.commons.api.domain.ODataProperty;
-import org.apache.olingo.commons.api.domain.ODataValue;
+import org.apache.olingo.commons.api.domain.ClientComplexValue;
+import org.apache.olingo.commons.api.domain.ClientEntity;
+import org.apache.olingo.commons.api.domain.ClientEntitySet;
+import org.apache.olingo.commons.api.domain.ClientInlineEntity;
+import org.apache.olingo.commons.api.domain.ClientInlineEntitySet;
+import org.apache.olingo.commons.api.domain.ClientLink;
+import org.apache.olingo.commons.api.domain.ClientObjectFactory;
+import org.apache.olingo.commons.api.domain.ClientProperty;
+import org.apache.olingo.commons.api.domain.ClientValue;
 import org.apache.olingo.commons.api.edm.EdmPrimitiveTypeException;
 import org.apache.olingo.commons.api.edm.FullQualifiedName;
 import org.apache.olingo.commons.api.format.ODataFormat;
@@ -93,8 +93,8 @@ public class DeepInsertITCase extends AbstractBaseTestITCase {
     final ODataClient client = ODataClientFactory.getEdmEnabledClient(SERVICE_URI);
     client.getConfiguration().setDefaultPubFormat(ODataFormat.JSON);
     final URI createURI = client.newURIBuilder(SERVICE_URI).appendEntitySetSegment(ES_KEY_NAV).build();
-    final ODataObjectFactory of = client.getObjectFactory();
-    final ODataEntity entity = of.newEntity(ET_KEY_NAV);
+    final ClientObjectFactory of = client.getObjectFactory();
+    final ClientEntity entity = of.newEntity(ET_KEY_NAV);
 
     // Root entity
     entity.getProperties().add(
@@ -106,7 +106,7 @@ public class DeepInsertITCase extends AbstractBaseTestITCase {
                 "String Property level 0, complex level 1")))));
 
     // First level NavPropertyETTwoKeyNavOne => Type ETTwoKeyNav
-    final ODataEntity firstLevelTwoKeyNav = of.newEntity(ET_TWO_KEY_NAV);
+    final ClientEntity firstLevelTwoKeyNav = of.newEntity(ET_TWO_KEY_NAV);
     firstLevelTwoKeyNav.getProperties().add(
         of.newComplexProperty(PROPERTY_COMP_TWO_PRIM, of.newComplexValue(CT_TWO_PRIM)
             .add(of.newPrimitiveProperty(PROPERTY_INT16, of.newPrimitiveValueBuilder().buildInt16((short) 42)))
@@ -116,12 +116,12 @@ public class DeepInsertITCase extends AbstractBaseTestITCase {
         of.newComplexProperty(PROPERTY_COMP, of.newComplexValue(CT_PRIM_COMP)));
     firstLevelTwoKeyNav.getProperties().add(
         of.newComplexProperty(PROPERTY_COMP_NAV, of.newComplexValue(CT_BASE_PRIM_COMP_NAV)));
-    final ODataInlineEntity firstLevelTwoKeyOneInline =
+    final ClientInlineEntity firstLevelTwoKeyOneInline =
         of.newDeepInsertEntity(NAV_PROPERTY_ET_TWO_KEY_NAV_ONE, firstLevelTwoKeyNav);
     entity.addLink(firstLevelTwoKeyOneInline);
 
     // Second level NavPropertyETTwoKeyNavOne => Type ETTwoKeyNav
-    final ODataEntity secondLevelTwoKeyNav = of.newEntity(ET_TWO_KEY_NAV);
+    final ClientEntity secondLevelTwoKeyNav = of.newEntity(ET_TWO_KEY_NAV);
     secondLevelTwoKeyNav.getProperties().add(
         of.newComplexProperty(PROPERTY_COMP_TWO_PRIM, of.newComplexValue(CT_TWO_PRIM)
             .add(of.newPrimitiveProperty(PROPERTY_INT16, of.newPrimitiveValueBuilder().buildInt16((short) 421)))
@@ -131,7 +131,7 @@ public class DeepInsertITCase extends AbstractBaseTestITCase {
         of.newComplexProperty(PROPERTY_COMP, of.newComplexValue(CT_PRIM_COMP)));
     secondLevelTwoKeyNav.getProperties().add(
         of.newComplexProperty(PROPERTY_COMP_NAV, of.newComplexValue(CT_BASE_PRIM_COMP_NAV)));
-    
+
     // Binding links
     secondLevelTwoKeyNav.addLink(of.newEntityNavigationLink(NAV_PROPERTY_ET_TWO_KEY_NAV_ONE, client.newURIBuilder(
         SERVICE_URI).appendEntitySetSegment(ES_TWO_KEY_NAV).appendKeySegment(new LinkedHashMap<String, Object>() {
@@ -142,12 +142,12 @@ public class DeepInsertITCase extends AbstractBaseTestITCase {
       }
     }).build()));
 
-    final ODataInlineEntity secondLevelTwoKeyOneInline =
+    final ClientInlineEntity secondLevelTwoKeyOneInline =
         of.newDeepInsertEntity(NAV_PROPERTY_ET_TWO_KEY_NAV_ONE, secondLevelTwoKeyNav);
     firstLevelTwoKeyNav.addLink(secondLevelTwoKeyOneInline);
 
     // Third level NavPropertyETTwoKeyNavMany => Type ETTwoKeyNav
-    final ODataEntity thirdLevelTwoKeyNavMany1 = of.newEntity(ET_TWO_KEY_NAV);
+    final ClientEntity thirdLevelTwoKeyNavMany1 = of.newEntity(ET_TWO_KEY_NAV);
     thirdLevelTwoKeyNavMany1.getProperties().add(
         of.newComplexProperty(PROPERTY_COMP_TWO_PRIM, of.newComplexValue(CT_TWO_PRIM)
             .add(of.newPrimitiveProperty(PROPERTY_INT16, of.newPrimitiveValueBuilder().buildInt16((short) 431)))
@@ -157,8 +157,8 @@ public class DeepInsertITCase extends AbstractBaseTestITCase {
         of.newComplexProperty(PROPERTY_COMP, of.newComplexValue(CT_PRIM_COMP)));
     thirdLevelTwoKeyNavMany1.getProperties().add(
         of.newComplexProperty(PROPERTY_COMP_NAV, of.newComplexValue(CT_BASE_PRIM_COMP_NAV)));
-    
-    final ODataEntity thirdLevelTwoKeyNavMany2 = of.newEntity(ET_TWO_KEY_NAV);
+
+    final ClientEntity thirdLevelTwoKeyNavMany2 = of.newEntity(ET_TWO_KEY_NAV);
     thirdLevelTwoKeyNavMany2.getProperties().add(
         of.newComplexProperty(PROPERTY_COMP_TWO_PRIM, of.newComplexValue(CT_TWO_PRIM)
             .add(of.newPrimitiveProperty(PROPERTY_INT16, of.newPrimitiveValueBuilder().buildInt16((short) 432)))
@@ -168,15 +168,15 @@ public class DeepInsertITCase extends AbstractBaseTestITCase {
         of.newComplexProperty(PROPERTY_COMP, of.newComplexValue(CT_PRIM_COMP)));
     thirdLevelTwoKeyNavMany2.getProperties().add(
         of.newComplexProperty(PROPERTY_COMP_NAV, of.newComplexValue(CT_BASE_PRIM_COMP_NAV)));
-    
-    final ODataEntitySet entitySetThirdLevelTwoKeyNavMany = of.newEntitySet();
+
+    final ClientEntitySet entitySetThirdLevelTwoKeyNavMany = of.newEntitySet();
     entitySetThirdLevelTwoKeyNavMany.getEntities().add(thirdLevelTwoKeyNavMany1);
     entitySetThirdLevelTwoKeyNavMany.getEntities().add(thirdLevelTwoKeyNavMany2);
     secondLevelTwoKeyNav.addLink(of.newDeepInsertEntitySet(NAV_PROPERTY_ET_TWO_KEY_NAV_MANY,
         entitySetThirdLevelTwoKeyNavMany));
 
     // First level NavPropertyETTwoKeyNavMany => Type ETTwoKeyNav
-    final ODataEntity firstLevelTwoKeyNavMany1 = of.newEntity(ET_TWO_KEY_NAV);
+    final ClientEntity firstLevelTwoKeyNavMany1 = of.newEntity(ET_TWO_KEY_NAV);
     firstLevelTwoKeyNavMany1.getProperties().add(
         of.newComplexProperty(PROPERTY_COMP_TWO_PRIM, of.newComplexValue(CT_TWO_PRIM)
             .add(of.newPrimitiveProperty(PROPERTY_INT16, of.newPrimitiveValueBuilder().buildInt16((short) 422)))
@@ -186,17 +186,17 @@ public class DeepInsertITCase extends AbstractBaseTestITCase {
         of.newComplexProperty(PROPERTY_COMP, of.newComplexValue(CT_PRIM_COMP)));
     firstLevelTwoKeyNavMany1.getProperties().add(
         of.newComplexProperty(PROPERTY_COMP_NAV, of.newComplexValue(CT_BASE_PRIM_COMP_NAV)));
-    
-    final ODataEntitySet entitySetfirstLevelTwoKeyNavMany = of.newEntitySet();
+
+    final ClientEntitySet entitySetfirstLevelTwoKeyNavMany = of.newEntitySet();
     entitySetfirstLevelTwoKeyNavMany.getEntities().add(firstLevelTwoKeyNavMany1);
     entity.addLink(of.newDeepInsertEntitySet(NAV_PROPERTY_ET_TWO_KEY_NAV_MANY,
         entitySetfirstLevelTwoKeyNavMany));
 
-    final ODataEntityCreateResponse<ODataEntity> createResponse =
+    final ODataEntityCreateResponse<ClientEntity> createResponse =
         client.getCUDRequestFactory().getEntityCreateRequest(createURI, entity).execute();
 
     // Check response
-    final ODataEntity resultEntityFirstLevel =
+    final ClientEntity resultEntityFirstLevel =
         createResponse.getBody().getNavigationLink(NAV_PROPERTY_ET_TWO_KEY_NAV_ONE).asInlineEntity().getEntity();
     assertEquals(42, resultEntityFirstLevel.getProperty(PROPERTY_COMP_TWO_PRIM).getComplexValue().get(PROPERTY_INT16)
         .getPrimitiveValue().toValue());
@@ -204,7 +204,7 @@ public class DeepInsertITCase extends AbstractBaseTestITCase {
         .getComplexValue().get(PROPERTY_STRING)
         .getPrimitiveValue().toValue());
 
-    final ODataEntity resultEntitySecondLevel =
+    final ClientEntity resultEntitySecondLevel =
         resultEntityFirstLevel.getNavigationLink(NAV_PROPERTY_ET_TWO_KEY_NAV_ONE).asInlineEntity().getEntity();
     assertEquals(421, resultEntitySecondLevel.getProperty(PROPERTY_COMP_TWO_PRIM).getComplexValue().get(PROPERTY_INT16)
         .getPrimitiveValue().toValue());
@@ -213,7 +213,7 @@ public class DeepInsertITCase extends AbstractBaseTestITCase {
         .getComplexValue().get(PROPERTY_STRING)
         .getPrimitiveValue().toValue());
 
-    final ODataEntitySet thirdLevelEntitySetNavMany =
+    final ClientEntitySet thirdLevelEntitySetNavMany =
         resultEntitySecondLevel.getNavigationLink(NAV_PROPERTY_ET_TWO_KEY_NAV_MANY).asInlineEntitySet().getEntitySet();
     assertEquals(2, thirdLevelEntitySetNavMany.getEntities().size());
 
@@ -227,7 +227,7 @@ public class DeepInsertITCase extends AbstractBaseTestITCase {
     assertEquals("String Property level 3, complex level 1", thirdLevelEntitySetNavMany.getEntities().get(1)
         .getProperty(PROPERTY_COMP_TWO_PRIM).getComplexValue().get(PROPERTY_STRING).getPrimitiveValue().toValue());
 
-    final ODataEntitySet firstLevelEntitySetNavMany =
+    final ClientEntitySet firstLevelEntitySetNavMany =
         createResponse.getBody().getNavigationLink(NAV_PROPERTY_ET_TWO_KEY_NAV_MANY).asInlineEntitySet().getEntitySet();
     assertEquals(1, firstLevelEntitySetNavMany.getEntities().size());
     assertEquals(422, firstLevelEntitySetNavMany.getEntities().get(0).getProperty(PROPERTY_COMP_TWO_PRIM)
@@ -240,8 +240,8 @@ public class DeepInsertITCase extends AbstractBaseTestITCase {
   public void testSimpleDeepInsert() throws EdmPrimitiveTypeException {
     final ODataClient client = getClient();
     final URI createURI = client.newURIBuilder(SERVICE_URI).appendEntitySetSegment(ES_KEY_NAV).build();
-    final ODataObjectFactory of = client.getObjectFactory();
-    final ODataEntity entity = client.getObjectFactory().newEntity(ET_KEY_NAV);
+    final ClientObjectFactory of = client.getObjectFactory();
+    final ClientEntity entity = client.getObjectFactory().newEntity(ET_KEY_NAV);
 
     // Prepare entity(EntitySet: ESKeyNav, Type: ETKeyNav)
     entity.getProperties()
@@ -266,7 +266,7 @@ public class DeepInsertITCase extends AbstractBaseTestITCase {
 
     // Non collection navigation property
     // Create related entity(EntitySet: ESTwoKeyNav, Type: ETTwoKeyNav, Nav. Property: NavPropertyETTwoKeyNavOne)
-    final ODataEntity inlineEntitySingle = client.getObjectFactory().newEntity(ET_TWO_KEY_NAV);
+    final ClientEntity inlineEntitySingle = client.getObjectFactory().newEntity(ET_TWO_KEY_NAV);
     inlineEntitySingle.getProperties()
         .add(of.newPrimitiveProperty(PROPERTY_INT16, of.newPrimitiveValueBuilder().buildInt16((short) 43)));
     inlineEntitySingle.getProperties()
@@ -284,7 +284,7 @@ public class DeepInsertITCase extends AbstractBaseTestITCase {
     // Collection navigation property
     // The navigation property has a partner navigation property named "NavPropertyETKeyNavOne"
     // Create related entity(EntitySet: ESTwoKeyNav, Type: NavPropertyETTwoKeyNavMany
-    final ODataEntity inlineEntityCol1 = client.getObjectFactory().newEntity(ET_TWO_KEY_NAV);
+    final ClientEntity inlineEntityCol1 = client.getObjectFactory().newEntity(ET_TWO_KEY_NAV);
     inlineEntityCol1.getProperties()
         .add(of.newPrimitiveProperty(PROPERTY_INT16, of.newPrimitiveValueBuilder().buildInt16((short) 44)));
     inlineEntityCol1.getProperties()
@@ -299,7 +299,7 @@ public class DeepInsertITCase extends AbstractBaseTestITCase {
             .add(of.newPrimitiveProperty(PROPERTY_INT16, of.newPrimitiveValueBuilder().buildInt16((short) 442)))
             .add(of.newPrimitiveProperty(PROPERTY_STRING, of.newPrimitiveValueBuilder().buildString("442")))));
 
-    final ODataEntity inlineEntityCol2 = client.getObjectFactory().newEntity(ET_TWO_KEY_NAV);
+    final ClientEntity inlineEntityCol2 = client.getObjectFactory().newEntity(ET_TWO_KEY_NAV);
     inlineEntityCol2.getProperties()
         .add(of.newPrimitiveProperty(PROPERTY_INT16, of.newPrimitiveValueBuilder().buildInt16((short) 45)));
     inlineEntityCol2.getProperties()
@@ -314,19 +314,19 @@ public class DeepInsertITCase extends AbstractBaseTestITCase {
             .add(of.newPrimitiveProperty(PROPERTY_INT16, of.newPrimitiveValueBuilder().buildInt16((short) 452)))
             .add(of.newPrimitiveProperty(PROPERTY_STRING, of.newPrimitiveValueBuilder().buildString("452")))));
 
-    final ODataInlineEntity newDeepInsertEntityLink =
+    final ClientInlineEntity newDeepInsertEntityLink =
         of.newDeepInsertEntity(NAV_PROPERTY_ET_TWO_KEY_NAV_ONE, inlineEntitySingle);
-    final ODataEntitySet newDeepInsertEntitySet = of.newEntitySet();
+    final ClientEntitySet newDeepInsertEntitySet = of.newEntitySet();
     newDeepInsertEntitySet.getEntities().add(inlineEntityCol1);
     newDeepInsertEntitySet.getEntities().add(inlineEntityCol2);
-    final ODataInlineEntitySet newDeepInsertEntitySetLink =
+    final ClientInlineEntitySet newDeepInsertEntitySetLink =
         of.newDeepInsertEntitySet(NAV_PROPERTY_ET_TWO_KEY_NAV_MANY, newDeepInsertEntitySet);
 
     entity.addLink(newDeepInsertEntityLink);
     entity.addLink(newDeepInsertEntitySetLink);
 
     // Perform create request
-    final ODataEntityCreateResponse<ODataEntity> responseCreate = client.getCUDRequestFactory()
+    final ODataEntityCreateResponse<ClientEntity> responseCreate = client.getCUDRequestFactory()
         .getEntityCreateRequest(createURI, entity)
         .execute();
     assertEquals(HttpStatusCode.CREATED.getStatusCode(), responseCreate.getStatusCode());
@@ -334,16 +334,16 @@ public class DeepInsertITCase extends AbstractBaseTestITCase {
     final String cookie = responseCreate.getHeader(HttpHeader.SET_COOKIE).toString();
 
     // Fetch ESKeyNav entity with expand of NavPropertyETTwoKeyNavOne nav. property
-    ODataProperty propertyInt16 = responseCreate.getBody().getProperty(PROPERTY_INT16);
+    ClientProperty propertyInt16 = responseCreate.getBody().getProperty(PROPERTY_INT16);
     final URI esKeyNavURI =
         client.newURIBuilder(SERVICE_URI).appendEntitySetSegment(ES_KEY_NAV).appendKeySegment(
             propertyInt16.getPrimitiveValue().toValue()).expand(NAV_PROPERTY_ET_TWO_KEY_NAV_ONE,
             NAV_PROPERTY_ET_TWO_KEY_NAV_MANY).build();
 
-    final ODataEntityRequest<ODataEntity> esKeyNavRequest = client.getRetrieveRequestFactory()
+    final ODataEntityRequest<ClientEntity> esKeyNavRequest = client.getRetrieveRequestFactory()
         .getEntityRequest(esKeyNavURI);
     esKeyNavRequest.addCustomHeader(HttpHeader.COOKIE, cookie);
-    final ODataRetrieveResponse<ODataEntity> esKeyNavResponse = esKeyNavRequest.execute();
+    final ODataRetrieveResponse<ClientEntity> esKeyNavResponse = esKeyNavRequest.execute();
 
     // Check nav. property NavPropertyETTwoKeyNavOne
     assertNotNull(esKeyNavResponse.getBody().getProperty(NAV_PROPERTY_ET_TWO_KEY_NAV_ONE));
@@ -354,12 +354,12 @@ public class DeepInsertITCase extends AbstractBaseTestITCase {
     assertNotNull(esKeyNavResponse.getBody().getProperty(NAV_PROPERTY_ET_TWO_KEY_NAV_MANY));
     assertEquals(2, esKeyNavResponse.getBody().getProperty(NAV_PROPERTY_ET_TWO_KEY_NAV_MANY).getCollectionValue()
         .size());
-    Iterator<ODataValue> twoKeyNavManyIterator =
+    Iterator<ClientValue> twoKeyNavManyIterator =
         esKeyNavResponse.getBody().getProperty(NAV_PROPERTY_ET_TWO_KEY_NAV_MANY).getCollectionValue().iterator();
-    final ODataValue firstTwoKeyNavEnity = twoKeyNavManyIterator.next(); // First entity
+    final ClientValue firstTwoKeyNavEnity = twoKeyNavManyIterator.next(); // First entity
     assertEquals(441, firstTwoKeyNavEnity.asComplex().get(PROPERTY_COMP_NAV).getValue().asComplex().get(
         PROPERTY_INT16).getPrimitiveValue().toValue());
-    final ODataValue secondTwoKeyNavEnity = twoKeyNavManyIterator.next(); // Second entity
+    final ClientValue secondTwoKeyNavEnity = twoKeyNavManyIterator.next(); // Second entity
     assertEquals(451, secondTwoKeyNavEnity.asComplex().get(PROPERTY_COMP_NAV).getValue().asComplex().get(
         PROPERTY_INT16).getPrimitiveValue().toValue());
 
@@ -378,10 +378,10 @@ public class DeepInsertITCase extends AbstractBaseTestITCase {
         .appendKeySegment(composedKey)
         .build();
 
-    final ODataEntityRequest<ODataEntity> esTwoKeyNavSingleRequest = client.getRetrieveRequestFactory()
+    final ODataEntityRequest<ClientEntity> esTwoKeyNavSingleRequest = client.getRetrieveRequestFactory()
         .getEntityRequest(esTwoKeyNavEntitySingleURI);
     esTwoKeyNavSingleRequest.addCustomHeader(HttpHeader.COOKIE, cookie);
-    final ODataRetrieveResponse<ODataEntity> esTwoKeyNavSingleResponse = esTwoKeyNavSingleRequest.execute();
+    final ODataRetrieveResponse<ClientEntity> esTwoKeyNavSingleResponse = esTwoKeyNavSingleRequest.execute();
     assertEquals(431, esTwoKeyNavSingleResponse.getBody().getProperty(PROPERTY_COMP_NAV).getComplexValue().get(
         PROPERTY_INT16).getPrimitiveValue().toValue());
 
@@ -395,10 +395,10 @@ public class DeepInsertITCase extends AbstractBaseTestITCase {
         client.newURIBuilder(SERVICE_URI).appendEntitySetSegment(ES_TWO_KEY_NAV).appendKeySegment(composedKey)
             .expand(NAV_PROPERTY_ET_KEY_NAV_ONE).build();
 
-    final ODataEntityRequest<ODataEntity> esTwoKeyNavManyOneRequest =
+    final ODataEntityRequest<ClientEntity> esTwoKeyNavManyOneRequest =
         client.getRetrieveRequestFactory().getEntityRequest(esTwoKeyNavEntityManyOneURI);
     esTwoKeyNavManyOneRequest.addCustomHeader(HttpHeader.COOKIE, cookie);
-    final ODataRetrieveResponse<ODataEntity> esTwoKeyNavManyOneResponse = esTwoKeyNavManyOneRequest.execute();
+    final ODataRetrieveResponse<ClientEntity> esTwoKeyNavManyOneResponse = esTwoKeyNavManyOneRequest.execute();
 
     assertEquals(441, esTwoKeyNavManyOneResponse.getBody().getProperty(PROPERTY_COMP_NAV).getComplexValue().get(
         PROPERTY_INT16).getPrimitiveValue().toValue());
@@ -416,10 +416,10 @@ public class DeepInsertITCase extends AbstractBaseTestITCase {
         client.newURIBuilder(SERVICE_URI).appendEntitySetSegment(ES_TWO_KEY_NAV).appendKeySegment(composedKey)
             .expand(NAV_PROPERTY_ET_KEY_NAV_ONE).build();
 
-    final ODataEntityRequest<ODataEntity> esTwoKeyNavManyTwoRequest =
+    final ODataEntityRequest<ClientEntity> esTwoKeyNavManyTwoRequest =
         client.getRetrieveRequestFactory().getEntityRequest(esTwoKeyNavEntityManyTwoURI);
     esTwoKeyNavManyTwoRequest.addCustomHeader(HttpHeader.COOKIE, cookie);
-    final ODataRetrieveResponse<ODataEntity> esTwoKeyNavManyTwoResponse = esTwoKeyNavManyTwoRequest.execute();
+    final ODataRetrieveResponse<ClientEntity> esTwoKeyNavManyTwoResponse = esTwoKeyNavManyTwoRequest.execute();
 
     assertEquals(451, esTwoKeyNavManyTwoResponse.getBody().getProperty(PROPERTY_COMP_NAV).getComplexValue().get(
         PROPERTY_INT16).getPrimitiveValue().toValue());
@@ -432,8 +432,8 @@ public class DeepInsertITCase extends AbstractBaseTestITCase {
   public void testDeepInsertSameEntitySet() throws EdmPrimitiveTypeException {
     final ODataClient client = getClient();
     final URI createURI = client.newURIBuilder(SERVICE_URI).appendEntitySetSegment(ES_KEY_NAV).build();
-    final ODataObjectFactory of = client.getObjectFactory();
-    final ODataEntity entity = client.getObjectFactory().newEntity(ET_KEY_NAV);
+    final ClientObjectFactory of = client.getObjectFactory();
+    final ClientEntity entity = client.getObjectFactory().newEntity(ET_KEY_NAV);
 
     // Prepare entity(EntitySet: ESKeyNav, Type: ETKeyNav)
     entity.getProperties()
@@ -469,7 +469,7 @@ public class DeepInsertITCase extends AbstractBaseTestITCase {
             .build()));
 
     // Prepare inline entity(EntitySet: ESKeyNav, Type: ETKeyNav)
-    final ODataEntity innerEntity = of.newEntity(ET_KEY_NAV);
+    final ClientEntity innerEntity = of.newEntity(ET_KEY_NAV);
     innerEntity.getProperties()
         .add(of.newPrimitiveProperty(PROPERTY_INT16, of.newPrimitiveValueBuilder().buildInt16((short) 43)));
     innerEntity.getProperties()
@@ -503,11 +503,11 @@ public class DeepInsertITCase extends AbstractBaseTestITCase {
               }
             })
             .build()));
-    
-    ODataInlineEntity inlineEntity = of.newDeepInsertEntity(NAV_PROPERTY_ET_KEY_NAV_ONE, innerEntity);
+
+    ClientInlineEntity inlineEntity = of.newDeepInsertEntity(NAV_PROPERTY_ET_KEY_NAV_ONE, innerEntity);
     entity.addLink(inlineEntity);
 
-    final ODataEntityCreateResponse<ODataEntity> responseCreate =
+    final ODataEntityCreateResponse<ClientEntity> responseCreate =
         client.getCUDRequestFactory().getEntityCreateRequest(createURI, entity).execute();
     final String cookie = responseCreate.getHeader(HttpHeader.SET_COOKIE).iterator().next();
     final Short esKeyNavEntityKey =
@@ -518,9 +518,10 @@ public class DeepInsertITCase extends AbstractBaseTestITCase {
         client.newURIBuilder(SERVICE_URI).appendEntitySetSegment(ES_KEY_NAV).appendKeySegment(esKeyNavEntityKey)
             .expand(NAV_PROPERTY_ET_KEY_NAV_ONE).build();
 
-    ODataEntityRequest<ODataEntity> entityRequest = client.getRetrieveRequestFactory().getEntityRequest(fetchEntityURI);
+    ODataEntityRequest<ClientEntity> entityRequest =
+        client.getRetrieveRequestFactory().getEntityRequest(fetchEntityURI);
     entityRequest.addCustomHeader(HttpHeader.COOKIE, cookie);
-    final ODataRetrieveResponse<ODataEntity> entityResponse = entityRequest.execute();
+    final ODataRetrieveResponse<ClientEntity> entityResponse = entityRequest.execute();
 
     // Check values
     assertEquals(431, entityResponse.getBody().getProperty(NAV_PROPERTY_ET_KEY_NAV_ONE).getComplexValue().get(
@@ -533,10 +534,10 @@ public class DeepInsertITCase extends AbstractBaseTestITCase {
     final URI innerEntityURI =
         client.newURIBuilder(SERVICE_URI).appendEntitySetSegment(ES_KEY_NAV).appendKeySegment(innerEntityInt16Key)
             .build();
-    final ODataEntityRequest<ODataEntity> innerRequest =
+    final ODataEntityRequest<ClientEntity> innerRequest =
         client.getRetrieveRequestFactory().getEntityRequest(innerEntityURI);
     innerRequest.addCustomHeader(HttpHeader.COOKIE, cookie);
-    ODataRetrieveResponse<ODataEntity> innerResponse = innerRequest.execute();
+    ODataRetrieveResponse<ClientEntity> innerResponse = innerRequest.execute();
 
     assertEquals(431, innerResponse.getBody().getProperty(PROPERTY_COMP_NAV).getComplexValue().get(PROPERTY_INT16)
         .getPrimitiveValue().toValue());
@@ -545,11 +546,11 @@ public class DeepInsertITCase extends AbstractBaseTestITCase {
   @Test
   public void testConsistency() throws EdmPrimitiveTypeException {
     final EdmEnabledODataClient client = ODataClientFactory.getEdmEnabledClient(SERVICE_URI);
-    final ODataObjectFactory of = client.getObjectFactory();
+    final ClientObjectFactory of = client.getObjectFactory();
     final String cookie = getCookie();
-    
+
     // Do not set PropertyString(Nullable=false)
-    final ODataEntity entity = of.newEntity(ET_KEY_NAV);
+    final ClientEntity entity = of.newEntity(ET_KEY_NAV);
     entity.getProperties().add(
         of.newCollectionProperty(COL_PROPERTY_STRING,
             of.newCollectionValue(EDM_STRING).add(
@@ -558,7 +559,7 @@ public class DeepInsertITCase extends AbstractBaseTestITCase {
     final URI targetURI = client.newURIBuilder(SERVICE_URI).appendEntitySetSegment(ES_KEY_NAV).build();
 
     try {
-      ODataEntityCreateRequest<ODataEntity> request = client.getCUDRequestFactory()
+      ODataEntityCreateRequest<ClientEntity> request = client.getCUDRequestFactory()
           .getEntityCreateRequest(targetURI, entity);
       request.addCustomHeader(HttpHeader.COOKIE, cookie);
       request.execute();
@@ -570,19 +571,19 @@ public class DeepInsertITCase extends AbstractBaseTestITCase {
     // Entity must not be created
     validateSet(targetURI, cookie, (short) 1, (short) 2, (short) 3);
   }
-  
+
   @Test
   public void testInvalidType() throws EdmPrimitiveTypeException {
     final EdmEnabledODataClient client = ODataClientFactory.getEdmEnabledClient(SERVICE_URI);
-    final ODataObjectFactory of = client.getObjectFactory();
+    final ClientObjectFactory of = client.getObjectFactory();
     final String cookie = getCookie();
 
-    final ODataEntity entity = of.newEntity(ET_KEY_NAV);
+    final ClientEntity entity = of.newEntity(ET_KEY_NAV);
     entity.getProperties().add(of.newPrimitiveProperty(PROPERTY_STRING, of.newPrimitiveValueBuilder().buildInt32(1)));
     final URI targetURI = client.newURIBuilder(SERVICE_URI).appendEntitySetSegment(ES_KEY_NAV).build();
 
     try {
-      ODataEntityCreateRequest<ODataEntity> request = client.getCUDRequestFactory()
+      ODataEntityCreateRequest<ClientEntity> request = client.getCUDRequestFactory()
           .getEntityCreateRequest(targetURI, entity);
       request.addCustomHeader(HttpHeader.COOKIE, cookie);
       request.execute();
@@ -598,7 +599,7 @@ public class DeepInsertITCase extends AbstractBaseTestITCase {
                 of.newPrimitiveValueBuilder().buildString("Test"))));
 
     try {
-      ODataEntityCreateRequest<ODataEntity> request = client.getCUDRequestFactory()
+      ODataEntityCreateRequest<ClientEntity> request = client.getCUDRequestFactory()
           .getEntityCreateRequest(targetURI, entity);
       request.addCustomHeader(HttpHeader.COOKIE, cookie);
       request.execute();
@@ -608,14 +609,14 @@ public class DeepInsertITCase extends AbstractBaseTestITCase {
 
     validateSet(targetURI, cookie, (short) 1, (short) 2, (short) 3);
   }
-  
+
   @Test
   @Ignore
   public void testDeepInsertOnNavigationPropertyInComplexProperty() {
     final EdmEnabledODataClient client = ODataClientFactory.getEdmEnabledClient(SERVICE_URI);
-    final ODataObjectFactory of = client.getObjectFactory();
-    
-    final ODataEntity inlineEntity = of.newEntity(ET_TWO_KEY_NAV);
+    final ClientObjectFactory of = client.getObjectFactory();
+
+    final ClientEntity inlineEntity = of.newEntity(ET_TWO_KEY_NAV);
     inlineEntity.getProperties().add(
         of.newComplexProperty(PROPERTY_COMP, of.newComplexValue(CT_PRIM_COMP)));
     inlineEntity.getProperties().add(
@@ -624,8 +625,8 @@ public class DeepInsertITCase extends AbstractBaseTestITCase {
         of.newComplexProperty(PROPERTY_COMP_TWO_PRIM, of.newComplexValue(CT_TWO_PRIM)
             .add(of.newPrimitiveProperty(PROPERTY_INT16, of.newPrimitiveValueBuilder().buildInt16((short) 1)))
             .add(of.newPrimitiveProperty(PROPERTY_STRING, of.newPrimitiveValueBuilder().buildString("1")))));
-    
-    final ODataEntity entity = of.newEntity(ET_TWO_KEY_NAV);
+
+    final ClientEntity entity = of.newEntity(ET_TWO_KEY_NAV);
     entity.getProperties().add(
         of.newComplexProperty(PROPERTY_COMP, of.newComplexValue(CT_PRIM_COMP)));
     entity.getProperties().add(
@@ -634,46 +635,46 @@ public class DeepInsertITCase extends AbstractBaseTestITCase {
         of.newComplexProperty(PROPERTY_COMP_TWO_PRIM, of.newComplexValue(CT_TWO_PRIM)
             .add(of.newPrimitiveProperty(PROPERTY_INT16, of.newPrimitiveValueBuilder().buildInt16((short) 2)))
             .add(of.newPrimitiveProperty(PROPERTY_STRING, of.newPrimitiveValueBuilder().buildString("2")))));
-    
-    final ODataLink link = of.newDeepInsertEntity(NAV_PROPERTY_ET_TWO_KEY_NAV_ONE, inlineEntity);
-    final ODataComplexValue complexValueCreate = of.newComplexValue(CT_NAV_FIVE_PROP);
+
+    final ClientLink link = of.newDeepInsertEntity(NAV_PROPERTY_ET_TWO_KEY_NAV_ONE, inlineEntity);
+    final ClientComplexValue complexValueCreate = of.newComplexValue(CT_NAV_FIVE_PROP);
     complexValueCreate.getNavigationLinks().add(link);
-    
+
     entity.getProperties().add(
         of.newCollectionProperty(COL_PROPERTY_COMP_NAV, of.newCollectionValue(CT_NAV_FIVE_PROP)
-                                                          .add(complexValueCreate)));
-    
+            .add(complexValueCreate)));
+
     final URI targetURI = client.newURIBuilder(SERVICE_URI).appendEntitySetSegment(ES_TWO_KEY_NAV).build();
-    final ODataEntityCreateResponse<ODataEntity> response = client.getCUDRequestFactory()
-                                                                  .getEntityCreateRequest(targetURI, entity)
-                                                                  .execute();
-    
+    final ODataEntityCreateResponse<ClientEntity> response = client.getCUDRequestFactory()
+        .getEntityCreateRequest(targetURI, entity)
+        .execute();
+
     assertEquals(HttpStatusCode.CREATED.getStatusCode(), response.getStatusCode());
-    final Iterator<ODataValue> iter = response.getBody()
-                                              .getProperty(COL_PROPERTY_COMP_NAV)
-                                              .getCollectionValue()
-                                              .iterator();
-    
+    final Iterator<ClientValue> iter = response.getBody()
+        .getProperty(COL_PROPERTY_COMP_NAV)
+        .getCollectionValue()
+        .iterator();
+
     assertTrue(iter.hasNext());
-    final ODataComplexValue complexValue = iter.next().asComplex();
-    final ODataLink linkedEntity = complexValue.getNavigationLink(NAV_PROPERTY_ET_TWO_KEY_NAV_ONE);
+    final ClientComplexValue complexValue = iter.next().asComplex();
+    final ClientLink linkedEntity = complexValue.getNavigationLink(NAV_PROPERTY_ET_TWO_KEY_NAV_ONE);
     assertNotNull(linkedEntity);
     assertEquals(1, linkedEntity.asInlineEntity()
-                                .getEntity()
-                                .getProperty(PROPERTY_INT16)
-                                .getPrimitiveValue()
-                                .toValue());
+        .getEntity()
+        .getProperty(PROPERTY_INT16)
+        .getPrimitiveValue()
+        .toValue());
   }
-  
+
   @Test
   public void testDeepUpsert() {
     final ODataClient client = getClient();
     final URI updateURI = client.newURIBuilder(SERVICE_URI)
-                                .appendEntitySetSegment(ES_KEY_NAV)
-                                .appendKeySegment(815)
-                                .build();
-    final ODataObjectFactory of = client.getObjectFactory();
-    final ODataEntity entity = client.getObjectFactory().newEntity(ET_KEY_NAV);
+        .appendEntitySetSegment(ES_KEY_NAV)
+        .appendKeySegment(815)
+        .build();
+    final ClientObjectFactory of = client.getObjectFactory();
+    final ClientEntity entity = client.getObjectFactory().newEntity(ET_KEY_NAV);
 
     // Prepare entity(EntitySet: ESKeyNav, Type: ETKeyNav)
     entity.getProperties()
@@ -698,7 +699,7 @@ public class DeepInsertITCase extends AbstractBaseTestITCase {
 
     // Non collection navigation property
     // Create related entity(EntitySet: ESTwoKeyNav, Type: ETTwoKeyNav, Nav. Property: NavPropertyETTwoKeyNavOne)
-    final ODataEntity inlineEntitySingle = client.getObjectFactory().newEntity(ET_TWO_KEY_NAV);
+    final ClientEntity inlineEntitySingle = client.getObjectFactory().newEntity(ET_TWO_KEY_NAV);
     inlineEntitySingle.getProperties()
         .add(of.newPrimitiveProperty(PROPERTY_INT16, of.newPrimitiveValueBuilder().buildInt16((short) 43)));
     inlineEntitySingle.getProperties()
@@ -716,7 +717,7 @@ public class DeepInsertITCase extends AbstractBaseTestITCase {
     // Collection navigation property
     // The navigation property has a partner navigation property named "NavPropertyETKeyNavOne"
     // Create related entity(EntitySet: ESTwoKeyNav, Type: NavPropertyETTwoKeyNavMany
-    final ODataEntity inlineEntityCol1 = client.getObjectFactory().newEntity(ET_TWO_KEY_NAV);
+    final ClientEntity inlineEntityCol1 = client.getObjectFactory().newEntity(ET_TWO_KEY_NAV);
     inlineEntityCol1.getProperties()
         .add(of.newPrimitiveProperty(PROPERTY_INT16, of.newPrimitiveValueBuilder().buildInt16((short) 44)));
     inlineEntityCol1.getProperties()
@@ -731,7 +732,7 @@ public class DeepInsertITCase extends AbstractBaseTestITCase {
             .add(of.newPrimitiveProperty(PROPERTY_INT16, of.newPrimitiveValueBuilder().buildInt16((short) 442)))
             .add(of.newPrimitiveProperty(PROPERTY_STRING, of.newPrimitiveValueBuilder().buildString("442")))));
 
-    final ODataEntity inlineEntityCol2 = client.getObjectFactory().newEntity(ET_TWO_KEY_NAV);
+    final ClientEntity inlineEntityCol2 = client.getObjectFactory().newEntity(ET_TWO_KEY_NAV);
     inlineEntityCol2.getProperties()
         .add(of.newPrimitiveProperty(PROPERTY_INT16, of.newPrimitiveValueBuilder().buildInt16((short) 45)));
     inlineEntityCol2.getProperties()
@@ -746,19 +747,19 @@ public class DeepInsertITCase extends AbstractBaseTestITCase {
             .add(of.newPrimitiveProperty(PROPERTY_INT16, of.newPrimitiveValueBuilder().buildInt16((short) 452)))
             .add(of.newPrimitiveProperty(PROPERTY_STRING, of.newPrimitiveValueBuilder().buildString("452")))));
 
-    final ODataInlineEntity newDeepInsertEntityLink =
+    final ClientInlineEntity newDeepInsertEntityLink =
         of.newDeepInsertEntity(NAV_PROPERTY_ET_TWO_KEY_NAV_ONE, inlineEntitySingle);
-    final ODataEntitySet newDeepInsertEntitySet = of.newEntitySet();
+    final ClientEntitySet newDeepInsertEntitySet = of.newEntitySet();
     newDeepInsertEntitySet.getEntities().add(inlineEntityCol1);
     newDeepInsertEntitySet.getEntities().add(inlineEntityCol2);
-    final ODataInlineEntitySet newDeepInsertEntitySetLink =
+    final ClientInlineEntitySet newDeepInsertEntitySetLink =
         of.newDeepInsertEntitySet(NAV_PROPERTY_ET_TWO_KEY_NAV_MANY, newDeepInsertEntitySet);
 
     entity.addLink(newDeepInsertEntityLink);
     entity.addLink(newDeepInsertEntitySetLink);
 
     // Perform update request (upsert)
-    final ODataEntityUpdateResponse<ODataEntity> responseCreate = client.getCUDRequestFactory()
+    final ODataEntityUpdateResponse<ClientEntity> responseCreate = client.getCUDRequestFactory()
         .getEntityUpdateRequest(updateURI, UpdateType.PATCH, entity)
         .execute();
     assertEquals(HttpStatusCode.CREATED.getStatusCode(), responseCreate.getStatusCode());
@@ -766,16 +767,16 @@ public class DeepInsertITCase extends AbstractBaseTestITCase {
     final String cookie = responseCreate.getHeader(HttpHeader.SET_COOKIE).toString();
 
     // Fetch ESKeyNav entity with expand of NavPropertyETTwoKeyNavOne nav. property
-    ODataProperty propertyInt16 = responseCreate.getBody().getProperty(PROPERTY_INT16);
+    ClientProperty propertyInt16 = responseCreate.getBody().getProperty(PROPERTY_INT16);
     final URI esKeyNavURI =
         client.newURIBuilder(SERVICE_URI).appendEntitySetSegment(ES_KEY_NAV).appendKeySegment(
             propertyInt16.getPrimitiveValue().toValue()).expand(NAV_PROPERTY_ET_TWO_KEY_NAV_ONE,
             NAV_PROPERTY_ET_TWO_KEY_NAV_MANY).build();
 
-    final ODataEntityRequest<ODataEntity> esKeyNavRequest = client.getRetrieveRequestFactory()
+    final ODataEntityRequest<ClientEntity> esKeyNavRequest = client.getRetrieveRequestFactory()
         .getEntityRequest(esKeyNavURI);
     esKeyNavRequest.addCustomHeader(HttpHeader.COOKIE, cookie);
-    final ODataRetrieveResponse<ODataEntity> esKeyNavResponse = esKeyNavRequest.execute();
+    final ODataRetrieveResponse<ClientEntity> esKeyNavResponse = esKeyNavRequest.execute();
 
     // Check nav. property NavPropertyETTwoKeyNavOne
     assertNotNull(esKeyNavResponse.getBody().getProperty(NAV_PROPERTY_ET_TWO_KEY_NAV_ONE));
@@ -786,12 +787,12 @@ public class DeepInsertITCase extends AbstractBaseTestITCase {
     assertNotNull(esKeyNavResponse.getBody().getProperty(NAV_PROPERTY_ET_TWO_KEY_NAV_MANY));
     assertEquals(2, esKeyNavResponse.getBody().getProperty(NAV_PROPERTY_ET_TWO_KEY_NAV_MANY).getCollectionValue()
         .size());
-    Iterator<ODataValue> twoKeyNavManyIterator =
+    Iterator<ClientValue> twoKeyNavManyIterator =
         esKeyNavResponse.getBody().getProperty(NAV_PROPERTY_ET_TWO_KEY_NAV_MANY).getCollectionValue().iterator();
-    final ODataValue firstTwoKeyNavEnity = twoKeyNavManyIterator.next(); // First entity
+    final ClientValue firstTwoKeyNavEnity = twoKeyNavManyIterator.next(); // First entity
     assertEquals(441, firstTwoKeyNavEnity.asComplex().get(PROPERTY_COMP_NAV).getValue().asComplex().get(
         PROPERTY_INT16).getPrimitiveValue().toValue());
-    final ODataValue secondTwoKeyNavEnity = twoKeyNavManyIterator.next(); // Second entity
+    final ClientValue secondTwoKeyNavEnity = twoKeyNavManyIterator.next(); // Second entity
     assertEquals(451, secondTwoKeyNavEnity.asComplex().get(PROPERTY_COMP_NAV).getValue().asComplex().get(
         PROPERTY_INT16).getPrimitiveValue().toValue());
 
@@ -810,10 +811,10 @@ public class DeepInsertITCase extends AbstractBaseTestITCase {
         .appendKeySegment(composedKey)
         .build();
 
-    final ODataEntityRequest<ODataEntity> esTwoKeyNavSingleRequest = client.getRetrieveRequestFactory()
+    final ODataEntityRequest<ClientEntity> esTwoKeyNavSingleRequest = client.getRetrieveRequestFactory()
         .getEntityRequest(esTwoKeyNavEntitySingleURI);
     esTwoKeyNavSingleRequest.addCustomHeader(HttpHeader.COOKIE, cookie);
-    final ODataRetrieveResponse<ODataEntity> esTwoKeyNavSingleResponse = esTwoKeyNavSingleRequest.execute();
+    final ODataRetrieveResponse<ClientEntity> esTwoKeyNavSingleResponse = esTwoKeyNavSingleRequest.execute();
     assertEquals(431, esTwoKeyNavSingleResponse.getBody().getProperty(PROPERTY_COMP_NAV).getComplexValue().get(
         PROPERTY_INT16).getPrimitiveValue().toValue());
 
@@ -827,10 +828,10 @@ public class DeepInsertITCase extends AbstractBaseTestITCase {
         client.newURIBuilder(SERVICE_URI).appendEntitySetSegment(ES_TWO_KEY_NAV).appendKeySegment(composedKey)
             .expand(NAV_PROPERTY_ET_KEY_NAV_ONE).build();
 
-    final ODataEntityRequest<ODataEntity> esTwoKeyNavManyOneRequest =
+    final ODataEntityRequest<ClientEntity> esTwoKeyNavManyOneRequest =
         client.getRetrieveRequestFactory().getEntityRequest(esTwoKeyNavEntityManyOneURI);
     esTwoKeyNavManyOneRequest.addCustomHeader(HttpHeader.COOKIE, cookie);
-    final ODataRetrieveResponse<ODataEntity> esTwoKeyNavManyOneResponse = esTwoKeyNavManyOneRequest.execute();
+    final ODataRetrieveResponse<ClientEntity> esTwoKeyNavManyOneResponse = esTwoKeyNavManyOneRequest.execute();
 
     assertEquals(441, esTwoKeyNavManyOneResponse.getBody().getProperty(PROPERTY_COMP_NAV).getComplexValue().get(
         PROPERTY_INT16).getPrimitiveValue().toValue());
@@ -848,22 +849,22 @@ public class DeepInsertITCase extends AbstractBaseTestITCase {
         client.newURIBuilder(SERVICE_URI).appendEntitySetSegment(ES_TWO_KEY_NAV).appendKeySegment(composedKey)
             .expand(NAV_PROPERTY_ET_KEY_NAV_ONE).build();
 
-    final ODataEntityRequest<ODataEntity> esTwoKeyNavManyTwoRequest =
+    final ODataEntityRequest<ClientEntity> esTwoKeyNavManyTwoRequest =
         client.getRetrieveRequestFactory().getEntityRequest(esTwoKeyNavEntityManyTwoURI);
     esTwoKeyNavManyTwoRequest.addCustomHeader(HttpHeader.COOKIE, cookie);
-    final ODataRetrieveResponse<ODataEntity> esTwoKeyNavManyTwoResponse = esTwoKeyNavManyTwoRequest.execute();
+    final ODataRetrieveResponse<ClientEntity> esTwoKeyNavManyTwoResponse = esTwoKeyNavManyTwoRequest.execute();
 
     assertEquals(451, esTwoKeyNavManyTwoResponse.getBody().getProperty(PROPERTY_COMP_NAV).getComplexValue().get(
         PROPERTY_INT16).getPrimitiveValue().toValue());
     assertNotNull(esTwoKeyNavManyTwoResponse.getBody().getProperty(NAV_PROPERTY_ET_KEY_NAV_ONE).getComplexValue());
     assertEquals(propertyInt16.getPrimitiveValue().toValue(), esTwoKeyNavManyTwoResponse.getBody().getProperty(
         NAV_PROPERTY_ET_KEY_NAV_ONE).getComplexValue().get(PROPERTY_INT16).getPrimitiveValue().toValue());
-  
+
   }
-  
+
   private String getCookie() {
     final EdmEnabledODataClient client = ODataClientFactory.getEdmEnabledClient(SERVICE_URI);
-    final ODataRetrieveResponse<ODataEntitySet> response = client.getRetrieveRequestFactory()
+    final ODataRetrieveResponse<ClientEntitySet> response = client.getRetrieveRequestFactory()
         .getEntitySetRequest(client.newURIBuilder(SERVICE_URI).appendEntitySetSegment(ES_KEY_NAV).build())
         .execute();
 
@@ -872,15 +873,15 @@ public class DeepInsertITCase extends AbstractBaseTestITCase {
 
   private void validateSet(final URI uri, final String cookie, final short... keys) throws EdmPrimitiveTypeException {
     final EdmEnabledODataClient client = ODataClientFactory.getEdmEnabledClient(SERVICE_URI);
-    final ODataEntitySetRequest<ODataEntitySet> request = client.getRetrieveRequestFactory()
+    final ODataEntitySetRequest<ClientEntitySet> request = client.getRetrieveRequestFactory()
         .getEntitySetRequest(uri);
     request.addCustomHeader(HttpHeader.COOKIE, cookie);
-    final ODataRetrieveResponse<ODataEntitySet> response = request.execute();
+    final ODataRetrieveResponse<ClientEntitySet> response = request.execute();
 
     assertEquals(HttpStatusCode.OK.getStatusCode(), response.getStatusCode());
     assertEquals(3, response.getBody().getEntities().size());
 
-    for (final ODataEntity responseEntity : response.getBody().getEntities()) {
+    for (final ClientEntity responseEntity : response.getBody().getEntities()) {
       short propertyInt16 = responseEntity.getProperty(PROPERTY_INT16).getPrimitiveValue().toCastValue(Short.class);
 
       boolean found = false;

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/c37d4da5/fit/src/test/java/org/apache/olingo/fit/tecsvc/client/ExpandSelectITCase.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/tecsvc/client/ExpandSelectITCase.java b/fit/src/test/java/org/apache/olingo/fit/tecsvc/client/ExpandSelectITCase.java
index 9038c4b..9a430ff 100644
--- a/fit/src/test/java/org/apache/olingo/fit/tecsvc/client/ExpandSelectITCase.java
+++ b/fit/src/test/java/org/apache/olingo/fit/tecsvc/client/ExpandSelectITCase.java
@@ -1,18 +1,18 @@
-/* 
+/*
  * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
+ * or more contributor license agreements. See the NOTICE file
  * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
+ * 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
- *
+ * 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
+ * KIND, either express or implied. See the License for the
  * specific language governing permissions and limitations
  * under the License.
  */
@@ -28,12 +28,12 @@ import org.apache.olingo.client.api.ODataClient;
 import org.apache.olingo.client.api.communication.request.retrieve.ODataEntityRequest;
 import org.apache.olingo.client.api.communication.response.ODataRetrieveResponse;
 import org.apache.olingo.client.core.ODataClientFactory;
-import org.apache.olingo.commons.api.domain.ODataEntity;
-import org.apache.olingo.commons.api.domain.ODataInlineEntity;
-import org.apache.olingo.commons.api.domain.ODataInlineEntitySet;
-import org.apache.olingo.commons.api.domain.ODataLink;
-import org.apache.olingo.commons.api.domain.ODataLinkType;
-import org.apache.olingo.commons.api.domain.ODataProperty;
+import org.apache.olingo.commons.api.domain.ClientEntity;
+import org.apache.olingo.commons.api.domain.ClientInlineEntity;
+import org.apache.olingo.commons.api.domain.ClientInlineEntitySet;
+import org.apache.olingo.commons.api.domain.ClientLink;
+import org.apache.olingo.commons.api.domain.ClientLinkType;
+import org.apache.olingo.commons.api.domain.ClientProperty;
 import org.apache.olingo.commons.api.http.HttpStatusCode;
 import org.apache.olingo.fit.AbstractBaseTestITCase;
 import org.apache.olingo.fit.tecsvc.TecSvcConst;
@@ -44,24 +44,24 @@ public final class ExpandSelectITCase extends AbstractBaseTestITCase {
   @Test
   public void readSelect() {
     final ODataClient client = getClient();
-    final ODataEntityRequest<ODataEntity> request = client.getRetrieveRequestFactory()
+    final ODataEntityRequest<ClientEntity> request = client.getRetrieveRequestFactory()
         .getEntityRequest(client.newURIBuilder(TecSvcConst.BASE_URI)
             .appendEntitySetSegment("ESAllPrim").appendKeySegment(Short.MAX_VALUE)
             .select("PropertyInt32,PropertyInt16")
             .build());
     assertNotNull(request);
 
-    final ODataRetrieveResponse<ODataEntity> response = request.execute();
+    final ODataRetrieveResponse<ClientEntity> response = request.execute();
     assertEquals(HttpStatusCode.OK.getStatusCode(), response.getStatusCode());
 
-    final ODataEntity entity = response.getBody();
+    final ClientEntity entity = response.getBody();
     assertNotNull(entity);
 
     assertNotNull(entity.getProperties());
     assertEquals(2, entity.getProperties().size());
     assertNull(entity.getProperty("PropertyString"));
 
-    ODataProperty property = entity.getProperty("PropertyInt16");
+    ClientProperty property = entity.getProperty("PropertyInt16");
     assertNotNull(property);
     assertNotNull(property.getPrimitiveValue());
     assertEquals(Integer.valueOf(Short.MAX_VALUE), property.getPrimitiveValue().toValue());
@@ -75,7 +75,7 @@ public final class ExpandSelectITCase extends AbstractBaseTestITCase {
   @Test
   public void readExpandSelect() {
     final ODataClient client = getClient();
-    final ODataEntityRequest<ODataEntity> request = client.getRetrieveRequestFactory()
+    final ODataEntityRequest<ClientEntity> request = client.getRetrieveRequestFactory()
         .getEntityRequest(client.newURIBuilder(TecSvcConst.BASE_URI)
             .appendEntitySetSegment("ESTwoPrim").appendKeySegment(-365)
             .expand("NavPropertyETAllPrimMany($select=PropertyTimeOfDay,PropertySByte)")
@@ -83,30 +83,30 @@ public final class ExpandSelectITCase extends AbstractBaseTestITCase {
             .build());
     assertNotNull(request);
 
-    final ODataRetrieveResponse<ODataEntity> response = request.execute();
+    final ODataRetrieveResponse<ClientEntity> response = request.execute();
     assertEquals(HttpStatusCode.OK.getStatusCode(), response.getStatusCode());
 
-    final ODataEntity entity = response.getBody();
+    final ClientEntity entity = response.getBody();
     assertNotNull(entity);
 
     assertNull(entity.getProperty("PropertyInt16"));
 
-    final ODataProperty property = entity.getProperty("PropertyString");
+    final ClientProperty property = entity.getProperty("PropertyString");
     assertNotNull(property);
     assertNotNull(property.getPrimitiveValue());
     assertEquals("Test String2", property.getPrimitiveValue().toValue());
 
     assertNull(entity.getNavigationLink("NavPropertyETAllPrimOne"));
 
-    final ODataLink link = entity.getNavigationLink("NavPropertyETAllPrimMany");
+    final ClientLink link = entity.getNavigationLink("NavPropertyETAllPrimMany");
     assertNotNull(link);
-    assertEquals(ODataLinkType.ENTITY_SET_NAVIGATION, link.getType());
-    final ODataInlineEntitySet inlineEntitySet = link.asInlineEntitySet();
+    assertEquals(ClientLinkType.ENTITY_SET_NAVIGATION, link.getType());
+    final ClientInlineEntitySet inlineEntitySet = link.asInlineEntitySet();
     assertNotNull(inlineEntitySet);
-    final List<? extends ODataEntity> entities = inlineEntitySet.getEntitySet().getEntities();
+    final List<? extends ClientEntity> entities = inlineEntitySet.getEntitySet().getEntities();
     assertNotNull(entities);
     assertEquals(2, entities.size());
-    final ODataEntity inlineEntity = entities.get(0);
+    final ClientEntity inlineEntity = entities.get(0);
     assertEquals(2, inlineEntity.getProperties().size());
     assertEquals(-128, inlineEntity.getProperty("PropertySByte").getPrimitiveValue().toValue());
     assertEquals(new java.sql.Timestamp(85754000),
@@ -116,33 +116,33 @@ public final class ExpandSelectITCase extends AbstractBaseTestITCase {
   @Test
   public void readExpandTwoLevels() {
     final ODataClient client = getClient();
-    final ODataEntityRequest<ODataEntity> request = client.getRetrieveRequestFactory()
+    final ODataEntityRequest<ClientEntity> request = client.getRetrieveRequestFactory()
         .getEntityRequest(client.newURIBuilder(TecSvcConst.BASE_URI)
             .appendEntitySetSegment("ESTwoPrim").appendKeySegment(32767)
             .expand("NavPropertyETAllPrimOne($expand=NavPropertyETTwoPrimOne)")
             .build());
     assertNotNull(request);
 
-    final ODataRetrieveResponse<ODataEntity> response = request.execute();
+    final ODataRetrieveResponse<ClientEntity> response = request.execute();
     assertEquals(HttpStatusCode.OK.getStatusCode(), response.getStatusCode());
 
-    final ODataEntity entity = response.getBody();
+    final ClientEntity entity = response.getBody();
     assertNotNull(entity);
     assertEquals(2, entity.getProperties().size());
 
     assertNull(entity.getNavigationLink("NavPropertyETAllPrimMany"));
 
-    final ODataLink link = entity.getNavigationLink("NavPropertyETAllPrimOne");
+    final ClientLink link = entity.getNavigationLink("NavPropertyETAllPrimOne");
     assertNotNull(link);
-    assertEquals(ODataLinkType.ENTITY_NAVIGATION, link.getType());
-    final ODataInlineEntity inlineEntity = link.asInlineEntity();
+    assertEquals(ClientLinkType.ENTITY_NAVIGATION, link.getType());
+    final ClientInlineEntity inlineEntity = link.asInlineEntity();
     assertNotNull(inlineEntity);
     assertEquals(16, inlineEntity.getEntity().getProperties().size());
 
-    final ODataLink innerLink = inlineEntity.getEntity().getNavigationLink("NavPropertyETTwoPrimOne");
+    final ClientLink innerLink = inlineEntity.getEntity().getNavigationLink("NavPropertyETTwoPrimOne");
     assertNotNull(innerLink);
-    assertEquals(ODataLinkType.ENTITY_NAVIGATION, innerLink.getType());
-    final ODataEntity innerEntity = innerLink.asInlineEntity().getEntity();
+    assertEquals(ClientLinkType.ENTITY_NAVIGATION, innerLink.getType());
+    final ClientEntity innerEntity = innerLink.asInlineEntity().getEntity();
     assertNotNull(innerEntity);
     assertEquals(2, innerEntity.getProperties().size());
     assertEquals(32767, innerEntity.getProperty("PropertyInt16").getPrimitiveValue().toValue());


[15/50] [abbrv] olingo-odata4 git commit: [OLINGO-564] Renamed 'edm.provider.*' classes

Posted by mi...@apache.org.
http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/2318953c/lib/commons-core/src/main/java/org/apache/olingo/commons/core/edm/AbstractEdmAnnotatable.java
----------------------------------------------------------------------
diff --git a/lib/commons-core/src/main/java/org/apache/olingo/commons/core/edm/AbstractEdmAnnotatable.java b/lib/commons-core/src/main/java/org/apache/olingo/commons/core/edm/AbstractEdmAnnotatable.java
index 773ca9e..b62325d 100644
--- a/lib/commons-core/src/main/java/org/apache/olingo/commons/core/edm/AbstractEdmAnnotatable.java
+++ b/lib/commons-core/src/main/java/org/apache/olingo/commons/core/edm/AbstractEdmAnnotatable.java
@@ -22,8 +22,8 @@ import org.apache.olingo.commons.api.edm.Edm;
 import org.apache.olingo.commons.api.edm.EdmAnnotatable;
 import org.apache.olingo.commons.api.edm.EdmAnnotation;
 import org.apache.olingo.commons.api.edm.EdmTerm;
-import org.apache.olingo.commons.api.edm.provider.Annotatable;
-import org.apache.olingo.commons.api.edm.provider.Annotation;
+import org.apache.olingo.commons.api.edm.provider.CsdlAnnotatable;
+import org.apache.olingo.commons.api.edm.provider.CsdlAnnotation;
 
 import java.util.ArrayList;
 import java.util.Collections;
@@ -31,11 +31,11 @@ import java.util.List;
 
 public abstract class AbstractEdmAnnotatable implements EdmAnnotatable {
 
-  private final Annotatable annotatable;
+  private final CsdlAnnotatable annotatable;
   private List<EdmAnnotation> annotations;
   protected final Edm edm;
 
-  public AbstractEdmAnnotatable(final Edm edm, final Annotatable annotatable) {
+  public AbstractEdmAnnotatable(final Edm edm, final CsdlAnnotatable annotatable) {
     this.edm = edm;
     this.annotatable = annotatable;
   }
@@ -57,7 +57,7 @@ public abstract class AbstractEdmAnnotatable implements EdmAnnotatable {
     if (annotations == null) {
       final List<EdmAnnotation> annotationsLocal = new ArrayList<EdmAnnotation>();
       if (annotatable != null) {
-        for (Annotation annotation : annotatable.getAnnotations()) {
+        for (CsdlAnnotation annotation : annotatable.getAnnotations()) {
           annotationsLocal.add(new EdmAnnotationImpl(edm, annotation));
         }
         

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/2318953c/lib/commons-core/src/main/java/org/apache/olingo/commons/core/edm/AbstractEdmBindingTarget.java
----------------------------------------------------------------------
diff --git a/lib/commons-core/src/main/java/org/apache/olingo/commons/core/edm/AbstractEdmBindingTarget.java b/lib/commons-core/src/main/java/org/apache/olingo/commons/core/edm/AbstractEdmBindingTarget.java
index 62f12e6..d9503cc 100644
--- a/lib/commons-core/src/main/java/org/apache/olingo/commons/core/edm/AbstractEdmBindingTarget.java
+++ b/lib/commons-core/src/main/java/org/apache/olingo/commons/core/edm/AbstractEdmBindingTarget.java
@@ -30,17 +30,17 @@ import org.apache.olingo.commons.api.edm.EdmEntityType;
 import org.apache.olingo.commons.api.edm.EdmException;
 import org.apache.olingo.commons.api.edm.EdmNavigationPropertyBinding;
 import org.apache.olingo.commons.api.edm.FullQualifiedName;
-import org.apache.olingo.commons.api.edm.provider.BindingTarget;
-import org.apache.olingo.commons.api.edm.provider.NavigationPropertyBinding;
+import org.apache.olingo.commons.api.edm.provider.CsdlBindingTarget;
+import org.apache.olingo.commons.api.edm.provider.CsdlNavigationPropertyBinding;
 
 public abstract class AbstractEdmBindingTarget extends AbstractEdmNamed implements EdmBindingTarget {
 
-  private final BindingTarget target;
+  private final CsdlBindingTarget target;
   private final EdmEntityContainer container;
 
   private List<EdmNavigationPropertyBinding> navigationPropertyBindings;
 
-  public AbstractEdmBindingTarget(final Edm edm, final EdmEntityContainer container, final BindingTarget target) {
+  public AbstractEdmBindingTarget(final Edm edm, final EdmEntityContainer container, final CsdlBindingTarget target) {
     super(edm, target.getName(), target);
     this.container = container;
     this.target = target;
@@ -49,11 +49,11 @@ public abstract class AbstractEdmBindingTarget extends AbstractEdmNamed implemen
   @Override
   public List<EdmNavigationPropertyBinding> getNavigationPropertyBindings() {
     if (navigationPropertyBindings == null) {
-      List<NavigationPropertyBinding> providerBindings = target.getNavigationPropertyBindings();
+      List<CsdlNavigationPropertyBinding> providerBindings = target.getNavigationPropertyBindings();
       final List<EdmNavigationPropertyBinding> navigationPropertyBindingsLocal = 
           new ArrayList<EdmNavigationPropertyBinding>();
       if (providerBindings != null) {
-        for (NavigationPropertyBinding binding : providerBindings) {
+        for (CsdlNavigationPropertyBinding binding : providerBindings) {
           navigationPropertyBindingsLocal.add(new EdmNavigationPropertyBindingImpl(binding.getPath(), 
                                                                                    binding.getTarget()));
         }

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/2318953c/lib/commons-core/src/main/java/org/apache/olingo/commons/core/edm/AbstractEdmNamed.java
----------------------------------------------------------------------
diff --git a/lib/commons-core/src/main/java/org/apache/olingo/commons/core/edm/AbstractEdmNamed.java b/lib/commons-core/src/main/java/org/apache/olingo/commons/core/edm/AbstractEdmNamed.java
index ced2b92..36638fd 100644
--- a/lib/commons-core/src/main/java/org/apache/olingo/commons/core/edm/AbstractEdmNamed.java
+++ b/lib/commons-core/src/main/java/org/apache/olingo/commons/core/edm/AbstractEdmNamed.java
@@ -20,13 +20,13 @@ package org.apache.olingo.commons.core.edm;
 
 import org.apache.olingo.commons.api.edm.Edm;
 import org.apache.olingo.commons.api.edm.EdmNamed;
-import org.apache.olingo.commons.api.edm.provider.Annotatable;
+import org.apache.olingo.commons.api.edm.provider.CsdlAnnotatable;
 
 public abstract class AbstractEdmNamed extends AbstractEdmAnnotatable implements EdmNamed {
 
   private final String name;
 
-  public AbstractEdmNamed(final Edm edm, final String name, final Annotatable annotatable) {
+  public AbstractEdmNamed(final Edm edm, final String name, final CsdlAnnotatable annotatable) {
     super(edm, annotatable);
     this.name = name;
   }

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/2318953c/lib/commons-core/src/main/java/org/apache/olingo/commons/core/edm/AbstractEdmOperation.java
----------------------------------------------------------------------
diff --git a/lib/commons-core/src/main/java/org/apache/olingo/commons/core/edm/AbstractEdmOperation.java b/lib/commons-core/src/main/java/org/apache/olingo/commons/core/edm/AbstractEdmOperation.java
index 6fc4f91..d5dd4be 100644
--- a/lib/commons-core/src/main/java/org/apache/olingo/commons/core/edm/AbstractEdmOperation.java
+++ b/lib/commons-core/src/main/java/org/apache/olingo/commons/core/edm/AbstractEdmOperation.java
@@ -33,17 +33,17 @@ import org.apache.olingo.commons.api.edm.EdmParameter;
 import org.apache.olingo.commons.api.edm.EdmReturnType;
 import org.apache.olingo.commons.api.edm.FullQualifiedName;
 import org.apache.olingo.commons.api.edm.constants.EdmTypeKind;
-import org.apache.olingo.commons.api.edm.provider.Operation;
-import org.apache.olingo.commons.api.edm.provider.Parameter;
+import org.apache.olingo.commons.api.edm.provider.CsdlOperation;
+import org.apache.olingo.commons.api.edm.provider.CsdlParameter;
 
 public abstract class AbstractEdmOperation extends EdmTypeImpl implements EdmOperation {
 
-  private final Operation operation;
+  private final CsdlOperation operation;
   private Map<String, EdmParameter> parameters;
   private List<String> parameterNames;
   private EdmReturnType returnType;
 
-  protected AbstractEdmOperation(final Edm edm, final FullQualifiedName name, final Operation operation,
+  protected AbstractEdmOperation(final Edm edm, final FullQualifiedName name, final CsdlOperation operation,
       final EdmTypeKind kind) {
 
     super(edm, name, kind, operation);
@@ -69,10 +69,10 @@ public abstract class AbstractEdmOperation extends EdmTypeImpl implements EdmOpe
   private void createParameters() {
     if(parameters == null) {
       final Map<String, EdmParameter> parametersLocal = new LinkedHashMap<String, EdmParameter>();
-      final List<Parameter> providerParameters = operation.getParameters();
+      final List<CsdlParameter> providerParameters = operation.getParameters();
       if (providerParameters != null) {
         final List<String> parameterNamesLocal = new ArrayList<String>(providerParameters.size());
-        for (Parameter parameter : providerParameters) {
+        for (CsdlParameter parameter : providerParameters) {
           parametersLocal.put(parameter.getName(), new EdmParameterImpl(edm, parameter));
           parameterNamesLocal.add(parameter.getName());
         }
@@ -120,7 +120,7 @@ public abstract class AbstractEdmOperation extends EdmTypeImpl implements EdmOpe
   @Override
   public FullQualifiedName getBindingParameterTypeFqn() {
     if (isBound()) {
-      Parameter bindingParameter = operation.getParameters().get(0);
+      CsdlParameter bindingParameter = operation.getParameters().get(0);
       return bindingParameter.getTypeFQN();
     }
     return null;
@@ -129,7 +129,7 @@ public abstract class AbstractEdmOperation extends EdmTypeImpl implements EdmOpe
   @Override
   public Boolean isBindingParameterTypeCollection() {
     if (isBound()) {
-      Parameter bindingParameter = operation.getParameters().get(0);
+      CsdlParameter bindingParameter = operation.getParameters().get(0);
       return bindingParameter.isCollection();
     }
     return null;

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/2318953c/lib/commons-core/src/main/java/org/apache/olingo/commons/core/edm/AbstractEdmOperationImport.java
----------------------------------------------------------------------
diff --git a/lib/commons-core/src/main/java/org/apache/olingo/commons/core/edm/AbstractEdmOperationImport.java b/lib/commons-core/src/main/java/org/apache/olingo/commons/core/edm/AbstractEdmOperationImport.java
index c36c44f..356500a 100644
--- a/lib/commons-core/src/main/java/org/apache/olingo/commons/core/edm/AbstractEdmOperationImport.java
+++ b/lib/commons-core/src/main/java/org/apache/olingo/commons/core/edm/AbstractEdmOperationImport.java
@@ -24,7 +24,7 @@ import org.apache.olingo.commons.api.edm.EdmEntitySet;
 import org.apache.olingo.commons.api.edm.EdmException;
 import org.apache.olingo.commons.api.edm.EdmOperationImport;
 import org.apache.olingo.commons.api.edm.FullQualifiedName;
-import org.apache.olingo.commons.api.edm.provider.OperationImport;
+import org.apache.olingo.commons.api.edm.provider.CsdlOperationImport;
 
 public abstract class AbstractEdmOperationImport extends AbstractEdmNamed implements EdmOperationImport {
 
@@ -33,7 +33,7 @@ public abstract class AbstractEdmOperationImport extends AbstractEdmNamed implem
   private EdmEntitySet returnedEntitySet;
 
   public AbstractEdmOperationImport(final Edm edm, final EdmEntityContainer container,
-      final OperationImport operationImport) {
+      final CsdlOperationImport operationImport) {
     super(edm, operationImport.getName(), operationImport);
     this.container = container;
     if (operationImport.getEntitySet() != null) {

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/2318953c/lib/commons-core/src/main/java/org/apache/olingo/commons/core/edm/AbstractEdmStructuredType.java
----------------------------------------------------------------------
diff --git a/lib/commons-core/src/main/java/org/apache/olingo/commons/core/edm/AbstractEdmStructuredType.java b/lib/commons-core/src/main/java/org/apache/olingo/commons/core/edm/AbstractEdmStructuredType.java
index 736b69b..1c96a6b 100644
--- a/lib/commons-core/src/main/java/org/apache/olingo/commons/core/edm/AbstractEdmStructuredType.java
+++ b/lib/commons-core/src/main/java/org/apache/olingo/commons/core/edm/AbstractEdmStructuredType.java
@@ -27,9 +27,9 @@ import org.apache.olingo.commons.api.edm.EdmStructuredType;
 import org.apache.olingo.commons.api.edm.EdmType;
 import org.apache.olingo.commons.api.edm.FullQualifiedName;
 import org.apache.olingo.commons.api.edm.constants.EdmTypeKind;
-import org.apache.olingo.commons.api.edm.provider.NavigationProperty;
-import org.apache.olingo.commons.api.edm.provider.Property;
-import org.apache.olingo.commons.api.edm.provider.StructuralType;
+import org.apache.olingo.commons.api.edm.provider.CsdlNavigationProperty;
+import org.apache.olingo.commons.api.edm.provider.CsdlProperty;
+import org.apache.olingo.commons.api.edm.provider.CsdlStructuralType;
 
 import java.util.ArrayList;
 import java.util.Collections;
@@ -42,7 +42,7 @@ public abstract class AbstractEdmStructuredType extends EdmTypeImpl implements E
   protected EdmStructuredType baseType;
   protected FullQualifiedName baseTypeName;
   
-  private final StructuralType providerStructuredType;
+  private final CsdlStructuralType providerStructuredType;
 
   private List<String> propertyNames;
   private Map<String, EdmProperty> properties;
@@ -53,7 +53,7 @@ public abstract class AbstractEdmStructuredType extends EdmTypeImpl implements E
           final Edm edm,
           final FullQualifiedName typeName,
           final EdmTypeKind kind,
-          final StructuralType structuredType) {
+          final CsdlStructuralType structuredType) {
 
     super(edm, typeName, kind, structuredType);
     this.baseTypeName = structuredType.getBaseTypeFQN();
@@ -158,8 +158,8 @@ public abstract class AbstractEdmStructuredType extends EdmTypeImpl implements E
   public Map<String, EdmProperty> getProperties() {
     if (properties == null) {
       final Map<String, EdmProperty> localPorperties = new LinkedHashMap<String, EdmProperty>();
-      final List<Property> structureTypeProperties = providerStructuredType.getProperties();
-        for (Property property : structureTypeProperties) {
+      final List<CsdlProperty> structureTypeProperties = providerStructuredType.getProperties();
+        for (CsdlProperty property : structureTypeProperties) {
           localPorperties.put(property.getName(), new EdmPropertyImpl(edm, typeName, property));
       }
       properties = Collections.unmodifiableMap(localPorperties);
@@ -171,11 +171,11 @@ public abstract class AbstractEdmStructuredType extends EdmTypeImpl implements E
     if (navigationProperties == null) {
       final Map<String, EdmNavigationProperty> localNavigationProperties = 
           new LinkedHashMap<String, EdmNavigationProperty>();
-      final List<NavigationProperty> structuredTypeNavigationProperties = 
+      final List<CsdlNavigationProperty> structuredTypeNavigationProperties =
           providerStructuredType.getNavigationProperties();
 
       if (structuredTypeNavigationProperties != null) {
-        for (NavigationProperty navigationProperty : structuredTypeNavigationProperties) {
+        for (CsdlNavigationProperty navigationProperty : structuredTypeNavigationProperties) {
           localNavigationProperties.put(navigationProperty.getName(),
                   new EdmNavigationPropertyImpl(edm, typeName, navigationProperty));
         }

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/2318953c/lib/commons-core/src/main/java/org/apache/olingo/commons/core/edm/EdmActionImpl.java
----------------------------------------------------------------------
diff --git a/lib/commons-core/src/main/java/org/apache/olingo/commons/core/edm/EdmActionImpl.java b/lib/commons-core/src/main/java/org/apache/olingo/commons/core/edm/EdmActionImpl.java
index 91296d5..a7b42d3 100644
--- a/lib/commons-core/src/main/java/org/apache/olingo/commons/core/edm/EdmActionImpl.java
+++ b/lib/commons-core/src/main/java/org/apache/olingo/commons/core/edm/EdmActionImpl.java
@@ -22,11 +22,11 @@ import org.apache.olingo.commons.api.edm.Edm;
 import org.apache.olingo.commons.api.edm.EdmAction;
 import org.apache.olingo.commons.api.edm.FullQualifiedName;
 import org.apache.olingo.commons.api.edm.constants.EdmTypeKind;
-import org.apache.olingo.commons.api.edm.provider.Action;
+import org.apache.olingo.commons.api.edm.provider.CsdlAction;
 
 public class EdmActionImpl extends AbstractEdmOperation implements EdmAction {
 
-  public EdmActionImpl(final Edm edm, final FullQualifiedName name, final Action action) {
+  public EdmActionImpl(final Edm edm, final FullQualifiedName name, final CsdlAction action) {
     super(edm, name, action, EdmTypeKind.ACTION);
   }
 }

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/2318953c/lib/commons-core/src/main/java/org/apache/olingo/commons/core/edm/EdmActionImportImpl.java
----------------------------------------------------------------------
diff --git a/lib/commons-core/src/main/java/org/apache/olingo/commons/core/edm/EdmActionImportImpl.java b/lib/commons-core/src/main/java/org/apache/olingo/commons/core/edm/EdmActionImportImpl.java
index 43e2f0b..c36b947 100644
--- a/lib/commons-core/src/main/java/org/apache/olingo/commons/core/edm/EdmActionImportImpl.java
+++ b/lib/commons-core/src/main/java/org/apache/olingo/commons/core/edm/EdmActionImportImpl.java
@@ -22,13 +22,13 @@ import org.apache.olingo.commons.api.edm.Edm;
 import org.apache.olingo.commons.api.edm.EdmAction;
 import org.apache.olingo.commons.api.edm.EdmActionImport;
 import org.apache.olingo.commons.api.edm.EdmEntityContainer;
-import org.apache.olingo.commons.api.edm.provider.ActionImport;
+import org.apache.olingo.commons.api.edm.provider.CsdlActionImport;
 
 public class EdmActionImportImpl extends AbstractEdmOperationImport implements EdmActionImport {
 
-  private final ActionImport actionImport;
+  private final CsdlActionImport actionImport;
 
-  public EdmActionImportImpl(final Edm edm, final EdmEntityContainer container, final ActionImport actionImport) {
+  public EdmActionImportImpl(final Edm edm, final EdmEntityContainer container, final CsdlActionImport actionImport) {
 
     super(edm, container, actionImport);
     this.actionImport = actionImport;

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/2318953c/lib/commons-core/src/main/java/org/apache/olingo/commons/core/edm/EdmAnnotationImpl.java
----------------------------------------------------------------------
diff --git a/lib/commons-core/src/main/java/org/apache/olingo/commons/core/edm/EdmAnnotationImpl.java b/lib/commons-core/src/main/java/org/apache/olingo/commons/core/edm/EdmAnnotationImpl.java
index 8006639..f38a2bc 100644
--- a/lib/commons-core/src/main/java/org/apache/olingo/commons/core/edm/EdmAnnotationImpl.java
+++ b/lib/commons-core/src/main/java/org/apache/olingo/commons/core/edm/EdmAnnotationImpl.java
@@ -29,8 +29,8 @@ import org.apache.olingo.commons.api.edm.FullQualifiedName;
 import org.apache.olingo.commons.api.edm.annotation.EdmAnnotationExpression;
 import org.apache.olingo.commons.api.edm.annotation.EdmDynamicAnnotationExpression;
 import org.apache.olingo.commons.api.edm.annotation.EdmPropertyValue;
-import org.apache.olingo.commons.api.edm.provider.Annotatable;
-import org.apache.olingo.commons.api.edm.provider.Annotation;
+import org.apache.olingo.commons.api.edm.provider.CsdlAnnotatable;
+import org.apache.olingo.commons.api.edm.provider.CsdlAnnotation;
 import org.apache.olingo.commons.api.edm.provider.annotation.AnnotationExpression;
 import org.apache.olingo.commons.api.edm.provider.annotation.DynamicAnnotationExpression;
 import org.apache.olingo.commons.api.edm.provider.annotation.PropertyValue;
@@ -62,11 +62,11 @@ import org.apache.olingo.commons.core.edm.annotation.EdmUrlRefImpl;
 
 public class EdmAnnotationImpl extends AbstractEdmAnnotatable implements EdmAnnotation {
 
-  private final Annotation annotation;
+  private final CsdlAnnotation annotation;
   private EdmTerm term;
   private EdmAnnotationExpression expression;
 
-  public EdmAnnotationImpl(final Edm edm, final Annotation annotation) {
+  public EdmAnnotationImpl(final Edm edm, final CsdlAnnotation annotation) {
     super(edm, annotation);
     this.annotation = annotation;
   }
@@ -206,8 +206,8 @@ public class EdmAnnotationImpl extends AbstractEdmAnnotatable implements EdmAnno
       _expression = new EdmUrlRefImpl(getExpression(exp.asUrlRef().getValue()));
     }
 
-    if (_expression instanceof EdmAnnotatable && exp instanceof Annotatable) {
-      for (Annotation _annotation : ((Annotatable) exp).getAnnotations()) {
+    if (_expression instanceof EdmAnnotatable && exp instanceof CsdlAnnotatable) {
+      for (CsdlAnnotation _annotation : ((CsdlAnnotatable) exp).getAnnotations()) {
         ((EdmAnnotatable) _expression).getAnnotations().add(new EdmAnnotationImpl(edm, _annotation));
       }
     }

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/2318953c/lib/commons-core/src/main/java/org/apache/olingo/commons/core/edm/EdmAnnotationsImpl.java
----------------------------------------------------------------------
diff --git a/lib/commons-core/src/main/java/org/apache/olingo/commons/core/edm/EdmAnnotationsImpl.java b/lib/commons-core/src/main/java/org/apache/olingo/commons/core/edm/EdmAnnotationsImpl.java
index 0b10b17..772838b 100644
--- a/lib/commons-core/src/main/java/org/apache/olingo/commons/core/edm/EdmAnnotationsImpl.java
+++ b/lib/commons-core/src/main/java/org/apache/olingo/commons/core/edm/EdmAnnotationsImpl.java
@@ -33,18 +33,18 @@ import org.apache.olingo.commons.api.edm.EdmSchema;
 import org.apache.olingo.commons.api.edm.EdmStructuredType;
 import org.apache.olingo.commons.api.edm.EdmTerm;
 import org.apache.olingo.commons.api.edm.FullQualifiedName;
-import org.apache.olingo.commons.api.edm.provider.Annotation;
-import org.apache.olingo.commons.api.edm.provider.Annotations;
+import org.apache.olingo.commons.api.edm.provider.CsdlAnnotation;
+import org.apache.olingo.commons.api.edm.provider.CsdlAnnotations;
 
 public class EdmAnnotationsImpl implements EdmAnnotations {
 
   private final Edm edm;
   private final EdmSchema schema;
-  private final Annotations annotationGroup;
+  private final CsdlAnnotations annotationGroup;
   private EdmAnnotationsTarget target;
   private List<EdmAnnotation> annotations;
 
-  public EdmAnnotationsImpl(final Edm edm, final EdmSchema schema, final Annotations annotationGroup) {
+  public EdmAnnotationsImpl(final Edm edm, final EdmSchema schema, final CsdlAnnotations annotationGroup) {
     this.edm = edm;
     this.schema = schema;
     this.annotationGroup = annotationGroup;
@@ -139,7 +139,7 @@ public class EdmAnnotationsImpl implements EdmAnnotations {
   public List<EdmAnnotation> getAnnotations() {
     if (annotations == null) {
       List<EdmAnnotation> annotationsLocal = new ArrayList<EdmAnnotation>();
-      for (Annotation annotation : annotationGroup.getAnnotations()) {
+      for (CsdlAnnotation annotation : annotationGroup.getAnnotations()) {
         annotationsLocal.add(new EdmAnnotationImpl(edm, annotation));
       }
       

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/2318953c/lib/commons-core/src/main/java/org/apache/olingo/commons/core/edm/EdmComplexTypeImpl.java
----------------------------------------------------------------------
diff --git a/lib/commons-core/src/main/java/org/apache/olingo/commons/core/edm/EdmComplexTypeImpl.java b/lib/commons-core/src/main/java/org/apache/olingo/commons/core/edm/EdmComplexTypeImpl.java
index d39d594..20e0836 100644
--- a/lib/commons-core/src/main/java/org/apache/olingo/commons/core/edm/EdmComplexTypeImpl.java
+++ b/lib/commons-core/src/main/java/org/apache/olingo/commons/core/edm/EdmComplexTypeImpl.java
@@ -24,11 +24,11 @@ import org.apache.olingo.commons.api.edm.EdmException;
 import org.apache.olingo.commons.api.edm.EdmStructuredType;
 import org.apache.olingo.commons.api.edm.FullQualifiedName;
 import org.apache.olingo.commons.api.edm.constants.EdmTypeKind;
-import org.apache.olingo.commons.api.edm.provider.ComplexType;
+import org.apache.olingo.commons.api.edm.provider.CsdlComplexType;
 
 public class EdmComplexTypeImpl extends AbstractEdmStructuredType implements EdmComplexType {
 
-  public EdmComplexTypeImpl(final Edm edm, final FullQualifiedName name, final ComplexType complexType) {
+  public EdmComplexTypeImpl(final Edm edm, final FullQualifiedName name, final CsdlComplexType complexType) {
     super(edm, name, EdmTypeKind.COMPLEX, complexType);
   }
 

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/2318953c/lib/commons-core/src/main/java/org/apache/olingo/commons/core/edm/EdmEntityContainerImpl.java
----------------------------------------------------------------------
diff --git a/lib/commons-core/src/main/java/org/apache/olingo/commons/core/edm/EdmEntityContainerImpl.java b/lib/commons-core/src/main/java/org/apache/olingo/commons/core/edm/EdmEntityContainerImpl.java
index 2c6d871..3112f4b 100644
--- a/lib/commons-core/src/main/java/org/apache/olingo/commons/core/edm/EdmEntityContainerImpl.java
+++ b/lib/commons-core/src/main/java/org/apache/olingo/commons/core/edm/EdmEntityContainerImpl.java
@@ -33,18 +33,18 @@ import org.apache.olingo.commons.api.edm.EdmException;
 import org.apache.olingo.commons.api.edm.EdmFunctionImport;
 import org.apache.olingo.commons.api.edm.EdmSingleton;
 import org.apache.olingo.commons.api.edm.FullQualifiedName;
-import org.apache.olingo.commons.api.edm.provider.ActionImport;
-import org.apache.olingo.commons.api.edm.provider.EdmProvider;
-import org.apache.olingo.commons.api.edm.provider.EntityContainer;
-import org.apache.olingo.commons.api.edm.provider.EntityContainerInfo;
-import org.apache.olingo.commons.api.edm.provider.EntitySet;
-import org.apache.olingo.commons.api.edm.provider.FunctionImport;
-import org.apache.olingo.commons.api.edm.provider.Singleton;
+import org.apache.olingo.commons.api.edm.provider.CsdlActionImport;
+import org.apache.olingo.commons.api.edm.provider.CsdlEdmProvider;
+import org.apache.olingo.commons.api.edm.provider.CsdlEntityContainer;
+import org.apache.olingo.commons.api.edm.provider.CsdlEntityContainerInfo;
+import org.apache.olingo.commons.api.edm.provider.CsdlEntitySet;
+import org.apache.olingo.commons.api.edm.provider.CsdlFunctionImport;
+import org.apache.olingo.commons.api.edm.provider.CsdlSingleton;
 
 public class EdmEntityContainerImpl extends AbstractEdmNamed implements EdmEntityContainer {
 
-  private final EdmProvider provider;
-  private EntityContainer container;
+  private final CsdlEdmProvider provider;
+  private CsdlEntityContainer container;
 
   private final FullQualifiedName entityContainerName;
   private final FullQualifiedName parentContainerName;
@@ -62,16 +62,16 @@ public class EdmEntityContainerImpl extends AbstractEdmNamed implements EdmEntit
   private final Map<String, EdmFunctionImport> functionImportCache = Collections.synchronizedMap(
                                                                     new LinkedHashMap<String, EdmFunctionImport>());
 
-  public EdmEntityContainerImpl(final Edm edm, final EdmProvider provider,
-      final EntityContainerInfo entityContainerInfo) {
+  public EdmEntityContainerImpl(final Edm edm, final CsdlEdmProvider provider,
+      final CsdlEntityContainerInfo entityContainerInfo) {
     super(edm, entityContainerInfo.getContainerName().getName(), null);
     this.provider = provider;
     this.entityContainerName = entityContainerInfo.getContainerName();
     this.parentContainerName = entityContainerInfo.getExtendsContainer();
   }
 
-  public EdmEntityContainerImpl(final Edm edm, final EdmProvider provider, final FullQualifiedName containerFQN,
-      final EntityContainer entityContainer) {
+  public EdmEntityContainerImpl(final Edm edm, final CsdlEdmProvider provider, final FullQualifiedName containerFQN,
+      final CsdlEntityContainer entityContainer) {
     super(edm, containerFQN.getName(), entityContainer);
     this.provider = provider;
     container = entityContainer;
@@ -178,7 +178,7 @@ public class EdmEntityContainerImpl extends AbstractEdmNamed implements EdmEntit
     EdmSingleton singleton = null;
 
     try {
-      final Singleton providerSingleton = provider.getSingleton(entityContainerName, singletonName);
+      final CsdlSingleton providerSingleton = provider.getSingleton(entityContainerName, singletonName);
       if (providerSingleton != null) {
         singleton = new EdmSingletonImpl(edm, this, providerSingleton);
       }
@@ -193,7 +193,7 @@ public class EdmEntityContainerImpl extends AbstractEdmNamed implements EdmEntit
     EdmEntitySet entitySet = null;
 
     try {
-      final EntitySet providerEntitySet = provider.getEntitySet(entityContainerName, entitySetName);
+      final CsdlEntitySet providerEntitySet = provider.getEntitySet(entityContainerName, entitySetName);
       if (providerEntitySet != null) {
         entitySet = new EdmEntitySetImpl(edm, this, providerEntitySet);
       }
@@ -208,7 +208,7 @@ public class EdmEntityContainerImpl extends AbstractEdmNamed implements EdmEntit
     EdmActionImport actionImport = null;
 
     try {
-      final ActionImport providerImport = provider.getActionImport(entityContainerName, actionImportName);
+      final CsdlActionImport providerImport = provider.getActionImport(entityContainerName, actionImportName);
       if (providerImport != null) {
         actionImport = new EdmActionImportImpl(edm, this, providerImport);
       }
@@ -223,7 +223,7 @@ public class EdmEntityContainerImpl extends AbstractEdmNamed implements EdmEntit
     EdmFunctionImport functionImport = null;
 
     try {
-      final FunctionImport providerImport = provider.getFunctionImport(entityContainerName, functionImportName);
+      final CsdlFunctionImport providerImport = provider.getFunctionImport(entityContainerName, functionImportName);
       if (providerImport != null) {
         functionImport = new EdmFunctionImportImpl(edm, this, providerImport);
       }
@@ -236,11 +236,11 @@ public class EdmEntityContainerImpl extends AbstractEdmNamed implements EdmEntit
 
   protected void loadAllEntitySets() {
     loadContainer();
-    final List<EntitySet> providerEntitySets = container.getEntitySets();
+    final List<CsdlEntitySet> providerEntitySets = container.getEntitySets();
     final List<EdmEntitySet> entitySetsLocal = new ArrayList<EdmEntitySet>();
     
     if (providerEntitySets != null) {
-      for (EntitySet entitySet : providerEntitySets) {
+      for (CsdlEntitySet entitySet : providerEntitySets) {
         final EdmEntitySetImpl impl = new EdmEntitySetImpl(edm, this, entitySet);
         entitySetCache.put(impl.getName(), impl);
         entitySetsLocal.add(impl);
@@ -251,11 +251,11 @@ public class EdmEntityContainerImpl extends AbstractEdmNamed implements EdmEntit
 
   protected void loadAllFunctionImports() {
     loadContainer();
-    final List<FunctionImport> providerFunctionImports = container.getFunctionImports();
+    final List<CsdlFunctionImport> providerFunctionImports = container.getFunctionImports();
     final ArrayList<EdmFunctionImport> functionImportsLocal = new ArrayList<EdmFunctionImport>();
     
     if (providerFunctionImports != null) {
-      for (FunctionImport functionImport : providerFunctionImports) {
+      for (CsdlFunctionImport functionImport : providerFunctionImports) {
         EdmFunctionImportImpl impl = new EdmFunctionImportImpl(edm, this, functionImport);
         functionImportCache.put(impl.getName(), impl);
         functionImportsLocal.add(impl);
@@ -266,11 +266,11 @@ public class EdmEntityContainerImpl extends AbstractEdmNamed implements EdmEntit
 
   protected void loadAllSingletons() {
     loadContainer();
-    final List<Singleton> providerSingletons = container.getSingletons();
+    final List<CsdlSingleton> providerSingletons = container.getSingletons();
     final List<EdmSingleton> singletonsLocal = new ArrayList<EdmSingleton>();
     
     if (providerSingletons != null) {
-      for (Singleton singleton : providerSingletons) {
+      for (CsdlSingleton singleton : providerSingletons) {
         final EdmSingletonImpl impl = new EdmSingletonImpl(edm, this, singleton);
         singletonCache.put(singleton.getName(), impl);
         singletonsLocal.add(impl);
@@ -281,11 +281,11 @@ public class EdmEntityContainerImpl extends AbstractEdmNamed implements EdmEntit
 
   protected void loadAllActionImports() {
     loadContainer();
-    final List<ActionImport> providerActionImports = container.getActionImports();
+    final List<CsdlActionImport> providerActionImports = container.getActionImports();
     final List<EdmActionImport> actionImportsLocal = new ArrayList<EdmActionImport>();
 
     if (providerActionImports != null) {
-      for (ActionImport actionImport : providerActionImports) {
+      for (CsdlActionImport actionImport : providerActionImports) {
         final EdmActionImportImpl impl = new EdmActionImportImpl(edm, this, actionImport);
         actionImportCache.put(actionImport.getName(), impl);
         actionImportsLocal.add(impl);
@@ -298,9 +298,9 @@ public class EdmEntityContainerImpl extends AbstractEdmNamed implements EdmEntit
   private void loadContainer() {
     if (container == null) {
       try {
-        EntityContainer containerLocal = provider.getEntityContainer();
+        CsdlEntityContainer containerLocal = provider.getEntityContainer();
         if (containerLocal == null) {
-          containerLocal = new EntityContainer().setName(getName());
+          containerLocal = new CsdlEntityContainer().setName(getName());
         }
         
         container = containerLocal;

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/2318953c/lib/commons-core/src/main/java/org/apache/olingo/commons/core/edm/EdmEntitySetImpl.java
----------------------------------------------------------------------
diff --git a/lib/commons-core/src/main/java/org/apache/olingo/commons/core/edm/EdmEntitySetImpl.java b/lib/commons-core/src/main/java/org/apache/olingo/commons/core/edm/EdmEntitySetImpl.java
index 2d4bd0d..a840841 100644
--- a/lib/commons-core/src/main/java/org/apache/olingo/commons/core/edm/EdmEntitySetImpl.java
+++ b/lib/commons-core/src/main/java/org/apache/olingo/commons/core/edm/EdmEntitySetImpl.java
@@ -21,13 +21,13 @@ package org.apache.olingo.commons.core.edm;
 import org.apache.olingo.commons.api.edm.Edm;
 import org.apache.olingo.commons.api.edm.EdmEntityContainer;
 import org.apache.olingo.commons.api.edm.EdmEntitySet;
-import org.apache.olingo.commons.api.edm.provider.EntitySet;
+import org.apache.olingo.commons.api.edm.provider.CsdlEntitySet;
 
 public class EdmEntitySetImpl extends AbstractEdmBindingTarget implements EdmEntitySet {
 
-  private EntitySet entitySet;
+  private CsdlEntitySet entitySet;
 
-  public EdmEntitySetImpl(final Edm edm, final EdmEntityContainer container, final EntitySet entitySet) {
+  public EdmEntitySetImpl(final Edm edm, final EdmEntityContainer container, final CsdlEntitySet entitySet) {
     super(edm, container, entitySet);
     this.entitySet = entitySet;
   }

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/2318953c/lib/commons-core/src/main/java/org/apache/olingo/commons/core/edm/EdmEntityTypeImpl.java
----------------------------------------------------------------------
diff --git a/lib/commons-core/src/main/java/org/apache/olingo/commons/core/edm/EdmEntityTypeImpl.java b/lib/commons-core/src/main/java/org/apache/olingo/commons/core/edm/EdmEntityTypeImpl.java
index e6fefca..73d8758 100644
--- a/lib/commons-core/src/main/java/org/apache/olingo/commons/core/edm/EdmEntityTypeImpl.java
+++ b/lib/commons-core/src/main/java/org/apache/olingo/commons/core/edm/EdmEntityTypeImpl.java
@@ -31,12 +31,12 @@ import org.apache.olingo.commons.api.edm.EdmKeyPropertyRef;
 import org.apache.olingo.commons.api.edm.EdmStructuredType;
 import org.apache.olingo.commons.api.edm.FullQualifiedName;
 import org.apache.olingo.commons.api.edm.constants.EdmTypeKind;
-import org.apache.olingo.commons.api.edm.provider.EntityType;
-import org.apache.olingo.commons.api.edm.provider.PropertyRef;
+import org.apache.olingo.commons.api.edm.provider.CsdlEntityType;
+import org.apache.olingo.commons.api.edm.provider.CsdlPropertyRef;
 
 public class EdmEntityTypeImpl extends AbstractEdmStructuredType implements EdmEntityType {
 
-  private EntityType entityType;
+  private CsdlEntityType entityType;
   private boolean baseTypeChecked = false;
   private final boolean hasStream;
   protected EdmEntityType entityBaseType;
@@ -45,7 +45,7 @@ public class EdmEntityTypeImpl extends AbstractEdmStructuredType implements EdmE
       Collections.synchronizedMap(new LinkedHashMap<String, EdmKeyPropertyRef>());
   private List<EdmKeyPropertyRef> keyPropertyRefsList;
 
-  public EdmEntityTypeImpl(final Edm edm, final FullQualifiedName name, final EntityType entityType) {
+  public EdmEntityTypeImpl(final Edm edm, final FullQualifiedName name, final CsdlEntityType entityType) {
     super(edm, name, EdmTypeKind.ENTITY, entityType);
     this.entityType = entityType;
     hasStream = entityType.hasStream();
@@ -60,10 +60,10 @@ public class EdmEntityTypeImpl extends AbstractEdmStructuredType implements EdmE
       }
       if (baseType == null
           || (baseType.isAbstract() && ((EdmEntityType) baseType).getKeyPropertyRefs().size() == 0)) {
-        final List<PropertyRef> key = entityType.getKey();
+        final List<CsdlPropertyRef> key = entityType.getKey();
         if (key != null) {
           final List<EdmKeyPropertyRef> edmKey = new ArrayList<EdmKeyPropertyRef>();
-          for (PropertyRef ref : key) {
+          for (CsdlPropertyRef ref : key) {
             edmKey.add(new EdmKeyPropertyRefImpl(this, ref));
           }
           setEdmKeyPropertyRef(edmKey);

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/2318953c/lib/commons-core/src/main/java/org/apache/olingo/commons/core/edm/EdmEnumTypeImpl.java
----------------------------------------------------------------------
diff --git a/lib/commons-core/src/main/java/org/apache/olingo/commons/core/edm/EdmEnumTypeImpl.java b/lib/commons-core/src/main/java/org/apache/olingo/commons/core/edm/EdmEnumTypeImpl.java
index 95866fd..d04e406 100644
--- a/lib/commons-core/src/main/java/org/apache/olingo/commons/core/edm/EdmEnumTypeImpl.java
+++ b/lib/commons-core/src/main/java/org/apache/olingo/commons/core/edm/EdmEnumTypeImpl.java
@@ -35,8 +35,8 @@ import org.apache.olingo.commons.api.edm.EdmPrimitiveTypeException;
 import org.apache.olingo.commons.api.edm.EdmPrimitiveTypeKind;
 import org.apache.olingo.commons.api.edm.FullQualifiedName;
 import org.apache.olingo.commons.api.edm.constants.EdmTypeKind;
-import org.apache.olingo.commons.api.edm.provider.EnumMember;
-import org.apache.olingo.commons.api.edm.provider.EnumType;
+import org.apache.olingo.commons.api.edm.provider.CsdlEnumMember;
+import org.apache.olingo.commons.api.edm.provider.CsdlEnumType;
 import org.apache.olingo.commons.core.edm.primitivetype.EdmInt64;
 import org.apache.olingo.commons.core.edm.primitivetype.EdmPrimitiveTypeFactory;
 
@@ -52,13 +52,13 @@ public class EdmEnumTypeImpl extends EdmTypeImpl implements EdmEnumType {
   }
 
   private final EdmPrimitiveType underlyingType;
-  private final EnumType enumType;
+  private final CsdlEnumType enumType;
   private final String uriPrefix;
   private final String uriSuffix;
   private List<String> memberNames;
   private LinkedHashMap<String, EdmMember> membersMap;
 
-  public EdmEnumTypeImpl(final Edm edm, final FullQualifiedName enumName, final EnumType enumType) {
+  public EdmEnumTypeImpl(final Edm edm, final FullQualifiedName enumName, final CsdlEnumType enumType) {
     super(edm, enumName, EdmTypeKind.ENUM, enumType);
 
     if (enumType.getUnderlyingType() == null) {
@@ -102,7 +102,7 @@ public class EdmEnumTypeImpl extends EdmTypeImpl implements EdmEnumType {
     final LinkedHashMap<String, EdmMember> membersMapLocal = new LinkedHashMap<String, EdmMember>();
     final List<String> memberNamesLocal = new ArrayList<String>();
     if (enumType.getMembers() != null) {
-      for (final EnumMember member : enumType.getMembers()) {
+      for (final CsdlEnumMember member : enumType.getMembers()) {
         membersMapLocal.put(member.getName(), new EdmMemberImpl(edm, getFullQualifiedName(), member));
         memberNamesLocal.add(member.getName());
       }

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/2318953c/lib/commons-core/src/main/java/org/apache/olingo/commons/core/edm/EdmFunctionImpl.java
----------------------------------------------------------------------
diff --git a/lib/commons-core/src/main/java/org/apache/olingo/commons/core/edm/EdmFunctionImpl.java b/lib/commons-core/src/main/java/org/apache/olingo/commons/core/edm/EdmFunctionImpl.java
index 01d20ea..8ed366b 100644
--- a/lib/commons-core/src/main/java/org/apache/olingo/commons/core/edm/EdmFunctionImpl.java
+++ b/lib/commons-core/src/main/java/org/apache/olingo/commons/core/edm/EdmFunctionImpl.java
@@ -24,13 +24,13 @@ import org.apache.olingo.commons.api.edm.EdmFunction;
 import org.apache.olingo.commons.api.edm.EdmReturnType;
 import org.apache.olingo.commons.api.edm.FullQualifiedName;
 import org.apache.olingo.commons.api.edm.constants.EdmTypeKind;
-import org.apache.olingo.commons.api.edm.provider.Function;
+import org.apache.olingo.commons.api.edm.provider.CsdlFunction;
 
 public class EdmFunctionImpl extends AbstractEdmOperation implements EdmFunction {
 
-  private final Function function;
+  private final CsdlFunction function;
 
-  public EdmFunctionImpl(final Edm edm, final FullQualifiedName name, final Function function) {
+  public EdmFunctionImpl(final Edm edm, final FullQualifiedName name, final CsdlFunction function) {
     super(edm, name, function, EdmTypeKind.FUNCTION);
     this.function = function;
   }

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/2318953c/lib/commons-core/src/main/java/org/apache/olingo/commons/core/edm/EdmFunctionImportImpl.java
----------------------------------------------------------------------
diff --git a/lib/commons-core/src/main/java/org/apache/olingo/commons/core/edm/EdmFunctionImportImpl.java b/lib/commons-core/src/main/java/org/apache/olingo/commons/core/edm/EdmFunctionImportImpl.java
index ea9037d..64a80c6 100644
--- a/lib/commons-core/src/main/java/org/apache/olingo/commons/core/edm/EdmFunctionImportImpl.java
+++ b/lib/commons-core/src/main/java/org/apache/olingo/commons/core/edm/EdmFunctionImportImpl.java
@@ -25,13 +25,14 @@ import org.apache.olingo.commons.api.edm.EdmEntityContainer;
 import org.apache.olingo.commons.api.edm.EdmFunction;
 import org.apache.olingo.commons.api.edm.EdmFunctionImport;
 import org.apache.olingo.commons.api.edm.FullQualifiedName;
-import org.apache.olingo.commons.api.edm.provider.FunctionImport;
+import org.apache.olingo.commons.api.edm.provider.CsdlFunctionImport;
 
 public class EdmFunctionImportImpl extends AbstractEdmOperationImport implements EdmFunctionImport {
 
-  private final FunctionImport functionImport;
+  private final CsdlFunctionImport functionImport;
 
-  public EdmFunctionImportImpl(final Edm edm, final EdmEntityContainer container, final FunctionImport functionImport) {
+  public EdmFunctionImportImpl(final Edm edm, final EdmEntityContainer container,
+                               final CsdlFunctionImport functionImport) {
     super(edm, container, functionImport);
     this.functionImport = functionImport;
   }

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/2318953c/lib/commons-core/src/main/java/org/apache/olingo/commons/core/edm/EdmKeyPropertyRefImpl.java
----------------------------------------------------------------------
diff --git a/lib/commons-core/src/main/java/org/apache/olingo/commons/core/edm/EdmKeyPropertyRefImpl.java b/lib/commons-core/src/main/java/org/apache/olingo/commons/core/edm/EdmKeyPropertyRefImpl.java
index 0f69deb..13199ee 100644
--- a/lib/commons-core/src/main/java/org/apache/olingo/commons/core/edm/EdmKeyPropertyRefImpl.java
+++ b/lib/commons-core/src/main/java/org/apache/olingo/commons/core/edm/EdmKeyPropertyRefImpl.java
@@ -23,15 +23,15 @@ import org.apache.olingo.commons.api.edm.EdmException;
 import org.apache.olingo.commons.api.edm.EdmKeyPropertyRef;
 import org.apache.olingo.commons.api.edm.EdmProperty;
 import org.apache.olingo.commons.api.edm.EdmStructuredType;
-import org.apache.olingo.commons.api.edm.provider.PropertyRef;
+import org.apache.olingo.commons.api.edm.provider.CsdlPropertyRef;
 
 public class EdmKeyPropertyRefImpl implements EdmKeyPropertyRef {
 
-  private final PropertyRef ref;
+  private final CsdlPropertyRef ref;
   private EdmEntityType edmEntityType;
   private EdmProperty property;
 
-  public EdmKeyPropertyRefImpl(final EdmEntityType edmEntityType, final PropertyRef ref) {
+  public EdmKeyPropertyRefImpl(final EdmEntityType edmEntityType, final CsdlPropertyRef ref) {
     this.edmEntityType = edmEntityType;
     this.ref = ref;
   }

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/2318953c/lib/commons-core/src/main/java/org/apache/olingo/commons/core/edm/EdmMemberImpl.java
----------------------------------------------------------------------
diff --git a/lib/commons-core/src/main/java/org/apache/olingo/commons/core/edm/EdmMemberImpl.java b/lib/commons-core/src/main/java/org/apache/olingo/commons/core/edm/EdmMemberImpl.java
index 362dd72..7fd05e4 100644
--- a/lib/commons-core/src/main/java/org/apache/olingo/commons/core/edm/EdmMemberImpl.java
+++ b/lib/commons-core/src/main/java/org/apache/olingo/commons/core/edm/EdmMemberImpl.java
@@ -21,14 +21,14 @@ package org.apache.olingo.commons.core.edm;
 import org.apache.olingo.commons.api.edm.Edm;
 import org.apache.olingo.commons.api.edm.EdmMember;
 import org.apache.olingo.commons.api.edm.FullQualifiedName;
-import org.apache.olingo.commons.api.edm.provider.EnumMember;
+import org.apache.olingo.commons.api.edm.provider.CsdlEnumMember;
 
 public class EdmMemberImpl extends AbstractEdmNamed implements EdmMember {
 
   private final FullQualifiedName enumFQN;
-  private final EnumMember member;
+  private final CsdlEnumMember member;
 
-  public EdmMemberImpl(final Edm edm, final FullQualifiedName enumFQN, final EnumMember member) {
+  public EdmMemberImpl(final Edm edm, final FullQualifiedName enumFQN, final CsdlEnumMember member) {
     super(edm, member.getName(), member);
     this.enumFQN = enumFQN;
     this.member = member;

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/2318953c/lib/commons-core/src/main/java/org/apache/olingo/commons/core/edm/EdmNavigationPropertyImpl.java
----------------------------------------------------------------------
diff --git a/lib/commons-core/src/main/java/org/apache/olingo/commons/core/edm/EdmNavigationPropertyImpl.java b/lib/commons-core/src/main/java/org/apache/olingo/commons/core/edm/EdmNavigationPropertyImpl.java
index 71f0a57..2904dea 100644
--- a/lib/commons-core/src/main/java/org/apache/olingo/commons/core/edm/EdmNavigationPropertyImpl.java
+++ b/lib/commons-core/src/main/java/org/apache/olingo/commons/core/edm/EdmNavigationPropertyImpl.java
@@ -30,19 +30,19 @@ import org.apache.olingo.commons.api.edm.EdmNavigationProperty;
 import org.apache.olingo.commons.api.edm.EdmReferentialConstraint;
 import org.apache.olingo.commons.api.edm.EdmStructuredType;
 import org.apache.olingo.commons.api.edm.FullQualifiedName;
-import org.apache.olingo.commons.api.edm.provider.NavigationProperty;
-import org.apache.olingo.commons.api.edm.provider.ReferentialConstraint;
+import org.apache.olingo.commons.api.edm.provider.CsdlNavigationProperty;
+import org.apache.olingo.commons.api.edm.provider.CsdlReferentialConstraint;
 
 public class EdmNavigationPropertyImpl extends AbstractEdmNamed implements EdmElement, EdmNavigationProperty {
 
   private final FullQualifiedName structuredTypeName;
-  private final NavigationProperty navigationProperty;
+  private final CsdlNavigationProperty navigationProperty;
   private List<EdmReferentialConstraint> referentialConstraints;
   private EdmEntityType typeImpl;
   private EdmNavigationProperty partnerNavigationProperty;
 
   public EdmNavigationPropertyImpl(
-      final Edm edm, final FullQualifiedName structuredTypeName, final NavigationProperty navigationProperty) {
+      final Edm edm, final FullQualifiedName structuredTypeName, final CsdlNavigationProperty navigationProperty) {
     super(edm, navigationProperty.getName(), navigationProperty);
     this.structuredTypeName = structuredTypeName;
     this.navigationProperty = navigationProperty;
@@ -98,9 +98,9 @@ public class EdmNavigationPropertyImpl extends AbstractEdmNamed implements EdmEl
 
   @Override
   public String getReferencingPropertyName(final String referencedPropertyName) {
-    final List<ReferentialConstraint> referentialConstraints = navigationProperty.getReferentialConstraints();
+    final List<CsdlReferentialConstraint> referentialConstraints = navigationProperty.getReferentialConstraints();
     if (referentialConstraints != null) {
-      for (ReferentialConstraint constraint : referentialConstraints) {
+      for (CsdlReferentialConstraint constraint : referentialConstraints) {
         if (constraint.getReferencedProperty().equals(referencedPropertyName)) {
           return constraint.getProperty();
         }
@@ -112,10 +112,10 @@ public class EdmNavigationPropertyImpl extends AbstractEdmNamed implements EdmEl
   @Override
   public List<EdmReferentialConstraint> getReferentialConstraints() {
     if (referentialConstraints == null) {
-      final List<ReferentialConstraint> providerConstraints = navigationProperty.getReferentialConstraints();
+      final List<CsdlReferentialConstraint> providerConstraints = navigationProperty.getReferentialConstraints();
       final List<EdmReferentialConstraint> referentialConstraintsLocal = new ArrayList<EdmReferentialConstraint>();
       if (providerConstraints != null) {
-        for (ReferentialConstraint constraint : providerConstraints) {
+        for (CsdlReferentialConstraint constraint : providerConstraints) {
           referentialConstraintsLocal.add(new EdmReferentialConstraintImpl(edm, constraint));
         }
       }

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/2318953c/lib/commons-core/src/main/java/org/apache/olingo/commons/core/edm/EdmParameterImpl.java
----------------------------------------------------------------------
diff --git a/lib/commons-core/src/main/java/org/apache/olingo/commons/core/edm/EdmParameterImpl.java b/lib/commons-core/src/main/java/org/apache/olingo/commons/core/edm/EdmParameterImpl.java
index e32bc6f..33f2fd0 100644
--- a/lib/commons-core/src/main/java/org/apache/olingo/commons/core/edm/EdmParameterImpl.java
+++ b/lib/commons-core/src/main/java/org/apache/olingo/commons/core/edm/EdmParameterImpl.java
@@ -25,15 +25,15 @@ import org.apache.olingo.commons.api.edm.EdmMapping;
 import org.apache.olingo.commons.api.edm.EdmParameter;
 import org.apache.olingo.commons.api.edm.EdmType;
 import org.apache.olingo.commons.api.edm.geo.SRID;
-import org.apache.olingo.commons.api.edm.provider.Parameter;
+import org.apache.olingo.commons.api.edm.provider.CsdlParameter;
 
 public class EdmParameterImpl extends AbstractEdmNamed implements EdmParameter, EdmElement {
 
-  private final Parameter parameter;
+  private final CsdlParameter parameter;
   private final EdmTypeInfo typeInfo;
   private EdmType typeImpl;
 
-  public EdmParameterImpl(final Edm edm, final Parameter parameter) {
+  public EdmParameterImpl(final Edm edm, final CsdlParameter parameter) {
     super(edm, parameter.getName(), parameter);
     this.parameter = parameter;
     this.typeInfo = new EdmTypeInfo.Builder().setEdm(edm).setTypeExpression(parameter.getType()).build();

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/2318953c/lib/commons-core/src/main/java/org/apache/olingo/commons/core/edm/EdmPropertyImpl.java
----------------------------------------------------------------------
diff --git a/lib/commons-core/src/main/java/org/apache/olingo/commons/core/edm/EdmPropertyImpl.java b/lib/commons-core/src/main/java/org/apache/olingo/commons/core/edm/EdmPropertyImpl.java
index 494744b..853e235 100644
--- a/lib/commons-core/src/main/java/org/apache/olingo/commons/core/edm/EdmPropertyImpl.java
+++ b/lib/commons-core/src/main/java/org/apache/olingo/commons/core/edm/EdmPropertyImpl.java
@@ -26,16 +26,16 @@ import org.apache.olingo.commons.api.edm.EdmProperty;
 import org.apache.olingo.commons.api.edm.EdmType;
 import org.apache.olingo.commons.api.edm.FullQualifiedName;
 import org.apache.olingo.commons.api.edm.geo.SRID;
-import org.apache.olingo.commons.api.edm.provider.Property;
+import org.apache.olingo.commons.api.edm.provider.CsdlProperty;
 
 public class EdmPropertyImpl extends AbstractEdmNamed implements EdmProperty, EdmElement {
 
   private final FullQualifiedName structuredTypeName;
-  private final Property property;
+  private final CsdlProperty property;
   private final EdmTypeInfo typeInfo;
   private EdmType propertyType;
 
-  public EdmPropertyImpl(final Edm edm, final FullQualifiedName structuredTypeName, final Property property) {
+  public EdmPropertyImpl(final Edm edm, final FullQualifiedName structuredTypeName, final CsdlProperty property) {
     super(edm, property.getName(), property);
 
     this.structuredTypeName = structuredTypeName;

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/2318953c/lib/commons-core/src/main/java/org/apache/olingo/commons/core/edm/EdmProviderImpl.java
----------------------------------------------------------------------
diff --git a/lib/commons-core/src/main/java/org/apache/olingo/commons/core/edm/EdmProviderImpl.java b/lib/commons-core/src/main/java/org/apache/olingo/commons/core/edm/EdmProviderImpl.java
index 62efd32..4f3c004 100644
--- a/lib/commons-core/src/main/java/org/apache/olingo/commons/core/edm/EdmProviderImpl.java
+++ b/lib/commons-core/src/main/java/org/apache/olingo/commons/core/edm/EdmProviderImpl.java
@@ -39,38 +39,38 @@ import org.apache.olingo.commons.api.edm.EdmSchema;
 import org.apache.olingo.commons.api.edm.EdmTerm;
 import org.apache.olingo.commons.api.edm.EdmTypeDefinition;
 import org.apache.olingo.commons.api.edm.FullQualifiedName;
-import org.apache.olingo.commons.api.edm.provider.Action;
-import org.apache.olingo.commons.api.edm.provider.AliasInfo;
-import org.apache.olingo.commons.api.edm.provider.Annotatable;
-import org.apache.olingo.commons.api.edm.provider.Annotation;
-import org.apache.olingo.commons.api.edm.provider.Annotations;
-import org.apache.olingo.commons.api.edm.provider.ComplexType;
-import org.apache.olingo.commons.api.edm.provider.EdmProvider;
-import org.apache.olingo.commons.api.edm.provider.EntityContainerInfo;
-import org.apache.olingo.commons.api.edm.provider.EntityType;
-import org.apache.olingo.commons.api.edm.provider.EnumType;
-import org.apache.olingo.commons.api.edm.provider.Function;
-import org.apache.olingo.commons.api.edm.provider.Parameter;
-import org.apache.olingo.commons.api.edm.provider.Schema;
-import org.apache.olingo.commons.api.edm.provider.Term;
-import org.apache.olingo.commons.api.edm.provider.TypeDefinition;
+import org.apache.olingo.commons.api.edm.provider.CsdlAction;
+import org.apache.olingo.commons.api.edm.provider.CsdlAliasInfo;
+import org.apache.olingo.commons.api.edm.provider.CsdlAnnotatable;
+import org.apache.olingo.commons.api.edm.provider.CsdlAnnotation;
+import org.apache.olingo.commons.api.edm.provider.CsdlAnnotations;
+import org.apache.olingo.commons.api.edm.provider.CsdlComplexType;
+import org.apache.olingo.commons.api.edm.provider.CsdlEdmProvider;
+import org.apache.olingo.commons.api.edm.provider.CsdlEntityContainerInfo;
+import org.apache.olingo.commons.api.edm.provider.CsdlEntityType;
+import org.apache.olingo.commons.api.edm.provider.CsdlEnumType;
+import org.apache.olingo.commons.api.edm.provider.CsdlFunction;
+import org.apache.olingo.commons.api.edm.provider.CsdlParameter;
+import org.apache.olingo.commons.api.edm.provider.CsdlSchema;
+import org.apache.olingo.commons.api.edm.provider.CsdlTerm;
+import org.apache.olingo.commons.api.edm.provider.CsdlTypeDefinition;
 
 public class EdmProviderImpl extends AbstractEdm {
 
-  private final EdmProvider provider;
-  private final Map<FullQualifiedName, List<Action>> actionsMap = 
-      Collections.synchronizedMap(new HashMap<FullQualifiedName, List<Action>>());
-  private final Map<FullQualifiedName, List<Function>> functionsMap = 
-      Collections.synchronizedMap(new HashMap<FullQualifiedName, List<Function>>());
+  private final CsdlEdmProvider provider;
+  private final Map<FullQualifiedName, List<CsdlAction>> actionsMap =
+      Collections.synchronizedMap(new HashMap<FullQualifiedName, List<CsdlAction>>());
+  private final Map<FullQualifiedName, List<CsdlFunction>> functionsMap =
+      Collections.synchronizedMap(new HashMap<FullQualifiedName, List<CsdlFunction>>());
 
-  public EdmProviderImpl(final EdmProvider provider) {
+  public EdmProviderImpl(final CsdlEdmProvider provider) {
     this.provider = provider;
   }
 
   @Override
   public EdmEntityContainer createEntityContainer(final FullQualifiedName containerName) {
     try {
-      EntityContainerInfo entityContainerInfo = provider.getEntityContainerInfo(containerName);
+      CsdlEntityContainerInfo entityContainerInfo = provider.getEntityContainerInfo(containerName);
       if (entityContainerInfo != null) {
         return new EdmEntityContainerImpl(this, provider, entityContainerInfo);
       }
@@ -83,7 +83,7 @@ public class EdmProviderImpl extends AbstractEdm {
   @Override
   public EdmEnumType createEnumType(final FullQualifiedName enumName) {
     try {
-      EnumType enumType = provider.getEnumType(enumName);
+      CsdlEnumType enumType = provider.getEnumType(enumName);
       if (enumType != null) {
         return new EdmEnumTypeImpl(this, enumName, enumType);
       }
@@ -96,7 +96,7 @@ public class EdmProviderImpl extends AbstractEdm {
   @Override
   public EdmTypeDefinition createTypeDefinition(final FullQualifiedName typeDefinitionName) {
     try {
-      TypeDefinition typeDefinition = provider.getTypeDefinition(typeDefinitionName);
+      CsdlTypeDefinition typeDefinition = provider.getTypeDefinition(typeDefinitionName);
       if (typeDefinition != null) {
         return new EdmTypeDefinitionImpl(this, typeDefinitionName, typeDefinition);
       }
@@ -109,7 +109,7 @@ public class EdmProviderImpl extends AbstractEdm {
   @Override
   public EdmEntityType createEntityType(final FullQualifiedName entityTypeName) {
     try {
-      EntityType entityType = provider.getEntityType(entityTypeName);
+      CsdlEntityType entityType = provider.getEntityType(entityTypeName);
       if (entityType != null) {
         return new EdmEntityTypeImpl(this, entityTypeName, entityType);
       }
@@ -122,7 +122,7 @@ public class EdmProviderImpl extends AbstractEdm {
   @Override
   public EdmComplexType createComplexType(final FullQualifiedName complexTypeName) {
     try {
-      final ComplexType complexType = provider.getComplexType(complexTypeName);
+      final CsdlComplexType complexType = provider.getComplexType(complexTypeName);
       if (complexType != null) {
         return new EdmComplexTypeImpl(this, complexTypeName, complexType);
       }
@@ -137,7 +137,7 @@ public class EdmProviderImpl extends AbstractEdm {
       final FullQualifiedName bindingParameterTypeName, final Boolean isBindingParameterCollection) {
 
     try {
-      List<Action> actions = actionsMap.get(actionName);
+      List<CsdlAction> actions = actionsMap.get(actionName);
       if (actions == null) {
         actions = provider.getActions(actionName);
         if (actions == null) {
@@ -147,10 +147,10 @@ public class EdmProviderImpl extends AbstractEdm {
         }
       }
       // Search for bound action where binding parameter matches
-      for (Action action : actions) {
+      for (CsdlAction action : actions) {
         if (action.isBound()) {
-          final List<Parameter> parameters = action.getParameters();
-          final Parameter parameter = parameters.get(0);
+          final List<CsdlParameter> parameters = action.getParameters();
+          final CsdlParameter parameter = parameters.get(0);
           if (bindingParameterTypeName.equals(parameter.getTypeFQN())
               && isBindingParameterCollection.booleanValue() == parameter.isCollection()) {
 
@@ -171,7 +171,7 @@ public class EdmProviderImpl extends AbstractEdm {
       final List<String> parameterNames) {
 
     try {
-      List<Function> functions = functionsMap.get(functionName);
+      List<CsdlFunction> functions = functionsMap.get(functionName);
       if (functions == null) {
         functions = provider.getFunctions(functionName);
         if (functions == null) {
@@ -182,13 +182,13 @@ public class EdmProviderImpl extends AbstractEdm {
       }
       final List<String> parameterNamesCopy =
           parameterNames == null ? Collections.<String> emptyList() : parameterNames;
-      for (Function function : functions) {
+      for (CsdlFunction function : functions) {
         if (function.isBound()) {
-          List<Parameter> providerParameters = function.getParameters();
+          List<CsdlParameter> providerParameters = function.getParameters();
           if (providerParameters == null || providerParameters.size() == 0) {
             throw new EdmException("No parameter specified for bound function: " + functionName);
           }
-          final Parameter bindingParameter = providerParameters.get(0);
+          final CsdlParameter bindingParameter = providerParameters.get(0);
           if (bindingParameterTypeName.equals(bindingParameter.getTypeFQN())
               && isBindingParameterCollection.booleanValue() == bindingParameter.isCollection()) {
 
@@ -214,9 +214,9 @@ public class EdmProviderImpl extends AbstractEdm {
   protected Map<String, String> createAliasToNamespaceInfo() {
     final Map<String, String> aliasToNamespaceInfos = new HashMap<String, String>();
     try {
-      final List<AliasInfo> aliasInfos = provider.getAliasInfos();
+      final List<CsdlAliasInfo> aliasInfos = provider.getAliasInfos();
       if (aliasInfos != null) {
-        for (AliasInfo info : aliasInfos) {
+        for (CsdlAliasInfo info : aliasInfos) {
           aliasToNamespaceInfos.put(info.getAlias(), info.getNamespace());
         }
       }
@@ -229,7 +229,7 @@ public class EdmProviderImpl extends AbstractEdm {
   @Override
   protected EdmAction createUnboundAction(final FullQualifiedName actionName) {
     try {
-      List<Action> actions = actionsMap.get(actionName);
+      List<CsdlAction> actions = actionsMap.get(actionName);
       if (actions == null) {
         actions = provider.getActions(actionName);
         if (actions == null) {
@@ -239,7 +239,7 @@ public class EdmProviderImpl extends AbstractEdm {
         }
       }
       // Search for first unbound action
-      for (Action action : actions) {
+      for (CsdlAction action : actions) {
         if (!action.isBound()) {
           return new EdmActionImpl(this, actionName, action);
         }
@@ -255,7 +255,7 @@ public class EdmProviderImpl extends AbstractEdm {
     List<EdmFunction> result = new ArrayList<EdmFunction>();
 
     try {
-      List<Function> functions = functionsMap.get(functionName);
+      List<CsdlFunction> functions = functionsMap.get(functionName);
       if (functions == null) {
         functions = provider.getFunctions(functionName);
         if (functions != null) {
@@ -263,7 +263,7 @@ public class EdmProviderImpl extends AbstractEdm {
         }
       }
       if (functions != null) {
-        for (Function function : functions) {
+        for (CsdlFunction function : functions) {
           if (!function.isBound()) {
             result.add(new EdmFunctionImpl(this, functionName, function));
           }
@@ -279,7 +279,7 @@ public class EdmProviderImpl extends AbstractEdm {
   @Override
   protected EdmFunction createUnboundFunction(final FullQualifiedName functionName, final List<String> parameterNames) {
     try {
-      List<Function> functions = functionsMap.get(functionName);
+      List<CsdlFunction> functions = functionsMap.get(functionName);
       if (functions == null) {
         functions = provider.getFunctions(functionName);
         if (functions == null) {
@@ -291,15 +291,15 @@ public class EdmProviderImpl extends AbstractEdm {
 
       final List<String> parameterNamesCopy =
           parameterNames == null ? Collections.<String> emptyList() : parameterNames;
-      for (Function function : functions) {
+      for (CsdlFunction function : functions) {
         if (!function.isBound()) {
-          List<Parameter> providerParameters = function.getParameters();
+          List<CsdlParameter> providerParameters = function.getParameters();
           if (providerParameters == null) {
             providerParameters = Collections.emptyList();
           }
           if (parameterNamesCopy.size() == providerParameters.size()) {
             final List<String> functionParameterNames = new ArrayList<String>();
-            for (Parameter parameter : providerParameters) {
+            for (CsdlParameter parameter : providerParameters) {
               functionParameterNames.add(parameter.getName());
             }
 
@@ -319,7 +319,7 @@ public class EdmProviderImpl extends AbstractEdm {
   protected Map<String, EdmSchema> createSchemas() {
     try {
       final Map<String, EdmSchema> providerSchemas = new LinkedHashMap<String, EdmSchema>();
-      for (Schema schema : provider.getSchemas()) {
+      for (CsdlSchema schema : provider.getSchemas()) {
         providerSchemas.put(schema.getNamespace(), new EdmSchemaImpl(this, provider, schema));
       }
       return providerSchemas;
@@ -331,7 +331,7 @@ public class EdmProviderImpl extends AbstractEdm {
   @Override
   protected EdmTerm createTerm(final FullQualifiedName termName) {
     try {
-      Term providerTerm = provider.getTerm(termName);
+      CsdlTerm providerTerm = provider.getTerm(termName);
       if (providerTerm != null) {
         return new EdmTermImpl(this, termName.getNamespace(), providerTerm);
       }
@@ -346,7 +346,7 @@ public class EdmProviderImpl extends AbstractEdm {
   protected EdmAnnotations createAnnotationGroup(final FullQualifiedName targetName) {
     try {
       EdmSchema schema = getSchema(targetName.getNamespace());
-      Annotations providerGroup = provider.getAnnotationsGroup(targetName);
+      CsdlAnnotations providerGroup = provider.getAnnotationsGroup(targetName);
       if (providerGroup != null) {
         return new EdmAnnotationsImpl(this, schema, providerGroup);
       }
@@ -359,10 +359,10 @@ public class EdmProviderImpl extends AbstractEdm {
   @Override
   protected List<EdmAnnotation> createAnnotations(final FullQualifiedName annotatedName) {
     try {
-      Annotatable providerAnnotatable = provider.getAnnoatatable(annotatedName);
+      CsdlAnnotatable providerAnnotatable = provider.getAnnoatatable(annotatedName);
       if (providerAnnotatable != null && providerAnnotatable.getAnnotations() != null) {
         List<EdmAnnotation> result = new ArrayList<EdmAnnotation>();
-        for(Annotation annotation : providerAnnotatable.getAnnotations()){
+        for(CsdlAnnotation annotation : providerAnnotatable.getAnnotations()){
           //Load Term
           getTerm(new FullQualifiedName(annotation.getTerm()));
           result.add(new EdmAnnotationImpl(this, annotation));

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/2318953c/lib/commons-core/src/main/java/org/apache/olingo/commons/core/edm/EdmReferentialConstraintImpl.java
----------------------------------------------------------------------
diff --git a/lib/commons-core/src/main/java/org/apache/olingo/commons/core/edm/EdmReferentialConstraintImpl.java b/lib/commons-core/src/main/java/org/apache/olingo/commons/core/edm/EdmReferentialConstraintImpl.java
index e0e8f85..7393499 100644
--- a/lib/commons-core/src/main/java/org/apache/olingo/commons/core/edm/EdmReferentialConstraintImpl.java
+++ b/lib/commons-core/src/main/java/org/apache/olingo/commons/core/edm/EdmReferentialConstraintImpl.java
@@ -20,13 +20,13 @@ package org.apache.olingo.commons.core.edm;
 
 import org.apache.olingo.commons.api.edm.Edm;
 import org.apache.olingo.commons.api.edm.EdmReferentialConstraint;
-import org.apache.olingo.commons.api.edm.provider.ReferentialConstraint;
+import org.apache.olingo.commons.api.edm.provider.CsdlReferentialConstraint;
 
 public class EdmReferentialConstraintImpl extends AbstractEdmAnnotatable implements EdmReferentialConstraint {
 
-  private final ReferentialConstraint constraint;
+  private final CsdlReferentialConstraint constraint;
   
-  public EdmReferentialConstraintImpl(final Edm edm, final ReferentialConstraint constraint) {
+  public EdmReferentialConstraintImpl(final Edm edm, final CsdlReferentialConstraint constraint) {
     super(edm, constraint);
     this.constraint = constraint;
   }

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/2318953c/lib/commons-core/src/main/java/org/apache/olingo/commons/core/edm/EdmReturnTypeImpl.java
----------------------------------------------------------------------
diff --git a/lib/commons-core/src/main/java/org/apache/olingo/commons/core/edm/EdmReturnTypeImpl.java b/lib/commons-core/src/main/java/org/apache/olingo/commons/core/edm/EdmReturnTypeImpl.java
index 04f6f90..efd58c8 100644
--- a/lib/commons-core/src/main/java/org/apache/olingo/commons/core/edm/EdmReturnTypeImpl.java
+++ b/lib/commons-core/src/main/java/org/apache/olingo/commons/core/edm/EdmReturnTypeImpl.java
@@ -23,15 +23,15 @@ import org.apache.olingo.commons.api.edm.EdmException;
 import org.apache.olingo.commons.api.edm.EdmReturnType;
 import org.apache.olingo.commons.api.edm.EdmType;
 import org.apache.olingo.commons.api.edm.geo.SRID;
-import org.apache.olingo.commons.api.edm.provider.ReturnType;
+import org.apache.olingo.commons.api.edm.provider.CsdlReturnType;
 
 public class EdmReturnTypeImpl implements EdmReturnType {
 
-  private final ReturnType returnType;
+  private final CsdlReturnType returnType;
   private final EdmTypeInfo typeInfo;
   private EdmType typeImpl;
   
-  public EdmReturnTypeImpl(final Edm edm, final ReturnType returnType) {
+  public EdmReturnTypeImpl(final Edm edm, final CsdlReturnType returnType) {
     this.returnType = returnType;
     this.typeInfo = new EdmTypeInfo.Builder().setEdm(edm).setTypeExpression(returnType.getType()).build();
   }

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/2318953c/lib/commons-core/src/main/java/org/apache/olingo/commons/core/edm/EdmSchemaImpl.java
----------------------------------------------------------------------
diff --git a/lib/commons-core/src/main/java/org/apache/olingo/commons/core/edm/EdmSchemaImpl.java b/lib/commons-core/src/main/java/org/apache/olingo/commons/core/edm/EdmSchemaImpl.java
index 5521b92..1c7bb4c 100644
--- a/lib/commons-core/src/main/java/org/apache/olingo/commons/core/edm/EdmSchemaImpl.java
+++ b/lib/commons-core/src/main/java/org/apache/olingo/commons/core/edm/EdmSchemaImpl.java
@@ -34,23 +34,23 @@ import org.apache.olingo.commons.api.edm.EdmSchema;
 import org.apache.olingo.commons.api.edm.EdmTerm;
 import org.apache.olingo.commons.api.edm.EdmTypeDefinition;
 import org.apache.olingo.commons.api.edm.FullQualifiedName;
-import org.apache.olingo.commons.api.edm.provider.Action;
-import org.apache.olingo.commons.api.edm.provider.Annotation;
-import org.apache.olingo.commons.api.edm.provider.Annotations;
-import org.apache.olingo.commons.api.edm.provider.ComplexType;
-import org.apache.olingo.commons.api.edm.provider.EdmProvider;
-import org.apache.olingo.commons.api.edm.provider.EntityType;
-import org.apache.olingo.commons.api.edm.provider.EnumType;
-import org.apache.olingo.commons.api.edm.provider.Function;
-import org.apache.olingo.commons.api.edm.provider.Schema;
-import org.apache.olingo.commons.api.edm.provider.Term;
-import org.apache.olingo.commons.api.edm.provider.TypeDefinition;
+import org.apache.olingo.commons.api.edm.provider.CsdlAction;
+import org.apache.olingo.commons.api.edm.provider.CsdlAnnotation;
+import org.apache.olingo.commons.api.edm.provider.CsdlAnnotations;
+import org.apache.olingo.commons.api.edm.provider.CsdlComplexType;
+import org.apache.olingo.commons.api.edm.provider.CsdlEdmProvider;
+import org.apache.olingo.commons.api.edm.provider.CsdlEntityType;
+import org.apache.olingo.commons.api.edm.provider.CsdlEnumType;
+import org.apache.olingo.commons.api.edm.provider.CsdlFunction;
+import org.apache.olingo.commons.api.edm.provider.CsdlSchema;
+import org.apache.olingo.commons.api.edm.provider.CsdlTerm;
+import org.apache.olingo.commons.api.edm.provider.CsdlTypeDefinition;
 
 public class EdmSchemaImpl implements EdmSchema {
 
-  private final Schema schema;
+  private final CsdlSchema schema;
   private final EdmProviderImpl edm;
-  private final EdmProvider provider;
+  private final CsdlEdmProvider provider;
 
   protected final String namespace;
   private final String alias;
@@ -65,7 +65,7 @@ public class EdmSchemaImpl implements EdmSchema {
   private List<EdmAnnotation> annotations;
   private EdmEntityContainer entityContainer;
 
-  public EdmSchemaImpl(final EdmProviderImpl edm, final EdmProvider provider, final Schema schema) {
+  public EdmSchemaImpl(final EdmProviderImpl edm, final CsdlEdmProvider provider, final CsdlSchema schema) {
     this.edm = edm;
     this.provider = provider;
     this.schema = schema;
@@ -161,9 +161,9 @@ public class EdmSchemaImpl implements EdmSchema {
 
   protected List<EdmTypeDefinition> createTypeDefinitions() {
     final List<EdmTypeDefinition> typeDefinitions = new ArrayList<EdmTypeDefinition>();
-    final List<TypeDefinition> providerTypeDefinitions = schema.getTypeDefinitions();
+    final List<CsdlTypeDefinition> providerTypeDefinitions = schema.getTypeDefinitions();
     if (providerTypeDefinitions != null) {
-      for (TypeDefinition def : providerTypeDefinitions) {
+      for (CsdlTypeDefinition def : providerTypeDefinitions) {
         FullQualifiedName typeDefName = new FullQualifiedName(namespace, def.getName());
         EdmTypeDefinitionImpl typeDefImpl = new EdmTypeDefinitionImpl(edm, typeDefName, def);
         typeDefinitions.add(typeDefImpl);
@@ -175,9 +175,9 @@ public class EdmSchemaImpl implements EdmSchema {
 
   protected List<EdmEnumType> createEnumTypes() {
     final List<EdmEnumType> enumTypes = new ArrayList<EdmEnumType>();
-    final List<EnumType> providerEnumTypes = schema.getEnumTypes();
+    final List<CsdlEnumType> providerEnumTypes = schema.getEnumTypes();
     if (providerEnumTypes != null) {
-      for (EnumType enumType : providerEnumTypes) {
+      for (CsdlEnumType enumType : providerEnumTypes) {
         FullQualifiedName enumName = new FullQualifiedName(namespace, enumType.getName());
         EdmEnumType enumTypeImpl = new EdmEnumTypeImpl(edm, enumName, enumType);
         enumTypes.add(enumTypeImpl);
@@ -189,9 +189,9 @@ public class EdmSchemaImpl implements EdmSchema {
 
   protected List<EdmEntityType> createEntityTypes() {
     final List<EdmEntityType> entityTypes = new ArrayList<EdmEntityType>();
-    final List<EntityType> providerEntityTypes = schema.getEntityTypes();
+    final List<CsdlEntityType> providerEntityTypes = schema.getEntityTypes();
     if (providerEntityTypes != null) {
-      for (EntityType entityType : providerEntityTypes) {
+      for (CsdlEntityType entityType : providerEntityTypes) {
         FullQualifiedName entityTypeName = new FullQualifiedName(namespace, entityType.getName());
         EdmEntityTypeImpl entityTypeImpl = new EdmEntityTypeImpl(edm, entityTypeName, entityType);
         entityTypes.add(entityTypeImpl);
@@ -203,9 +203,9 @@ public class EdmSchemaImpl implements EdmSchema {
 
   protected List<EdmComplexType> createComplexTypes() {
     final List<EdmComplexType> complexTypes = new ArrayList<EdmComplexType>();
-    final List<ComplexType> providerComplexTypes = schema.getComplexTypes();
+    final List<CsdlComplexType> providerComplexTypes = schema.getComplexTypes();
     if (providerComplexTypes != null) {
-      for (ComplexType complexType : providerComplexTypes) {
+      for (CsdlComplexType complexType : providerComplexTypes) {
         FullQualifiedName comlexTypeName = new FullQualifiedName(namespace, complexType.getName());
         EdmComplexTypeImpl complexTypeImpl = new EdmComplexTypeImpl(edm, comlexTypeName, complexType);
         complexTypes.add(complexTypeImpl);
@@ -217,9 +217,9 @@ public class EdmSchemaImpl implements EdmSchema {
 
   protected List<EdmAction> createActions() {
     final List<EdmAction> actions = new ArrayList<EdmAction>();
-    final List<Action> providerActions = schema.getActions();
+    final List<CsdlAction> providerActions = schema.getActions();
     if (providerActions != null) {
-      for (Action action : providerActions) {
+      for (CsdlAction action : providerActions) {
         FullQualifiedName actionName = new FullQualifiedName(namespace, action.getName());
         EdmActionImpl edmActionImpl = new EdmActionImpl(edm, actionName, action);
         actions.add(edmActionImpl);
@@ -231,9 +231,9 @@ public class EdmSchemaImpl implements EdmSchema {
 
   protected List<EdmFunction> createFunctions() {
     final List<EdmFunction> functions = new ArrayList<EdmFunction>();
-    final List<Function> providerFunctions = schema.getFunctions();
+    final List<CsdlFunction> providerFunctions = schema.getFunctions();
     if (providerFunctions != null) {
-      for (Function function : providerFunctions) {
+      for (CsdlFunction function : providerFunctions) {
         FullQualifiedName functionName = new FullQualifiedName(namespace, function.getName());
         EdmFunctionImpl functionImpl = new EdmFunctionImpl(edm, functionName, function);
         functions.add(functionImpl);
@@ -245,9 +245,9 @@ public class EdmSchemaImpl implements EdmSchema {
 
   protected List<EdmTerm> createTerms() {
     final List<EdmTerm> terms = new ArrayList<EdmTerm>();
-    final List<Term> providerTerms = schema.getTerms();
+    final List<CsdlTerm> providerTerms = schema.getTerms();
     if (providerTerms != null) {
-      for (Term term : providerTerms) {
+      for (CsdlTerm term : providerTerms) {
         FullQualifiedName termName = new FullQualifiedName(namespace, term.getName());
         EdmTermImpl termImpl = new EdmTermImpl(edm, getNamespace(), term);
         terms.add(termImpl);
@@ -259,10 +259,10 @@ public class EdmSchemaImpl implements EdmSchema {
 
   protected List<EdmAnnotations> createAnnotationGroups() {
     final List<EdmAnnotations> annotationGroups = new ArrayList<EdmAnnotations>();
-    final List<Annotations> providerAnnotations =
+    final List<CsdlAnnotations> providerAnnotations =
         schema.getAnnotationGroups();
     if (providerAnnotations != null) {
-      for (Annotations annotationGroup : providerAnnotations) {
+      for (CsdlAnnotations annotationGroup : providerAnnotations) {
         FullQualifiedName annotationsGroupName;
         if (annotationGroup.getTarget().contains(".")) {
           annotationsGroupName = new FullQualifiedName(annotationGroup.getTarget());
@@ -279,10 +279,10 @@ public class EdmSchemaImpl implements EdmSchema {
 
   protected List<EdmAnnotation> createAnnotations() {
     final List<EdmAnnotation> annotations = new ArrayList<EdmAnnotation>();
-    final List<Annotation> providerAnnotations =
+    final List<CsdlAnnotation> providerAnnotations =
         schema.getAnnotations();
     if (providerAnnotations != null) {
-      for (Annotation annotation : providerAnnotations) {
+      for (CsdlAnnotation annotation : providerAnnotations) {
         EdmAnnotationImpl annotationImpl = new EdmAnnotationImpl(edm, annotation);
         annotations.add(annotationImpl);
       }

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/2318953c/lib/commons-core/src/main/java/org/apache/olingo/commons/core/edm/EdmSingletonImpl.java
----------------------------------------------------------------------
diff --git a/lib/commons-core/src/main/java/org/apache/olingo/commons/core/edm/EdmSingletonImpl.java b/lib/commons-core/src/main/java/org/apache/olingo/commons/core/edm/EdmSingletonImpl.java
index afb900f..c64a866 100644
--- a/lib/commons-core/src/main/java/org/apache/olingo/commons/core/edm/EdmSingletonImpl.java
+++ b/lib/commons-core/src/main/java/org/apache/olingo/commons/core/edm/EdmSingletonImpl.java
@@ -21,11 +21,11 @@ package org.apache.olingo.commons.core.edm;
 import org.apache.olingo.commons.api.edm.Edm;
 import org.apache.olingo.commons.api.edm.EdmEntityContainer;
 import org.apache.olingo.commons.api.edm.EdmSingleton;
-import org.apache.olingo.commons.api.edm.provider.Singleton;
+import org.apache.olingo.commons.api.edm.provider.CsdlSingleton;
 
 public class EdmSingletonImpl extends AbstractEdmBindingTarget implements EdmSingleton {
 
-  public EdmSingletonImpl(final Edm edm, final EdmEntityContainer container, final Singleton singleton) {
+  public EdmSingletonImpl(final Edm edm, final EdmEntityContainer container, final CsdlSingleton singleton) {
     super(edm, container, singleton);
   }
 

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/2318953c/lib/commons-core/src/main/java/org/apache/olingo/commons/core/edm/EdmTermImpl.java
----------------------------------------------------------------------
diff --git a/lib/commons-core/src/main/java/org/apache/olingo/commons/core/edm/EdmTermImpl.java b/lib/commons-core/src/main/java/org/apache/olingo/commons/core/edm/EdmTermImpl.java
index 8d72c83..efda3a7 100644
--- a/lib/commons-core/src/main/java/org/apache/olingo/commons/core/edm/EdmTermImpl.java
+++ b/lib/commons-core/src/main/java/org/apache/olingo/commons/core/edm/EdmTermImpl.java
@@ -28,7 +28,7 @@ import org.apache.olingo.commons.api.edm.EdmTerm;
 import org.apache.olingo.commons.api.edm.EdmType;
 import org.apache.olingo.commons.api.edm.FullQualifiedName;
 import org.apache.olingo.commons.api.edm.geo.SRID;
-import org.apache.olingo.commons.api.edm.provider.Term;
+import org.apache.olingo.commons.api.edm.provider.CsdlTerm;
 import org.apache.olingo.commons.core.edm.primitivetype.EdmPrimitiveTypeFactory;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
@@ -36,14 +36,14 @@ import org.slf4j.LoggerFactory;
 public class EdmTermImpl extends AbstractEdmNamed implements EdmTerm {
 
   private static final Logger LOG = LoggerFactory.getLogger(EdmTermImpl.class);
-  private final Term term;
+  private final CsdlTerm term;
   private final FullQualifiedName fqn;
   private final EdmTypeInfo typeInfo;
   private EdmType termType;
   private EdmTerm baseTerm;
   private List<Class<?>> appliesTo;
 
-  public EdmTermImpl(final Edm edm, final String namespace, final Term term) {
+  public EdmTermImpl(final Edm edm, final String namespace, final CsdlTerm term) {
     super(edm, term.getName(), term);
 
     this.term = term;

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/2318953c/lib/commons-core/src/main/java/org/apache/olingo/commons/core/edm/EdmTypeDefinitionImpl.java
----------------------------------------------------------------------
diff --git a/lib/commons-core/src/main/java/org/apache/olingo/commons/core/edm/EdmTypeDefinitionImpl.java b/lib/commons-core/src/main/java/org/apache/olingo/commons/core/edm/EdmTypeDefinitionImpl.java
index b42f6c6..6e15f35 100644
--- a/lib/commons-core/src/main/java/org/apache/olingo/commons/core/edm/EdmTypeDefinitionImpl.java
+++ b/lib/commons-core/src/main/java/org/apache/olingo/commons/core/edm/EdmTypeDefinitionImpl.java
@@ -27,17 +27,17 @@ import org.apache.olingo.commons.api.edm.EdmTypeDefinition;
 import org.apache.olingo.commons.api.edm.FullQualifiedName;
 import org.apache.olingo.commons.api.edm.constants.EdmTypeKind;
 import org.apache.olingo.commons.api.edm.geo.SRID;
-import org.apache.olingo.commons.api.edm.provider.TypeDefinition;
+import org.apache.olingo.commons.api.edm.provider.CsdlTypeDefinition;
 import org.apache.olingo.commons.core.edm.primitivetype.EdmPrimitiveTypeFactory;
 
 public class EdmTypeDefinitionImpl extends AbstractEdmNamed implements EdmTypeDefinition {
 
-  private TypeDefinition typeDefinition;
+  private CsdlTypeDefinition typeDefinition;
   private FullQualifiedName typeDefinitionName;
   private EdmPrimitiveType edmPrimitiveTypeInstance;
 
   public EdmTypeDefinitionImpl(final Edm edm, final FullQualifiedName typeDefinitionName,
-      final TypeDefinition typeDefinition) {
+      final CsdlTypeDefinition typeDefinition) {
     super(edm, typeDefinitionName.getName(), typeDefinition);
     this.typeDefinitionName = typeDefinitionName;
     this.typeDefinition = typeDefinition;

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/2318953c/lib/commons-core/src/main/java/org/apache/olingo/commons/core/edm/EdmTypeImpl.java
----------------------------------------------------------------------
diff --git a/lib/commons-core/src/main/java/org/apache/olingo/commons/core/edm/EdmTypeImpl.java b/lib/commons-core/src/main/java/org/apache/olingo/commons/core/edm/EdmTypeImpl.java
index 630146b..3b6f070 100644
--- a/lib/commons-core/src/main/java/org/apache/olingo/commons/core/edm/EdmTypeImpl.java
+++ b/lib/commons-core/src/main/java/org/apache/olingo/commons/core/edm/EdmTypeImpl.java
@@ -22,7 +22,7 @@ import org.apache.olingo.commons.api.edm.Edm;
 import org.apache.olingo.commons.api.edm.EdmType;
 import org.apache.olingo.commons.api.edm.FullQualifiedName;
 import org.apache.olingo.commons.api.edm.constants.EdmTypeKind;
-import org.apache.olingo.commons.api.edm.provider.Annotatable;
+import org.apache.olingo.commons.api.edm.provider.CsdlAnnotatable;
 
 public class EdmTypeImpl extends AbstractEdmNamed implements EdmType {
 
@@ -30,7 +30,7 @@ public class EdmTypeImpl extends AbstractEdmNamed implements EdmType {
   protected final EdmTypeKind kind;
 
   public EdmTypeImpl(final Edm edm, final FullQualifiedName typeName, final EdmTypeKind kind,
-                     final Annotatable annotatable) {
+                     final CsdlAnnotatable annotatable) {
     super(edm, typeName.getName(), annotatable);
     this.typeName = typeName;
     this.kind = kind;

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/2318953c/lib/server-api/src/main/java/org/apache/olingo/server/api/OData.java
----------------------------------------------------------------------
diff --git a/lib/server-api/src/main/java/org/apache/olingo/server/api/OData.java b/lib/server-api/src/main/java/org/apache/olingo/server/api/OData.java
index 1f6ff8e..767dd19 100644
--- a/lib/server-api/src/main/java/org/apache/olingo/server/api/OData.java
+++ b/lib/server-api/src/main/java/org/apache/olingo/server/api/OData.java
@@ -23,7 +23,7 @@ import java.util.List;
 import org.apache.olingo.commons.api.ODataRuntimeException;
 import org.apache.olingo.commons.api.edm.EdmPrimitiveType;
 import org.apache.olingo.commons.api.edm.EdmPrimitiveTypeKind;
-import org.apache.olingo.commons.api.edm.provider.EdmProvider;
+import org.apache.olingo.commons.api.edm.provider.CsdlEdmProvider;
 import org.apache.olingo.commons.api.format.ODataFormat;
 import org.apache.olingo.server.api.deserializer.DeserializerException;
 import org.apache.olingo.server.api.deserializer.FixedFormatDeserializer;
@@ -93,7 +93,7 @@ public abstract class OData {
    * @param edmProvider a custom or default implementation for creating metadata
    * @param references list of edmx references
    */
-  public abstract ServiceMetadata createServiceMetadata(EdmProvider edmProvider, List<EdmxReference> references);
+  public abstract ServiceMetadata createServiceMetadata(CsdlEdmProvider edmProvider, List<EdmxReference> references);
 
   /**
    * Creates a new URI helper object for performing URI-related tasks.


[46/50] [abbrv] olingo-odata4 git commit: [OLINGO-564] first step for common -> client extraction

Posted by mi...@apache.org.
http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/17152920/lib/client-core/src/main/java/org/apache/olingo/client/core/communication/request/streamed/ODataMediaEntityUpdateRequestImpl.java
----------------------------------------------------------------------
diff --git a/lib/client-core/src/main/java/org/apache/olingo/client/core/communication/request/streamed/ODataMediaEntityUpdateRequestImpl.java b/lib/client-core/src/main/java/org/apache/olingo/client/core/communication/request/streamed/ODataMediaEntityUpdateRequestImpl.java
index d2b287c..d38533e 100644
--- a/lib/client-core/src/main/java/org/apache/olingo/client/core/communication/request/streamed/ODataMediaEntityUpdateRequestImpl.java
+++ b/lib/client-core/src/main/java/org/apache/olingo/client/core/communication/request/streamed/ODataMediaEntityUpdateRequestImpl.java
@@ -32,7 +32,7 @@ import org.apache.olingo.client.core.communication.request.AbstractODataStreamMa
 import org.apache.olingo.client.core.communication.response.AbstractODataResponse;
 import org.apache.olingo.commons.api.data.Entity;
 import org.apache.olingo.commons.api.data.ResWrap;
-import org.apache.olingo.commons.api.domain.ClientEntity;
+import org.apache.olingo.client.api.domain.ClientEntity;
 import org.apache.olingo.commons.api.http.HttpMethod;
 import org.apache.olingo.commons.api.serialization.ODataDeserializerException;
 

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/17152920/lib/client-core/src/main/java/org/apache/olingo/client/core/domain/AbstractClientEntitySet.java
----------------------------------------------------------------------
diff --git a/lib/client-core/src/main/java/org/apache/olingo/client/core/domain/AbstractClientEntitySet.java b/lib/client-core/src/main/java/org/apache/olingo/client/core/domain/AbstractClientEntitySet.java
new file mode 100644
index 0000000..d6b81d9
--- /dev/null
+++ b/lib/client-core/src/main/java/org/apache/olingo/client/core/domain/AbstractClientEntitySet.java
@@ -0,0 +1,71 @@
+/*
+ * 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.client.core.domain;
+
+import java.net.URI;
+
+import org.apache.olingo.client.api.domain.AbstractClientPayload;
+import org.apache.olingo.client.api.domain.ClientEntitySet;
+
+public abstract class AbstractClientEntitySet extends AbstractClientPayload implements ClientEntitySet {
+
+  /**
+   * Link to the next page.
+   */
+  private URI next;
+
+  /**
+   * Number of ODataEntities contained in this entity set.
+   * <br/>
+   * If <tt>$inlinecount</tt> was requested, this value comes from there.
+   */
+  private Integer count;
+
+  /**
+   * Constructor.
+   */
+  public AbstractClientEntitySet() {
+    super(null);
+  }
+
+  /**
+   * Constructor.
+   * 
+   * @param next next link.
+   */
+  public AbstractClientEntitySet(final URI next) {
+    super(null);
+    this.next = next;
+  }
+
+  @Override
+  public URI getNext() {
+    return next;
+  }
+
+  @Override
+  public Integer getCount() {
+    return count;
+  }
+
+  @Override
+  public void setCount(final int count) {
+    this.count = count;
+  }
+}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/17152920/lib/client-core/src/main/java/org/apache/olingo/client/core/domain/ClientAnnotationImpl.java
----------------------------------------------------------------------
diff --git a/lib/client-core/src/main/java/org/apache/olingo/client/core/domain/ClientAnnotationImpl.java b/lib/client-core/src/main/java/org/apache/olingo/client/core/domain/ClientAnnotationImpl.java
new file mode 100644
index 0000000..0f92445
--- /dev/null
+++ b/lib/client-core/src/main/java/org/apache/olingo/client/core/domain/ClientAnnotationImpl.java
@@ -0,0 +1,102 @@
+/*
+ * 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.client.core.domain;
+
+import org.apache.olingo.client.api.domain.ClientAnnotation;
+import org.apache.olingo.client.api.domain.ClientCollectionValue;
+import org.apache.olingo.client.api.domain.ClientComplexValue;
+import org.apache.olingo.client.api.domain.ClientEnumValue;
+import org.apache.olingo.client.api.domain.ClientPrimitiveValue;
+import org.apache.olingo.client.api.domain.ClientValuable;
+import org.apache.olingo.client.api.domain.ClientValue;
+
+public class ClientAnnotationImpl implements ClientAnnotation {
+
+  private final String term;
+
+  private final ClientValuable valuable;
+
+  public ClientAnnotationImpl(final String term, final ClientValue value) {
+    this.term = term;
+    valuable = new ClientValuableImpl(value);
+  }
+
+  @Override
+  public String getTerm() {
+    return term;
+  }
+
+  @Override
+  public ClientValue getValue() {
+    return valuable.getValue();
+  }
+
+  @Override
+  public boolean hasNullValue() {
+    return valuable.hasNullValue();
+  }
+
+  @Override
+  public boolean hasPrimitiveValue() {
+    return valuable.hasPrimitiveValue();
+  }
+
+  @Override
+  public ClientPrimitiveValue getPrimitiveValue() {
+    return valuable.getPrimitiveValue();
+  }
+
+  @Override
+  public boolean hasCollectionValue() {
+    return valuable.hasCollectionValue();
+  }
+
+  @Override
+  public ClientCollectionValue<ClientValue> getCollectionValue() {
+    return valuable.getCollectionValue();
+  }
+
+  @Override
+  public boolean hasComplexValue() {
+    return valuable.hasComplexValue();
+  }
+
+  @Override
+  public ClientComplexValue getComplexValue() {
+    return valuable.getComplexValue();
+  }
+
+  @Override
+  public boolean hasEnumValue() {
+    return valuable.hasEnumValue();
+  }
+
+  @Override
+  public ClientEnumValue getEnumValue() {
+    return valuable.getEnumValue();
+  }
+
+  @Override
+  public String toString() {
+    return "ODataPropertyImpl{"
+        + "term=" + term
+        + ",valuable=" + valuable
+        + '}';
+  }
+}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/17152920/lib/client-core/src/main/java/org/apache/olingo/client/core/domain/ClientCollectionValueImpl.java
----------------------------------------------------------------------
diff --git a/lib/client-core/src/main/java/org/apache/olingo/client/core/domain/ClientCollectionValueImpl.java b/lib/client-core/src/main/java/org/apache/olingo/client/core/domain/ClientCollectionValueImpl.java
new file mode 100644
index 0000000..3698060
--- /dev/null
+++ b/lib/client-core/src/main/java/org/apache/olingo/client/core/domain/ClientCollectionValueImpl.java
@@ -0,0 +1,124 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ * 
+ * http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.olingo.client.core.domain;
+
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.Iterator;
+import java.util.List;
+
+import org.apache.olingo.client.api.domain.AbstractClientValue;
+import org.apache.olingo.client.api.domain.ClientCollectionValue;
+import org.apache.olingo.client.api.domain.ClientEnumValue;
+import org.apache.olingo.client.api.domain.ClientValue;
+
+public class ClientCollectionValueImpl<OV extends ClientValue> extends AbstractClientValue
+        implements ClientCollectionValue<OV>, ClientValue {
+
+  /**
+   * Constructor.
+   *
+   * @param typeName type name.
+   */
+  public ClientCollectionValueImpl(final String typeName) {
+    super(typeName == null || typeName.startsWith("Collection(") ? typeName : "Collection(" + typeName + ")");
+  }
+
+  @Override
+  public boolean isEnum() {
+    return false;
+  }
+
+  @Override
+  public ClientEnumValue asEnum() {
+    return null;
+  }
+
+  @Override
+  public boolean isComplex() {
+    return false;
+  }
+
+  @Override
+  public Collection<Object> asJavaCollection() {
+    final List<Object> result = new ArrayList<Object>();
+    for (ClientValue value : values) {
+      if (value.isPrimitive()) {
+        result.add(value.asPrimitive().toValue());
+      } else if (value.isComplex()) {
+        result.add(value.asComplex().asJavaMap());
+      } else if (value.isCollection()) {
+        result.add(value.asCollection().asJavaCollection());
+      } else if (value.isEnum()) {
+        result.add(value.asEnum().toString());
+      }
+    }
+
+    return result;
+  }
+
+  /**
+   * Values.
+   */
+  protected final List<OV> values = new ArrayList<OV>();
+
+  /**
+   * Adds a value to the collection.
+   *
+   * @param value value to be added.
+   */
+  @Override
+  @SuppressWarnings("unchecked")
+  public ClientCollectionValue<OV> add(final ClientValue value) {
+    values.add((OV) value);
+    return this;
+  }
+
+  /**
+   * Value iterator.
+   *
+   * @return value iterator.
+   */
+  @Override
+  public Iterator<OV> iterator() {
+    return values.iterator();
+  }
+
+  /**
+   * Gets collection size.
+   *
+   * @return collection size.
+   */
+  @Override
+  public int size() {
+    return values.size();
+  }
+
+  /**
+   * Checks if collection is empty.
+   *
+   * @return 'TRUE' if empty; 'FALSE' otherwise.
+   */
+  @Override
+  public boolean isEmpty() {
+    return values.isEmpty();
+  }
+
+
+}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/17152920/lib/client-core/src/main/java/org/apache/olingo/client/core/domain/ClientComplexValueImpl.java
----------------------------------------------------------------------
diff --git a/lib/client-core/src/main/java/org/apache/olingo/client/core/domain/ClientComplexValueImpl.java b/lib/client-core/src/main/java/org/apache/olingo/client/core/domain/ClientComplexValueImpl.java
new file mode 100644
index 0000000..d7550b6
--- /dev/null
+++ b/lib/client-core/src/main/java/org/apache/olingo/client/core/domain/ClientComplexValueImpl.java
@@ -0,0 +1,204 @@
+/*
+ * 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.client.core.domain;
+
+import java.util.ArrayList;
+import java.util.Iterator;
+import java.util.LinkedHashMap;
+import java.util.List;
+import java.util.Map;
+
+import org.apache.olingo.client.api.domain.AbstractClientValue;
+import org.apache.olingo.client.api.domain.ClientAnnotation;
+import org.apache.olingo.client.api.domain.ClientComplexValue;
+import org.apache.olingo.client.api.domain.ClientEnumValue;
+import org.apache.olingo.client.api.domain.ClientLink;
+import org.apache.olingo.client.api.domain.ClientProperty;
+
+public class ClientComplexValueImpl extends AbstractClientValue implements ClientComplexValue {
+
+  /**
+   * Navigation links (might contain in-line entities or entity sets).
+   */
+  private final List<ClientLink> navigationLinks = new ArrayList<ClientLink>();
+
+  /**
+   * Association links.
+   */
+  private final List<ClientLink> associationLinks = new ArrayList<ClientLink>();
+
+  private final List<ClientAnnotation> annotations = new ArrayList<ClientAnnotation>();
+
+  /**
+   * Complex type fields.
+   */
+  private final Map<String, ClientProperty> fields = new LinkedHashMap<String, ClientProperty>();
+
+  /**
+   * Constructor.
+   *
+   * @param typeName type name.
+   */
+  public ClientComplexValueImpl(final String typeName) {
+    super(typeName);
+  }
+
+  @Override
+  public boolean isEnum() {
+    return false;
+  }
+
+  @Override
+  public ClientEnumValue asEnum() {
+    return null;
+  }
+
+  @Override
+  public boolean isComplex() {
+    return true;
+  }
+
+  @Override
+  public boolean addLink(final ClientLink link) {
+    boolean result = false;
+
+    switch (link.getType()) {
+    case ASSOCIATION:
+      result = associationLinks.contains(link) ? false : associationLinks.add(link);
+      break;
+
+    case ENTITY_NAVIGATION:
+    case ENTITY_SET_NAVIGATION:
+      result = navigationLinks.contains(link) ? false : navigationLinks.add(link);
+      break;
+
+    case MEDIA_EDIT:
+      throw new IllegalArgumentException("Complex values cannot have media links!");
+
+    default:
+    }
+
+    return result;
+  }
+
+  @Override
+  public boolean removeLink(final ClientLink link) {
+    return associationLinks.remove(link) || navigationLinks.remove(link);
+  }
+
+  private ClientLink getLink(final List<ClientLink> links, final String name) {
+    ClientLink result = null;
+    for (ClientLink link : links) {
+      if (name.equals(link.getName())) {
+        result = link;
+        break;
+      }
+    }
+
+    return result;
+  }
+
+  @Override
+  public ClientLink getNavigationLink(final String name) {
+    return getLink(navigationLinks, name);
+  }
+
+  @Override
+  public List<ClientLink> getNavigationLinks() {
+    return navigationLinks;
+  }
+
+  @Override
+  public ClientLink getAssociationLink(final String name) {
+    return getLink(associationLinks, name);
+  }
+
+  @Override
+  public List<ClientLink> getAssociationLinks() {
+    return associationLinks;
+  }
+
+  @Override
+  public Map<String, Object> asJavaMap() {
+    final Map<String, Object> result = new LinkedHashMap<String, Object>();
+    for (Map.Entry<String, ClientProperty> entry : fields.entrySet()) {
+      Object value = null;
+      if (entry.getValue().hasPrimitiveValue()) {
+        value = entry.getValue().getPrimitiveValue().toValue();
+      } else if (entry.getValue().hasComplexValue()) {
+        value = entry.getValue().getComplexValue().asJavaMap();
+      } else if (entry.getValue().hasCollectionValue()) {
+        value = entry.getValue().getCollectionValue().asJavaCollection();
+      } else if (entry.getValue().hasEnumValue()) {
+        value = entry.getValue().getEnumValue().toString();
+      }
+
+      result.put(entry.getKey(), value);
+    }
+
+    return result;
+  }
+
+  @Override
+  public List<ClientAnnotation> getAnnotations() {
+    return annotations;
+  }
+
+  /**
+   * Adds field to the complex type.
+   *
+   * @param field field to be added.
+   */
+  @Override
+  public ClientComplexValue add(final ClientProperty field) {
+    fields.put(field.getName(), field);
+    return this;
+  }
+
+  /**
+   * Gets field.
+   *
+   * @param name name of the field to be retrieved.
+   * @return requested field.
+   */
+  @Override
+  public ClientProperty get(final String name) {
+    return fields.get(name);
+  }
+
+  /**
+   * Complex property fields iterator.
+   *
+   * @return fields iterator.
+   */
+  @Override
+  public Iterator<ClientProperty> iterator() {
+    return fields.values().iterator();
+  }
+
+  /**
+   * Gets number of fields.
+   *
+   * @return number of fields.
+   */
+  @Override
+  public int size() {
+    return fields.size();
+  }
+}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/17152920/lib/client-core/src/main/java/org/apache/olingo/client/core/domain/ClientDeletedEntityImpl.java
----------------------------------------------------------------------
diff --git a/lib/client-core/src/main/java/org/apache/olingo/client/core/domain/ClientDeletedEntityImpl.java b/lib/client-core/src/main/java/org/apache/olingo/client/core/domain/ClientDeletedEntityImpl.java
new file mode 100644
index 0000000..e2d954b
--- /dev/null
+++ b/lib/client-core/src/main/java/org/apache/olingo/client/core/domain/ClientDeletedEntityImpl.java
@@ -0,0 +1,54 @@
+/*
+ * 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.client.core.domain;
+
+import java.net.URI;
+
+import org.apache.olingo.client.api.domain.ClientDeletedEntity;
+import org.apache.olingo.client.api.domain.ClientItem;
+
+public class ClientDeletedEntityImpl extends ClientItem implements ClientDeletedEntity {
+
+  private URI id;
+
+  private Reason reason;
+
+  public ClientDeletedEntityImpl() {
+    super(null);
+  }
+
+  @Override
+  public URI getId() {
+    return id;
+  }
+
+  public void setId(final URI id) {
+    this.id = id;
+  }
+
+  @Override
+  public Reason getReason() {
+    return reason;
+  }
+
+  public void setReason(final Reason reason) {
+    this.reason = reason;
+  }
+
+}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/17152920/lib/client-core/src/main/java/org/apache/olingo/client/core/domain/ClientDeltaImpl.java
----------------------------------------------------------------------
diff --git a/lib/client-core/src/main/java/org/apache/olingo/client/core/domain/ClientDeltaImpl.java b/lib/client-core/src/main/java/org/apache/olingo/client/core/domain/ClientDeltaImpl.java
new file mode 100644
index 0000000..02af157
--- /dev/null
+++ b/lib/client-core/src/main/java/org/apache/olingo/client/core/domain/ClientDeltaImpl.java
@@ -0,0 +1,60 @@
+/*
+ * 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.client.core.domain;
+
+import java.net.URI;
+import java.util.ArrayList;
+import java.util.List;
+
+import org.apache.olingo.client.api.domain.ClientDeletedEntity;
+import org.apache.olingo.client.api.domain.ClientDelta;
+import org.apache.olingo.client.api.domain.ClientDeltaLink;
+
+public class ClientDeltaImpl extends ClientEntitySetImpl implements ClientDelta {
+
+  private final List<ClientDeletedEntity> deletedEntities = new ArrayList<ClientDeletedEntity>();
+
+  private final List<ClientDeltaLink> addedLinks = new ArrayList<ClientDeltaLink>();
+
+  private final List<ClientDeltaLink> deletedLinks = new ArrayList<ClientDeltaLink>();
+
+  public ClientDeltaImpl() {
+    super();
+  }
+
+  public ClientDeltaImpl(final URI next) {
+    super(next);
+  }
+
+  @Override
+  public List<ClientDeletedEntity> getDeletedEntities() {
+    return deletedEntities;
+  }
+
+  @Override
+  public List<ClientDeltaLink> getAddedLinks() {
+    return addedLinks;
+  }
+
+  @Override
+  public List<ClientDeltaLink> getDeletedLinks() {
+    return deletedLinks;
+  }
+
+}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/17152920/lib/client-core/src/main/java/org/apache/olingo/client/core/domain/ClientDeltaLinkImpl.java
----------------------------------------------------------------------
diff --git a/lib/client-core/src/main/java/org/apache/olingo/client/core/domain/ClientDeltaLinkImpl.java b/lib/client-core/src/main/java/org/apache/olingo/client/core/domain/ClientDeltaLinkImpl.java
new file mode 100644
index 0000000..29a1572
--- /dev/null
+++ b/lib/client-core/src/main/java/org/apache/olingo/client/core/domain/ClientDeltaLinkImpl.java
@@ -0,0 +1,78 @@
+/*
+ * 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.client.core.domain;
+
+import java.net.URI;
+import java.util.ArrayList;
+import java.util.List;
+
+import org.apache.olingo.client.api.domain.ClientAnnotation;
+import org.apache.olingo.client.api.domain.ClientDeltaLink;
+import org.apache.olingo.client.api.domain.ClientItem;
+
+public class ClientDeltaLinkImpl extends ClientItem implements ClientDeltaLink {
+
+  private URI source;
+
+  private String relationship;
+
+  private URI target;
+
+  private final List<ClientAnnotation> annotations = new ArrayList<ClientAnnotation>();
+
+  public ClientDeltaLinkImpl() {
+    super(null);
+  }
+
+  @Override
+  public URI getSource() {
+    return source;
+  }
+
+  @Override
+  public void setSource(final URI source) {
+    this.source = source;
+  }
+
+  @Override
+  public String getRelationship() {
+    return relationship;
+  }
+
+  @Override
+  public void setRelationship(final String relationship) {
+    this.relationship = relationship;
+  }
+
+  @Override
+  public URI getTarget() {
+    return target;
+  }
+
+  @Override
+  public void setTarget(final URI target) {
+    this.target = target;
+  }
+
+  @Override
+  public List<ClientAnnotation> getAnnotations() {
+    return annotations;
+  }
+
+}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/17152920/lib/client-core/src/main/java/org/apache/olingo/client/core/domain/ClientEntityImpl.java
----------------------------------------------------------------------
diff --git a/lib/client-core/src/main/java/org/apache/olingo/client/core/domain/ClientEntityImpl.java b/lib/client-core/src/main/java/org/apache/olingo/client/core/domain/ClientEntityImpl.java
new file mode 100644
index 0000000..1c0d31b
--- /dev/null
+++ b/lib/client-core/src/main/java/org/apache/olingo/client/core/domain/ClientEntityImpl.java
@@ -0,0 +1,298 @@
+/*
+ * 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.client.core.domain;
+
+import java.net.URI;
+import java.util.ArrayList;
+import java.util.List;
+
+import org.apache.commons.lang3.StringUtils;
+import org.apache.olingo.client.api.domain.AbstractClientPayload;
+import org.apache.olingo.client.api.domain.ClientAnnotation;
+import org.apache.olingo.client.api.domain.ClientEntity;
+import org.apache.olingo.client.api.domain.ClientLink;
+import org.apache.olingo.client.api.domain.ClientOperation;
+import org.apache.olingo.client.api.domain.ClientProperty;
+import org.apache.olingo.client.api.domain.ClientSingleton;
+import org.apache.olingo.commons.api.edm.FullQualifiedName;
+
+public class ClientEntityImpl extends AbstractClientPayload implements ClientEntity, ClientSingleton {
+
+  /**
+   * Entity id.
+   */
+  private URI id;
+  /**
+   * ETag.
+   */
+  private String eTag;
+  /**
+   * Media entity flag.
+   */
+  private boolean mediaEntity = false;
+  /**
+   * In case of media entity, media content type.
+   */
+  private String mediaContentType;
+  /**
+   * In case of media entity, media content source.
+   */
+  private URI mediaContentSource;
+  /**
+   * Media ETag.
+   */
+  private String mediaETag;
+  /**
+   * Edit link.
+   */
+  private URI editLink;
+
+  private final List<ClientProperty> properties = new ArrayList<ClientProperty>();
+
+  private final List<ClientAnnotation> annotations = new ArrayList<ClientAnnotation>();
+
+  private final FullQualifiedName typeName;
+  /**
+   * Navigation links (might contain in-line entities or entity sets).
+   */
+  private final List<ClientLink> navigationLinks = new ArrayList<ClientLink>();
+  /**
+   * Association links.
+   */
+  private final List<ClientLink> associationLinks = new ArrayList<ClientLink>();
+  /**
+   * Media edit links.
+   */
+  private final List<ClientLink> mediaEditLinks = new ArrayList<ClientLink>();
+  /**
+   * Operations (legacy, functions, actions).
+   */
+  private final List<ClientOperation> operations = new ArrayList<ClientOperation>();
+
+  public ClientEntityImpl(final FullQualifiedName typeName) {
+    super(typeName == null ? null : typeName.toString());
+    this.typeName = typeName;
+  }
+
+  @Override
+  public FullQualifiedName getTypeName() {
+    return typeName;
+  }
+
+  @Override
+  public String getETag() {
+    return eTag;
+  }
+
+  @Override
+  public void setETag(final String eTag) {
+    this.eTag = eTag;
+  }
+
+  @Override
+  public ClientOperation getOperation(final String title) {
+    ClientOperation result = null;
+    for (ClientOperation operation : operations) {
+      if (title.equals(operation.getTitle())) {
+        result = operation;
+        break;
+      }
+    }
+
+    return result;
+  }
+
+  /**
+   * Gets operations.
+   *
+   * @return operations.
+   */
+  @Override
+  public List<ClientOperation> getOperations() {
+    return operations;
+  }
+
+
+  @Override
+  public ClientProperty getProperty(final String name) {
+    ClientProperty result = null;
+
+    if (StringUtils.isNotBlank(name)) {
+      for (ClientProperty property : getProperties()) {
+        if (name.equals(property.getName())) {
+          result = property;
+          break;
+        }
+      }
+    }
+
+    return result;
+  }
+
+  @Override
+  public boolean addLink(final ClientLink link) {
+    boolean result = false;
+
+    switch (link.getType()) {
+      case ASSOCIATION:
+        result = associationLinks.contains(link) ? false : associationLinks.add(link);
+        break;
+
+      case ENTITY_NAVIGATION:
+      case ENTITY_SET_NAVIGATION:
+        result = navigationLinks.contains(link) ? false : navigationLinks.add(link);
+        break;
+
+      case MEDIA_EDIT:
+        result = mediaEditLinks.contains(link) ? false : mediaEditLinks.add(link);
+        break;
+
+      default:
+    }
+
+    return result;
+  }
+
+  @Override
+  public boolean removeLink(final ClientLink link) {
+    return associationLinks.remove(link) || navigationLinks.remove(link);
+  }
+
+  private ClientLink getLink(final List<ClientLink> links, final String name) {
+    ClientLink result = null;
+    for (ClientLink link : links) {
+      if (name.equals(link.getName())) {
+        result = link;
+        break;
+      }
+    }
+
+    return result;
+  }
+
+  @Override
+  public ClientLink getNavigationLink(final String name) {
+    return getLink(navigationLinks, name);
+  }
+
+  @Override
+  public List<ClientLink> getNavigationLinks() {
+    return navigationLinks;
+  }
+
+  @Override
+  public ClientLink getAssociationLink(final String name) {
+    return getLink(associationLinks, name);
+  }
+
+  @Override
+  public List<ClientLink> getAssociationLinks() {
+    return associationLinks;
+  }
+
+  @Override
+  public ClientLink getMediaEditLink(final String name) {
+    return getLink(mediaEditLinks, name);
+  }
+
+  @Override
+  public List<ClientLink> getMediaEditLinks() {
+    return mediaEditLinks;
+  }
+
+  @Override
+  public URI getEditLink() {
+    return editLink;
+  }
+
+  @Override
+  public void setEditLink(final URI editLink) {
+    this.editLink = editLink;
+  }
+
+  @Override
+  public URI getLink() {
+    return super.getLink() == null ? getEditLink() : super.getLink();
+  }
+
+  @Override
+  public boolean isReadOnly() {
+    return super.getLink() != null;
+  }
+
+  @Override
+  public boolean isMediaEntity() {
+    return mediaEntity;
+  }
+
+  @Override
+  public void setMediaEntity(final boolean isMediaEntity) {
+    mediaEntity = isMediaEntity;
+  }
+
+  @Override
+  public String getMediaContentType() {
+    return mediaContentType;
+  }
+
+  @Override
+  public void setMediaContentType(final String mediaContentType) {
+    this.mediaContentType = mediaContentType;
+  }
+
+  @Override
+  public URI getMediaContentSource() {
+    return mediaContentSource;
+  }
+
+  @Override
+  public void setMediaContentSource(final URI mediaContentSource) {
+    this.mediaContentSource = mediaContentSource;
+  }
+
+  @Override
+  public String getMediaETag() {
+    return mediaETag;
+  }
+
+  @Override
+  public void setMediaETag(final String eTag) {
+    mediaETag = eTag;
+  }
+
+  @Override
+  public URI getId() {
+    return id;
+  }
+
+  @Override
+  public void setId(final URI id) {
+    this.id = id;
+  }
+
+  @Override
+  public List<ClientProperty> getProperties() {
+    return properties;
+  }
+
+  @Override
+  public List<ClientAnnotation> getAnnotations() {
+    return annotations;
+  }
+}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/17152920/lib/client-core/src/main/java/org/apache/olingo/client/core/domain/ClientEntitySetImpl.java
----------------------------------------------------------------------
diff --git a/lib/client-core/src/main/java/org/apache/olingo/client/core/domain/ClientEntitySetImpl.java b/lib/client-core/src/main/java/org/apache/olingo/client/core/domain/ClientEntitySetImpl.java
new file mode 100644
index 0000000..7d7e646
--- /dev/null
+++ b/lib/client-core/src/main/java/org/apache/olingo/client/core/domain/ClientEntitySetImpl.java
@@ -0,0 +1,65 @@
+/*
+ * 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.client.core.domain;
+
+import java.net.URI;
+import java.util.ArrayList;
+import java.util.List;
+
+import org.apache.olingo.client.api.domain.ClientAnnotation;
+import org.apache.olingo.client.api.domain.ClientEntity;
+import org.apache.olingo.client.api.domain.ClientEntitySet;
+
+public class ClientEntitySetImpl extends AbstractClientEntitySet implements ClientEntitySet {
+
+  private URI deltaLink;
+
+  private final List<ClientEntity> entities = new ArrayList<ClientEntity>();
+
+  private final List<ClientAnnotation> annotations = new ArrayList<ClientAnnotation>();
+
+  public ClientEntitySetImpl() {
+    super();
+  }
+
+  public ClientEntitySetImpl(final URI next) {
+    super(next);
+  }
+
+  @Override
+  public List<ClientEntity> getEntities() {
+    return entities;
+  }
+
+  @Override
+  public URI getDeltaLink() {
+    return deltaLink;
+  }
+
+  @Override
+  public void setDeltaLink(final URI deltaLink) {
+    this.deltaLink = deltaLink;
+  }
+
+  @Override
+  public List<ClientAnnotation> getAnnotations() {
+    return annotations;
+  }
+
+}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/17152920/lib/client-core/src/main/java/org/apache/olingo/client/core/domain/ClientEnumValueImpl.java
----------------------------------------------------------------------
diff --git a/lib/client-core/src/main/java/org/apache/olingo/client/core/domain/ClientEnumValueImpl.java b/lib/client-core/src/main/java/org/apache/olingo/client/core/domain/ClientEnumValueImpl.java
new file mode 100644
index 0000000..84559c7
--- /dev/null
+++ b/lib/client-core/src/main/java/org/apache/olingo/client/core/domain/ClientEnumValueImpl.java
@@ -0,0 +1,59 @@
+/*
+ * 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.client.core.domain;
+
+import org.apache.olingo.client.api.domain.AbstractClientValue;
+import org.apache.olingo.client.api.domain.ClientEnumValue;
+
+public class ClientEnumValueImpl extends AbstractClientValue implements ClientEnumValue {
+
+  private final String value;
+
+  public ClientEnumValueImpl(final String typeName, final String value) {
+    super(typeName);
+    this.value = value;
+  }
+
+  @Override
+  public String getValue() {
+    return value;
+  }
+
+  @Override
+  public boolean isEnum() {
+    return true;
+  }
+
+  @Override
+  public ClientEnumValue asEnum() {
+    return this;
+  }
+
+  @Override
+  public boolean isComplex() {
+    return false;
+  }
+
+  @Override
+  public String toString() {
+    return getTypeName() + "'" + getValue() + "'";
+
+  }
+
+}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/17152920/lib/client-core/src/main/java/org/apache/olingo/client/core/domain/ClientObjectFactoryImpl.java
----------------------------------------------------------------------
diff --git a/lib/client-core/src/main/java/org/apache/olingo/client/core/domain/ClientObjectFactoryImpl.java b/lib/client-core/src/main/java/org/apache/olingo/client/core/domain/ClientObjectFactoryImpl.java
new file mode 100644
index 0000000..7bca6c3
--- /dev/null
+++ b/lib/client-core/src/main/java/org/apache/olingo/client/core/domain/ClientObjectFactoryImpl.java
@@ -0,0 +1,155 @@
+/*
+ * 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.client.core.domain;
+
+import java.net.URI;
+
+import org.apache.olingo.client.api.domain.ClientCollectionValue;
+import org.apache.olingo.client.api.domain.ClientComplexValue;
+import org.apache.olingo.client.api.domain.ClientDelta;
+import org.apache.olingo.client.api.domain.ClientEntity;
+import org.apache.olingo.client.api.domain.ClientEntitySet;
+import org.apache.olingo.client.api.domain.ClientEnumValue;
+import org.apache.olingo.client.api.domain.ClientInlineEntity;
+import org.apache.olingo.client.api.domain.ClientInlineEntitySet;
+import org.apache.olingo.client.api.domain.ClientLink;
+import org.apache.olingo.client.api.domain.ClientLinkType;
+import org.apache.olingo.client.api.domain.ClientObjectFactory;
+import org.apache.olingo.client.api.domain.ClientPrimitiveValue;
+import org.apache.olingo.client.api.domain.ClientProperty;
+import org.apache.olingo.client.api.domain.ClientSingleton;
+import org.apache.olingo.client.api.domain.ClientValue;
+import org.apache.olingo.commons.api.edm.FullQualifiedName;
+
+public class ClientObjectFactoryImpl implements ClientObjectFactory {
+
+  @Override
+  public ClientInlineEntitySet newDeepInsertEntitySet(final String name, final ClientEntitySet entitySet) {
+    return new ClientInlineEntitySet(null, ClientLinkType.ENTITY_SET_NAVIGATION, name, entitySet);
+  }
+
+  @Override
+  public ClientInlineEntity newDeepInsertEntity(final String name, final ClientEntity entity) {
+    return new ClientInlineEntity(null, ClientLinkType.ENTITY_NAVIGATION, name, entity);
+  }
+
+  @Override
+  public ClientEntitySet newEntitySet() {
+    return new ClientEntitySetImpl();
+  }
+
+  @Override
+  public ClientEntitySet newEntitySet(final URI next) {
+    return new ClientEntitySetImpl(next);
+  }
+
+  @Override
+  public ClientEntity newEntity(final FullQualifiedName typeName) {
+    return new ClientEntityImpl(typeName);
+  }
+
+  @Override
+  public ClientEntity newEntity(final FullQualifiedName typeName, final URI link) {
+    final ClientEntityImpl result = new ClientEntityImpl(typeName);
+    result.setLink(link);
+    return result;
+  }
+
+  @Override
+  public ClientSingleton newSingleton(final FullQualifiedName typeName) {
+    return new ClientEntityImpl(typeName);
+  }
+
+  @Override
+  public ClientLink newEntityNavigationLink(final String name, final URI link) {
+    return new ClientLink.Builder().setURI(link).
+        setType(ClientLinkType.ENTITY_NAVIGATION).setTitle(name).build();
+  }
+
+  @Override
+  public ClientLink newEntitySetNavigationLink(final String name, final URI link) {
+    return new ClientLink.Builder().setURI(link).
+        setType(ClientLinkType.ENTITY_SET_NAVIGATION).setTitle(name).build();
+  }
+
+  @Override
+  public ClientLink newAssociationLink(final String name, final URI link) {
+    return new ClientLink.Builder().setURI(link).
+        setType(ClientLinkType.ASSOCIATION).setTitle(name).build();
+  }
+
+  @Override
+  public ClientLink newMediaEditLink(final String name, final URI link) {
+    return new ClientLink.Builder().setURI(link).
+        setType(ClientLinkType.MEDIA_EDIT).setTitle(name).build();
+  }
+
+  @Override
+  public ClientPrimitiveValue.Builder newPrimitiveValueBuilder() {
+    return new ClientPrimitiveValueImpl.BuilderImpl();
+  }
+
+  @Override
+  public ClientEnumValue newEnumValue(final String typeName, final String value) {
+    return new ClientEnumValueImpl(typeName, value);
+  }
+
+  @Override
+  public ClientComplexValue newComplexValue(final String typeName) {
+    return new ClientComplexValueImpl(typeName);
+  }
+
+  @Override
+  public ClientCollectionValue<ClientValue> newCollectionValue(final String typeName) {
+    return new ClientCollectionValueImpl<ClientValue>(typeName);
+  }
+
+  @Override
+  public ClientProperty newPrimitiveProperty(final String name, final ClientPrimitiveValue value) {
+    return new ClientPropertyImpl(name, value);
+  }
+
+  @Override
+  public ClientProperty newComplexProperty(final String name, final ClientComplexValue value) {
+
+    return new ClientPropertyImpl(name, value);
+  }
+
+  @Override
+  public ClientProperty newCollectionProperty(final String name,
+      final ClientCollectionValue<? extends ClientValue> value) {
+
+    return new ClientPropertyImpl(name, value);
+  }
+
+  @Override
+  public ClientProperty newEnumProperty(final String name, final ClientEnumValue value) {
+    return new ClientPropertyImpl(name, value);
+  }
+
+  @Override
+  public ClientDelta newDelta() {
+    return new ClientDeltaImpl();
+  }
+
+  @Override
+  public ClientDelta newDelta(final URI next) {
+    return new ClientDeltaImpl(next);
+  }
+}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/17152920/lib/client-core/src/main/java/org/apache/olingo/client/core/domain/ClientPrimitiveValueImpl.java
----------------------------------------------------------------------
diff --git a/lib/client-core/src/main/java/org/apache/olingo/client/core/domain/ClientPrimitiveValueImpl.java b/lib/client-core/src/main/java/org/apache/olingo/client/core/domain/ClientPrimitiveValueImpl.java
new file mode 100644
index 0000000..f8f85d5
--- /dev/null
+++ b/lib/client-core/src/main/java/org/apache/olingo/client/core/domain/ClientPrimitiveValueImpl.java
@@ -0,0 +1,222 @@
+/*
+ * 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.client.core.domain;
+
+import java.util.UUID;
+
+import org.apache.olingo.commons.api.Constants;
+import org.apache.olingo.client.api.domain.AbstractClientValue;
+import org.apache.olingo.client.api.domain.ClientEnumValue;
+import org.apache.olingo.client.api.domain.ClientPrimitiveValue;
+import org.apache.olingo.client.api.domain.ClientValue;
+import org.apache.olingo.commons.api.edm.EdmPrimitiveType;
+import org.apache.olingo.commons.api.edm.EdmPrimitiveTypeException;
+import org.apache.olingo.commons.api.edm.EdmPrimitiveTypeKind;
+import org.apache.olingo.commons.api.edm.EdmType;
+import org.apache.olingo.commons.api.edm.constants.EdmTypeKind;
+import org.apache.olingo.commons.core.edm.primitivetype.EdmPrimitiveTypeFactory;
+
+public class ClientPrimitiveValueImpl extends AbstractClientValue implements ClientValue, ClientPrimitiveValue {
+
+  public static class BuilderImpl implements Builder {
+
+    private final ClientPrimitiveValueImpl instance;
+
+    public BuilderImpl() {
+      instance = new ClientPrimitiveValueImpl();
+    }
+
+    @Override
+    public BuilderImpl setType(final EdmType type) {
+      EdmPrimitiveTypeKind primitiveTypeKind = null;
+      if (type != null) {
+        if (type.getKind() != EdmTypeKind.PRIMITIVE) {
+          throw new IllegalArgumentException(String.format("Provided type %s is not primitive", type));
+        }
+        primitiveTypeKind = EdmPrimitiveTypeKind.valueOf(type.getName());
+      }
+      return setType(primitiveTypeKind);
+    }
+
+    @Override
+    public BuilderImpl setType(final EdmPrimitiveTypeKind type) {
+      if (type == EdmPrimitiveTypeKind.Stream) {
+        throw new IllegalArgumentException(String.format(
+                "Cannot build a primitive value for %s", EdmPrimitiveTypeKind.Stream.toString()));
+      }
+      if (type == EdmPrimitiveTypeKind.Geography || type == EdmPrimitiveTypeKind.Geometry) {
+        throw new IllegalArgumentException(
+                type + "is not an instantiable type. "
+                        + "An entity can declare a property to be of type Geometry. "
+                        + "An instance of an entity MUST NOT have a value of type Geometry. "
+                        + "Each value MUST be of some subtype.");
+      }
+
+      instance.typeKind = type == null ? EdmPrimitiveTypeKind.String : type;
+      instance.type = EdmPrimitiveTypeFactory.getInstance(instance.typeKind);
+
+      return this;
+    }
+
+    @Override
+    public BuilderImpl setValue(final Object value) {
+      instance.value = value;
+      return this;
+    }
+
+    @Override
+    public ClientPrimitiveValue build() {
+      if (instance.type == null) {
+        setType(EdmPrimitiveTypeKind.String);
+      }
+      return instance;
+    }
+
+    @Override
+    public ClientPrimitiveValue buildBoolean(final Boolean value) {
+      return setType(EdmPrimitiveTypeKind.Boolean).setValue(value).build();
+    }
+
+    @Override
+    public ClientPrimitiveValue buildInt16(final Short value) {
+      return setType(EdmPrimitiveTypeKind.Int16).setValue(value).build();
+    }
+
+    @Override
+    public ClientPrimitiveValue buildInt32(final Integer value) {
+      return setType(EdmPrimitiveTypeKind.Int32).setValue(value).build();
+    }
+
+    @Override
+    public ClientPrimitiveValue buildInt64(final Long value) {
+      return setType(EdmPrimitiveTypeKind.Int64).setValue(value).build();
+    }
+
+    @Override
+    public ClientPrimitiveValue buildSingle(final Float value) {
+      return setType(EdmPrimitiveTypeKind.Single).setValue(value).build();
+    }
+
+    @Override
+    public ClientPrimitiveValue buildDouble(final Double value) {
+      return setType(EdmPrimitiveTypeKind.Double).setValue(value).build();
+    }
+
+    @Override
+    public ClientPrimitiveValue buildString(final String value) {
+      return setType(EdmPrimitiveTypeKind.String).setValue(value).build();
+    }
+
+    @Override
+    public ClientPrimitiveValue buildGuid(final UUID value) {
+      return setType(EdmPrimitiveTypeKind.Guid).setValue(value).build();
+    }
+
+    @Override
+    public ClientPrimitiveValue buildBinary(final byte[] value) {
+      return setType(EdmPrimitiveTypeKind.Binary).setValue(value).build();
+    }
+
+  }
+
+  /**
+   * Type kind.
+   */
+  private EdmPrimitiveTypeKind typeKind;
+
+  /**
+   * Type.
+   */
+  private EdmPrimitiveType type;
+
+  /**
+   * Actual value.
+   */
+  private Object value;
+
+  protected ClientPrimitiveValueImpl() {
+    super(null);
+  }
+
+  @Override
+  public String getTypeName() {
+    return typeKind.getFullQualifiedName().toString();
+  }
+
+  @Override
+  public EdmPrimitiveTypeKind getTypeKind() {
+    return typeKind;
+  }
+
+  @Override
+  public EdmPrimitiveType getType() {
+    return type;
+  }
+
+  @Override
+  public Object toValue() {
+    return value;
+  }
+
+  @Override
+  public <T> T toCastValue(final Class<T> reference) throws EdmPrimitiveTypeException {
+    if (value == null) {
+      return null;
+    } else if (typeKind.isGeospatial()) {
+      return reference.cast(value);
+    } else {
+      // TODO: set facets
+      return type.valueOfString(type.valueToString(value,
+                      null, null, Constants.DEFAULT_PRECISION, Constants.DEFAULT_SCALE, null),
+              null, null, Constants.DEFAULT_PRECISION, Constants.DEFAULT_SCALE, null, reference);
+    }
+  }
+
+  @Override
+  public String toString() {
+    if (value == null) {
+      return "";
+    } else if (typeKind.isGeospatial()) {
+      return value.toString();
+    } else {
+      try {
+        // TODO: set facets
+        return type.valueToString(value, null, null, Constants.DEFAULT_PRECISION, Constants.DEFAULT_SCALE, null);
+      } catch (EdmPrimitiveTypeException e) {
+        throw new IllegalArgumentException(e);
+      }
+    }
+  }
+
+  @Override
+  public boolean isEnum() {
+    return false;
+  }
+
+  @Override
+  public ClientEnumValue asEnum() {
+    return null;
+  }
+
+  @Override
+  public boolean isComplex() {
+    return false;
+  }
+
+}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/17152920/lib/client-core/src/main/java/org/apache/olingo/client/core/domain/ClientPropertyImpl.java
----------------------------------------------------------------------
diff --git a/lib/client-core/src/main/java/org/apache/olingo/client/core/domain/ClientPropertyImpl.java b/lib/client-core/src/main/java/org/apache/olingo/client/core/domain/ClientPropertyImpl.java
new file mode 100644
index 0000000..ac1ad1d
--- /dev/null
+++ b/lib/client-core/src/main/java/org/apache/olingo/client/core/domain/ClientPropertyImpl.java
@@ -0,0 +1,163 @@
+/*
+ * 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.client.core.domain;
+
+import java.util.ArrayList;
+import java.util.List;
+
+import org.apache.commons.lang3.builder.EqualsBuilder;
+import org.apache.commons.lang3.builder.HashCodeBuilder;
+import org.apache.olingo.client.api.domain.ClientAnnotatable;
+import org.apache.olingo.client.api.domain.ClientAnnotation;
+import org.apache.olingo.client.api.domain.ClientCollectionValue;
+import org.apache.olingo.client.api.domain.ClientComplexValue;
+import org.apache.olingo.client.api.domain.ClientEnumValue;
+import org.apache.olingo.client.api.domain.ClientPrimitiveValue;
+import org.apache.olingo.client.api.domain.ClientProperty;
+import org.apache.olingo.client.api.domain.ClientValuable;
+import org.apache.olingo.client.api.domain.ClientValue;
+
+public class ClientPropertyImpl implements ClientProperty, ClientAnnotatable, ClientValuable {
+
+
+  private final List<ClientAnnotation> annotations = new ArrayList<ClientAnnotation>();
+  private final String name;
+  private final ClientValue value;
+  private final ClientValuable valuable;
+
+  public ClientPropertyImpl(final String name, final ClientValue value) {
+    this.name = name;
+    this.value = value;
+    this.valuable = new ClientValuableImpl(value);
+  }
+
+  /**
+   * Returns property name.
+   *
+   * @return property name.
+   */
+  @Override
+  public String getName() {
+    return name;
+  }
+
+  /**
+   * Returns property value.
+   *
+   * @return property value.
+   */
+  @Override
+  public ClientValue getValue() {
+    return value;
+  }
+
+  /**
+   * Checks if has null value.
+   *
+   * @return 'TRUE' if has null value; 'FALSE' otherwise.
+   */
+  @Override
+  public boolean hasNullValue() {
+    return value == null || value.isPrimitive() && value.asPrimitive().toValue() == null;
+  }
+
+  /**
+   * Checks if has primitive value.
+   *
+   * @return 'TRUE' if has primitive value; 'FALSE' otherwise.
+   */
+  @Override
+  public boolean hasPrimitiveValue() {
+    return !hasNullValue() && value.isPrimitive();
+  }
+
+  /**
+   * Gets primitive value.
+   *
+   * @return primitive value if exists; null otherwise.
+   */
+  @Override
+  public ClientPrimitiveValue getPrimitiveValue() {
+    return hasPrimitiveValue() ? value.asPrimitive() : null;
+  }
+
+  /**
+   * Checks if has complex value.
+   *
+   * @return 'TRUE' if has complex value; 'FALSE' otherwise.
+   */
+  @Override
+  public boolean hasComplexValue() {
+    return !hasNullValue() && value.isComplex();
+  }
+
+  /**
+   * Checks if has collection value.
+   *
+   * @return 'TRUE' if has collection value; 'FALSE' otherwise.
+   */
+  @Override
+  public boolean hasCollectionValue() {
+    return !hasNullValue() && value.isCollection();
+  }
+
+  @Override
+  public boolean equals(final Object obj) {
+    return EqualsBuilder.reflectionEquals(this, obj);
+  }
+
+  @Override
+  public int hashCode() {
+    return HashCodeBuilder.reflectionHashCode(this);
+  }
+
+  @Override
+  public boolean hasEnumValue() {
+    return valuable.hasEnumValue();
+  }
+
+  @Override
+  public ClientEnumValue getEnumValue() {
+    return valuable.getEnumValue();
+  }
+
+  @Override
+  public ClientComplexValue getComplexValue() {
+    return valuable.getComplexValue();
+  }
+
+  @Override
+  public ClientCollectionValue<ClientValue> getCollectionValue() {
+    return valuable.getCollectionValue();
+  }
+
+  @Override
+  public List<ClientAnnotation> getAnnotations() {
+    return annotations;
+  }
+
+  @Override
+  public String toString() {
+    return "ODataPropertyImpl{"
+        + "name=" + getName()
+        + ",valuable=" + valuable
+        + ", annotations=" + annotations
+        + '}';
+  }
+}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/17152920/lib/client-core/src/main/java/org/apache/olingo/client/core/domain/ClientValuableImpl.java
----------------------------------------------------------------------
diff --git a/lib/client-core/src/main/java/org/apache/olingo/client/core/domain/ClientValuableImpl.java b/lib/client-core/src/main/java/org/apache/olingo/client/core/domain/ClientValuableImpl.java
new file mode 100644
index 0000000..ecae20d
--- /dev/null
+++ b/lib/client-core/src/main/java/org/apache/olingo/client/core/domain/ClientValuableImpl.java
@@ -0,0 +1,111 @@
+/*
+ * 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.client.core.domain;
+
+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.client.api.domain.ClientCollectionValue;
+import org.apache.olingo.client.api.domain.ClientComplexValue;
+import org.apache.olingo.client.api.domain.ClientEnumValue;
+import org.apache.olingo.client.api.domain.ClientPrimitiveValue;
+import org.apache.olingo.client.api.domain.ClientValuable;
+import org.apache.olingo.client.api.domain.ClientValue;
+
+public class ClientValuableImpl implements ClientValuable {
+
+  private final ClientValue value;
+
+  public ClientValuableImpl(final ClientValue value) {
+    this.value = value;
+  }
+
+  @Override
+  public ClientValue getValue() {
+    return value;
+  }
+
+  @Override
+  public boolean hasNullValue() {
+    return value == null;
+  }
+
+  @Override
+  public boolean hasPrimitiveValue() {
+    return !hasNullValue() && value.isPrimitive();
+  }
+
+  @Override
+  public ClientPrimitiveValue getPrimitiveValue() {
+    return hasPrimitiveValue() ? value.asPrimitive() : null;
+  }
+
+  @Override
+  public boolean hasCollectionValue() {
+    return !hasNullValue() && value.isCollection();
+  }
+
+  @Override
+  public ClientCollectionValue<ClientValue> getCollectionValue() {
+    return hasCollectionValue()
+        ? getValue().<ClientValue> asCollection()
+        : null;
+  }
+
+  @Override
+  public boolean hasComplexValue() {
+    return !hasNullValue() && value.isComplex();
+  }
+
+  @Override
+  public ClientComplexValue getComplexValue() {
+    return hasComplexValue()
+        ? getValue().asComplex()
+        : null;
+  }
+
+  @Override
+  public boolean hasEnumValue() {
+    return !hasNullValue() && getValue().isEnum();
+  }
+
+  @Override
+  public ClientEnumValue getEnumValue() {
+    return hasEnumValue()
+        ? getValue().asEnum()
+        : null;
+  }
+
+  @Override
+  public boolean equals(final Object obj) {
+    return EqualsBuilder.reflectionEquals(this, obj);
+  }
+
+  @Override
+  public int hashCode() {
+    return HashCodeBuilder.reflectionHashCode(this);
+  }
+
+  @Override
+  public String toString() {
+    return ReflectionToStringBuilder.toString(this, ToStringStyle.MULTI_LINE_STYLE);
+  }
+
+}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/17152920/lib/client-core/src/main/java/org/apache/olingo/client/core/serialization/ClientODataDeserializerImpl.java
----------------------------------------------------------------------
diff --git a/lib/client-core/src/main/java/org/apache/olingo/client/core/serialization/ClientODataDeserializerImpl.java b/lib/client-core/src/main/java/org/apache/olingo/client/core/serialization/ClientODataDeserializerImpl.java
index 916c360..a668aaf 100644
--- a/lib/client-core/src/main/java/org/apache/olingo/client/core/serialization/ClientODataDeserializerImpl.java
+++ b/lib/client-core/src/main/java/org/apache/olingo/client/core/serialization/ClientODataDeserializerImpl.java
@@ -35,7 +35,7 @@ import org.apache.olingo.commons.api.data.Entity;
 import org.apache.olingo.commons.api.data.EntityCollection;
 import org.apache.olingo.commons.api.data.Property;
 import org.apache.olingo.commons.api.data.ResWrap;
-import org.apache.olingo.commons.api.domain.ClientError;
+import org.apache.olingo.commons.api.domain.ODataError;
 import org.apache.olingo.commons.api.edm.EdmPrimitiveTypeException;
 import org.apache.olingo.commons.api.format.ODataFormat;
 import org.apache.olingo.commons.api.serialization.ODataDeserializer;
@@ -86,7 +86,7 @@ public class ClientODataDeserializerImpl implements ClientODataDeserializer {
   }
 
   @Override
-  public ClientError toError(final InputStream input) throws ODataDeserializerException {
+  public ODataError toError(final InputStream input) throws ODataDeserializerException {
     return deserializer.toError(input);
   }
 

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/17152920/lib/client-core/src/main/java/org/apache/olingo/client/core/serialization/ODataBinderImpl.java
----------------------------------------------------------------------
diff --git a/lib/client-core/src/main/java/org/apache/olingo/client/core/serialization/ODataBinderImpl.java b/lib/client-core/src/main/java/org/apache/olingo/client/core/serialization/ODataBinderImpl.java
index f38d795..48de8f8 100644
--- a/lib/client-core/src/main/java/org/apache/olingo/client/core/serialization/ODataBinderImpl.java
+++ b/lib/client-core/src/main/java/org/apache/olingo/client/core/serialization/ODataBinderImpl.java
@@ -44,29 +44,30 @@ import org.apache.olingo.commons.api.data.Entity;
 import org.apache.olingo.commons.api.data.EntityCollection;
 import org.apache.olingo.commons.api.data.Link;
 import org.apache.olingo.commons.api.data.Linked;
+import org.apache.olingo.commons.api.data.Operation;
 import org.apache.olingo.commons.api.data.Property;
 import org.apache.olingo.commons.api.data.ResWrap;
 import org.apache.olingo.commons.api.data.Valuable;
 import org.apache.olingo.commons.api.data.ValueType;
-import org.apache.olingo.commons.api.domain.ClientAnnotatable;
-import org.apache.olingo.commons.api.domain.ClientAnnotation;
-import org.apache.olingo.commons.api.domain.ClientCollectionValue;
-import org.apache.olingo.commons.api.domain.ClientComplexValue;
-import org.apache.olingo.commons.api.domain.ClientDeletedEntity.Reason;
-import org.apache.olingo.commons.api.domain.ClientDelta;
-import org.apache.olingo.commons.api.domain.ClientDeltaLink;
-import org.apache.olingo.commons.api.domain.ClientEntity;
-import org.apache.olingo.commons.api.domain.ClientEntitySet;
-import org.apache.olingo.commons.api.domain.ClientInlineEntity;
-import org.apache.olingo.commons.api.domain.ClientInlineEntitySet;
-import org.apache.olingo.commons.api.domain.ClientLink;
-import org.apache.olingo.commons.api.domain.ClientLinkType;
-import org.apache.olingo.commons.api.domain.ClientLinked;
-import org.apache.olingo.commons.api.domain.ClientOperation;
-import org.apache.olingo.commons.api.domain.ClientProperty;
-import org.apache.olingo.commons.api.domain.ClientServiceDocument;
-import org.apache.olingo.commons.api.domain.ClientValuable;
-import org.apache.olingo.commons.api.domain.ClientValue;
+import org.apache.olingo.client.api.domain.ClientAnnotatable;
+import org.apache.olingo.client.api.domain.ClientAnnotation;
+import org.apache.olingo.client.api.domain.ClientCollectionValue;
+import org.apache.olingo.client.api.domain.ClientComplexValue;
+import org.apache.olingo.client.api.domain.ClientDeletedEntity.Reason;
+import org.apache.olingo.client.api.domain.ClientDelta;
+import org.apache.olingo.client.api.domain.ClientDeltaLink;
+import org.apache.olingo.client.api.domain.ClientEntity;
+import org.apache.olingo.client.api.domain.ClientEntitySet;
+import org.apache.olingo.client.api.domain.ClientInlineEntity;
+import org.apache.olingo.client.api.domain.ClientInlineEntitySet;
+import org.apache.olingo.client.api.domain.ClientLink;
+import org.apache.olingo.client.api.domain.ClientLinkType;
+import org.apache.olingo.client.api.domain.ClientLinked;
+import org.apache.olingo.client.api.domain.ClientOperation;
+import org.apache.olingo.client.api.domain.ClientProperty;
+import org.apache.olingo.client.api.domain.ClientServiceDocument;
+import org.apache.olingo.client.api.domain.ClientValuable;
+import org.apache.olingo.client.api.domain.ClientValue;
 import org.apache.olingo.commons.api.edm.Edm;
 import org.apache.olingo.commons.api.edm.EdmBindingTarget;
 import org.apache.olingo.commons.api.edm.EdmComplexType;
@@ -87,10 +88,10 @@ import org.apache.olingo.commons.api.edm.FullQualifiedName;
 import org.apache.olingo.commons.api.edm.geo.Geospatial;
 import org.apache.olingo.commons.api.format.ODataFormat;
 import org.apache.olingo.commons.api.serialization.ODataSerializerException;
-import org.apache.olingo.commons.core.domain.ClientAnnotationImpl;
-import org.apache.olingo.commons.core.domain.ClientDeletedEntityImpl;
-import org.apache.olingo.commons.core.domain.ClientDeltaLinkImpl;
-import org.apache.olingo.commons.core.domain.ClientPropertyImpl;
+import org.apache.olingo.client.core.domain.ClientAnnotationImpl;
+import org.apache.olingo.client.core.domain.ClientDeletedEntityImpl;
+import org.apache.olingo.client.core.domain.ClientDeltaLinkImpl;
+import org.apache.olingo.client.core.domain.ClientPropertyImpl;
 import org.apache.olingo.commons.core.edm.primitivetype.EdmPrimitiveTypeFactory;
 import org.apache.olingo.commons.core.edm.EdmTypeInfo;
 import org.apache.olingo.commons.core.serialization.ContextURLParser;
@@ -635,8 +636,11 @@ public class ODataBinderImpl implements ODataBinder {
           newMediaEditLink(link.getTitle(), URIUtils.getURI(base, link.getHref())));
     }
 
-    for (ClientOperation operation : resource.getPayload().getOperations()) {
-      operation.setTarget(URIUtils.getURI(base, operation.getTarget()));
+    for (Operation op : resource.getPayload().getOperations()) {
+      ClientOperation operation = new ClientOperation();
+      operation.setTarget(URIUtils.getURI(base, op.getTarget()));
+      operation.setTitle(op.getTitle());
+      operation.setMetadataAnchor(op.getMetadataAnchor());
       entity.getOperations().add(operation);
     }
 

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/17152920/lib/client-core/src/main/java/org/apache/olingo/client/core/serialization/ODataReaderImpl.java
----------------------------------------------------------------------
diff --git a/lib/client-core/src/main/java/org/apache/olingo/client/core/serialization/ODataReaderImpl.java b/lib/client-core/src/main/java/org/apache/olingo/client/core/serialization/ODataReaderImpl.java
index 80972be..8f3c8be 100644
--- a/lib/client-core/src/main/java/org/apache/olingo/client/core/serialization/ODataReaderImpl.java
+++ b/lib/client-core/src/main/java/org/apache/olingo/client/core/serialization/ODataReaderImpl.java
@@ -33,12 +33,12 @@ import org.apache.olingo.commons.api.data.Entity;
 import org.apache.olingo.commons.api.data.EntityCollection;
 import org.apache.olingo.commons.api.data.Property;
 import org.apache.olingo.commons.api.data.ResWrap;
-import org.apache.olingo.commons.api.domain.ClientEntity;
-import org.apache.olingo.commons.api.domain.ClientEntitySet;
-import org.apache.olingo.commons.api.domain.ClientError;
-import org.apache.olingo.commons.api.domain.ClientProperty;
-import org.apache.olingo.commons.api.domain.ClientServiceDocument;
-import org.apache.olingo.commons.api.domain.ClientValue;
+import org.apache.olingo.client.api.domain.ClientEntity;
+import org.apache.olingo.client.api.domain.ClientEntitySet;
+import org.apache.olingo.commons.api.domain.ODataError;
+import org.apache.olingo.client.api.domain.ClientProperty;
+import org.apache.olingo.client.api.domain.ClientServiceDocument;
+import org.apache.olingo.client.api.domain.ClientValue;
 import org.apache.olingo.commons.api.edm.Edm;
 import org.apache.olingo.commons.api.edm.EdmPrimitiveTypeKind;
 import org.apache.olingo.commons.api.edm.provider.CsdlSchema;
@@ -80,7 +80,7 @@ public class ODataReaderImpl implements ODataReader {
   }
 
   @Override
-  public ClientError readError(final InputStream inputStream, final ODataFormat format)
+  public ODataError readError(final InputStream inputStream, final ODataFormat format)
       throws ODataDeserializerException {
     return client.getDeserializer(format).toError(inputStream);
   }
@@ -137,7 +137,7 @@ public class ODataReaderImpl implements ODataReader {
             resource.getContextURL(),
             resource.getMetadataETag(),
             reference.cast(client.getBinder().getODataServiceDocument(resource.getPayload())));
-      } else if (ClientError.class.isAssignableFrom(reference)) {
+      } else if (ODataError.class.isAssignableFrom(reference)) {
         res = new ResWrap<T>(
             (URI) null,
             null,

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/17152920/lib/client-core/src/main/java/org/apache/olingo/client/core/serialization/ODataWriterImpl.java
----------------------------------------------------------------------
diff --git a/lib/client-core/src/main/java/org/apache/olingo/client/core/serialization/ODataWriterImpl.java b/lib/client-core/src/main/java/org/apache/olingo/client/core/serialization/ODataWriterImpl.java
index 8191886..c891f1e 100644
--- a/lib/client-core/src/main/java/org/apache/olingo/client/core/serialization/ODataWriterImpl.java
+++ b/lib/client-core/src/main/java/org/apache/olingo/client/core/serialization/ODataWriterImpl.java
@@ -32,9 +32,9 @@ import org.apache.olingo.client.api.ODataClient;
 import org.apache.olingo.client.api.serialization.ODataWriter;
 import org.apache.olingo.commons.api.Constants;
 import org.apache.olingo.commons.api.data.ResWrap;
-import org.apache.olingo.commons.api.domain.ClientEntity;
-import org.apache.olingo.commons.api.domain.ClientLink;
-import org.apache.olingo.commons.api.domain.ClientProperty;
+import org.apache.olingo.client.api.domain.ClientEntity;
+import org.apache.olingo.client.api.domain.ClientLink;
+import org.apache.olingo.client.api.domain.ClientProperty;
 import org.apache.olingo.commons.api.format.ODataFormat;
 import org.apache.olingo.commons.api.serialization.ODataSerializerException;
 

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/17152920/lib/client-core/src/main/java/org/apache/olingo/client/core/uri/URIUtils.java
----------------------------------------------------------------------
diff --git a/lib/client-core/src/main/java/org/apache/olingo/client/core/uri/URIUtils.java b/lib/client-core/src/main/java/org/apache/olingo/client/core/uri/URIUtils.java
index e1ac9c1..60c8074 100644
--- a/lib/client-core/src/main/java/org/apache/olingo/client/core/uri/URIUtils.java
+++ b/lib/client-core/src/main/java/org/apache/olingo/client/core/uri/URIUtils.java
@@ -50,7 +50,7 @@ import org.apache.olingo.client.api.http.WrappingHttpClientFactory;
 import org.apache.olingo.client.api.uri.SegmentType;
 import org.apache.olingo.client.core.http.BasicAuthHttpClientFactory;
 import org.apache.olingo.commons.api.Constants;
-import org.apache.olingo.commons.api.domain.ClientValue;
+import org.apache.olingo.client.api.domain.ClientValue;
 import org.apache.olingo.commons.api.edm.EdmPrimitiveTypeException;
 import org.apache.olingo.commons.api.edm.geo.Geospatial;
 import org.apache.olingo.commons.core.edm.primitivetype.EdmBinary;

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/17152920/lib/client-core/src/test/java/org/apache/olingo/client/core/v4/EntitySetTest.java
----------------------------------------------------------------------
diff --git a/lib/client-core/src/test/java/org/apache/olingo/client/core/v4/EntitySetTest.java b/lib/client-core/src/test/java/org/apache/olingo/client/core/v4/EntitySetTest.java
index 873b946..5395472 100644
--- a/lib/client-core/src/test/java/org/apache/olingo/client/core/v4/EntitySetTest.java
+++ b/lib/client-core/src/test/java/org/apache/olingo/client/core/v4/EntitySetTest.java
@@ -22,8 +22,8 @@ import org.apache.olingo.client.api.ODataClient;
 import org.apache.olingo.client.core.AbstractTest;
 import org.apache.olingo.commons.api.data.EntityCollection;
 import org.apache.olingo.commons.api.data.ResWrap;
-import org.apache.olingo.commons.api.domain.ClientEntity;
-import org.apache.olingo.commons.api.domain.ClientEntitySet;
+import org.apache.olingo.client.api.domain.ClientEntity;
+import org.apache.olingo.client.api.domain.ClientEntitySet;
 import org.apache.olingo.commons.api.format.ODataFormat;
 import org.apache.olingo.commons.api.serialization.ODataDeserializerException;
 import org.junit.Test;

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/17152920/lib/client-core/src/test/java/org/apache/olingo/client/core/v4/EntityTest.java
----------------------------------------------------------------------
diff --git a/lib/client-core/src/test/java/org/apache/olingo/client/core/v4/EntityTest.java b/lib/client-core/src/test/java/org/apache/olingo/client/core/v4/EntityTest.java
index de35c02..7373da6 100644
--- a/lib/client-core/src/test/java/org/apache/olingo/client/core/v4/EntityTest.java
+++ b/lib/client-core/src/test/java/org/apache/olingo/client/core/v4/EntityTest.java
@@ -33,15 +33,15 @@ import org.apache.olingo.client.core.AbstractTest;
 import org.apache.olingo.client.core.EdmEnabledODataClientImpl;
 import org.apache.olingo.commons.api.data.Entity;
 import org.apache.olingo.commons.api.data.ResWrap;
-import org.apache.olingo.commons.api.domain.ClientAnnotation;
-import org.apache.olingo.commons.api.domain.ClientComplexValue;
-import org.apache.olingo.commons.api.domain.ClientEntity;
-import org.apache.olingo.commons.api.domain.ClientInlineEntitySet;
-import org.apache.olingo.commons.api.domain.ClientLink;
-import org.apache.olingo.commons.api.domain.ClientLinkType;
-import org.apache.olingo.commons.api.domain.ClientProperty;
-import org.apache.olingo.commons.api.domain.ClientValuable;
-import org.apache.olingo.commons.api.domain.ClientValue;
+import org.apache.olingo.client.api.domain.ClientAnnotation;
+import org.apache.olingo.client.api.domain.ClientComplexValue;
+import org.apache.olingo.client.api.domain.ClientEntity;
+import org.apache.olingo.client.api.domain.ClientInlineEntitySet;
+import org.apache.olingo.client.api.domain.ClientLink;
+import org.apache.olingo.client.api.domain.ClientLinkType;
+import org.apache.olingo.client.api.domain.ClientProperty;
+import org.apache.olingo.client.api.domain.ClientValuable;
+import org.apache.olingo.client.api.domain.ClientValue;
 import org.apache.olingo.commons.api.edm.Edm;
 import org.apache.olingo.commons.api.edm.EdmPrimitiveTypeException;
 import org.apache.olingo.commons.api.format.ODataFormat;

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/17152920/lib/client-core/src/test/java/org/apache/olingo/client/core/v4/ErrorTest.java
----------------------------------------------------------------------
diff --git a/lib/client-core/src/test/java/org/apache/olingo/client/core/v4/ErrorTest.java b/lib/client-core/src/test/java/org/apache/olingo/client/core/v4/ErrorTest.java
index 21b1f82..c0067bc 100644
--- a/lib/client-core/src/test/java/org/apache/olingo/client/core/v4/ErrorTest.java
+++ b/lib/client-core/src/test/java/org/apache/olingo/client/core/v4/ErrorTest.java
@@ -20,7 +20,7 @@ package org.apache.olingo.client.core.v4;
 
 import org.apache.olingo.client.api.ODataClient;
 import org.apache.olingo.client.core.AbstractTest;
-import org.apache.olingo.commons.api.domain.ClientError;
+import org.apache.olingo.commons.api.domain.ODataError;
 import org.apache.olingo.commons.api.format.ODataFormat;
 import org.apache.olingo.commons.api.serialization.ODataDeserializerException;
 import org.junit.Test;
@@ -35,15 +35,15 @@ public class ErrorTest extends AbstractTest {
     return v4Client;
   }
 
-  private ClientError error(final String name, final ODataFormat format) throws ODataDeserializerException {
-    final ClientError error = getClient().getDeserializer(format).toError(
+  private ODataError error(final String name, final ODataFormat format) throws ODataDeserializerException {
+    final ODataError error = getClient().getDeserializer(format).toError(
             getClass().getResourceAsStream(name + "." + getSuffix(format)));
     assertNotNull(error);
     return error;
   }
 
   private void simple(final ODataFormat format) throws ODataDeserializerException {
-    final ClientError error = error("error", format);
+    final ODataError error = error("error", format);
     assertEquals("501", error.getCode());
     assertEquals("Unsupported functionality", error.getMessage());
     assertEquals("query", error.getTarget());

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/17152920/lib/client-core/src/test/java/org/apache/olingo/client/core/v4/JSONTest.java
----------------------------------------------------------------------
diff --git a/lib/client-core/src/test/java/org/apache/olingo/client/core/v4/JSONTest.java b/lib/client-core/src/test/java/org/apache/olingo/client/core/v4/JSONTest.java
index 49c7c38..83c495c 100644
--- a/lib/client-core/src/test/java/org/apache/olingo/client/core/v4/JSONTest.java
+++ b/lib/client-core/src/test/java/org/apache/olingo/client/core/v4/JSONTest.java
@@ -35,10 +35,10 @@ import org.apache.olingo.client.core.AbstractTest;
 import org.apache.olingo.commons.api.Constants;
 import org.apache.olingo.commons.api.data.Delta;
 import org.apache.olingo.commons.api.data.Property;
-import org.apache.olingo.commons.api.domain.ClientCollectionValue;
-import org.apache.olingo.commons.api.domain.ClientComplexValue;
-import org.apache.olingo.commons.api.domain.ClientEntity;
-import org.apache.olingo.commons.api.domain.ClientValue;
+import org.apache.olingo.client.api.domain.ClientCollectionValue;
+import org.apache.olingo.client.api.domain.ClientComplexValue;
+import org.apache.olingo.client.api.domain.ClientEntity;
+import org.apache.olingo.client.api.domain.ClientValue;
 import org.apache.olingo.commons.api.edm.FullQualifiedName;
 import org.apache.olingo.commons.api.format.ODataFormat;
 import org.junit.Test;

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/17152920/lib/client-core/src/test/java/org/apache/olingo/client/core/v4/MetadataTest.java
----------------------------------------------------------------------
diff --git a/lib/client-core/src/test/java/org/apache/olingo/client/core/v4/MetadataTest.java b/lib/client-core/src/test/java/org/apache/olingo/client/core/v4/MetadataTest.java
index 8d359a7..e4778cb 100644
--- a/lib/client-core/src/test/java/org/apache/olingo/client/core/v4/MetadataTest.java
+++ b/lib/client-core/src/test/java/org/apache/olingo/client/core/v4/MetadataTest.java
@@ -174,7 +174,7 @@ public class MetadataTest extends AbstractTest {
     final EdmAnnotation annotation = annotationGroup.getAnnotations().get(0);
     assertNotNull(annotation);
     assertTrue(annotation.getExpression().isConstant());
-    assertEquals("Edm.String", annotation.getExpression().asConstant().getValue().getTypeName());
+    assertEquals("Edm.String", annotation.getExpression().asConstant().getValue().getType());
 
     assertEquals(10, schema.getAnnotationGroups().get(3).getAnnotations().size());
   }
@@ -273,7 +273,7 @@ public class MetadataTest extends AbstractTest {
     assertNotNull(weight);
     assertEquals(EdmInt32.getInstance(), weight.getUnderlyingType());
     assertFalse(weight.getAnnotations().isEmpty());
-    assertEquals("Kilograms", weight.getAnnotations().get(0).getExpression().asConstant().getValue().toString());
+    assertEquals("Kilograms", weight.getAnnotations().get(0).getExpression().asConstant().getValue().getValue());
   }
 
   /**
@@ -332,10 +332,10 @@ public class MetadataTest extends AbstractTest {
     assertNotNull(group);
 
     final EdmAnnotation time1 = group.getAnnotations().get(0);
-    assertEquals("Edm.TimeOfDay", time1.getExpression().asConstant().getValue().getTypeName());
+    assertEquals("Edm.TimeOfDay", time1.getExpression().asConstant().getValue().getType());
 
     final EdmAnnotation time2 = group.getAnnotations().get(1);
-    assertEquals("Edm.TimeOfDay", time2.getExpression().asConstant().getValue().getTypeName());
+    assertEquals("Edm.TimeOfDay", time2.getExpression().asConstant().getValue().getType());
   }
 
   /**

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/17152920/lib/client-core/src/test/java/org/apache/olingo/client/core/v4/PrimitiveValueTest.java
----------------------------------------------------------------------
diff --git a/lib/client-core/src/test/java/org/apache/olingo/client/core/v4/PrimitiveValueTest.java b/lib/client-core/src/test/java/org/apache/olingo/client/core/v4/PrimitiveValueTest.java
index 760e8ca..d22bb6f 100644
--- a/lib/client-core/src/test/java/org/apache/olingo/client/core/v4/PrimitiveValueTest.java
+++ b/lib/client-core/src/test/java/org/apache/olingo/client/core/v4/PrimitiveValueTest.java
@@ -20,7 +20,7 @@ package org.apache.olingo.client.core.v4;
 
 import org.apache.olingo.client.api.ODataClient;
 import org.apache.olingo.client.core.AbstractTest;
-import org.apache.olingo.commons.api.domain.ClientValue;
+import org.apache.olingo.client.api.domain.ClientValue;
 import org.apache.olingo.commons.api.edm.EdmPrimitiveTypeException;
 import org.apache.olingo.commons.api.edm.EdmPrimitiveTypeKind;
 import org.junit.Test;

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/17152920/lib/client-core/src/test/java/org/apache/olingo/client/core/v4/PropertyTest.java
----------------------------------------------------------------------
diff --git a/lib/client-core/src/test/java/org/apache/olingo/client/core/v4/PropertyTest.java b/lib/client-core/src/test/java/org/apache/olingo/client/core/v4/PropertyTest.java
index e8daeb8..46e0d22 100644
--- a/lib/client-core/src/test/java/org/apache/olingo/client/core/v4/PropertyTest.java
+++ b/lib/client-core/src/test/java/org/apache/olingo/client/core/v4/PropertyTest.java
@@ -20,10 +20,10 @@ package org.apache.olingo.client.core.v4;
 
 import org.apache.olingo.client.api.ODataClient;
 import org.apache.olingo.client.core.AbstractTest;
-import org.apache.olingo.commons.api.domain.ClientCollectionValue;
-import org.apache.olingo.commons.api.domain.ClientComplexValue;
-import org.apache.olingo.commons.api.domain.ClientProperty;
-import org.apache.olingo.commons.api.domain.ClientValue;
+import org.apache.olingo.client.api.domain.ClientCollectionValue;
+import org.apache.olingo.client.api.domain.ClientComplexValue;
+import org.apache.olingo.client.api.domain.ClientProperty;
+import org.apache.olingo.client.api.domain.ClientValue;
 import org.apache.olingo.commons.api.format.ODataFormat;
 import org.apache.olingo.commons.api.serialization.ODataDeserializerException;
 import org.apache.olingo.commons.api.serialization.ODataSerializerException;

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/17152920/lib/client-core/src/test/java/org/apache/olingo/client/core/v4/ServiceDocumentTest.java
----------------------------------------------------------------------
diff --git a/lib/client-core/src/test/java/org/apache/olingo/client/core/v4/ServiceDocumentTest.java b/lib/client-core/src/test/java/org/apache/olingo/client/core/v4/ServiceDocumentTest.java
index e025076..1a2de09 100644
--- a/lib/client-core/src/test/java/org/apache/olingo/client/core/v4/ServiceDocumentTest.java
+++ b/lib/client-core/src/test/java/org/apache/olingo/client/core/v4/ServiceDocumentTest.java
@@ -22,7 +22,7 @@ import org.apache.olingo.client.api.ODataClient;
 import org.apache.olingo.client.api.data.ServiceDocument;
 import org.apache.olingo.client.core.AbstractTest;
 import org.apache.olingo.commons.api.data.ResWrap;
-import org.apache.olingo.commons.api.domain.ClientServiceDocument;
+import org.apache.olingo.client.api.domain.ClientServiceDocument;
 import org.apache.olingo.commons.api.format.ODataFormat;
 import org.apache.olingo.commons.api.serialization.ODataDeserializerException;
 import org.junit.Test;

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/17152920/lib/commons-api/src/main/java/org/apache/olingo/commons/api/Constants.java
----------------------------------------------------------------------
diff --git a/lib/commons-api/src/main/java/org/apache/olingo/commons/api/Constants.java b/lib/commons-api/src/main/java/org/apache/olingo/commons/api/Constants.java
index cec55b3..ba9fd7a 100644
--- a/lib/commons-api/src/main/java/org/apache/olingo/commons/api/Constants.java
+++ b/lib/commons-api/src/main/java/org/apache/olingo/commons/api/Constants.java
@@ -18,6 +18,8 @@
  */
 package org.apache.olingo.commons.api;
 
+import org.apache.olingo.commons.api.format.ContentType;
+
 import javax.xml.XMLConstants;
 import javax.xml.namespace.QName;
 
@@ -302,4 +304,10 @@ public interface Constants {
 
   public static final String CANONICAL_FUNCTION_URIENCODE = "odata.uriEncode";
 
+  String MEDIA_EDIT_LINK_TYPE = "*/*";
+  String ENTITY_NAVIGATION_LINK_TYPE = ContentType.APPLICATION_ATOM_XML_ENTRY.toContentTypeString();
+  String ENTITY_SET_NAVIGATION_LINK_TYPE = ContentType.APPLICATION_ATOM_XML_FEED.toContentTypeString();
+  String ASSOCIATION_LINK_TYPE = ContentType.APPLICATION_XML.toContentTypeString();
+  String ENTITY_COLLECTION_BINDING_LINK_TYPE = ContentType.APPLICATION_XML.toContentTypeString();
+  String ENTITY_BINDING_LINK_TYPE = ContentType.APPLICATION_XML.toContentTypeString();
 }

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/17152920/lib/commons-api/src/main/java/org/apache/olingo/commons/api/data/Entity.java
----------------------------------------------------------------------
diff --git a/lib/commons-api/src/main/java/org/apache/olingo/commons/api/data/Entity.java b/lib/commons-api/src/main/java/org/apache/olingo/commons/api/data/Entity.java
index a9db524..b6939c0 100644
--- a/lib/commons-api/src/main/java/org/apache/olingo/commons/api/data/Entity.java
+++ b/lib/commons-api/src/main/java/org/apache/olingo/commons/api/data/Entity.java
@@ -18,8 +18,6 @@
  */
 package org.apache.olingo.commons.api.data;
 
-import org.apache.olingo.commons.api.domain.ClientOperation;
-
 import java.net.URI;
 import java.util.ArrayList;
 import java.util.List;
@@ -33,7 +31,7 @@ public class Entity extends Linked {
   private Link editLink;
 
   private final List<Link> mediaEditLinks = new ArrayList<Link>();
-  private final List<ClientOperation> operations = new ArrayList<ClientOperation>();
+  private final List<Operation> operations = new ArrayList<Operation>();
 
   private final List<Property> properties = new ArrayList<Property>();
 
@@ -122,7 +120,7 @@ public class Entity extends Linked {
    * 
    * @return operations.
    */
-  public List<ClientOperation> getOperations() {
+  public List<Operation> getOperations() {
     return operations;
   }
 


[45/50] [abbrv] olingo-odata4 git commit: [OLINGO-564] first step for common -> client extraction

Posted by mi...@apache.org.
http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/17152920/lib/commons-api/src/main/java/org/apache/olingo/commons/api/data/Operation.java
----------------------------------------------------------------------
diff --git a/lib/commons-api/src/main/java/org/apache/olingo/commons/api/data/Operation.java b/lib/commons-api/src/main/java/org/apache/olingo/commons/api/data/Operation.java
new file mode 100644
index 0000000..914c42c
--- /dev/null
+++ b/lib/commons-api/src/main/java/org/apache/olingo/commons/api/data/Operation.java
@@ -0,0 +1,85 @@
+/*
+ * 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.commons.api.data;
+
+import java.net.URI;
+
+public class Operation {
+
+  private String metadataAnchor;
+
+  private String title;
+
+  private URI target;
+
+  /**
+   * Gets metadata anchor.
+   * 
+   * @return metadata anchor.
+   */
+  public String getMetadataAnchor() {
+    return metadataAnchor;
+  }
+
+  /**
+   * Sets metadata anchor.
+   * 
+   * @param metadataAnchor metadata anchor.
+   */
+  public void setMetadataAnchor(final String metadataAnchor) {
+    this.metadataAnchor = metadataAnchor;
+  }
+
+  /**
+   * Gets title.
+   * 
+   * @return title.
+   */
+  public String getTitle() {
+    return title;
+  }
+
+  /**
+   * Sets title.
+   * 
+   * @param title title.
+   */
+  public void setTitle(final String title) {
+    this.title = title;
+  }
+
+  /**
+   * Gets target.
+   * 
+   * @return target.
+   */
+  public URI getTarget() {
+    return target;
+  }
+
+  /**
+   * Sets target.
+   * 
+   * @param target target.
+   */
+  public void setTarget(final URI target) {
+    this.target = target;
+  }
+
+}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/17152920/lib/commons-api/src/main/java/org/apache/olingo/commons/api/domain/AbstractClientPayload.java
----------------------------------------------------------------------
diff --git a/lib/commons-api/src/main/java/org/apache/olingo/commons/api/domain/AbstractClientPayload.java b/lib/commons-api/src/main/java/org/apache/olingo/commons/api/domain/AbstractClientPayload.java
deleted file mode 100644
index fc54860..0000000
--- a/lib/commons-api/src/main/java/org/apache/olingo/commons/api/domain/AbstractClientPayload.java
+++ /dev/null
@@ -1,50 +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.commons.api.domain;
-
-import java.net.URI;
-
-/**
- * OData entity.
- */
-public abstract class AbstractClientPayload extends ClientItem {
-
-  /**
-   * Context URL.
-   */
-  private URI contextURL;
-
-  public AbstractClientPayload(final String name) {
-    super(name);
-  }
-
-  /**
-   * The context URL describes the content of the payload. It consists of the canonical metadata document URL and a
-   * fragment identifying the relevant portion of the metadata document.
-   * 
-   * @return context URL.
-   */
-  public URI getContextURL() {
-    return contextURL;
-  }
-
-  public void setContextURL(final URI contextURL) {
-    this.contextURL = contextURL;
-  }
-}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/17152920/lib/commons-api/src/main/java/org/apache/olingo/commons/api/domain/AbstractClientValue.java
----------------------------------------------------------------------
diff --git a/lib/commons-api/src/main/java/org/apache/olingo/commons/api/domain/AbstractClientValue.java b/lib/commons-api/src/main/java/org/apache/olingo/commons/api/domain/AbstractClientValue.java
deleted file mode 100644
index af5b423..0000000
--- a/lib/commons-api/src/main/java/org/apache/olingo/commons/api/domain/AbstractClientValue.java
+++ /dev/null
@@ -1,120 +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.commons.api.domain;
-
-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;
-
-/**
- * Abstract representation of an OData entity property value.
- */
-public abstract class AbstractClientValue implements ClientValue {
-
-  /**
-   * Type name;
-   */
-  private final String typeName;
-
-  public AbstractClientValue(final String typeName) {
-    this.typeName = typeName;
-  }
-
-  @Override
-  public String getTypeName() {
-    return typeName;
-  }
-
-  /**
-   * Check is is a primitive value.
-   * 
-   * @return 'TRUE' if primitive; 'FALSE' otherwise.
-   */
-  @Override
-  public boolean isPrimitive() {
-    return (this instanceof ClientPrimitiveValue);
-  }
-
-  /**
-   * Casts to primitive value.
-   * 
-   * @return primitive value.
-   */
-  @Override
-  public ClientPrimitiveValue asPrimitive() {
-    return isPrimitive() ? (ClientPrimitiveValue) this : null;
-  }
-
-  /**
-   * Check is is a complex value.
-   * 
-   * @return 'TRUE' if complex; 'FALSE' otherwise.
-   */
-  @Override
-  public boolean isComplex() {
-    return (this instanceof ClientComplexValue);
-  }
-
-  /**
-   * Casts to complex value.
-   * 
-   * @return complex value.
-   */
-  @Override
-  public ClientComplexValue asComplex() {
-    return isComplex() ? (ClientComplexValue) this : null;
-  }
-
-  /**
-   * Check is is a collection value.
-   * 
-   * @return 'TRUE' if collection; 'FALSE' otherwise.
-   */
-  @Override
-  public boolean isCollection() {
-    return (this instanceof ClientCollectionValue);
-  }
-
-  /**
-   * Casts to collection value.
-   * 
-   * @return collection value.
-   */
-  @SuppressWarnings("unchecked")
-  @Override
-  public <OV extends ClientValue> ClientCollectionValue<OV> asCollection() {
-    return isCollection() ? (ClientCollectionValue<OV>) this : null;
-  }
-
-  @Override
-  public boolean equals(final Object obj) {
-    return EqualsBuilder.reflectionEquals(this, obj);
-  }
-
-  @Override
-  public int hashCode() {
-    return HashCodeBuilder.reflectionHashCode(this);
-  }
-
-  @Override
-  public String toString() {
-    return ReflectionToStringBuilder.toString(this, ToStringStyle.MULTI_LINE_STYLE);
-  }
-}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/17152920/lib/commons-api/src/main/java/org/apache/olingo/commons/api/domain/ClientAnnotatable.java
----------------------------------------------------------------------
diff --git a/lib/commons-api/src/main/java/org/apache/olingo/commons/api/domain/ClientAnnotatable.java b/lib/commons-api/src/main/java/org/apache/olingo/commons/api/domain/ClientAnnotatable.java
deleted file mode 100644
index f9c5119..0000000
--- a/lib/commons-api/src/main/java/org/apache/olingo/commons/api/domain/ClientAnnotatable.java
+++ /dev/null
@@ -1,26 +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.commons.api.domain;
-
-import java.util.List;
-
-public interface ClientAnnotatable {
-
-  List<ClientAnnotation> getAnnotations();
-}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/17152920/lib/commons-api/src/main/java/org/apache/olingo/commons/api/domain/ClientAnnotation.java
----------------------------------------------------------------------
diff --git a/lib/commons-api/src/main/java/org/apache/olingo/commons/api/domain/ClientAnnotation.java b/lib/commons-api/src/main/java/org/apache/olingo/commons/api/domain/ClientAnnotation.java
deleted file mode 100644
index 1749c63..0000000
--- a/lib/commons-api/src/main/java/org/apache/olingo/commons/api/domain/ClientAnnotation.java
+++ /dev/null
@@ -1,30 +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.commons.api.domain;
-
-public interface ClientAnnotation extends ClientValuable {
-
-  /**
-   * Returns annotation name.
-   * 
-   * @return annotation name.
-   */
-  String getTerm();
-
-}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/17152920/lib/commons-api/src/main/java/org/apache/olingo/commons/api/domain/ClientCollectionValue.java
----------------------------------------------------------------------
diff --git a/lib/commons-api/src/main/java/org/apache/olingo/commons/api/domain/ClientCollectionValue.java b/lib/commons-api/src/main/java/org/apache/olingo/commons/api/domain/ClientCollectionValue.java
deleted file mode 100644
index 0497dc6..0000000
--- a/lib/commons-api/src/main/java/org/apache/olingo/commons/api/domain/ClientCollectionValue.java
+++ /dev/null
@@ -1,57 +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.commons.api.domain;
-
-import java.util.Collection;
-
-/**
- * OData collection property value.
- * 
- * @param <OV> The actual ODataValue interface.
- */
-public interface ClientCollectionValue<OV extends ClientValue> extends ClientValue, Iterable<OV> {
-
-  /**
-   * Adds a value to the collection.
-   * 
-   * @param value value to be added.
-   */
-  ClientCollectionValue<OV> add(ClientValue value);
-
-  /**
-   * Checks if collection is empty.
-   * 
-   * @return 'TRUE' if empty; 'FALSE' otherwise.
-   */
-  boolean isEmpty();
-
-  /**
-   * Gets collection size.
-   * 
-   * @return collection size.
-   */
-  int size();
-
-  /**
-   * Converts this instance as POJO collection.
-   * 
-   * @return this instance as POJO collection
-   */
-  Collection<Object> asJavaCollection();
-}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/17152920/lib/commons-api/src/main/java/org/apache/olingo/commons/api/domain/ClientComplexValue.java
----------------------------------------------------------------------
diff --git a/lib/commons-api/src/main/java/org/apache/olingo/commons/api/domain/ClientComplexValue.java b/lib/commons-api/src/main/java/org/apache/olingo/commons/api/domain/ClientComplexValue.java
deleted file mode 100644
index 3c2931a..0000000
--- a/lib/commons-api/src/main/java/org/apache/olingo/commons/api/domain/ClientComplexValue.java
+++ /dev/null
@@ -1,58 +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.commons.api.domain;
-
-import java.util.Map;
-
-/**
- * OData complex property value.
- * 
- */
-public interface ClientComplexValue extends ClientValue, ClientLinked, ClientAnnotatable, Iterable<ClientProperty> {
-
-  /**
-   * Adds field to the complex type.
-   * 
-   * @param field field to be added.
-   * @return this (for fluent-style calls)
-   */
-  ClientComplexValue add(ClientProperty field);
-
-  /**
-   * Gets field.
-   * 
-   * @param name name of the field to be retrieved.
-   * @return requested field.
-   */
-  ClientProperty get(String name);
-
-  /**
-   * Gets number of fields.
-   * 
-   * @return number of fields.
-   */
-  int size();
-
-  /**
-   * Converts this instance as POJO collection.
-   * 
-   * @return this instance as POJO collection
-   */
-  Map<String, Object> asJavaMap();
-}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/17152920/lib/commons-api/src/main/java/org/apache/olingo/commons/api/domain/ClientDeletedEntity.java
----------------------------------------------------------------------
diff --git a/lib/commons-api/src/main/java/org/apache/olingo/commons/api/domain/ClientDeletedEntity.java b/lib/commons-api/src/main/java/org/apache/olingo/commons/api/domain/ClientDeletedEntity.java
deleted file mode 100644
index 3cdcb7b..0000000
--- a/lib/commons-api/src/main/java/org/apache/olingo/commons/api/domain/ClientDeletedEntity.java
+++ /dev/null
@@ -1,36 +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.commons.api.domain;
-
-import java.net.URI;
-
-public interface ClientDeletedEntity {
-
-  enum Reason {
-
-    deleted,
-    changed
-
-  }
-
-  URI getId();
-
-  Reason getReason();
-
-}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/17152920/lib/commons-api/src/main/java/org/apache/olingo/commons/api/domain/ClientDelta.java
----------------------------------------------------------------------
diff --git a/lib/commons-api/src/main/java/org/apache/olingo/commons/api/domain/ClientDelta.java b/lib/commons-api/src/main/java/org/apache/olingo/commons/api/domain/ClientDelta.java
deleted file mode 100644
index 7092e6f..0000000
--- a/lib/commons-api/src/main/java/org/apache/olingo/commons/api/domain/ClientDelta.java
+++ /dev/null
@@ -1,31 +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.commons.api.domain;
-
-import java.util.List;
-
-public interface ClientDelta extends ClientEntitySet {
-
-  List<ClientDeletedEntity> getDeletedEntities();
-
-  List<ClientDeltaLink> getAddedLinks();
-
-  List<ClientDeltaLink> getDeletedLinks();
-
-}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/17152920/lib/commons-api/src/main/java/org/apache/olingo/commons/api/domain/ClientDeltaLink.java
----------------------------------------------------------------------
diff --git a/lib/commons-api/src/main/java/org/apache/olingo/commons/api/domain/ClientDeltaLink.java b/lib/commons-api/src/main/java/org/apache/olingo/commons/api/domain/ClientDeltaLink.java
deleted file mode 100644
index d12aedf..0000000
--- a/lib/commons-api/src/main/java/org/apache/olingo/commons/api/domain/ClientDeltaLink.java
+++ /dev/null
@@ -1,36 +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.commons.api.domain;
-
-import java.net.URI;
-
-public interface ClientDeltaLink extends ClientAnnotatable {
-
-  URI getSource();
-
-  void setSource(URI source);
-
-  String getRelationship();
-
-  void setRelationship(String relationship);
-
-  URI getTarget();
-
-  void setTarget(URI target);
-}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/17152920/lib/commons-api/src/main/java/org/apache/olingo/commons/api/domain/ClientEntity.java
----------------------------------------------------------------------
diff --git a/lib/commons-api/src/main/java/org/apache/olingo/commons/api/domain/ClientEntity.java b/lib/commons-api/src/main/java/org/apache/olingo/commons/api/domain/ClientEntity.java
deleted file mode 100644
index 39736cc..0000000
--- a/lib/commons-api/src/main/java/org/apache/olingo/commons/api/domain/ClientEntity.java
+++ /dev/null
@@ -1,202 +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.commons.api.domain;
-
-import org.apache.olingo.commons.api.edm.FullQualifiedName;
-
-import java.net.URI;
-import java.util.List;
-
-/**
- * OData entity.
- */
-public interface ClientEntity extends ClientLinked, ClientAnnotatable, ClientInvokeResult {
-
-  /**
-   * @return the type name of this entity.
-   */
-  FullQualifiedName getTypeName();
-
-  /**
-   * @return self link.
-   */
-  URI getLink();
-
-  /**
-   * Returns OData entity edit link.
-   * 
-   * @return entity edit link.
-   */
-  URI getEditLink();
-
-  /**
-   * Sets OData entity edit link.
-   * 
-   * @param editLink edit link.
-   */
-  void setEditLink(URI editLink);
-
-  /**
-   * Gets ETag.
-   * 
-   * @return ETag.
-   */
-  String getETag();
-
-  /**
-   * Sets ETag.
-   * 
-   * @param eTag ETag.
-   */
-  void setETag(String eTag);
-
-  /**
-   * Searches for operation with given title.
-   * 
-   * @param title operation to look for
-   * @return operation if found with given title, <tt>null</tt> otherwise
-   */
-  ClientOperation getOperation(String title);
-
-  /**
-   * Gets operations.
-   * 
-   * @return operations.
-   */
-  List<ClientOperation> getOperations();
-
-  /**
-   * Searches for property with given name.
-   * 
-   * @param name property to look for
-   * @return property if found with given name, <tt>null</tt> otherwise
-   */
-  ClientProperty getProperty(String name);
-
-  /**
-   * Returns OData entity properties.
-   *
-   * @return OData entity properties.
-   */
-  List<ClientProperty> getProperties();
-
-  /**
-   * To request entity references in place of the actual entities, the client issues a GET request with /$ref appended
-   * to the resource path.
-   * <br />
-   * If the resource path does not identify an entity or a collection of entities, the service returns 404 Not Found.
-   * <br />
-   * If the resource path terminates on a collection, the response MUST be the format-specific representation of a
-   * collection of entity references pointing to the related entities. If no entities are related, the response is the
-   * format-specific representation of an empty collection.
-   * <br />
-   * If the resource path terminates on a single entity, the response MUST be the format-specific representation of an
-   * entity reference pointing to the related single entity. If the resource path terminates on a single entity and no
-   * such entity exists, the service returns 404 Not Found.
-   *
-   * @return entity reference.
-   */
-  URI getId();
-
-  /**
-   * Set id for this OData entity.
-   *
-   * @param id the if for this entity
-   */
-  void setId(URI id);
-
-  /**
-   * Gets media-edit link with given name, if available, otherwise <tt>null</tt>.
-   * 
-   * @param name candidate link name
-   * @return media-edit link with given name, if available, otherwise <tt>null</tt>
-   */
-  ClientLink getMediaEditLink(final String name);
-
-  /**
-   * Returns entity media edit links.
-   * 
-   * @return OData entity links.
-   */
-  List<ClientLink> getMediaEditLinks();
-
-  /**
-   * TRUE if read-only entity.
-   * 
-   * @return TRUE if read-only; FALSE otherwise.
-   */
-  boolean isReadOnly();
-
-  /**
-   * Checks if the current entity is a media entity.
-   * 
-   * @return 'TRUE' if media entity; 'FALSE' otherwise.
-   */
-  boolean isMediaEntity();
-
-  /**
-   * Sets media entity flag.
-   * 
-   * @param isMediaEntity media entity flag value.
-   */
-  void setMediaEntity(boolean isMediaEntity);
-
-  /**
-   * Gets media content type.
-   * 
-   * @return media content type.
-   */
-  String getMediaContentType();
-
-  /**
-   * Sets media content type.
-   * 
-   * @param mediaContentType media content type.
-   */
-  void setMediaContentType(String mediaContentType);
-
-  /**
-   * Gets media content source.
-   * 
-   * @return media content source.
-   */
-  URI getMediaContentSource();
-
-  /**
-   * Sets media content source.
-   * 
-   * @param mediaContentSource media content source.
-   */
-  void setMediaContentSource(URI mediaContentSource);
-
-  /**
-   * ETag of the binary stream represented by this media entity or named stream property.
-   * 
-   * @return media ETag value
-   */
-  String getMediaETag();
-
-  /**
-   * Set media ETag.
-   * 
-   * @param eTag media ETag value
-   */
-  void setMediaETag(String eTag);
-
-}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/17152920/lib/commons-api/src/main/java/org/apache/olingo/commons/api/domain/ClientEntitySet.java
----------------------------------------------------------------------
diff --git a/lib/commons-api/src/main/java/org/apache/olingo/commons/api/domain/ClientEntitySet.java b/lib/commons-api/src/main/java/org/apache/olingo/commons/api/domain/ClientEntitySet.java
deleted file mode 100644
index 36a8161..0000000
--- a/lib/commons-api/src/main/java/org/apache/olingo/commons/api/domain/ClientEntitySet.java
+++ /dev/null
@@ -1,71 +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.commons.api.domain;
-
-import java.net.URI;
-import java.util.List;
-
-/**
- * OData entity collection. If pagination was used to get this instance, forward page navigation URI will be available.
- */
-public interface ClientEntitySet extends ClientInvokeResult, ClientAnnotatable {
-
-  /**
-   * Gets next page link.
-   * 
-   * @return next page link; null value if single page or last page reached.
-   */
-  URI getNext();
-
-  /**
-   * Gets contained entities.
-   * 
-   * @return entity set's entities.
-   */
-  List<ClientEntity> getEntities();
-
-  /**
-   * Gets in-line count.
-   *
-   * @return in-line count value.
-   */
-  Integer getCount();
-
-  /**
-   * Sets in-line count.
-   *
-   * @param count in-line count value.
-   */
-  void setCount(final int count);
-
-
-  /**
-   * Gets delta link if exists.
-   *
-   * @return delta link if exists; null otherwise.
-   */
-  URI getDeltaLink();
-
-  /**
-   * Sets delta link.
-   *
-   * @param deltaLink delta link.
-   */
-  void setDeltaLink(URI deltaLink);
-}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/17152920/lib/commons-api/src/main/java/org/apache/olingo/commons/api/domain/ClientEnumValue.java
----------------------------------------------------------------------
diff --git a/lib/commons-api/src/main/java/org/apache/olingo/commons/api/domain/ClientEnumValue.java b/lib/commons-api/src/main/java/org/apache/olingo/commons/api/domain/ClientEnumValue.java
deleted file mode 100644
index cc88a94..0000000
--- a/lib/commons-api/src/main/java/org/apache/olingo/commons/api/domain/ClientEnumValue.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.commons.api.domain;
-
-public interface ClientEnumValue extends ClientValue {
-
-  String getValue();
-
-  @Override
-  String toString();
-}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/17152920/lib/commons-api/src/main/java/org/apache/olingo/commons/api/domain/ClientError.java
----------------------------------------------------------------------
diff --git a/lib/commons-api/src/main/java/org/apache/olingo/commons/api/domain/ClientError.java b/lib/commons-api/src/main/java/org/apache/olingo/commons/api/domain/ClientError.java
deleted file mode 100644
index 11b6ca8..0000000
--- a/lib/commons-api/src/main/java/org/apache/olingo/commons/api/domain/ClientError.java
+++ /dev/null
@@ -1,132 +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.commons.api.domain;
-
-import java.util.List;
-import java.util.Map;
-
-/**
- * OData error.
- */
-public class ClientError {
-
-  private String code;
-  private String message;
-  private String target;
-  private List<ClientErrorDetail> details;
-  private Map<String, String> innerError;
-
-  /**
-   * The value for the code name/value pair is a language-independent string. Its value is a service-defined error code.
-   * This code serves as a sub-status for the HTTP error code specified in the response. MAY be null.
-   * @return the error code as a string
-   */
-  public String getCode() {
-    return code;
-  }
-
-  /**
-   * The value for the code name/value pair is a language-independent string. Its value is a service-defined error code.
-   * This code serves as a sub-status for the HTTP error code specified in the response. MAY be null.
-   * @param code
-   * @return this for method chaining
-   */
-  public ClientError setCode(String code) {
-    this.code = code;
-    return this;
-  }
-
-  /**
-   * The value for the message name/value pair MUST be a human-readable, language-dependent representation of the error.
-   * MUST not be null
-   * @return the message string
-   */
-  public String getMessage() {
-    return message;
-  }
-
-  /**
-   * The value for the message name/value pair MUST be a human-readable, language-dependent representation of the error.
-   * MUST not be null
-   * @param message
-   * @return this for method chaining
-   */
-  public ClientError setMessage(String message) {
-    this.message = message;
-    return this;
-  }
-
-  /**
-   * The value for the target name/value pair is the target of the particular error (for example, the name of the
-   * property in error). MAY be null.
-   * @return the target string
-   */
-  public String getTarget() {
-    return target;
-  }
-
-  /**
-   * The value for the target name/value pair is the target of the particular error (for example, the name of the
-   * property in error). MAY be null.
-   * @param target
-   * @return this for method chaining
-   */
-  public ClientError setTarget(String target) {
-    this.target = target;
-    return this;
-  }
-
-  /**
-   * Gets error details.
-   * 
-   * @return ODataErrorDetail list.
-   */
-  public List<ClientErrorDetail> getDetails() {
-    return details;
-  }
-
-  /**
-   * Sets error details.
-   * 
-   * @return this for method chaining.
-   */
-  public ClientError setDetails(List<ClientErrorDetail> details) {
-    this.details = details;
-    return this;
-  }
-
-  /**
-   * Gets server defined key-value pairs for debug environment only.
-   * 
-   * @return a pair representing server defined object. MAY be null.
-   */
-  public Map<String, String> getInnerError() {
-    return innerError;
-  }
-
-  /**
-   * Sets server defined key-value pairs for debug environment only.
-   * 
-   * @return this for method chaining.
-   */
-  public ClientError setInnerError(Map<String, String> innerError) {
-    this.innerError = innerError;
-    return this;
-  }
-}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/17152920/lib/commons-api/src/main/java/org/apache/olingo/commons/api/domain/ClientErrorDetail.java
----------------------------------------------------------------------
diff --git a/lib/commons-api/src/main/java/org/apache/olingo/commons/api/domain/ClientErrorDetail.java b/lib/commons-api/src/main/java/org/apache/olingo/commons/api/domain/ClientErrorDetail.java
deleted file mode 100644
index 77316ef..0000000
--- a/lib/commons-api/src/main/java/org/apache/olingo/commons/api/domain/ClientErrorDetail.java
+++ /dev/null
@@ -1,73 +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.commons.api.domain;
-
-/**
- * OData details, for example <tt>{ "error": {..., "details":[
- * {"code": "301","target": "$search" ,"message": "$search query option not supported"}
- * ],...}}</tt>.
- */
-public class ClientErrorDetail {
-
-  private String code;
-  private String message;
-  private String target;
-
-  /**
-   * Gets error code.
-   * 
-   * @return error code.
-   */
-  public String getCode() {
-    return code;
-  }
-
-  public ClientErrorDetail setCode(final String code) {
-    this.code = code;
-    return this;
-  }
-
-  /**
-   * Gets error message.
-   * 
-   * @return error message.
-   */
-  public String getMessage() {
-    return message;
-  }
-
-  public ClientErrorDetail setMessage(final String message) {
-    this.message = message;
-    return this;
-  }
-
-  /**
-   * Gets error target.
-   * 
-   * @return error message.
-   */
-  public String getTarget() {
-    return target;
-  }
-
-  public ClientErrorDetail setTarget(final String target) {
-    this.target = target;
-    return this;
-  }
-}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/17152920/lib/commons-api/src/main/java/org/apache/olingo/commons/api/domain/ClientInlineEntity.java
----------------------------------------------------------------------
diff --git a/lib/commons-api/src/main/java/org/apache/olingo/commons/api/domain/ClientInlineEntity.java b/lib/commons-api/src/main/java/org/apache/olingo/commons/api/domain/ClientInlineEntity.java
deleted file mode 100644
index e3fb699..0000000
--- a/lib/commons-api/src/main/java/org/apache/olingo/commons/api/domain/ClientInlineEntity.java
+++ /dev/null
@@ -1,68 +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.commons.api.domain;
-
-import java.net.URI;
-
-/**
- * OData in-line entity.
- */
-public class ClientInlineEntity extends ClientLink {
-
-  private final ClientEntity entity;
-
-  /**
-   * Constructor.
-   * 
-   * @param uri edit link.
-   * @param type type.
-   * @param title title.
-   * @param entity entity.
-   */
-  public ClientInlineEntity(final URI uri, final ClientLinkType type, final String title, final ClientEntity entity) {
-
-    super(uri, type, title);
-    this.entity = entity;
-  }
-
-  /**
-   * Constructor.
-   * 
-   * @param baseURI base URI.
-   * @param href href.
-   * @param type type.
-   * @param title title.
-   * @param entity entity.
-   */
-  public ClientInlineEntity(final URI baseURI, final String href, final ClientLinkType type, final String title,
-                            final ClientEntity entity) {
-
-    super(baseURI, href, type, title);
-    this.entity = entity;
-  }
-
-  /**
-   * Gets wrapped entity.
-   * 
-   * @return wrapped entity.
-   */
-  public ClientEntity getEntity() {
-    return entity;
-  }
-}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/17152920/lib/commons-api/src/main/java/org/apache/olingo/commons/api/domain/ClientInlineEntitySet.java
----------------------------------------------------------------------
diff --git a/lib/commons-api/src/main/java/org/apache/olingo/commons/api/domain/ClientInlineEntitySet.java b/lib/commons-api/src/main/java/org/apache/olingo/commons/api/domain/ClientInlineEntitySet.java
deleted file mode 100644
index a14933f..0000000
--- a/lib/commons-api/src/main/java/org/apache/olingo/commons/api/domain/ClientInlineEntitySet.java
+++ /dev/null
@@ -1,69 +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.commons.api.domain;
-
-import java.net.URI;
-
-/**
- * OData in-line entity set.
- */
-public class ClientInlineEntitySet extends ClientLink {
-
-  private ClientEntitySet entitySet;
-
-  /**
-   * Constructor.
-   * 
-   * @param uri edit link.
-   * @param type type.
-   * @param title title.
-   * @param entitySet entity set.
-   */
-  public ClientInlineEntitySet(final URI uri, final ClientLinkType type,
-                               final String title, final ClientEntitySet entitySet) {
-
-    super(uri, type, title);
-    this.entitySet = entitySet;
-  }
-
-  /**
-   * Constructor.
-   * 
-   * @param baseURI base URI.
-   * @param href href.
-   * @param type type.
-   * @param title title.
-   * @param entitySet entity set.
-   */
-  public ClientInlineEntitySet(final URI baseURI, final String href,
-                               final ClientLinkType type, final String title, final ClientEntitySet entitySet) {
-
-    super(baseURI, href, type, title);
-    this.entitySet = entitySet;
-  }
-
-  /**
-   * Gets wrapped entity set.
-   * 
-   * @return wrapped entity set.
-   */
-  public ClientEntitySet getEntitySet() {
-    return entitySet;
-  }
-}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/17152920/lib/commons-api/src/main/java/org/apache/olingo/commons/api/domain/ClientInvokeResult.java
----------------------------------------------------------------------
diff --git a/lib/commons-api/src/main/java/org/apache/olingo/commons/api/domain/ClientInvokeResult.java b/lib/commons-api/src/main/java/org/apache/olingo/commons/api/domain/ClientInvokeResult.java
deleted file mode 100644
index a28c078..0000000
--- a/lib/commons-api/src/main/java/org/apache/olingo/commons/api/domain/ClientInvokeResult.java
+++ /dev/null
@@ -1,30 +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.commons.api.domain;
-
-/**
- * Marker interface for any OData domain object that can be returned by an operation invocation.
- * 
- * @see ClientEntitySet
- * @see ClientEntity
- * @see ClientProperty
- */
-public interface ClientInvokeResult {
-//No additional methods needed for now.
-}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/17152920/lib/commons-api/src/main/java/org/apache/olingo/commons/api/domain/ClientItem.java
----------------------------------------------------------------------
diff --git a/lib/commons-api/src/main/java/org/apache/olingo/commons/api/domain/ClientItem.java b/lib/commons-api/src/main/java/org/apache/olingo/commons/api/domain/ClientItem.java
deleted file mode 100644
index 1279aea..0000000
--- a/lib/commons-api/src/main/java/org/apache/olingo/commons/api/domain/ClientItem.java
+++ /dev/null
@@ -1,96 +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.commons.api.domain;
-
-import java.net.URI;
-
-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.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-/**
- * Abstract representation of OData entities and links.
- */
-public abstract class ClientItem {
-
-  /**
-   * Logger.
-   */
-  protected static final Logger LOG = LoggerFactory.getLogger(ClientItem.class);
-
-  /**
-   * OData entity name/type.
-   */
-  private final String name;
-
-  /**
-   * OData item self link.
-   */
-  protected URI link;
-
-  /**
-   * Constructor.
-   * 
-   * @param name ODataItem name (it's entity type for {@link ClientEntity}).
-   */
-  public ClientItem(final String name) {
-    this.name = name;
-  }
-
-  /**
-   * @return ODataItem name (it's entity type for {@link ClientEntity}).
-   */
-  public String getName() {
-    return name;
-  }
-
-  /**
-   * @return ODataItem link (it's edit link for {@link ClientEntity}).
-   */
-  public URI getLink() {
-    return link;
-  }
-
-  /**
-   * Sets ODataItem link (it's edit link for {@link ClientEntity}).
-   * 
-   * @param link link.
-   */
-  public void setLink(final URI link) {
-    this.link = link;
-  }
-
-  @Override
-  public boolean equals(final Object obj) {
-    return EqualsBuilder.reflectionEquals(this, obj);
-  }
-
-  @Override
-  public int hashCode() {
-    return HashCodeBuilder.reflectionHashCode(this);
-  }
-
-  @Override
-  public String toString() {
-    return ReflectionToStringBuilder.toString(this, ToStringStyle.MULTI_LINE_STYLE);
-  }
-}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/17152920/lib/commons-api/src/main/java/org/apache/olingo/commons/api/domain/ClientLink.java
----------------------------------------------------------------------
diff --git a/lib/commons-api/src/main/java/org/apache/olingo/commons/api/domain/ClientLink.java b/lib/commons-api/src/main/java/org/apache/olingo/commons/api/domain/ClientLink.java
deleted file mode 100644
index d19c3c5..0000000
--- a/lib/commons-api/src/main/java/org/apache/olingo/commons/api/domain/ClientLink.java
+++ /dev/null
@@ -1,187 +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.commons.api.domain;
-
-import java.net.URI;
-import java.util.ArrayList;
-import java.util.List;
-
-import org.apache.olingo.commons.api.Constants;
-
-/**
- * OData link.
- */
-public class ClientLink extends ClientItem implements ClientAnnotatable {
-
-  public static class Builder {
-
-    protected URI uri;
-
-    protected ClientLinkType type;
-
-    protected String title;
-
-    public Builder setURI(final URI uri) {
-      this.uri = uri;
-      return this;
-    }
-
-    public Builder setURI(final URI baseURI, final String href) {
-      uri = getURI(baseURI, href);
-      return this;
-    }
-
-    public Builder setType(final ClientLinkType type) {
-      this.type = type;
-      return this;
-    }
-
-    public Builder setTitle(final String title) {
-      this.title = title;
-      return this;
-    }
-
-    public ClientLink build() {
-      return new ClientLink(uri, type, title);
-    }
-  }
-
-  /**
-   * Build URI starting from the given base and href.
-   * <br/>
-   * If href is absolute or base is null then base will be ignored.
-   * 
-   * @param base URI prefix.
-   * @param href URI suffix.
-   * @return built URI.
-   */
-  private static URI getURI(final URI base, final String href) {
-    if (href == null) {
-      throw new IllegalArgumentException("Null link provided");
-    }
-
-    URI uri = URI.create(href);
-
-    if (!uri.isAbsolute() && base != null) {
-      uri = URI.create(base.toASCIIString() + "/" + href);
-    }
-
-    return uri.normalize();
-  }
-
-  /**
-   * Link type.
-   */
-  protected final ClientLinkType type;
-
-  /**
-   * Link rel.
-   */
-  protected final String rel;
-
-  /**
-   * ETag for media edit links.
-   */
-  protected String mediaETag;
-
-  private final List<ClientAnnotation> annotations = new ArrayList<ClientAnnotation>();
-
-  /**
-   * Constructor.
-   * 
-   * @param uri URI.
-   * @param type type.
-   * @param title title.
-   */
-  public ClientLink(final URI uri, final ClientLinkType type, final String title) {
-    super(title);
-
-    link = uri;
-    this.type = type;
-
-    switch (this.type) {
-    case ASSOCIATION:
-      rel = Constants.NS_ASSOCIATION_LINK_REL + title;
-      break;
-
-    case ENTITY_NAVIGATION:
-    case ENTITY_SET_NAVIGATION:
-      rel = Constants.NS_NAVIGATION_LINK_REL + title;
-      break;
-
-    case MEDIA_EDIT:
-    default:
-      rel = Constants.NS_MEDIA_EDIT_LINK_REL + title;
-      break;
-    }
-  }
-
-  /**
-   * Constructor.
-   * 
-   * @param version OData service version.
-   * @param baseURI base URI.
-   * @param href href.
-   * @param type type.
-   * @param title title.
-   */
-  protected ClientLink(final URI baseURI, final String href, final ClientLinkType type, final String title) {
-
-    this(getURI(baseURI, href), type, title);
-  }
-
-  /**
-   * Gets link type.
-   * 
-   * @return link type;
-   */
-  public ClientLinkType getType() {
-    return type;
-  }
-
-  public ClientInlineEntity asInlineEntity() {
-    return (this instanceof ClientInlineEntity) ? (ClientInlineEntity) this : null;
-  }
-
-  public ClientInlineEntitySet asInlineEntitySet() {
-    return (this instanceof ClientInlineEntitySet) ? (ClientInlineEntitySet) this : null;
-  }
-
-  /**
-   * Gets link rel.
-   * 
-   * @return link rel
-   */
-  public String getRel() {
-    return rel;
-  }
-
-  /**
-   * Gets Media ETag.
-   * 
-   * @return media ETag
-   */
-  public String getMediaETag() {
-    return mediaETag;
-  }
-
-  public List<ClientAnnotation> getAnnotations() {
-    return annotations;
-  }
-}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/17152920/lib/commons-api/src/main/java/org/apache/olingo/commons/api/domain/ClientLinkType.java
----------------------------------------------------------------------
diff --git a/lib/commons-api/src/main/java/org/apache/olingo/commons/api/domain/ClientLinkType.java b/lib/commons-api/src/main/java/org/apache/olingo/commons/api/domain/ClientLinkType.java
deleted file mode 100644
index 8b13c33..0000000
--- a/lib/commons-api/src/main/java/org/apache/olingo/commons/api/domain/ClientLinkType.java
+++ /dev/null
@@ -1,105 +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.commons.api.domain;
-
-import org.apache.commons.lang3.StringUtils;
-import org.apache.olingo.commons.api.Constants;
-import org.apache.olingo.commons.api.format.ContentType;
-
-/**
- * OData link types.
- */
-public enum ClientLinkType {
-
-  /**
-   * Entity navigation link.
-   */
-  ENTITY_NAVIGATION(ContentType.APPLICATION_ATOM_XML_ENTRY),
-  /**
-   * Entity set navigation link.
-   */
-  ENTITY_SET_NAVIGATION(ContentType.APPLICATION_ATOM_XML_FEED),
-  /**
-   * Association link.
-   */
-  ASSOCIATION(ContentType.APPLICATION_XML),
-  /**
-   * Media-edit link.
-   */
-  MEDIA_EDIT("*/*"),
-
-  /**
-   * Entity binding link.
-   */
-  ENTITY_BINDING(ContentType.APPLICATION_XML),
-
-  /**
-   * Entity collection binding link.
-   */
-  ENTITY_COLLECTION_BINDING(ContentType.APPLICATION_XML);
-
-  private String type;
-
-  private ClientLinkType(final String type) {
-    this.type = type;
-  }
-
-  private ClientLinkType(final ContentType contentType) {
-    this(contentType.toContentTypeString());
-  }
-
-  private ClientLinkType setType(final String type) {
-    this.type = type;
-    return this;
-  }
-
-  /**
-   * Gets
-   * <code>LinkType</code> instance from the given rel and type.
-   * 
-   * @param rel rel.
-   * @param type type.
-   * @return <code>ODataLinkType</code> object.
-   */
-  public static ClientLinkType fromString(final String rel, final String type) {
-    if (StringUtils.isNotBlank(rel) && rel.startsWith(Constants.NS_MEDIA_EDIT_LINK_REL)) {
-
-      return MEDIA_EDIT.setType(StringUtils.isBlank(type) ? "*/*" : type);
-    }
-
-    if (ClientLinkType.ENTITY_NAVIGATION.type.equals(type)) {
-      return ENTITY_NAVIGATION;
-    }
-
-    if (ClientLinkType.ENTITY_SET_NAVIGATION.type.equals(type)) {
-      return ENTITY_SET_NAVIGATION;
-    }
-
-    if (ClientLinkType.ASSOCIATION.type.equals(type)) {
-      return ASSOCIATION;
-    }
-
-    throw new IllegalArgumentException("Invalid link type: " + type);
-  }
-
-  @Override
-  public String toString() {
-    return type;
-  }
-}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/17152920/lib/commons-api/src/main/java/org/apache/olingo/commons/api/domain/ClientLinked.java
----------------------------------------------------------------------
diff --git a/lib/commons-api/src/main/java/org/apache/olingo/commons/api/domain/ClientLinked.java b/lib/commons-api/src/main/java/org/apache/olingo/commons/api/domain/ClientLinked.java
deleted file mode 100644
index 92b3a42..0000000
--- a/lib/commons-api/src/main/java/org/apache/olingo/commons/api/domain/ClientLinked.java
+++ /dev/null
@@ -1,70 +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.commons.api.domain;
-
-import java.util.List;
-
-public interface ClientLinked {
-
-  /**
-   * Puts the given link into one of available lists, based on its type.
-   * 
-   * @param link to be added
-   * @return <tt>true</tt> if the given link was added in one of available lists
-   */
-  boolean addLink(ClientLink link);
-
-  /**
-   * Removes the given link from any list (association, navigation, edit-media).
-   * 
-   * @param link to be removed
-   * @return <tt>true</tt> if the given link was contained in one of available lists
-   */
-  boolean removeLink(ClientLink link);
-
-  /**
-   * Gets association link with given name, if available, otherwise <tt>null</tt>.
-   * 
-   * @param name candidate link name
-   * @return association link with given name, if available, otherwise <tt>null</tt>
-   */
-  ClientLink getAssociationLink(String name);
-
-  /**
-   * Returns all entity association links.
-   * 
-   * @return OData entity links.
-   */
-  List<ClientLink> getAssociationLinks();
-
-  /**
-   * Gets navigation link with given name, if available, otherwise <tt>null</tt>.
-   * 
-   * @param name candidate link name
-   * @return navigation link with given name, if available, otherwise <tt>null</tt>
-   */
-  ClientLink getNavigationLink(String name);
-
-  /**
-   * Returns all entity navigation links (including inline entities / entity sets).
-   * 
-   * @return OData entity links.
-   */
-  List<ClientLink> getNavigationLinks();
-}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/17152920/lib/commons-api/src/main/java/org/apache/olingo/commons/api/domain/ClientObjectFactory.java
----------------------------------------------------------------------
diff --git a/lib/commons-api/src/main/java/org/apache/olingo/commons/api/domain/ClientObjectFactory.java b/lib/commons-api/src/main/java/org/apache/olingo/commons/api/domain/ClientObjectFactory.java
deleted file mode 100644
index d9a2e9f..0000000
--- a/lib/commons-api/src/main/java/org/apache/olingo/commons/api/domain/ClientObjectFactory.java
+++ /dev/null
@@ -1,168 +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.commons.api.domain;
-
-import org.apache.olingo.commons.api.edm.FullQualifiedName;
-
-import java.net.URI;
-
-/**
- * Entry point for generating OData domain objects.
- */
-public interface ClientObjectFactory {
-
-  /**
-   * Instantiates a new entity set.
-   * 
-   * @return entity set.
-   */
-  ClientEntitySet newEntitySet();
-
-  /**
-   * Instantiates a new entity set.
-   * 
-   * @param next next link.
-   * @return entity set.
-   */
-  ClientEntitySet newEntitySet(URI next);
-
-  /**
-   * Instantiates a new entity.
-   * 
-   * @param typeName OData entity type name.
-   * @return entity.
-   */
-  ClientEntity newEntity(FullQualifiedName typeName);
-
-  /**
-   * Instantiates a new entity.
-   * 
-   * @param typeName OData entity type name.
-   * @param link self link.
-   * @return entity.
-   */
-  ClientEntity newEntity(FullQualifiedName typeName, URI link);
-
-  /**
-   * Instantiates a new entity set (for deep insert).
-   * 
-   * @param name name.
-   * @param entitySet entity set.
-   * @return in-line entity set.
-   */
-  ClientInlineEntitySet newDeepInsertEntitySet(String name, ClientEntitySet entitySet);
-
-  /**
-   * Instantiates a new entity (for deep insert).
-   * 
-   * @param name name.
-   * @param entity entity.
-   * @return in-line entity.
-   */
-  ClientInlineEntity newDeepInsertEntity(String name, ClientEntity entity);
-
-  /**
-   * Instantiates a new entity set navigation link.
-   * 
-   * @param name name.
-   * @param link link.
-   * @return entity set navigation link.
-   */
-  ClientLink newEntitySetNavigationLink(String name, URI link);
-
-  /**
-   * Instantiates a new singleton entity.
-   *
-   * @param typeName OData singleton entity type name.
-   * @return new singleton entity.
-   */
-  ClientSingleton newSingleton(FullQualifiedName typeName);
-
-  /**
-   * Instantiates a new entity navigation link.
-   *
-   * @param name name.
-   * @param link link.
-   * @return entity navigation link.
-   */
-  ClientLink newEntityNavigationLink(String name, URI link);
-
-  ClientLink newAssociationLink(String name, URI link);
-
-  ClientLink newMediaEditLink(String name, URI link);
-
-  ClientPrimitiveValue.Builder newPrimitiveValueBuilder();
-
-  ClientEnumValue newEnumValue(String typeName, String value);
-
-  ClientComplexValue newComplexValue(String typeName);
-
-  ClientCollectionValue<ClientValue> newCollectionValue(String typeName);
-
-  /**
-   * Instantiates a new primitive property.
-   * 
-   * @param name name.
-   * @param value primitive value.
-   * @return primitive property.
-   */
-  ClientProperty newPrimitiveProperty(String name, ClientPrimitiveValue value);
-
-  /**
-   * Instantiates a new complex property.
-   * 
-   * @param name name.
-   * @param value value.
-   * @return complex property.
-   */
-  ClientProperty newComplexProperty(String name, ClientComplexValue value);
-
-  /**
-   * Instantiates a new collection property.
-   * 
-   * @param name name.
-   * @param value value.
-   * @return collection property.
-   */
-  ClientProperty newCollectionProperty(String name, ClientCollectionValue<? extends ClientValue> value);
-
-  /**
-   * Instantiates a new enum property.
-   *
-   * @param name name.
-   * @param value value.
-   * @return new enum property.
-   */
-  ClientProperty newEnumProperty(String name, ClientEnumValue value);
-
-  /**
-   * Instantiates a new delta property.
-   *
-   * @return new delta property.
-   */
-  ClientDelta newDelta();
-
-  /**
-   * Instantiates a new delta property.
-   *
-   * @param next next link for delta property
-   * @return new delta property.
-   */
-  ClientDelta newDelta(URI next);
-}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/17152920/lib/commons-api/src/main/java/org/apache/olingo/commons/api/domain/ClientOperation.java
----------------------------------------------------------------------
diff --git a/lib/commons-api/src/main/java/org/apache/olingo/commons/api/domain/ClientOperation.java b/lib/commons-api/src/main/java/org/apache/olingo/commons/api/domain/ClientOperation.java
deleted file mode 100644
index e5c5845..0000000
--- a/lib/commons-api/src/main/java/org/apache/olingo/commons/api/domain/ClientOperation.java
+++ /dev/null
@@ -1,85 +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.commons.api.domain;
-
-import java.net.URI;
-
-public class ClientOperation {
-
-  private String metadataAnchor;
-
-  private String title;
-
-  private URI target;
-
-  /**
-   * Gets metadata anchor.
-   * 
-   * @return metadata anchor.
-   */
-  public String getMetadataAnchor() {
-    return metadataAnchor;
-  }
-
-  /**
-   * Sets metadata anchor.
-   * 
-   * @param metadataAnchor metadata anchor.
-   */
-  public void setMetadataAnchor(final String metadataAnchor) {
-    this.metadataAnchor = metadataAnchor;
-  }
-
-  /**
-   * Gets title.
-   * 
-   * @return title.
-   */
-  public String getTitle() {
-    return title;
-  }
-
-  /**
-   * Sets title.
-   * 
-   * @param title title.
-   */
-  public void setTitle(final String title) {
-    this.title = title;
-  }
-
-  /**
-   * Gets target.
-   * 
-   * @return target.
-   */
-  public URI getTarget() {
-    return target;
-  }
-
-  /**
-   * Sets target.
-   * 
-   * @param target target.
-   */
-  public void setTarget(final URI target) {
-    this.target = target;
-  }
-
-}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/17152920/lib/commons-api/src/main/java/org/apache/olingo/commons/api/domain/ClientPrimitiveValue.java
----------------------------------------------------------------------
diff --git a/lib/commons-api/src/main/java/org/apache/olingo/commons/api/domain/ClientPrimitiveValue.java b/lib/commons-api/src/main/java/org/apache/olingo/commons/api/domain/ClientPrimitiveValue.java
deleted file mode 100644
index a3da64a..0000000
--- a/lib/commons-api/src/main/java/org/apache/olingo/commons/api/domain/ClientPrimitiveValue.java
+++ /dev/null
@@ -1,88 +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.commons.api.domain;
-
-import org.apache.olingo.commons.api.edm.EdmPrimitiveType;
-import org.apache.olingo.commons.api.edm.EdmPrimitiveTypeException;
-import org.apache.olingo.commons.api.edm.EdmPrimitiveTypeKind;
-import org.apache.olingo.commons.api.edm.EdmType;
-
-import java.util.UUID;
-
-public interface ClientPrimitiveValue extends ClientValue {
-
-  interface Builder {
-
-    Builder setType(EdmType type);
-
-    Builder setType(EdmPrimitiveTypeKind type);
-
-    Builder setValue(Object value);
-
-    ClientPrimitiveValue build();
-
-    ClientPrimitiveValue buildBoolean(Boolean value);
-
-    ClientPrimitiveValue buildInt16(Short value);
-
-    ClientPrimitiveValue buildInt32(Integer value);
-
-    ClientPrimitiveValue buildInt64(Long value);
-
-    ClientPrimitiveValue buildSingle(Float value);
-
-    ClientPrimitiveValue buildDouble(Double value);
-
-    ClientPrimitiveValue buildString(String value);
-
-    ClientPrimitiveValue buildGuid(UUID value);
-
-    ClientPrimitiveValue buildBinary(byte[] value);
-  }
-
-  EdmPrimitiveTypeKind getTypeKind();
-
-  EdmPrimitiveType getType();
-
-  /**
-   * Returns the current value as generic Object.
-   * 
-   * @return an uncasted instance of this value
-   */
-  Object toValue();
-
-  /**
-   * Returns the current value casted to the given type.
-   * 
-   * @param <T> cast type
-   * @param reference class reference
-   * @return the current value as typed java instance
-   * @throws EdmPrimitiveTypeException if the object is not assignable to the type T.
-   */
-  <T> T toCastValue(Class<T> reference) throws EdmPrimitiveTypeException;
-
-  /**
-   * Serialize the current value as String.
-   * 
-   * @return a String representation of this value
-   */
-  @Override
-  String toString();
-
-}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/17152920/lib/commons-api/src/main/java/org/apache/olingo/commons/api/domain/ClientProperty.java
----------------------------------------------------------------------
diff --git a/lib/commons-api/src/main/java/org/apache/olingo/commons/api/domain/ClientProperty.java b/lib/commons-api/src/main/java/org/apache/olingo/commons/api/domain/ClientProperty.java
deleted file mode 100644
index 8d7a490..0000000
--- a/lib/commons-api/src/main/java/org/apache/olingo/commons/api/domain/ClientProperty.java
+++ /dev/null
@@ -1,32 +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.commons.api.domain;
-
-/**
- * OData entity property.
- */
-public interface ClientProperty extends ClientInvokeResult, ClientAnnotatable, ClientValuable {
-
-  /**
-   * Returns property name.
-   *
-   * @return property name.
-   */
-  String getName();
-}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/17152920/lib/commons-api/src/main/java/org/apache/olingo/commons/api/domain/ClientPropertyType.java
----------------------------------------------------------------------
diff --git a/lib/commons-api/src/main/java/org/apache/olingo/commons/api/domain/ClientPropertyType.java b/lib/commons-api/src/main/java/org/apache/olingo/commons/api/domain/ClientPropertyType.java
deleted file mode 100644
index 96ab250..0000000
--- a/lib/commons-api/src/main/java/org/apache/olingo/commons/api/domain/ClientPropertyType.java
+++ /dev/null
@@ -1,44 +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.commons.api.domain;
-
-public enum ClientPropertyType {
-
-  /**
-   * Primitive (including geospatial).
-   */
-  PRIMITIVE,
-  /**
-   * Enum.
-   */
-  ENUM,
-  /**
-   * Collection.
-   */
-  COLLECTION,
-  /**
-   * Complex.
-   */
-  COMPLEX,
-  /**
-   * Empty type (possibly, no type information could be retrieved).
-   */
-  EMPTY
-
-}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/17152920/lib/commons-api/src/main/java/org/apache/olingo/commons/api/domain/ClientServiceDocument.java
----------------------------------------------------------------------
diff --git a/lib/commons-api/src/main/java/org/apache/olingo/commons/api/domain/ClientServiceDocument.java b/lib/commons-api/src/main/java/org/apache/olingo/commons/api/domain/ClientServiceDocument.java
deleted file mode 100644
index a2af9ab..0000000
--- a/lib/commons-api/src/main/java/org/apache/olingo/commons/api/domain/ClientServiceDocument.java
+++ /dev/null
@@ -1,163 +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.commons.api.domain;
-
-import java.net.URI;
-import java.util.Collection;
-import java.util.HashMap;
-import java.util.Map;
-
-public class ClientServiceDocument {
-
-  private final Map<String, URI> entitySets = new HashMap<String, URI>();
-
-  private final Map<String, URI> functionImports = new HashMap<String, URI>();
-
-  private final Map<String, URI> singletons = new HashMap<String, URI>();
-
-  private final Map<String, URI> relatedServiceDocuments = new HashMap<String, URI>();
-
-  public Map<String, URI> getEntitySets() {
-    return entitySets;
-  }
-
-  /**
-   * Gets entity set names.
-   * 
-   * @return entity set names.
-   */
-  public Collection<String> getEntitySetNames() {
-    return entitySets.keySet();
-  }
-
-  /**
-   * Gets entity set URIs.
-   * 
-   * @return entity set URIs.
-   */
-  public Collection<URI> getEntitySetURIs() {
-    return entitySets.values();
-  }
-
-  /**
-   * Gets URI about the given entity set.
-   * 
-   * @param name name.
-   * @return URI.
-   */
-  public URI getEntitySetURI(final String name) {
-    return entitySets.get(name);
-  }
-
-  public Map<String, URI> getFunctionImports() {
-    return functionImports;
-  }
-
-  /**
-   * Gets function import names.
-   * 
-   * @return function import names.
-   */
-  public Collection<String> getFunctionImportNames() {
-    return functionImports.keySet();
-  }
-
-  /**
-   * Gets function import URIs.
-   * 
-   * @return function import URIs.
-   */
-  public Collection<URI> getFunctionImportURIs() {
-    return functionImports.values();
-  }
-
-  /**
-   * Gets URI of the given function import.
-   * 
-   * @param name name.
-   * @return URI.
-   */
-  public URI getFunctionImportURI(final String name) {
-    return functionImports.get(name);
-  }
-
-  public Map<String, URI> getSingletons() {
-    return singletons;
-  }
-
-  /**
-   * Gets singleton names.
-   * 
-   * @return singleton names.
-   */
-  public Collection<String> getSingletonNames() {
-    return singletons.keySet();
-  }
-
-  /**
-   * Gets singleton URIs.
-   * 
-   * @return singleton URIs.
-   */
-  public Collection<URI> getSingletonURIs() {
-    return singletons.values();
-  }
-
-  /**
-   * Gets URI of the given singleton.
-   * 
-   * @param name name.
-   * @return URI.
-   */
-  public URI getSingletonURI(final String name) {
-    return singletons.get(name);
-  }
-
-  public Map<String, URI> getRelatedServiceDocuments() {
-    return relatedServiceDocuments;
-  }
-
-  /**
-   * Gets related service documents names.
-   * 
-   * @return related service documents names.
-   */
-  public Collection<String> getRelatedServiceDocumentsNames() {
-    return relatedServiceDocuments.keySet();
-  }
-
-  /**
-   * Gets related service documents URIs.
-   * 
-   * @return related service documents URIs.
-   */
-  public Collection<URI> getRelatedServiceDocumentsURIs() {
-    return relatedServiceDocuments.values();
-  }
-
-  /**
-   * Gets URI of the given related service documents.
-   * 
-   * @param name name.
-   * @return URI.
-   */
-  public URI getRelatedServiceDocumentURI(final String name) {
-    return relatedServiceDocuments.get(name);
-  }
-}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/17152920/lib/commons-api/src/main/java/org/apache/olingo/commons/api/domain/ClientSingleton.java
----------------------------------------------------------------------
diff --git a/lib/commons-api/src/main/java/org/apache/olingo/commons/api/domain/ClientSingleton.java b/lib/commons-api/src/main/java/org/apache/olingo/commons/api/domain/ClientSingleton.java
deleted file mode 100644
index aa474b7..0000000
--- a/lib/commons-api/src/main/java/org/apache/olingo/commons/api/domain/ClientSingleton.java
+++ /dev/null
@@ -1,23 +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.commons.api.domain;
-
-public interface ClientSingleton extends ClientEntity {
-//No additional methods needed for now.
-}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/17152920/lib/commons-api/src/main/java/org/apache/olingo/commons/api/domain/ClientValuable.java
----------------------------------------------------------------------
diff --git a/lib/commons-api/src/main/java/org/apache/olingo/commons/api/domain/ClientValuable.java b/lib/commons-api/src/main/java/org/apache/olingo/commons/api/domain/ClientValuable.java
deleted file mode 100644
index 636972a..0000000
--- a/lib/commons-api/src/main/java/org/apache/olingo/commons/api/domain/ClientValuable.java
+++ /dev/null
@@ -1,94 +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.commons.api.domain;
-
-
-public interface ClientValuable {
-
-  /**
-   * Returns annotation value.
-   * 
-   * @return annotation value.
-   */
-  ClientValue getValue();
-
-  /**
-   * Checks if has null value.
-   * 
-   * @return 'TRUE' if has null value; 'FALSE' otherwise.
-   */
-  boolean hasNullValue();
-
-  /**
-   * Checks if has primitive value.
-   * 
-   * @return 'TRUE' if has primitive value; 'FALSE' otherwise.
-   */
-  boolean hasPrimitiveValue();
-
-  /**
-   * Gets primitive value.
-   * 
-   * @return primitive value if exists; null otherwise.
-   */
-  ClientPrimitiveValue getPrimitiveValue();
-
-  /**
-   * Checks if has collection value.
-   * 
-   * @return 'TRUE' if has collection value; 'FALSE' otherwise.
-   */
-  boolean hasCollectionValue();
-
-  /**
-   * Gets collection value.
-   * 
-   * @return collection value if exists; null otherwise.
-   */
-  ClientCollectionValue<ClientValue> getCollectionValue();
-
-  /**
-   * Checks if has complex value.
-   * 
-   * @return 'TRUE' if has complex value; 'FALSE' otherwise.
-   */
-  boolean hasComplexValue();
-
-  /**
-   * Gets complex value.
-   * 
-   * @return complex value if exists; null otherwise.
-   */
-  ClientComplexValue getComplexValue();
-
-  /**
-   * Checks if has enum value.
-   * 
-   * @return 'TRUE' if has enum value; 'FALSE' otherwise.
-   */
-  boolean hasEnumValue();
-
-  /**
-   * Gets enum value.
-   * 
-   * @return enum value if exists; null otherwise.
-   */
-  ClientEnumValue getEnumValue();
-
-}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/17152920/lib/commons-api/src/main/java/org/apache/olingo/commons/api/domain/ClientValue.java
----------------------------------------------------------------------
diff --git a/lib/commons-api/src/main/java/org/apache/olingo/commons/api/domain/ClientValue.java b/lib/commons-api/src/main/java/org/apache/olingo/commons/api/domain/ClientValue.java
deleted file mode 100644
index ba41bc0..0000000
--- a/lib/commons-api/src/main/java/org/apache/olingo/commons/api/domain/ClientValue.java
+++ /dev/null
@@ -1,91 +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.commons.api.domain;
-
-
-/**
- * Abstract representation of an OData entity property value.
- */
-public interface ClientValue {
-
-  /**
-   * Gets value type name.
-   * 
-   * @return value type name.
-   */
-  String getTypeName();
-
-  /**
-   * Check is is a primitive value.
-   * 
-   * @return 'TRUE' if primitive; 'FALSE' otherwise.
-   */
-  boolean isPrimitive();
-
-  /**
-   * Casts to primitive value.
-   * 
-   * @return primitive value.
-   */
-  ClientPrimitiveValue asPrimitive();
-
-  /**
-   * Check is is a collection value.
-   * 
-   * @return 'TRUE' if collection; 'FALSE' otherwise.
-   */
-  boolean isCollection();
-
-  /**
-   * Casts to collection value.
-   * 
-   * @param <OV> The actual ODataValue interface.
-   * @return collection value.
-   */
-  <OV extends ClientValue> ClientCollectionValue<OV> asCollection();
-
-  /**
-   * Casts to complex value.
-   * 
-   * @return complex value.
-   */
-  ClientComplexValue asComplex();
-
-  /**
-   * Check is is a linked complex value.
-   * 
-   * @return 'TRUE' if linked complex; 'FALSE' otherwise.
-   */
-  boolean isComplex();
-
-  /**
-   * Check is is an enum value.
-   * 
-   * @return 'TRUE' if enum; 'FALSE' otherwise.
-   */
-  boolean isEnum();
-
-  /**
-   * Casts to enum value.
-   * 
-   * @return enum value.
-   */
-  ClientEnumValue asEnum();
-  
-}


[13/50] [abbrv] olingo-odata4 git commit: [OLINGO-564] Renamed 'edm.provider.*' classes

Posted by mi...@apache.org.
http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/2318953c/lib/server-core/src/test/java/org/apache/olingo/server/core/edm/provider/EdmEntityTypeImplTest.java
----------------------------------------------------------------------
diff --git a/lib/server-core/src/test/java/org/apache/olingo/server/core/edm/provider/EdmEntityTypeImplTest.java b/lib/server-core/src/test/java/org/apache/olingo/server/core/edm/provider/EdmEntityTypeImplTest.java
index 8c39ac6..a0000fb 100644
--- a/lib/server-core/src/test/java/org/apache/olingo/server/core/edm/provider/EdmEntityTypeImplTest.java
+++ b/lib/server-core/src/test/java/org/apache/olingo/server/core/edm/provider/EdmEntityTypeImplTest.java
@@ -37,12 +37,12 @@ import org.apache.olingo.commons.api.edm.EdmKeyPropertyRef;
 import org.apache.olingo.commons.api.edm.EdmPrimitiveTypeKind;
 import org.apache.olingo.commons.api.edm.EdmProperty;
 import org.apache.olingo.commons.api.edm.FullQualifiedName;
-import org.apache.olingo.commons.api.edm.provider.ComplexType;
-import org.apache.olingo.commons.api.edm.provider.EdmProvider;
-import org.apache.olingo.commons.api.edm.provider.EntityType;
-import org.apache.olingo.commons.api.edm.provider.NavigationProperty;
-import org.apache.olingo.commons.api.edm.provider.Property;
-import org.apache.olingo.commons.api.edm.provider.PropertyRef;
+import org.apache.olingo.commons.api.edm.provider.CsdlComplexType;
+import org.apache.olingo.commons.api.edm.provider.CsdlEdmProvider;
+import org.apache.olingo.commons.api.edm.provider.CsdlEntityType;
+import org.apache.olingo.commons.api.edm.provider.CsdlNavigationProperty;
+import org.apache.olingo.commons.api.edm.provider.CsdlProperty;
+import org.apache.olingo.commons.api.edm.provider.CsdlPropertyRef;
 import org.apache.olingo.commons.core.edm.EdmEntityTypeImpl;
 import org.apache.olingo.commons.core.edm.EdmProviderImpl;
 import org.junit.Before;
@@ -58,62 +58,62 @@ public class EdmEntityTypeImplTest {
 
   @Before
   public void setupTypes() throws Exception {
-    EdmProvider provider = mock(EdmProvider.class);
+    CsdlEdmProvider provider = mock(CsdlEdmProvider.class);
     EdmProviderImpl edm = new EdmProviderImpl(provider);
 
     FullQualifiedName baseName = new FullQualifiedName("namespace", "BaseTypeName");
-    EntityType baseType = new EntityType();
+    CsdlEntityType baseType = new CsdlEntityType();
     baseType.setName(baseName.getName());
-    List<Property> properties = new ArrayList<Property>();
-    properties.add(new Property().setName("Id").setType(EdmPrimitiveTypeKind.String.getFullQualifiedName()));
-    properties.add(new Property().setName("Name").setType(EdmPrimitiveTypeKind.String.getFullQualifiedName()));
+    List<CsdlProperty> properties = new ArrayList<CsdlProperty>();
+    properties.add(new CsdlProperty().setName("Id").setType(EdmPrimitiveTypeKind.String.getFullQualifiedName()));
+    properties.add(new CsdlProperty().setName("Name").setType(EdmPrimitiveTypeKind.String.getFullQualifiedName()));
     baseType.setProperties(properties);
-    List<PropertyRef> key = new ArrayList<PropertyRef>();
-    key.add(new PropertyRef().setName("Id"));
+    List<CsdlPropertyRef> key = new ArrayList<CsdlPropertyRef>();
+    key.add(new CsdlPropertyRef().setName("Id"));
     baseType.setKey(key);
-    List<NavigationProperty> navigationProperties = new ArrayList<NavigationProperty>();
-    navigationProperties.add(new NavigationProperty().setName("nav1"));
+    List<CsdlNavigationProperty> navigationProperties = new ArrayList<CsdlNavigationProperty>();
+    navigationProperties.add(new CsdlNavigationProperty().setName("nav1"));
     baseType.setNavigationProperties(navigationProperties);
     when(provider.getEntityType(baseName)).thenReturn(baseType);
 
     this.baseType = new EdmEntityTypeImpl(edm, baseName, baseType);
 
     FullQualifiedName typeName = new FullQualifiedName("namespace", "typeName");
-    EntityType type = new EntityType();
+    CsdlEntityType type = new CsdlEntityType();
     type.setName(typeName.getName());
     type.setBaseType(baseName);
-    List<Property> typeProperties = new ArrayList<Property>();
-    typeProperties.add(new Property().setName("address").setType(
+    List<CsdlProperty> typeProperties = new ArrayList<CsdlProperty>();
+    typeProperties.add(new CsdlProperty().setName("address").setType(
         EdmPrimitiveTypeKind.String.getFullQualifiedName()));
-    typeProperties.add(new Property().setName("email").setType(
+    typeProperties.add(new CsdlProperty().setName("email").setType(
         EdmPrimitiveTypeKind.String.getFullQualifiedName()));
     type.setProperties(typeProperties);
-    List<NavigationProperty> typeNavigationProperties = new ArrayList<NavigationProperty>();
-    typeNavigationProperties.add(new NavigationProperty().setName("nav2"));
+    List<CsdlNavigationProperty> typeNavigationProperties = new ArrayList<CsdlNavigationProperty>();
+    typeNavigationProperties.add(new CsdlNavigationProperty().setName("nav2"));
     type.setNavigationProperties(typeNavigationProperties);
     when(provider.getEntityType(typeName)).thenReturn(type);
 
     typeWithBaseType = new EdmEntityTypeImpl(edm, typeName, type);
 
     FullQualifiedName typeWithComplexKeyName = new FullQualifiedName("namespace", "typeName");
-    EntityType typeWithComplexKeyProvider = new EntityType();
+    CsdlEntityType typeWithComplexKeyProvider = new CsdlEntityType();
     typeWithComplexKeyProvider.setName(typeWithComplexKeyName.getName());
-    List<Property> typeWithComplexKeyProperties = new ArrayList<Property>();
-    typeWithComplexKeyProperties.add(new Property().setName("Id").setType(
+    List<CsdlProperty> typeWithComplexKeyProperties = new ArrayList<CsdlProperty>();
+    typeWithComplexKeyProperties.add(new CsdlProperty().setName("Id").setType(
         EdmPrimitiveTypeKind.String.getFullQualifiedName()));
 
-    List<Property> complexTypeProperties = new ArrayList<Property>();
-    complexTypeProperties.add(new Property().setName("ComplexPropName").setType(
+    List<CsdlProperty> complexTypeProperties = new ArrayList<CsdlProperty>();
+    complexTypeProperties.add(new CsdlProperty().setName("ComplexPropName").setType(
         EdmPrimitiveTypeKind.String.getFullQualifiedName()));
     FullQualifiedName complexTypeName = new FullQualifiedName("namespace", "complexTypeName");
     when(provider.getComplexType(complexTypeName)).thenReturn(
-        new ComplexType().setName("complexTypeName").setProperties(complexTypeProperties));
+        new CsdlComplexType().setName("complexTypeName").setProperties(complexTypeProperties));
 
-    typeWithComplexKeyProperties.add(new Property().setName("Comp").setType(complexTypeName));
+    typeWithComplexKeyProperties.add(new CsdlProperty().setName("Comp").setType(complexTypeName));
     typeWithComplexKeyProvider.setProperties(typeWithComplexKeyProperties);
-    List<PropertyRef> keyForTypeWithComplexKey = new ArrayList<PropertyRef>();
-    keyForTypeWithComplexKey.add(new PropertyRef().setName("Id"));
-    keyForTypeWithComplexKey.add(new PropertyRef().setName("Comp/ComplexPropName").setAlias("alias"));
+    List<CsdlPropertyRef> keyForTypeWithComplexKey = new ArrayList<CsdlPropertyRef>();
+    keyForTypeWithComplexKey.add(new CsdlPropertyRef().setName("Id"));
+    keyForTypeWithComplexKey.add(new CsdlPropertyRef().setName("Comp/ComplexPropName").setAlias("alias"));
     typeWithComplexKeyProvider.setKey(keyForTypeWithComplexKey);
     when(provider.getEntityType(typeWithComplexKeyName)).thenReturn(typeWithComplexKeyProvider);
 
@@ -122,18 +122,18 @@ public class EdmEntityTypeImplTest {
 
   @Test
   public void testAbstractBaseTypeWithoutKey() throws Exception {
-    EdmProvider provider = mock(EdmProvider.class);
+    CsdlEdmProvider provider = mock(CsdlEdmProvider.class);
     EdmProviderImpl edm = new EdmProviderImpl(provider);
 
     FullQualifiedName baseName = new FullQualifiedName("namespace", "BaseTypeName");
-    EntityType baseType = new EntityType();
+    CsdlEntityType baseType = new CsdlEntityType();
     baseType.setName(baseName.getName());
-    List<Property> properties = new ArrayList<Property>();
-    properties.add(new Property().setName("Id").setType(EdmPrimitiveTypeKind.String.getFullQualifiedName()));
-    properties.add(new Property().setName("Name").setType(EdmPrimitiveTypeKind.String.getFullQualifiedName()));
+    List<CsdlProperty> properties = new ArrayList<CsdlProperty>();
+    properties.add(new CsdlProperty().setName("Id").setType(EdmPrimitiveTypeKind.String.getFullQualifiedName()));
+    properties.add(new CsdlProperty().setName("Name").setType(EdmPrimitiveTypeKind.String.getFullQualifiedName()));
     baseType.setProperties(properties);
-    List<NavigationProperty> navigationProperties = new ArrayList<NavigationProperty>();
-    navigationProperties.add(new NavigationProperty().setName("nav1"));
+    List<CsdlNavigationProperty> navigationProperties = new ArrayList<CsdlNavigationProperty>();
+    navigationProperties.add(new CsdlNavigationProperty().setName("nav1"));
     baseType.setNavigationProperties(navigationProperties);
     when(provider.getEntityType(baseName)).thenReturn(baseType);
     baseType.setAbstract(true);
@@ -144,20 +144,20 @@ public class EdmEntityTypeImplTest {
     assertEquals("Name", edmAbstarctBaseType.getPropertyNames().get(1));
 
     FullQualifiedName typeName = new FullQualifiedName("namespace", "typeName");
-    EntityType type = new EntityType();
+    CsdlEntityType type = new CsdlEntityType();
     type.setName(typeName.getName());
     type.setBaseType(baseName);
-    List<Property> typeProperties = new ArrayList<Property>();
-    typeProperties.add(new Property().setName("address").setType(
+    List<CsdlProperty> typeProperties = new ArrayList<CsdlProperty>();
+    typeProperties.add(new CsdlProperty().setName("address").setType(
         EdmPrimitiveTypeKind.String.getFullQualifiedName()));
-    typeProperties.add(new Property().setName("email").setType(
+    typeProperties.add(new CsdlProperty().setName("email").setType(
         EdmPrimitiveTypeKind.String.getFullQualifiedName()));
     type.setProperties(typeProperties);
-    List<PropertyRef> key = new ArrayList<PropertyRef>();
-    key.add(new PropertyRef().setName("email"));
+    List<CsdlPropertyRef> key = new ArrayList<CsdlPropertyRef>();
+    key.add(new CsdlPropertyRef().setName("email"));
     type.setKey(key);
-    List<NavigationProperty> typeNavigationProperties = new ArrayList<NavigationProperty>();
-    typeNavigationProperties.add(new NavigationProperty().setName("nav2"));
+    List<CsdlNavigationProperty> typeNavigationProperties = new ArrayList<CsdlNavigationProperty>();
+    typeNavigationProperties.add(new CsdlNavigationProperty().setName("nav2"));
     type.setNavigationProperties(typeNavigationProperties);
     when(provider.getEntityType(typeName)).thenReturn(type);
 
@@ -182,38 +182,38 @@ public class EdmEntityTypeImplTest {
 
   @Test
   public void testAbstractBaseTypeWithtKey() throws Exception {
-    EdmProvider provider = mock(EdmProvider.class);
+    CsdlEdmProvider provider = mock(CsdlEdmProvider.class);
     EdmProviderImpl edm = new EdmProviderImpl(provider);
 
     FullQualifiedName baseName = new FullQualifiedName("namespace", "BaseTypeName");
-    EntityType baseType = new EntityType();
+    CsdlEntityType baseType = new CsdlEntityType();
     baseType.setName(baseName.getName());
-    List<Property> properties = new ArrayList<Property>();
-    properties.add(new Property().setName("Id").setType(EdmPrimitiveTypeKind.String.getFullQualifiedName()));
-    properties.add(new Property().setName("Name").setType(EdmPrimitiveTypeKind.String.getFullQualifiedName()));
+    List<CsdlProperty> properties = new ArrayList<CsdlProperty>();
+    properties.add(new CsdlProperty().setName("Id").setType(EdmPrimitiveTypeKind.String.getFullQualifiedName()));
+    properties.add(new CsdlProperty().setName("Name").setType(EdmPrimitiveTypeKind.String.getFullQualifiedName()));
     baseType.setProperties(properties);
-    List<PropertyRef> key = new ArrayList<PropertyRef>();
-    key.add(new PropertyRef().setName("Id"));
+    List<CsdlPropertyRef> key = new ArrayList<CsdlPropertyRef>();
+    key.add(new CsdlPropertyRef().setName("Id"));
     baseType.setKey(key);
-    List<NavigationProperty> navigationProperties = new ArrayList<NavigationProperty>();
-    navigationProperties.add(new NavigationProperty().setName("nav1"));
+    List<CsdlNavigationProperty> navigationProperties = new ArrayList<CsdlNavigationProperty>();
+    navigationProperties.add(new CsdlNavigationProperty().setName("nav1"));
     baseType.setNavigationProperties(navigationProperties);
     when(provider.getEntityType(baseName)).thenReturn(baseType);
     baseType.setAbstract(true);
     EdmEntityType edmAbstarctBaseType = new EdmEntityTypeImpl(edm, baseName, baseType);
 
     FullQualifiedName typeName = new FullQualifiedName("namespace", "typeName");
-    EntityType type = new EntityType();
+    CsdlEntityType type = new CsdlEntityType();
     type.setName(typeName.getName());
     type.setBaseType(baseName);
-    List<Property> typeProperties = new ArrayList<Property>();
-    typeProperties.add(new Property().setName("address").setType(
+    List<CsdlProperty> typeProperties = new ArrayList<CsdlProperty>();
+    typeProperties.add(new CsdlProperty().setName("address").setType(
         EdmPrimitiveTypeKind.String.getFullQualifiedName()));
-    typeProperties.add(new Property().setName("email").setType(
+    typeProperties.add(new CsdlProperty().setName("email").setType(
         EdmPrimitiveTypeKind.String.getFullQualifiedName()));
     type.setProperties(typeProperties);
-    List<NavigationProperty> typeNavigationProperties = new ArrayList<NavigationProperty>();
-    typeNavigationProperties.add(new NavigationProperty().setName("nav2"));
+    List<CsdlNavigationProperty> typeNavigationProperties = new ArrayList<CsdlNavigationProperty>();
+    typeNavigationProperties.add(new CsdlNavigationProperty().setName("nav2"));
     type.setNavigationProperties(typeNavigationProperties);
     when(provider.getEntityType(typeName)).thenReturn(type);
     EdmEntityType edmType = new EdmEntityTypeImpl(edm, typeName, type);
@@ -366,25 +366,25 @@ public class EdmEntityTypeImplTest {
   @Test
   public void abstractTypeDoesNotNeedKey() {
     EdmProviderImpl edm = mock(EdmProviderImpl.class);
-    EntityType entityType = new EntityType().setName("n").setAbstract(true);
+    CsdlEntityType entityType = new CsdlEntityType().setName("n").setAbstract(true);
     new EdmEntityTypeImpl(edm, new FullQualifiedName("n", "n"), entityType);
   }
 
   @Test(expected = EdmException.class)
   public void invalidBaseType() {
     EdmProviderImpl edm = mock(EdmProviderImpl.class);
-    EntityType entityType = new EntityType().setName("n").setBaseType(new FullQualifiedName("wrong", "wrong"));
+    CsdlEntityType entityType = new CsdlEntityType().setName("n").setBaseType(new FullQualifiedName("wrong", "wrong"));
     EdmEntityTypeImpl instance = new EdmEntityTypeImpl(edm, new FullQualifiedName("n", "n"), entityType);
     instance.getBaseType();
   }
 
   @Test
   public void abstractTypeWithAbstractBaseTypeDoesNotNeedKey() throws Exception {
-    EdmProvider provider = mock(EdmProvider.class);
+    CsdlEdmProvider provider = mock(CsdlEdmProvider.class);
     EdmProviderImpl edm = new EdmProviderImpl(provider);
     FullQualifiedName baseName = new FullQualifiedName("n", "base");
-    when(provider.getEntityType(baseName)).thenReturn(new EntityType().setName("base").setAbstract(true));
-    EntityType entityType = new EntityType().setName("n").setAbstract(true).setBaseType(baseName);
+    when(provider.getEntityType(baseName)).thenReturn(new CsdlEntityType().setName("base").setAbstract(true));
+    CsdlEntityType entityType = new CsdlEntityType().setName("n").setAbstract(true).setBaseType(baseName);
     new EdmEntityTypeImpl(edm, new FullQualifiedName("n", "n"), entityType);
   }
 

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/2318953c/lib/server-core/src/test/java/org/apache/olingo/server/core/edm/provider/EdmEnumTest.java
----------------------------------------------------------------------
diff --git a/lib/server-core/src/test/java/org/apache/olingo/server/core/edm/provider/EdmEnumTest.java b/lib/server-core/src/test/java/org/apache/olingo/server/core/edm/provider/EdmEnumTest.java
index edc9a21..054f9d8 100644
--- a/lib/server-core/src/test/java/org/apache/olingo/server/core/edm/provider/EdmEnumTest.java
+++ b/lib/server-core/src/test/java/org/apache/olingo/server/core/edm/provider/EdmEnumTest.java
@@ -26,8 +26,8 @@ import org.apache.olingo.commons.api.edm.EdmPrimitiveTypeException;
 import org.apache.olingo.commons.api.edm.EdmPrimitiveTypeKind;
 import org.apache.olingo.commons.api.edm.FullQualifiedName;
 import org.apache.olingo.commons.api.edm.constants.EdmTypeKind;
-import org.apache.olingo.commons.api.edm.provider.EnumMember;
-import org.apache.olingo.commons.api.edm.provider.EnumType;
+import org.apache.olingo.commons.api.edm.provider.CsdlEnumMember;
+import org.apache.olingo.commons.api.edm.provider.CsdlEnumType;
 import org.apache.olingo.commons.core.edm.primitivetype.EdmPrimitiveTypeFactory;
 import org.apache.olingo.commons.core.edm.EdmEnumTypeImpl;
 import org.apache.olingo.commons.core.edm.EdmProviderImpl;
@@ -57,51 +57,51 @@ public class EdmEnumTest {
   private final EdmEnumType int32FlagType;
 
   public EdmEnumTest() {
-    final List<EnumMember> memberList = Arrays.asList(
-        new EnumMember().setName("first").setValue("1"),
-        new EnumMember().setName("second").setValue("64"));
+    final List<CsdlEnumMember> memberList = Arrays.asList(
+        new CsdlEnumMember().setName("first").setValue("1"),
+        new CsdlEnumMember().setName("second").setValue("64"));
 
     final FullQualifiedName enumName = new FullQualifiedName("namespace", "name");
 
     instance = new EdmEnumTypeImpl(mock(EdmProviderImpl.class), enumName,
-        new EnumType().setName("name").setMembers(memberList).setFlags(true)
+        new CsdlEnumType().setName("name").setMembers(memberList).setFlags(true)
             .setUnderlyingType(EdmPrimitiveTypeKind.SByte.getFullQualifiedName()));
 
     nonFlagsInstance = new EdmEnumTypeImpl(mock(EdmProviderImpl.class), enumName,
-        new EnumType().setName("name").setMembers(memberList).setFlags(false)
+        new CsdlEnumType().setName("name").setMembers(memberList).setFlags(false)
             .setUnderlyingType(EdmPrimitiveTypeKind.SByte.getFullQualifiedName()));
 
     int16EnumType = new EdmEnumTypeImpl(Mockito.mock(Edm.class),
-        new FullQualifiedName("testNamespace", "testName"), new EnumType()
+        new FullQualifiedName("testNamespace", "testName"), new CsdlEnumType()
         .setName("MyEnum")
         .setFlags(false)
         .setUnderlyingType(EdmPrimitiveTypeKind.Int16.getFullQualifiedName())
         .setMembers(
             Arrays.asList(
-                new EnumMember().setName("A")
+                new CsdlEnumMember().setName("A")
                     .setValue("0"),
-                new EnumMember().setName("B")
+                new CsdlEnumMember().setName("B")
                     .setValue("1"),
-                new EnumMember().setName("C")
+                new CsdlEnumMember().setName("C")
                     .setValue("2"))));
 
     int32EnumType = new EdmEnumTypeImpl(Mockito.mock(Edm.class),
-        new FullQualifiedName("testNamespace", "testName"), new EnumType()
+        new FullQualifiedName("testNamespace", "testName"), new CsdlEnumType()
         .setName("MyEnum")
         .setFlags(false)
         .setUnderlyingType(EdmPrimitiveTypeKind.Int32.getFullQualifiedName())
         .setMembers(Arrays
-            .asList(new EnumMember().setName("A").setValue("0"), new EnumMember().setName("B").setValue("1"),
-                new EnumMember().setName("C").setValue("2"))));
+            .asList(new CsdlEnumMember().setName("A").setValue("0"), new CsdlEnumMember().setName("B").setValue("1"),
+                new CsdlEnumMember().setName("C").setValue("2"))));
 
     int32FlagType = new EdmEnumTypeImpl(Mockito.mock(Edm.class),
-        new FullQualifiedName("testNamespace", "testName"), new EnumType()
+        new FullQualifiedName("testNamespace", "testName"), new CsdlEnumType()
         .setName("MyEnum")
         .setFlags(true)
         .setUnderlyingType(EdmPrimitiveTypeKind.Int32.getFullQualifiedName())
         .setMembers(Arrays
-            .asList(new EnumMember().setName("A").setValue("2"), new EnumMember().setName("B").setValue("4"),
-                new EnumMember().setName("C").setValue("8"))));
+            .asList(new CsdlEnumMember().setName("A").setValue("2"), new CsdlEnumMember().setName("B").setValue("4"),
+                new CsdlEnumMember().setName("C").setValue("8"))));
   }
 
   @Test
@@ -130,7 +130,7 @@ public class EdmEnumTest {
     assertEquals(Byte.class, instance.getDefaultType());
     EdmEnumType instance = new EdmEnumTypeImpl(Mockito.mock(Edm.class),
         new FullQualifiedName("testNamespace", "testName"),
-        new EnumType()
+        new CsdlEnumType()
             .setName("MyEnum"));
     assertEquals(Integer.class, instance.getUnderlyingType().getDefaultType());
   }
@@ -267,13 +267,13 @@ public class EdmEnumTest {
       @SuppressWarnings("unused")
       EdmEnumType instance = new EdmEnumTypeImpl(Mockito.mock(Edm.class),
           new FullQualifiedName("testNamespace", "testName"),
-          new EnumType()
+          new CsdlEnumType()
               .setName("MyEnum")
               .setFlags(false)
               .setUnderlyingType(underlyingType.getFullQualifiedName())
               .setMembers(
                   Arrays.asList(
-                      new EnumMember().setName("A")
+                      new CsdlEnumMember().setName("A")
                           .setValue("0"))));
       fail("Expected exception not thrown");
     } catch (final EdmException e) {

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/2318953c/lib/server-core/src/test/java/org/apache/olingo/server/core/edm/provider/EdmFunctionImplTest.java
----------------------------------------------------------------------
diff --git a/lib/server-core/src/test/java/org/apache/olingo/server/core/edm/provider/EdmFunctionImplTest.java b/lib/server-core/src/test/java/org/apache/olingo/server/core/edm/provider/EdmFunctionImplTest.java
index 8adab01..477dee4 100644
--- a/lib/server-core/src/test/java/org/apache/olingo/server/core/edm/provider/EdmFunctionImplTest.java
+++ b/lib/server-core/src/test/java/org/apache/olingo/server/core/edm/provider/EdmFunctionImplTest.java
@@ -22,8 +22,8 @@ import org.apache.olingo.commons.api.edm.EdmException;
 import org.apache.olingo.commons.api.edm.EdmFunction;
 import org.apache.olingo.commons.api.edm.EdmReturnType;
 import org.apache.olingo.commons.api.edm.FullQualifiedName;
-import org.apache.olingo.commons.api.edm.provider.Function;
-import org.apache.olingo.commons.api.edm.provider.ReturnType;
+import org.apache.olingo.commons.api.edm.provider.CsdlFunction;
+import org.apache.olingo.commons.api.edm.provider.CsdlReturnType;
 import org.apache.olingo.commons.core.edm.EdmFunctionImpl;
 import org.apache.olingo.commons.core.edm.EdmProviderImpl;
 import org.junit.Before;
@@ -45,9 +45,10 @@ public class EdmFunctionImplTest {
   public void setupFunctions() {
     EdmProviderImpl provider = mock(EdmProviderImpl.class);
 
-    Function function1 = new Function().setReturnType(new ReturnType().setType(new FullQualifiedName("Edm", "String")));
+    CsdlFunction function1 = new CsdlFunction().setReturnType(
+            new CsdlReturnType().setType(new FullQualifiedName("Edm", "String")));
     functionImpl1 = new EdmFunctionImpl(provider, new FullQualifiedName("namespace", "name"), function1);
-    Function function2 = new Function().setComposable(true);
+    CsdlFunction function2 = new CsdlFunction().setComposable(true);
     functionImpl2 = new EdmFunctionImpl(provider, new FullQualifiedName("namespace", "name"), function2);
   }
 

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/2318953c/lib/server-core/src/test/java/org/apache/olingo/server/core/edm/provider/EdmFunctionImportImplTest.java
----------------------------------------------------------------------
diff --git a/lib/server-core/src/test/java/org/apache/olingo/server/core/edm/provider/EdmFunctionImportImplTest.java b/lib/server-core/src/test/java/org/apache/olingo/server/core/edm/provider/EdmFunctionImportImplTest.java
index 002ec05..730322b 100644
--- a/lib/server-core/src/test/java/org/apache/olingo/server/core/edm/provider/EdmFunctionImportImplTest.java
+++ b/lib/server-core/src/test/java/org/apache/olingo/server/core/edm/provider/EdmFunctionImportImplTest.java
@@ -23,12 +23,12 @@ import org.apache.olingo.commons.api.edm.EdmFunction;
 import org.apache.olingo.commons.api.edm.EdmFunctionImport;
 import org.apache.olingo.commons.api.edm.EdmPrimitiveTypeKind;
 import org.apache.olingo.commons.api.edm.FullQualifiedName;
-import org.apache.olingo.commons.api.edm.provider.EdmProvider;
-import org.apache.olingo.commons.api.edm.provider.EntityContainerInfo;
-import org.apache.olingo.commons.api.edm.provider.Function;
-import org.apache.olingo.commons.api.edm.provider.FunctionImport;
-import org.apache.olingo.commons.api.edm.provider.Parameter;
-import org.apache.olingo.commons.api.edm.provider.ReturnType;
+import org.apache.olingo.commons.api.edm.provider.CsdlEdmProvider;
+import org.apache.olingo.commons.api.edm.provider.CsdlEntityContainerInfo;
+import org.apache.olingo.commons.api.edm.provider.CsdlFunction;
+import org.apache.olingo.commons.api.edm.provider.CsdlFunctionImport;
+import org.apache.olingo.commons.api.edm.provider.CsdlParameter;
+import org.apache.olingo.commons.api.edm.provider.CsdlReturnType;
 import org.apache.olingo.commons.core.edm.primitivetype.EdmPrimitiveTypeFactory;
 import org.apache.olingo.commons.core.edm.EdmEntityContainerImpl;
 import org.apache.olingo.commons.core.edm.EdmFunctionImportImpl;
@@ -48,25 +48,25 @@ public class EdmFunctionImportImplTest {
 
   @Test
   public void functionImport() throws Exception {
-    EdmProvider provider = mock(EdmProvider.class);
+    CsdlEdmProvider provider = mock(CsdlEdmProvider.class);
     EdmProviderImpl edm = new EdmProviderImpl(provider);
 
     final FullQualifiedName functionName = new FullQualifiedName("ns", "function");
-    final Function functionProvider = new Function()
+    final CsdlFunction functionProvider = new CsdlFunction()
         .setName(functionName.getName())
-        .setParameters(Collections.<Parameter> emptyList())
+        .setParameters(Collections.<CsdlParameter> emptyList())
         .setBound(false)
         .setComposable(false)
-        .setReturnType(new ReturnType().setType(EdmPrimitiveTypeKind.Boolean.getFullQualifiedName()));
+        .setReturnType(new CsdlReturnType().setType(EdmPrimitiveTypeKind.Boolean.getFullQualifiedName()));
     when(provider.getFunctions(functionName)).thenReturn(Arrays.asList(functionProvider));
 
     final FullQualifiedName containerName = new FullQualifiedName("ns", "container");
-    final EntityContainerInfo containerInfo = new EntityContainerInfo().setContainerName(containerName);
+    final CsdlEntityContainerInfo containerInfo = new CsdlEntityContainerInfo().setContainerName(containerName);
     when(provider.getEntityContainerInfo(containerName)).thenReturn(containerInfo);
     final EdmEntityContainer entityContainer = new EdmEntityContainerImpl(edm, provider, containerInfo);
 
     final String functionImportName = "functionImport";
-    final FunctionImport functionImportProvider = new FunctionImport()
+    final CsdlFunctionImport functionImportProvider = new CsdlFunctionImport()
         .setName(functionImportName)
         .setFunction(functionName)
         .setIncludeInServiceDocument(true);

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/2318953c/lib/server-core/src/test/java/org/apache/olingo/server/core/edm/provider/EdmKeyPropertyRefImplTest.java
----------------------------------------------------------------------
diff --git a/lib/server-core/src/test/java/org/apache/olingo/server/core/edm/provider/EdmKeyPropertyRefImplTest.java b/lib/server-core/src/test/java/org/apache/olingo/server/core/edm/provider/EdmKeyPropertyRefImplTest.java
index d4e957a..187534b 100644
--- a/lib/server-core/src/test/java/org/apache/olingo/server/core/edm/provider/EdmKeyPropertyRefImplTest.java
+++ b/lib/server-core/src/test/java/org/apache/olingo/server/core/edm/provider/EdmKeyPropertyRefImplTest.java
@@ -24,7 +24,7 @@ import org.apache.olingo.commons.api.edm.EdmEntityType;
 import org.apache.olingo.commons.api.edm.EdmException;
 import org.apache.olingo.commons.api.edm.EdmKeyPropertyRef;
 import org.apache.olingo.commons.api.edm.EdmProperty;
-import org.apache.olingo.commons.api.edm.provider.PropertyRef;
+import org.apache.olingo.commons.api.edm.provider.CsdlPropertyRef;
 import org.apache.olingo.commons.core.edm.EdmKeyPropertyRefImpl;
 import org.junit.Test;
 
@@ -39,7 +39,7 @@ public class EdmKeyPropertyRefImplTest {
 
   @Test
   public void noAlias() {
-    PropertyRef providerRef = new PropertyRef().setName("Id");
+    CsdlPropertyRef providerRef = new CsdlPropertyRef().setName("Id");
     EdmEntityType etMock = mock(EdmEntityType.class);
     EdmProperty keyPropertyMock = mock(EdmProperty.class);
     when(etMock.getStructuralProperty("Id")).thenReturn(keyPropertyMock);
@@ -55,7 +55,7 @@ public class EdmKeyPropertyRefImplTest {
 
   @Test
   public void aliasForPropertyInComplexPropertyOneLevel() {
-    PropertyRef providerRef = new PropertyRef().setName("comp/Id").setAlias("alias");
+    CsdlPropertyRef providerRef = new CsdlPropertyRef().setName("comp/Id").setAlias("alias");
     EdmEntityType etMock = mock(EdmEntityType.class);
     EdmProperty keyPropertyMock = mock(EdmProperty.class);
     EdmProperty compMock = mock(EdmProperty.class);
@@ -73,7 +73,7 @@ public class EdmKeyPropertyRefImplTest {
 
   @Test(expected = EdmException.class)
   public void aliasForPropertyInComplexPropertyButWrongPath() {
-    PropertyRef providerRef = new PropertyRef().setName("comp/wrong").setAlias("alias");
+    CsdlPropertyRef providerRef = new CsdlPropertyRef().setName("comp/wrong").setAlias("alias");
     EdmEntityType etMock = mock(EdmEntityType.class);
     EdmProperty keyPropertyMock = mock(EdmProperty.class);
     EdmElement compMock = mock(EdmProperty.class);
@@ -86,7 +86,7 @@ public class EdmKeyPropertyRefImplTest {
 
   @Test(expected = EdmException.class)
   public void aliasForPropertyInComplexPropertyButWrongPath2() {
-    PropertyRef providerRef = new PropertyRef().setName("wrong/Id").setAlias("alias");
+    CsdlPropertyRef providerRef = new CsdlPropertyRef().setName("wrong/Id").setAlias("alias");
     EdmEntityType etMock = mock(EdmEntityType.class);
     EdmProperty keyPropertyMock = mock(EdmProperty.class);
     EdmElement compMock = mock(EdmProperty.class);
@@ -99,7 +99,7 @@ public class EdmKeyPropertyRefImplTest {
 
   @Test
   public void aliasForPropertyInComplexPropertyTwoLevels() {
-    PropertyRef providerRef = new PropertyRef().setName("comp/comp2/Id").setAlias("alias");
+    CsdlPropertyRef providerRef = new CsdlPropertyRef().setName("comp/comp2/Id").setAlias("alias");
     EdmEntityType etMock = mock(EdmEntityType.class);
     EdmProperty keyPropertyMock = mock(EdmProperty.class);
     EdmProperty compMock = mock(EdmProperty.class);
@@ -120,21 +120,21 @@ public class EdmKeyPropertyRefImplTest {
 
   @Test(expected = EdmException.class)
   public void oneKeyNoAliasButInvalidProperty() {
-    PropertyRef providerRef = new PropertyRef().setName("Id");
+    CsdlPropertyRef providerRef = new CsdlPropertyRef().setName("Id");
     EdmKeyPropertyRef ref = new EdmKeyPropertyRefImpl(mock(EdmEntityType.class), providerRef);
     ref.getProperty();
   }
 
   @Test(expected = EdmException.class)
   public void aliasButNoPath() {
-    PropertyRef providerRef = new PropertyRef().setName("Id").setAlias("alias");
+    CsdlPropertyRef providerRef = new CsdlPropertyRef().setName("Id").setAlias("alias");
     EdmKeyPropertyRef ref = new EdmKeyPropertyRefImpl(mock(EdmEntityType.class), providerRef);
     ref.getProperty();
   }
 
   @Test(expected = EdmException.class)
   public void aliasButEmptyPath() {
-    PropertyRef providerRef = new PropertyRef().setName("").setAlias("alias");
+    CsdlPropertyRef providerRef = new CsdlPropertyRef().setName("").setAlias("alias");
     EdmKeyPropertyRef ref = new EdmKeyPropertyRefImpl(mock(EdmEntityType.class), providerRef);
     ref.getProperty();
   }

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/2318953c/lib/server-core/src/test/java/org/apache/olingo/server/core/edm/provider/EdmMappingTest.java
----------------------------------------------------------------------
diff --git a/lib/server-core/src/test/java/org/apache/olingo/server/core/edm/provider/EdmMappingTest.java b/lib/server-core/src/test/java/org/apache/olingo/server/core/edm/provider/EdmMappingTest.java
index 5730d40..c284edf 100644
--- a/lib/server-core/src/test/java/org/apache/olingo/server/core/edm/provider/EdmMappingTest.java
+++ b/lib/server-core/src/test/java/org/apache/olingo/server/core/edm/provider/EdmMappingTest.java
@@ -28,9 +28,9 @@ import org.apache.olingo.commons.api.edm.EdmParameter;
 import org.apache.olingo.commons.api.edm.EdmPrimitiveTypeKind;
 import org.apache.olingo.commons.api.edm.EdmProperty;
 import org.apache.olingo.commons.api.edm.FullQualifiedName;
-import org.apache.olingo.commons.api.edm.provider.Mapping;
-import org.apache.olingo.commons.api.edm.provider.Parameter;
-import org.apache.olingo.commons.api.edm.provider.Property;
+import org.apache.olingo.commons.api.edm.provider.CsdlMapping;
+import org.apache.olingo.commons.api.edm.provider.CsdlParameter;
+import org.apache.olingo.commons.api.edm.provider.CsdlProperty;
 import org.apache.olingo.commons.core.edm.EdmParameterImpl;
 import org.apache.olingo.commons.core.edm.EdmPropertyImpl;
 import org.junit.Test;
@@ -39,12 +39,12 @@ public class EdmMappingTest {
 
   @Test
   public void initialMappingMustBeNull() {
-    Property property = new Property().setType(EdmPrimitiveTypeKind.DateTimeOffset.getFullQualifiedName());
+    CsdlProperty property = new CsdlProperty().setType(EdmPrimitiveTypeKind.DateTimeOffset.getFullQualifiedName());
     EdmProperty edmProperty = new EdmPropertyImpl(null, new FullQualifiedName("namespace.name"), property);
 
     assertNull(edmProperty.getMapping());
 
-    Parameter parameter = new Parameter().setType(EdmPrimitiveTypeKind.DateTimeOffset.getFullQualifiedName());
+    CsdlParameter parameter = new CsdlParameter().setType(EdmPrimitiveTypeKind.DateTimeOffset.getFullQualifiedName());
     EdmParameter edmParameter = new EdmParameterImpl(null, parameter);
 
     assertNull(edmParameter.getMapping());
@@ -52,8 +52,8 @@ public class EdmMappingTest {
 
   @Test
   public void getDataClassForPrimTypeViaMapping() {
-    Mapping mapping = new Mapping().setMappedJavaClass(Date.class);
-    Property property = new Property()
+    CsdlMapping mapping = new CsdlMapping().setMappedJavaClass(Date.class);
+    CsdlProperty property = new CsdlProperty()
         .setType(EdmPrimitiveTypeKind.DateTimeOffset.getFullQualifiedName())
         .setMapping(mapping);
     EdmProperty edmProperty = new EdmPropertyImpl(null, new FullQualifiedName("namespace.name"), property);
@@ -61,7 +61,7 @@ public class EdmMappingTest {
     assertNotNull(edmProperty.getMapping());
     assertEquals(Date.class, edmProperty.getMapping().getMappedJavaClass());
 
-    Parameter parameter = new Parameter()
+    CsdlParameter parameter = new CsdlParameter()
         .setType(EdmPrimitiveTypeKind.DateTimeOffset.getFullQualifiedName())
         .setMapping(mapping);
     EdmParameter edmParameter = new EdmParameterImpl(null, parameter);

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/2318953c/lib/server-core/src/test/java/org/apache/olingo/server/core/edm/provider/EdmMemberImplTest.java
----------------------------------------------------------------------
diff --git a/lib/server-core/src/test/java/org/apache/olingo/server/core/edm/provider/EdmMemberImplTest.java b/lib/server-core/src/test/java/org/apache/olingo/server/core/edm/provider/EdmMemberImplTest.java
index a0c2944..d6ae3a7 100644
--- a/lib/server-core/src/test/java/org/apache/olingo/server/core/edm/provider/EdmMemberImplTest.java
+++ b/lib/server-core/src/test/java/org/apache/olingo/server/core/edm/provider/EdmMemberImplTest.java
@@ -18,7 +18,7 @@
  */
 package org.apache.olingo.server.core.edm.provider;
 
-import org.apache.olingo.commons.api.edm.provider.EnumMember;
+import org.apache.olingo.commons.api.edm.provider.CsdlEnumMember;
 import org.apache.olingo.commons.core.edm.EdmMemberImpl;
 import org.apache.olingo.commons.core.edm.EdmProviderImpl;
 import org.junit.Test;
@@ -30,7 +30,7 @@ public class EdmMemberImplTest {
 
   @Test
   public void enumMember() {
-    final EnumMember member = new EnumMember().setName("name").setValue("value");
+    final CsdlEnumMember member = new CsdlEnumMember().setName("name").setValue("value");
     final EdmMemberImpl memberImpl = new EdmMemberImpl(mock(EdmProviderImpl.class), null, member);
 
     assertEquals("name", memberImpl.getName());

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/2318953c/lib/server-core/src/test/java/org/apache/olingo/server/core/edm/provider/EdmNavigationPropertyImplTest.java
----------------------------------------------------------------------
diff --git a/lib/server-core/src/test/java/org/apache/olingo/server/core/edm/provider/EdmNavigationPropertyImplTest.java b/lib/server-core/src/test/java/org/apache/olingo/server/core/edm/provider/EdmNavigationPropertyImplTest.java
index 4751f59..fee5673 100644
--- a/lib/server-core/src/test/java/org/apache/olingo/server/core/edm/provider/EdmNavigationPropertyImplTest.java
+++ b/lib/server-core/src/test/java/org/apache/olingo/server/core/edm/provider/EdmNavigationPropertyImplTest.java
@@ -23,11 +23,11 @@ import org.apache.olingo.commons.api.edm.EdmNavigationProperty;
 import org.apache.olingo.commons.api.edm.EdmType;
 import org.apache.olingo.commons.api.edm.FullQualifiedName;
 import org.apache.olingo.commons.api.edm.constants.EdmTypeKind;
-import org.apache.olingo.commons.api.edm.provider.EdmProvider;
-import org.apache.olingo.commons.api.edm.provider.EntityType;
-import org.apache.olingo.commons.api.edm.provider.NavigationProperty;
-import org.apache.olingo.commons.api.edm.provider.PropertyRef;
-import org.apache.olingo.commons.api.edm.provider.ReferentialConstraint;
+import org.apache.olingo.commons.api.edm.provider.CsdlEdmProvider;
+import org.apache.olingo.commons.api.edm.provider.CsdlEntityType;
+import org.apache.olingo.commons.api.edm.provider.CsdlNavigationProperty;
+import org.apache.olingo.commons.api.edm.provider.CsdlPropertyRef;
+import org.apache.olingo.commons.api.edm.provider.CsdlReferentialConstraint;
 import org.apache.olingo.commons.core.edm.EdmNavigationPropertyImpl;
 import org.apache.olingo.commons.core.edm.EdmProviderImpl;
 import org.junit.Test;
@@ -48,13 +48,13 @@ public class EdmNavigationPropertyImplTest {
 
   @Test
   public void navigationProperty() throws Exception {
-    EdmProvider provider = mock(EdmProvider.class);
+    CsdlEdmProvider provider = mock(CsdlEdmProvider.class);
     EdmProviderImpl edm = new EdmProviderImpl(provider);
     final FullQualifiedName entityTypeName = new FullQualifiedName("ns", "entity");
-    EntityType entityTypeProvider = new EntityType();
-    entityTypeProvider.setKey(Collections.<PropertyRef> emptyList());
+    CsdlEntityType entityTypeProvider = new CsdlEntityType();
+    entityTypeProvider.setKey(Collections.<CsdlPropertyRef> emptyList());
     when(provider.getEntityType(entityTypeName)).thenReturn(entityTypeProvider);
-    NavigationProperty propertyProvider = new NavigationProperty();
+    CsdlNavigationProperty propertyProvider = new CsdlNavigationProperty();
     propertyProvider.setType(entityTypeName);
     propertyProvider.setNullable(false);
     EdmNavigationProperty property = new EdmNavigationPropertyImpl(edm, entityTypeName, propertyProvider);
@@ -74,17 +74,17 @@ public class EdmNavigationPropertyImplTest {
 
   @Test
   public void navigationPropertyWithReferntialConstraint() throws Exception {
-    EdmProvider provider = mock(EdmProvider.class);
+    CsdlEdmProvider provider = mock(CsdlEdmProvider.class);
     EdmProviderImpl edm = new EdmProviderImpl(provider);
     final FullQualifiedName entityTypeName = new FullQualifiedName("ns", "entity");
-    EntityType entityTypeProvider = new EntityType();
-    entityTypeProvider.setKey(Collections.<PropertyRef> emptyList());
+    CsdlEntityType entityTypeProvider = new CsdlEntityType();
+    entityTypeProvider.setKey(Collections.<CsdlPropertyRef> emptyList());
     when(provider.getEntityType(entityTypeName)).thenReturn(entityTypeProvider);
-    NavigationProperty propertyProvider = new NavigationProperty();
+    CsdlNavigationProperty propertyProvider = new CsdlNavigationProperty();
     propertyProvider.setType(entityTypeName);
     propertyProvider.setNullable(false);
-    List<ReferentialConstraint> referentialConstraints = new ArrayList<ReferentialConstraint>();
-    referentialConstraints.add(new ReferentialConstraint().setProperty("property").setReferencedProperty(
+    List<CsdlReferentialConstraint> referentialConstraints = new ArrayList<CsdlReferentialConstraint>();
+    referentialConstraints.add(new CsdlReferentialConstraint().setProperty("property").setReferencedProperty(
         "referencedProperty"));
     propertyProvider.setReferentialConstraints(referentialConstraints);
     EdmNavigationProperty property = new EdmNavigationPropertyImpl(edm, entityTypeName, propertyProvider);
@@ -94,17 +94,17 @@ public class EdmNavigationPropertyImplTest {
 
   @Test
   public void navigationPropertyWithPartner() throws Exception {
-    EdmProvider provider = mock(EdmProvider.class);
+    CsdlEdmProvider provider = mock(CsdlEdmProvider.class);
     EdmProviderImpl edm = new EdmProviderImpl(provider);
     final FullQualifiedName entityTypeName = new FullQualifiedName("ns", "entity");
-    EntityType entityTypeProvider = new EntityType();
-    entityTypeProvider.setKey(Collections.<PropertyRef> emptyList());
+    CsdlEntityType entityTypeProvider = new CsdlEntityType();
+    entityTypeProvider.setKey(Collections.<CsdlPropertyRef> emptyList());
 
-    List<NavigationProperty> navigationProperties = new ArrayList<NavigationProperty>();
-    navigationProperties.add(new NavigationProperty().setName("partnerName").setType(entityTypeName));
+    List<CsdlNavigationProperty> navigationProperties = new ArrayList<CsdlNavigationProperty>();
+    navigationProperties.add(new CsdlNavigationProperty().setName("partnerName").setType(entityTypeName));
     entityTypeProvider.setNavigationProperties(navigationProperties);
     when(provider.getEntityType(entityTypeName)).thenReturn(entityTypeProvider);
-    NavigationProperty propertyProvider = new NavigationProperty();
+    CsdlNavigationProperty propertyProvider = new CsdlNavigationProperty();
     propertyProvider.setType(entityTypeName);
     propertyProvider.setNullable(false);
     propertyProvider.setPartner("partnerName");
@@ -118,17 +118,17 @@ public class EdmNavigationPropertyImplTest {
 
   @Test(expected = EdmException.class)
   public void navigationPropertyWithNonexistentPartner() throws Exception {
-    EdmProvider provider = mock(EdmProvider.class);
+    CsdlEdmProvider provider = mock(CsdlEdmProvider.class);
     EdmProviderImpl edm = new EdmProviderImpl(provider);
     final FullQualifiedName entityTypeName = new FullQualifiedName("ns", "entity");
-    EntityType entityTypeProvider = new EntityType();
-    entityTypeProvider.setKey(Collections.<PropertyRef> emptyList());
+    CsdlEntityType entityTypeProvider = new CsdlEntityType();
+    entityTypeProvider.setKey(Collections.<CsdlPropertyRef> emptyList());
 
-    List<NavigationProperty> navigationProperties = new ArrayList<NavigationProperty>();
-    navigationProperties.add(new NavigationProperty().setName("partnerName").setType(entityTypeName));
+    List<CsdlNavigationProperty> navigationProperties = new ArrayList<CsdlNavigationProperty>();
+    navigationProperties.add(new CsdlNavigationProperty().setName("partnerName").setType(entityTypeName));
     entityTypeProvider.setNavigationProperties(navigationProperties);
     when(provider.getEntityType(entityTypeName)).thenReturn(entityTypeProvider);
-    NavigationProperty propertyProvider = new NavigationProperty();
+    CsdlNavigationProperty propertyProvider = new CsdlNavigationProperty();
     propertyProvider.setType(entityTypeName);
     propertyProvider.setNullable(false);
     propertyProvider.setPartner("wrong");
@@ -139,7 +139,7 @@ public class EdmNavigationPropertyImplTest {
   @Test(expected = EdmException.class)
   public void navigationPropertyWithNonExistentType() throws Exception {
     EdmProviderImpl edm = mock(EdmProviderImpl.class);
-    NavigationProperty propertyProvider = new NavigationProperty();
+    CsdlNavigationProperty propertyProvider = new CsdlNavigationProperty();
     EdmNavigationProperty property = new EdmNavigationPropertyImpl(edm, null, propertyProvider);
     property.getType();
   }

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/2318953c/lib/server-core/src/test/java/org/apache/olingo/server/core/edm/provider/EdmParameterImplTest.java
----------------------------------------------------------------------
diff --git a/lib/server-core/src/test/java/org/apache/olingo/server/core/edm/provider/EdmParameterImplTest.java b/lib/server-core/src/test/java/org/apache/olingo/server/core/edm/provider/EdmParameterImplTest.java
index bbcea0b..d14fdba 100644
--- a/lib/server-core/src/test/java/org/apache/olingo/server/core/edm/provider/EdmParameterImplTest.java
+++ b/lib/server-core/src/test/java/org/apache/olingo/server/core/edm/provider/EdmParameterImplTest.java
@@ -25,11 +25,11 @@ import org.apache.olingo.commons.api.edm.EdmPrimitiveTypeKind;
 import org.apache.olingo.commons.api.edm.EdmType;
 import org.apache.olingo.commons.api.edm.FullQualifiedName;
 import org.apache.olingo.commons.api.edm.constants.EdmTypeKind;
-import org.apache.olingo.commons.api.edm.provider.ComplexType;
-import org.apache.olingo.commons.api.edm.provider.EdmProvider;
-import org.apache.olingo.commons.api.edm.provider.EnumType;
-import org.apache.olingo.commons.api.edm.provider.Parameter;
-import org.apache.olingo.commons.api.edm.provider.TypeDefinition;
+import org.apache.olingo.commons.api.edm.provider.CsdlComplexType;
+import org.apache.olingo.commons.api.edm.provider.CsdlEdmProvider;
+import org.apache.olingo.commons.api.edm.provider.CsdlEnumType;
+import org.apache.olingo.commons.api.edm.provider.CsdlParameter;
+import org.apache.olingo.commons.api.edm.provider.CsdlTypeDefinition;
 import org.apache.olingo.commons.core.edm.EdmParameterImpl;
 import org.apache.olingo.commons.core.edm.EdmProviderImpl;
 import org.junit.Test;
@@ -44,8 +44,8 @@ public class EdmParameterImplTest {
 
   @Test
   public void getTypeReturnsPrimitiveType() {
-    EdmProviderImpl edm = new EdmProviderImpl(mock(EdmProvider.class));
-    Parameter parameterProvider = new Parameter();
+    EdmProviderImpl edm = new EdmProviderImpl(mock(CsdlEdmProvider.class));
+    CsdlParameter parameterProvider = new CsdlParameter();
     parameterProvider.setType(EdmPrimitiveTypeKind.Binary.getFullQualifiedName());
     final EdmParameter parameter = new EdmParameterImpl(edm, parameterProvider);
     final EdmType type = parameter.getType();
@@ -56,12 +56,12 @@ public class EdmParameterImplTest {
 
   @Test
   public void getTypeReturnsComplexType() throws Exception {
-    EdmProvider provider = mock(EdmProvider.class);
+    CsdlEdmProvider provider = mock(CsdlEdmProvider.class);
     EdmProviderImpl edm = new EdmProviderImpl(provider);
     final FullQualifiedName complexTypeName = new FullQualifiedName("ns", "complex");
-    ComplexType complexTypeProvider = new ComplexType();
+    CsdlComplexType complexTypeProvider = new CsdlComplexType();
     when(provider.getComplexType(complexTypeName)).thenReturn(complexTypeProvider);
-    Parameter parameterProvider = new Parameter();
+    CsdlParameter parameterProvider = new CsdlParameter();
     parameterProvider.setType(complexTypeName);
     final EdmParameter parameter = new EdmParameterImpl(edm, parameterProvider);
     assertFalse(parameter.isCollection());
@@ -73,12 +73,12 @@ public class EdmParameterImplTest {
 
   @Test
   public void getTypeReturnsEnumType() throws Exception {
-    EdmProvider provider = mock(EdmProvider.class);
+    CsdlEdmProvider provider = mock(CsdlEdmProvider.class);
     EdmProviderImpl edm = new EdmProviderImpl(provider);
     final FullQualifiedName enumTypeName = new FullQualifiedName("ns", "enum");
-    EnumType enumTypeProvider = new EnumType();
+    CsdlEnumType enumTypeProvider = new CsdlEnumType();
     when(provider.getEnumType(enumTypeName)).thenReturn(enumTypeProvider);
-    Parameter parameterProvider = new Parameter();
+    CsdlParameter parameterProvider = new CsdlParameter();
     parameterProvider.setType(enumTypeName);
     final EdmParameter parameter = new EdmParameterImpl(edm, parameterProvider);
     assertFalse(parameter.isCollection());
@@ -90,12 +90,13 @@ public class EdmParameterImplTest {
 
   @Test
   public void getTypeReturnsTypeDefinition() throws Exception {
-    EdmProvider provider = mock(EdmProvider.class);
+    CsdlEdmProvider provider = mock(CsdlEdmProvider.class);
     EdmProviderImpl edm = new EdmProviderImpl(provider);
     final FullQualifiedName typeName = new FullQualifiedName("ns", "definition");
-    TypeDefinition typeProvider = new TypeDefinition().setUnderlyingType(new FullQualifiedName("Edm", "String"));
+    CsdlTypeDefinition typeProvider =
+            new CsdlTypeDefinition().setUnderlyingType(new FullQualifiedName("Edm", "String"));
     when(provider.getTypeDefinition(typeName)).thenReturn(typeProvider);
-    Parameter parameterProvider = new Parameter();
+    CsdlParameter parameterProvider = new CsdlParameter();
     parameterProvider.setType(typeName);
     final EdmParameter parameter = new EdmParameterImpl(edm, parameterProvider);
     final EdmType type = parameter.getType();
@@ -106,8 +107,8 @@ public class EdmParameterImplTest {
 
   @Test
   public void facets() {
-    EdmProviderImpl edm = new EdmProviderImpl(mock(EdmProvider.class));
-    Parameter parameterProvider = new Parameter();
+    EdmProviderImpl edm = new EdmProviderImpl(mock(CsdlEdmProvider.class));
+    CsdlParameter parameterProvider = new CsdlParameter();
     parameterProvider.setType(EdmPrimitiveTypeKind.String.getFullQualifiedName());
     parameterProvider.setPrecision(42);
     parameterProvider.setScale(12);
@@ -123,8 +124,8 @@ public class EdmParameterImplTest {
 
   @Test(expected = EdmException.class)
   public void getTypeWithInvalidSimpleType() {
-    EdmProviderImpl edm = new EdmProviderImpl(mock(EdmProvider.class));
-    Parameter parameterProvider = new Parameter();
+    EdmProviderImpl edm = new EdmProviderImpl(mock(CsdlEdmProvider.class));
+    CsdlParameter parameterProvider = new CsdlParameter();
     parameterProvider.setType(new FullQualifiedName("Edm", "wrong"));
     final EdmParameter parameter = new EdmParameterImpl(edm, parameterProvider);
     parameter.getType();
@@ -132,8 +133,8 @@ public class EdmParameterImplTest {
 
   @Test(expected = EdmException.class)
   public void getTypeWithNonexistingType() {
-    EdmProviderImpl edm = new EdmProviderImpl(mock(EdmProvider.class));
-    Parameter parameterProvider = new Parameter();
+    EdmProviderImpl edm = new EdmProviderImpl(mock(CsdlEdmProvider.class));
+    CsdlParameter parameterProvider = new CsdlParameter();
     parameterProvider.setType(new FullQualifiedName("wrong", "wrong"));
     final EdmParameter parameter = new EdmParameterImpl(edm, parameterProvider);
     parameter.getType();

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/2318953c/lib/server-core/src/test/java/org/apache/olingo/server/core/edm/provider/EdmPropertyImplTest.java
----------------------------------------------------------------------
diff --git a/lib/server-core/src/test/java/org/apache/olingo/server/core/edm/provider/EdmPropertyImplTest.java b/lib/server-core/src/test/java/org/apache/olingo/server/core/edm/provider/EdmPropertyImplTest.java
index cc3e819..b071c27 100644
--- a/lib/server-core/src/test/java/org/apache/olingo/server/core/edm/provider/EdmPropertyImplTest.java
+++ b/lib/server-core/src/test/java/org/apache/olingo/server/core/edm/provider/EdmPropertyImplTest.java
@@ -25,11 +25,11 @@ import org.apache.olingo.commons.api.edm.EdmProperty;
 import org.apache.olingo.commons.api.edm.EdmType;
 import org.apache.olingo.commons.api.edm.FullQualifiedName;
 import org.apache.olingo.commons.api.edm.constants.EdmTypeKind;
-import org.apache.olingo.commons.api.edm.provider.ComplexType;
-import org.apache.olingo.commons.api.edm.provider.EdmProvider;
-import org.apache.olingo.commons.api.edm.provider.EnumType;
-import org.apache.olingo.commons.api.edm.provider.Property;
-import org.apache.olingo.commons.api.edm.provider.TypeDefinition;
+import org.apache.olingo.commons.api.edm.provider.CsdlComplexType;
+import org.apache.olingo.commons.api.edm.provider.CsdlEdmProvider;
+import org.apache.olingo.commons.api.edm.provider.CsdlEnumType;
+import org.apache.olingo.commons.api.edm.provider.CsdlProperty;
+import org.apache.olingo.commons.api.edm.provider.CsdlTypeDefinition;
 import org.apache.olingo.commons.core.edm.EdmPropertyImpl;
 import org.apache.olingo.commons.core.edm.EdmProviderImpl;
 import org.junit.Test;
@@ -46,8 +46,8 @@ public class EdmPropertyImplTest {
 
   @Test
   public void getTypeReturnsPrimitiveType() {
-    EdmProviderImpl edm = new EdmProviderImpl(mock(EdmProvider.class));
-    Property propertyProvider = new Property();
+    EdmProviderImpl edm = new EdmProviderImpl(mock(CsdlEdmProvider.class));
+    CsdlProperty propertyProvider = new CsdlProperty();
     propertyProvider.setType(EdmPrimitiveTypeKind.Binary.getFullQualifiedName());
     final EdmProperty property = new EdmPropertyImpl(edm, null, propertyProvider);
     assertTrue(property.isPrimitive());
@@ -59,12 +59,12 @@ public class EdmPropertyImplTest {
 
   @Test
   public void getTypeReturnsComplexType() throws Exception {
-    EdmProvider provider = mock(EdmProvider.class);
+    CsdlEdmProvider provider = mock(CsdlEdmProvider.class);
     EdmProviderImpl edm = new EdmProviderImpl(provider);
     final FullQualifiedName complexTypeName = new FullQualifiedName("ns", "complex");
-    ComplexType complexTypeProvider = new ComplexType();
+    CsdlComplexType complexTypeProvider = new CsdlComplexType();
     when(provider.getComplexType(complexTypeName)).thenReturn(complexTypeProvider);
-    Property propertyProvider = new Property();
+    CsdlProperty propertyProvider = new CsdlProperty();
     propertyProvider.setType(complexTypeName);
     final EdmProperty property = new EdmPropertyImpl(edm, complexTypeName, propertyProvider);
     assertFalse(property.isCollection());
@@ -77,12 +77,12 @@ public class EdmPropertyImplTest {
 
   @Test
   public void getTypeReturnsEnumType() throws Exception {
-    EdmProvider provider = mock(EdmProvider.class);
+    CsdlEdmProvider provider = mock(CsdlEdmProvider.class);
     EdmProviderImpl edm = new EdmProviderImpl(provider);
     final FullQualifiedName enumTypeName = new FullQualifiedName("ns", "enum");
-    EnumType enumTypeProvider = new EnumType();
+    CsdlEnumType enumTypeProvider = new CsdlEnumType();
     when(provider.getEnumType(enumTypeName)).thenReturn(enumTypeProvider);
-    Property propertyProvider = new Property();
+    CsdlProperty propertyProvider = new CsdlProperty();
     propertyProvider.setType(enumTypeName);
     final EdmProperty property = new EdmPropertyImpl(edm, null, propertyProvider);
     assertFalse(property.isCollection());
@@ -95,12 +95,13 @@ public class EdmPropertyImplTest {
 
   @Test
   public void getTypeReturnsTypeDefinition() throws Exception {
-    EdmProvider provider = mock(EdmProvider.class);
+    CsdlEdmProvider provider = mock(CsdlEdmProvider.class);
     EdmProviderImpl edm = new EdmProviderImpl(provider);
     final FullQualifiedName typeName = new FullQualifiedName("ns", "definition");
-    TypeDefinition typeProvider = new TypeDefinition().setUnderlyingType(new FullQualifiedName("Edm", "String"));
+    CsdlTypeDefinition typeProvider =
+            new CsdlTypeDefinition().setUnderlyingType(new FullQualifiedName("Edm", "String"));
     when(provider.getTypeDefinition(typeName)).thenReturn(typeProvider);
-    Property propertyProvider = new Property();
+    CsdlProperty propertyProvider = new CsdlProperty();
     propertyProvider.setType(typeName);
     final EdmProperty property = new EdmPropertyImpl(edm, null, propertyProvider);
     assertFalse(property.isPrimitive());
@@ -112,9 +113,9 @@ public class EdmPropertyImplTest {
 
   @Test(expected = EdmException.class)
   public void getTypeReturnsWrongType() throws Exception {
-    EdmProvider provider = mock(EdmProvider.class);
+    CsdlEdmProvider provider = mock(CsdlEdmProvider.class);
     EdmProviderImpl edm = new EdmProviderImpl(provider);
-    final Property propertyProvider = new Property()
+    final CsdlProperty propertyProvider = new CsdlProperty()
         .setType(new FullQualifiedName("ns", "wrong"));
     final EdmProperty property = new EdmPropertyImpl(edm, null, propertyProvider);
     property.getType();
@@ -123,9 +124,9 @@ public class EdmPropertyImplTest {
 
   @Test(expected = EdmException.class)
   public void getTypeReturnsNoTypeKind() throws Exception {
-    EdmProvider provider = mock(EdmProvider.class);
+    CsdlEdmProvider provider = mock(CsdlEdmProvider.class);
     EdmProviderImpl edm = new EdmProviderImpl(provider);
-    final Property propertyProvider = new Property()
+    final CsdlProperty propertyProvider = new CsdlProperty()
         .setType(new FullQualifiedName(EdmPrimitiveType.EDM_NAMESPACE, "type"));
     final EdmProperty property = new EdmPropertyImpl(edm, null, propertyProvider);
     property.getType();
@@ -134,8 +135,8 @@ public class EdmPropertyImplTest {
 
   @Test
   public void facets() {
-    EdmProviderImpl edm = new EdmProviderImpl(mock(EdmProvider.class));
-    Property propertyProvider = new Property();
+    EdmProviderImpl edm = new EdmProviderImpl(mock(CsdlEdmProvider.class));
+    CsdlProperty propertyProvider = new CsdlProperty();
     propertyProvider.setType(EdmPrimitiveTypeKind.String.getFullQualifiedName());
     propertyProvider.setPrecision(42);
     propertyProvider.setScale(12);

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/2318953c/lib/server-core/src/test/java/org/apache/olingo/server/core/edm/provider/EdmProviderImplOverloadingTest.java
----------------------------------------------------------------------
diff --git a/lib/server-core/src/test/java/org/apache/olingo/server/core/edm/provider/EdmProviderImplOverloadingTest.java b/lib/server-core/src/test/java/org/apache/olingo/server/core/edm/provider/EdmProviderImplOverloadingTest.java
index f7fb6c5..3db70de 100644
--- a/lib/server-core/src/test/java/org/apache/olingo/server/core/edm/provider/EdmProviderImplOverloadingTest.java
+++ b/lib/server-core/src/test/java/org/apache/olingo/server/core/edm/provider/EdmProviderImplOverloadingTest.java
@@ -23,10 +23,10 @@ import org.apache.olingo.commons.api.edm.EdmAction;
 import org.apache.olingo.commons.api.edm.EdmException;
 import org.apache.olingo.commons.api.edm.EdmFunction;
 import org.apache.olingo.commons.api.edm.FullQualifiedName;
-import org.apache.olingo.commons.api.edm.provider.Action;
-import org.apache.olingo.commons.api.edm.provider.EdmProvider;
-import org.apache.olingo.commons.api.edm.provider.Function;
-import org.apache.olingo.commons.api.edm.provider.Parameter;
+import org.apache.olingo.commons.api.edm.provider.CsdlAction;
+import org.apache.olingo.commons.api.edm.provider.CsdlEdmProvider;
+import org.apache.olingo.commons.api.edm.provider.CsdlFunction;
+import org.apache.olingo.commons.api.edm.provider.CsdlParameter;
 import org.apache.olingo.commons.core.edm.EdmProviderImpl;
 import org.junit.Before;
 import org.junit.Test;
@@ -54,48 +54,48 @@ public class EdmProviderImplOverloadingTest {
 
   @Before
   public void setup() throws Exception {
-    EdmProvider provider = mock(EdmProvider.class);
+    CsdlEdmProvider provider = mock(CsdlEdmProvider.class);
 
-    List<Action> actions = new ArrayList<Action>();
-    Action action = new Action().setName(operationName1.getName());
+    List<CsdlAction> actions = new ArrayList<CsdlAction>();
+    CsdlAction action = new CsdlAction().setName(operationName1.getName());
     actions.add(action);
-    List<Parameter> action1Parameters = new ArrayList<Parameter>();
-    action1Parameters.add(new Parameter().setType(operationType1).setCollection(false));
+    List<CsdlParameter> action1Parameters = new ArrayList<CsdlParameter>();
+    action1Parameters.add(new CsdlParameter().setType(operationType1).setCollection(false));
     action =
-        new Action().setName(operationName1.getName()).setBound(true).setParameters(action1Parameters);
+        new CsdlAction().setName(operationName1.getName()).setBound(true).setParameters(action1Parameters);
     actions.add(action);
-    List<Parameter> action2Parameters = new ArrayList<Parameter>();
-    action2Parameters.add(new Parameter().setType(operationType1).setCollection(true));
+    List<CsdlParameter> action2Parameters = new ArrayList<CsdlParameter>();
+    action2Parameters.add(new CsdlParameter().setType(operationType1).setCollection(true));
     action =
-        new Action().setName(operationName1.getName()).setBound(true).setParameters(action2Parameters);
+        new CsdlAction().setName(operationName1.getName()).setBound(true).setParameters(action2Parameters);
     actions.add(action);
     when(provider.getActions(operationName1)).thenReturn(actions);
 
-    List<Function> functions = new ArrayList<Function>();
-    Function function = new Function().setName(operationName1.getName());
+    List<CsdlFunction> functions = new ArrayList<CsdlFunction>();
+    CsdlFunction function = new CsdlFunction().setName(operationName1.getName());
     functions.add(function);
-    List<Parameter> function1Parameters = new ArrayList<Parameter>();
-    function1Parameters.add(new Parameter().setType(operationType1).setName("a"));
-    function = new Function().setName(operationName1.getName()).setParameters(function1Parameters);
+    List<CsdlParameter> function1Parameters = new ArrayList<CsdlParameter>();
+    function1Parameters.add(new CsdlParameter().setType(operationType1).setName("a"));
+    function = new CsdlFunction().setName(operationName1.getName()).setParameters(function1Parameters);
     functions.add(function);
-    List<Parameter> function2Parameters = new ArrayList<Parameter>();
-    function2Parameters.add(new Parameter().setType(operationType1).setName("b"));
-    function = new Function().setName(operationName1.getName()).setParameters(function2Parameters);
+    List<CsdlParameter> function2Parameters = new ArrayList<CsdlParameter>();
+    function2Parameters.add(new CsdlParameter().setType(operationType1).setName("b"));
+    function = new CsdlFunction().setName(operationName1.getName()).setParameters(function2Parameters);
     functions.add(function);
-    List<Parameter> function3Parameters = new ArrayList<Parameter>();
-    function3Parameters.add(new Parameter().setName("a").setType(operationType1));
-    function3Parameters.add(new Parameter().setName("b").setType(operationType1));
-    function = new Function().setName(operationName1.getName()).setParameters(function3Parameters).setBound(true);
+    List<CsdlParameter> function3Parameters = new ArrayList<CsdlParameter>();
+    function3Parameters.add(new CsdlParameter().setName("a").setType(operationType1));
+    function3Parameters.add(new CsdlParameter().setName("b").setType(operationType1));
+    function = new CsdlFunction().setName(operationName1.getName()).setParameters(function3Parameters).setBound(true);
     functions.add(function);
-    List<Parameter> function4Parameters = new ArrayList<Parameter>();
-    function4Parameters.add(new Parameter().setName("a").setType(operationType2));
-    function4Parameters.add(new Parameter().setName("b").setType(operationType2));
-    function = new Function().setName(operationName1.getName()).setParameters(function4Parameters).setBound(true);
+    List<CsdlParameter> function4Parameters = new ArrayList<CsdlParameter>();
+    function4Parameters.add(new CsdlParameter().setName("a").setType(operationType2));
+    function4Parameters.add(new CsdlParameter().setName("b").setType(operationType2));
+    function = new CsdlFunction().setName(operationName1.getName()).setParameters(function4Parameters).setBound(true);
     functions.add(function);
     when(provider.getFunctions(operationName1)).thenReturn(functions);
 
-    List<Function> badFunctions = new ArrayList<Function>();
-    Function badFunction = new Function().setName(operationName1.getName()).setBound(true).setParameters(null);
+    List<CsdlFunction> badFunctions = new ArrayList<CsdlFunction>();
+    CsdlFunction badFunction = new CsdlFunction().setName(operationName1.getName()).setBound(true).setParameters(null);
     badFunctions.add(badFunction);
 
     when(provider.getFunctions(badOperationName)).thenReturn(badFunctions);

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/2318953c/lib/server-core/src/test/java/org/apache/olingo/server/core/edm/provider/EdmProviderImplTest.java
----------------------------------------------------------------------
diff --git a/lib/server-core/src/test/java/org/apache/olingo/server/core/edm/provider/EdmProviderImplTest.java b/lib/server-core/src/test/java/org/apache/olingo/server/core/edm/provider/EdmProviderImplTest.java
index aa98ad8..089f4f0 100644
--- a/lib/server-core/src/test/java/org/apache/olingo/server/core/edm/provider/EdmProviderImplTest.java
+++ b/lib/server-core/src/test/java/org/apache/olingo/server/core/edm/provider/EdmProviderImplTest.java
@@ -27,14 +27,14 @@ import org.apache.olingo.commons.api.edm.EdmEnumType;
 import org.apache.olingo.commons.api.edm.EdmException;
 import org.apache.olingo.commons.api.edm.EdmTypeDefinition;
 import org.apache.olingo.commons.api.edm.FullQualifiedName;
-import org.apache.olingo.commons.api.edm.provider.AliasInfo;
-import org.apache.olingo.commons.api.edm.provider.ComplexType;
-import org.apache.olingo.commons.api.edm.provider.EdmProvider;
-import org.apache.olingo.commons.api.edm.provider.EntityContainerInfo;
-import org.apache.olingo.commons.api.edm.provider.EntityType;
-import org.apache.olingo.commons.api.edm.provider.EnumType;
-import org.apache.olingo.commons.api.edm.provider.PropertyRef;
-import org.apache.olingo.commons.api.edm.provider.TypeDefinition;
+import org.apache.olingo.commons.api.edm.provider.CsdlAliasInfo;
+import org.apache.olingo.commons.api.edm.provider.CsdlComplexType;
+import org.apache.olingo.commons.api.edm.provider.CsdlEdmProvider;
+import org.apache.olingo.commons.api.edm.provider.CsdlEntityContainerInfo;
+import org.apache.olingo.commons.api.edm.provider.CsdlEntityType;
+import org.apache.olingo.commons.api.edm.provider.CsdlEnumType;
+import org.apache.olingo.commons.api.edm.provider.CsdlPropertyRef;
+import org.apache.olingo.commons.api.edm.provider.CsdlTypeDefinition;
 import org.apache.olingo.commons.core.edm.EdmProviderImpl;
 import org.junit.Before;
 import org.junit.Test;
@@ -59,26 +59,26 @@ public class EdmProviderImplTest {
 
   @Before
   public void setup() throws Exception {
-    EdmProvider provider = mock(EdmProvider.class);
-    EntityContainerInfo containerInfo = new EntityContainerInfo().setContainerName(FQN);
+    CsdlEdmProvider provider = mock(CsdlEdmProvider.class);
+    CsdlEntityContainerInfo containerInfo = new CsdlEntityContainerInfo().setContainerName(FQN);
     when(provider.getEntityContainerInfo(FQN)).thenReturn(containerInfo);
     when(provider.getEntityContainerInfo(null)).thenReturn(containerInfo);
 
-    EnumType enumType = new EnumType().setName(FQN.getName());
+    CsdlEnumType enumType = new CsdlEnumType().setName(FQN.getName());
     when(provider.getEnumType(FQN)).thenReturn(enumType);
 
-    TypeDefinition typeDefinition =
-        new TypeDefinition().setName(FQN.getName()).setUnderlyingType(new FullQualifiedName("Edm", "String"));
+    CsdlTypeDefinition typeDefinition =
+        new CsdlTypeDefinition().setName(FQN.getName()).setUnderlyingType(new FullQualifiedName("Edm", "String"));
     when(provider.getTypeDefinition(FQN)).thenReturn(typeDefinition);
 
-    EntityType entityType = new EntityType().setName(FQN.getName()).setKey(new ArrayList<PropertyRef>());
+    CsdlEntityType entityType = new CsdlEntityType().setName(FQN.getName()).setKey(new ArrayList<CsdlPropertyRef>());
     when(provider.getEntityType(FQN)).thenReturn(entityType);
 
-    ComplexType complexType = new ComplexType().setName(FQN.getName());
+    CsdlComplexType complexType = new CsdlComplexType().setName(FQN.getName());
     when(provider.getComplexType(FQN)).thenReturn(complexType);
 
-    List<AliasInfo> aliasInfos = new ArrayList<AliasInfo>();
-    aliasInfos.add(new AliasInfo().setAlias("alias").setNamespace("namespace"));
+    List<CsdlAliasInfo> aliasInfos = new ArrayList<CsdlAliasInfo>();
+    aliasInfos.add(new CsdlAliasInfo().setAlias("alias").setNamespace("namespace"));
     when(provider.getAliasInfos()).thenReturn(aliasInfos);
 
     edm = new EdmProviderImpl(provider);
@@ -86,7 +86,7 @@ public class EdmProviderImplTest {
 
   @Test
   public void nothingSpecifiedMustNotResultInExceptions() throws Exception {
-    EdmProvider localProvider = mock(EdmProvider.class);
+    CsdlEdmProvider localProvider = mock(CsdlEdmProvider.class);
     when(localProvider.getActions(FQN)).thenReturn(null);
     when(localProvider.getFunctions(FQN)).thenReturn(null);
     Edm localEdm = new EdmProviderImpl(localProvider);
@@ -103,7 +103,7 @@ public class EdmProviderImplTest {
 
   @Test
   public void convertExceptionsTest() throws Exception {
-    EdmProvider localProvider = mock(EdmProvider.class);
+    CsdlEdmProvider localProvider = mock(CsdlEdmProvider.class);
     FullQualifiedName fqn = new FullQualifiedName("namespace", "name");
     when(localProvider.getEntityContainerInfo(fqn)).thenThrow(new ODataException("msg"));
     when(localProvider.getEnumType(fqn)).thenThrow(new ODataException("msg"));
@@ -161,7 +161,7 @@ public class EdmProviderImplTest {
 
   @Test(expected = EdmException.class)
   public void convertExceptionsAliasTest() throws Exception {
-    EdmProvider localProvider = mock(EdmProvider.class);
+    CsdlEdmProvider localProvider = mock(CsdlEdmProvider.class);
     when(localProvider.getAliasInfos()).thenThrow(new ODataException("msg"));
 
     Edm localEdm = new EdmProviderImpl(localProvider);

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/2318953c/lib/server-core/src/test/java/org/apache/olingo/server/core/edm/provider/EdmReturnTypeImplTest.java
----------------------------------------------------------------------
diff --git a/lib/server-core/src/test/java/org/apache/olingo/server/core/edm/provider/EdmReturnTypeImplTest.java b/lib/server-core/src/test/java/org/apache/olingo/server/core/edm/provider/EdmReturnTypeImplTest.java
index e8cecee..2d95ca7 100644
--- a/lib/server-core/src/test/java/org/apache/olingo/server/core/edm/provider/EdmReturnTypeImplTest.java
+++ b/lib/server-core/src/test/java/org/apache/olingo/server/core/edm/provider/EdmReturnTypeImplTest.java
@@ -27,7 +27,7 @@ import org.apache.olingo.commons.api.edm.EdmReturnType;
 import org.apache.olingo.commons.api.edm.EdmType;
 import org.apache.olingo.commons.api.edm.EdmTypeDefinition;
 import org.apache.olingo.commons.api.edm.FullQualifiedName;
-import org.apache.olingo.commons.api.edm.provider.ReturnType;
+import org.apache.olingo.commons.api.edm.provider.CsdlReturnType;
 import org.apache.olingo.commons.core.edm.primitivetype.EdmPrimitiveTypeFactory;
 import org.apache.olingo.commons.core.edm.EdmProviderImpl;
 import org.apache.olingo.commons.core.edm.EdmReturnTypeImpl;
@@ -44,7 +44,7 @@ public class EdmReturnTypeImplTest {
 
   @Test
   public void primitiveReturnType() {
-    ReturnType providerType = new ReturnType().setType(new FullQualifiedName("Edm", "String"));
+    CsdlReturnType providerType = new CsdlReturnType().setType(new FullQualifiedName("Edm", "String"));
 
     EdmReturnType typeImpl = new EdmReturnTypeImpl(mock(EdmProviderImpl.class), providerType);
 
@@ -59,7 +59,8 @@ public class EdmReturnTypeImplTest {
 
   @Test
   public void primitiveCollectionReturnType() {
-    ReturnType providerType = new ReturnType().setType(new FullQualifiedName("Edm", "String")).setCollection(true);
+    CsdlReturnType providerType = new CsdlReturnType().setType(
+            new FullQualifiedName("Edm", "String")).setCollection(true);
 
     EdmReturnType typeImpl = new EdmReturnTypeImpl(mock(EdmProviderImpl.class), providerType);
 
@@ -69,7 +70,8 @@ public class EdmReturnTypeImplTest {
 
   @Test(expected = EdmException.class)
   public void invalidPrimitiveType() {
-    ReturnType providerType = new ReturnType().setType(new FullQualifiedName("Edm", "wrong")).setCollection(true);
+    CsdlReturnType providerType = new CsdlReturnType().setType(
+            new FullQualifiedName("Edm", "wrong")).setCollection(true);
     EdmReturnType typeImpl = new EdmReturnTypeImpl(mock(EdmProviderImpl.class), providerType);
     typeImpl.getType();
   }
@@ -80,7 +82,7 @@ public class EdmReturnTypeImplTest {
     FullQualifiedName baseType = new FullQualifiedName("namespace", "type");
     EdmComplexType edmType = mock(EdmComplexType.class);
     when(mock.getComplexType(baseType)).thenReturn(edmType);
-    ReturnType providerType = new ReturnType().setType(baseType);
+    CsdlReturnType providerType = new CsdlReturnType().setType(baseType);
     EdmReturnType typeImpl = new EdmReturnTypeImpl(mock, providerType);
     EdmType returnedType = typeImpl.getType();
     assertEquals(edmType, returnedType);
@@ -92,7 +94,7 @@ public class EdmReturnTypeImplTest {
     FullQualifiedName baseType = new FullQualifiedName("namespace", "type");
     EdmEntityType edmType = mock(EdmEntityType.class);
     when(mock.getEntityType(baseType)).thenReturn(edmType);
-    ReturnType providerType = new ReturnType().setType(baseType);
+    CsdlReturnType providerType = new CsdlReturnType().setType(baseType);
     EdmReturnType typeImpl = new EdmReturnTypeImpl(mock, providerType);
     EdmType returnedType = typeImpl.getType();
     assertEquals(edmType, returnedType);
@@ -104,7 +106,7 @@ public class EdmReturnTypeImplTest {
     FullQualifiedName baseType = new FullQualifiedName("namespace", "type");
     EdmEnumType edmType = mock(EdmEnumType.class);
     when(mock.getEnumType(baseType)).thenReturn(edmType);
-    ReturnType providerType = new ReturnType().setType(baseType);
+    CsdlReturnType providerType = new CsdlReturnType().setType(baseType);
     EdmReturnType typeImpl = new EdmReturnTypeImpl(mock, providerType);
     EdmType returnedType = typeImpl.getType();
     assertEquals(edmType, returnedType);
@@ -116,7 +118,7 @@ public class EdmReturnTypeImplTest {
     FullQualifiedName baseType = new FullQualifiedName("namespace", "type");
     EdmTypeDefinition edmType = mock(EdmTypeDefinition.class);
     when(mock.getTypeDefinition(baseType)).thenReturn(edmType);
-    ReturnType providerType = new ReturnType().setType(baseType);
+    CsdlReturnType providerType = new CsdlReturnType().setType(baseType);
     EdmReturnType typeImpl = new EdmReturnTypeImpl(mock, providerType);
     EdmType returnedType = typeImpl.getType();
     assertEquals(edmType, returnedType);
@@ -124,7 +126,7 @@ public class EdmReturnTypeImplTest {
 
   @Test(expected = EdmException.class)
   public void invalidType() {
-    ReturnType providerType = new ReturnType().setType(new FullQualifiedName("wrong", "wrong"));
+    CsdlReturnType providerType = new CsdlReturnType().setType(new FullQualifiedName("wrong", "wrong"));
     EdmReturnType typeImpl = new EdmReturnTypeImpl(mock(EdmProviderImpl.class), providerType);
     typeImpl.getType();
   }


[08/50] [abbrv] olingo-odata4 git commit: [OLINGO-564] Moved client edm classes

Posted by mi...@apache.org.
[OLINGO-564] Moved client edm classes


Project: http://git-wip-us.apache.org/repos/asf/olingo-odata4/repo
Commit: http://git-wip-us.apache.org/repos/asf/olingo-odata4/commit/cbbe3da6
Tree: http://git-wip-us.apache.org/repos/asf/olingo-odata4/tree/cbbe3da6
Diff: http://git-wip-us.apache.org/repos/asf/olingo-odata4/diff/cbbe3da6

Branch: refs/heads/master
Commit: cbbe3da695ffaf629aa1da7b956801bb722e3ddd
Parents: 754e23a
Author: Michael Bolz <mi...@sap.com>
Authored: Fri Apr 24 09:12:05 2015 +0200
Committer: Michael Bolz <mi...@sap.com>
Committed: Fri Apr 24 09:12:05 2015 +0200

----------------------------------------------------------------------
 .../retrieve/XMLMetadataRequestImpl.java        |   8 +-
 .../client/core/edm/ClientXMLMetadata.java      |  75 ++++
 ...tAnnotatableDynamicAnnotationExpression.java |  38 ++
 .../xml/AbstractClientAnnotationExpression.java |  49 +++
 ...stractClientDynamicAnnotationExpression.java | 356 ++++++++++++++++++
 .../edm/xml/AbstractClientEdmDeserializer.java  |   4 +-
 ...tractClientElementOrAttributeExpression.java |  37 ++
 .../client/core/edm/xml/ClientAction.java       |   2 +-
 .../client/core/edm/xml/ClientActionImport.java |   2 +-
 .../client/core/edm/xml/ClientAnnotation.java   |   3 +-
 .../core/edm/xml/ClientAnnotationPath.java      |  27 ++
 .../client/core/edm/xml/ClientAnnotations.java  |   2 +-
 .../olingo/client/core/edm/xml/ClientApply.java |  80 +++++
 .../olingo/client/core/edm/xml/ClientCast.java  | 137 +++++++
 .../client/core/edm/xml/ClientCollection.java   |  64 ++++
 .../client/core/edm/xml/ClientComplexType.java  |   2 +-
 .../xml/ClientConstantAnnotationExpression.java |  52 +++
 .../client/core/edm/xml/ClientDataServices.java |   2 +-
 .../core/edm/xml/ClientEntityContainer.java     |   2 +-
 .../client/core/edm/xml/ClientEntityKey.java    |   2 +-
 .../client/core/edm/xml/ClientEntitySet.java    |   2 +-
 .../client/core/edm/xml/ClientEntityType.java   |   2 +-
 .../client/core/edm/xml/ClientEnumMember.java   |   2 +-
 .../client/core/edm/xml/ClientEnumType.java     |   2 +-
 .../client/core/edm/xml/ClientFunction.java     |   2 +-
 .../core/edm/xml/ClientFunctionImport.java      |   2 +-
 .../olingo/client/core/edm/xml/ClientIf.java    |  61 ++++
 .../client/core/edm/xml/ClientInclude.java      |   2 +-
 .../core/edm/xml/ClientIncludeAnnotations.java  |   2 +-
 .../olingo/client/core/edm/xml/ClientIsOf.java  | 136 +++++++
 .../core/edm/xml/ClientLabeledElement.java      |  79 ++++
 .../edm/xml/ClientLabeledElementReference.java  |  28 ++
 .../core/edm/xml/ClientNavigationProperty.java  |   2 +-
 .../xml/ClientNavigationPropertyBinding.java    |   2 +-
 .../edm/xml/ClientNavigationPropertyPath.java   |  28 ++
 .../olingo/client/core/edm/xml/ClientNot.java   |  39 ++
 .../olingo/client/core/edm/xml/ClientNull.java  |  51 +++
 .../client/core/edm/xml/ClientOnDelete.java     |   2 +-
 .../client/core/edm/xml/ClientParameter.java    |   2 +-
 .../olingo/client/core/edm/xml/ClientPath.java  |  27 ++
 .../client/core/edm/xml/ClientProperty.java     |   2 +-
 .../client/core/edm/xml/ClientPropertyPath.java |  27 ++
 .../client/core/edm/xml/ClientPropertyRef.java  |   2 +-
 .../core/edm/xml/ClientPropertyValue.java       |  80 +++++
 .../client/core/edm/xml/ClientRecord.java       |  76 ++++
 .../client/core/edm/xml/ClientReference.java    |   2 +-
 .../edm/xml/ClientReferentialConstraint.java    |   2 +-
 .../client/core/edm/xml/ClientReturnType.java   |   2 +-
 .../client/core/edm/xml/ClientSchema.java       |   2 +-
 .../client/core/edm/xml/ClientSingleton.java    |   2 +-
 .../olingo/client/core/edm/xml/ClientTerm.java  |   2 +-
 ...tTwoParamsOpDynamicAnnotationExpression.java |  62 ++++
 .../core/edm/xml/ClientTypeDefinition.java      |   2 +-
 .../client/core/edm/xml/ClientUrlRef.java       |  65 ++++
 .../client/core/edm/xml/ClientXMLMetadata.java  |  75 ----
 ...tAnnotatableDynamicAnnotationExpression.java |  38 --
 .../AbstractClientAnnotationExpression.java     |  49 ---
 ...stractClientDynamicAnnotationExpression.java | 357 -------------------
 ...tractClientElementOrAttributeExpression.java |  37 --
 .../xml/annotation/ClientAnnotationPath.java    |  27 --
 .../core/edm/xml/annotation/ClientApply.java    |  82 -----
 .../core/edm/xml/annotation/ClientCast.java     | 139 --------
 .../edm/xml/annotation/ClientCollection.java    |  65 ----
 .../ClientConstantAnnotationExpression.java     |  52 ---
 .../core/edm/xml/annotation/ClientIf.java       |  61 ----
 .../core/edm/xml/annotation/ClientIsOf.java     | 138 -------
 .../xml/annotation/ClientLabeledElement.java    |  81 -----
 .../ClientLabeledElementReference.java          |  28 --
 .../ClientNavigationPropertyPath.java           |  28 --
 .../core/edm/xml/annotation/ClientNot.java      |  39 --
 .../core/edm/xml/annotation/ClientNull.java     |  53 ---
 .../core/edm/xml/annotation/ClientPath.java     |  27 --
 .../edm/xml/annotation/ClientPropertyPath.java  |  27 --
 .../edm/xml/annotation/ClientPropertyValue.java |  82 -----
 .../core/edm/xml/annotation/ClientRecord.java   |  78 ----
 ...tTwoParamsOpDynamicAnnotationExpression.java |  62 ----
 .../core/edm/xml/annotation/ClientUrlRef.java   |  66 ----
 .../ClientODataDeserializerImpl.java            |   2 +-
 .../olingo/client/core/uri/URIEscapeTest.java   |   4 +-
 .../client/core/uri/v4/FilterFactoryTest.java   |   4 +-
 .../olingo/client/core/v4/MetadataTest.java     |  21 +-
 81 files changed, 1721 insertions(+), 1746 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/cbbe3da6/lib/client-core/src/main/java/org/apache/olingo/client/core/communication/request/retrieve/XMLMetadataRequestImpl.java
----------------------------------------------------------------------
diff --git a/lib/client-core/src/main/java/org/apache/olingo/client/core/communication/request/retrieve/XMLMetadataRequestImpl.java b/lib/client-core/src/main/java/org/apache/olingo/client/core/communication/request/retrieve/XMLMetadataRequestImpl.java
index 510c9e6..304c1bc 100644
--- a/lib/client-core/src/main/java/org/apache/olingo/client/core/communication/request/retrieve/XMLMetadataRequestImpl.java
+++ b/lib/client-core/src/main/java/org/apache/olingo/client/core/communication/request/retrieve/XMLMetadataRequestImpl.java
@@ -31,8 +31,6 @@ import org.apache.olingo.client.api.edm.xml.Include;
 import org.apache.olingo.client.api.edm.xml.IncludeAnnotations;
 import org.apache.olingo.client.api.edm.xml.Reference;
 import org.apache.olingo.client.api.edm.xml.XMLMetadata;
-import org.apache.olingo.client.core.edm.xml.ClientAnnotations;
-import org.apache.olingo.client.core.edm.xml.ClientSchema;
 import org.apache.olingo.commons.api.edm.provider.Annotation;
 import org.apache.olingo.commons.api.edm.provider.Annotations;
 import org.apache.olingo.commons.api.edm.provider.Schema;
@@ -68,7 +66,7 @@ public class XMLMetadataRequestImpl
         if (includedSchema != null) {
           response.getBody().getSchemas().add(includedSchema);
           if (StringUtils.isNotBlank(include.getAlias())) {
-            ((ClientSchema) includedSchema).setAlias(include.getAlias());
+            includedSchema.setAlias(include.getAlias());
           }
         }
       }
@@ -77,7 +75,7 @@ public class XMLMetadataRequestImpl
       for (IncludeAnnotations include : reference.getIncludeAnnotations()) {
         for (Schema schema : includeMetadata.getSchemas()) {
           // create empty schema that will be fed with edm:Annotations that match the criteria in IncludeAnnotations
-          final ClientSchema forInclusion = new ClientSchema();
+          final Schema forInclusion = new Schema();
           forInclusion.setNamespace(schema.getNamespace());
           forInclusion.setAlias(schema.getAlias());
 
@@ -91,7 +89,7 @@ public class XMLMetadataRequestImpl
                 && (StringUtils.isBlank(include.getQualifier())
                 || include.getQualifier().equals(annotationGroup.getQualifier()))) {
 
-              final ClientAnnotations toBeIncluded = new ClientAnnotations();
+              final Annotations toBeIncluded = new Annotations();
               toBeIncluded.setTarget(annotationGroup.getTarget());
               toBeIncluded.setQualifier(annotationGroup.getQualifier());
               // only import annotations with terms matching the given TermNamespace

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/cbbe3da6/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/ClientXMLMetadata.java
----------------------------------------------------------------------
diff --git a/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/ClientXMLMetadata.java b/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/ClientXMLMetadata.java
new file mode 100644
index 0000000..661750d
--- /dev/null
+++ b/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/ClientXMLMetadata.java
@@ -0,0 +1,75 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ * 
+ * http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.olingo.client.core.edm;
+
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
+import org.apache.commons.lang3.StringUtils;
+import org.apache.olingo.client.api.edm.xml.Edmx;
+import org.apache.olingo.client.api.edm.xml.Reference;
+import org.apache.olingo.client.api.edm.xml.XMLMetadata;
+import org.apache.olingo.commons.api.edm.provider.AbstractEdmItem;
+import org.apache.olingo.commons.api.edm.provider.Schema;
+
+/**
+ * Entry point for access information about EDM metadata.
+ */
+public class ClientXMLMetadata extends AbstractEdmItem implements XMLMetadata {
+
+  private static final long serialVersionUID = 6025723060298454901L;
+  protected final Edmx edmx;
+
+  public ClientXMLMetadata(final Edmx edmx) {
+    this.edmx = edmx;
+  }
+
+  @Override
+  public List<Schema> getSchemas() {
+    return this.edmx.getDataServices().getSchemas();
+  }
+
+  @Override
+  public Schema getSchema(final int index) {
+    return getSchemas().get(index);
+  }
+
+  @Override
+  public Schema getSchema(final String key) {
+    return getSchemaByNsOrAlias().get(key);
+  }
+
+  @Override
+  public Map<String, Schema> getSchemaByNsOrAlias() {
+    final Map<String, Schema> schemaByNsOrAlias = new HashMap<String, Schema>();
+    for (Schema schema : getSchemas()) {
+      schemaByNsOrAlias.put(schema.getNamespace(), schema);
+      if (StringUtils.isNotBlank(schema.getAlias())) {
+        schemaByNsOrAlias.put(schema.getAlias(), schema);
+      }
+    }
+    return schemaByNsOrAlias;
+  }
+
+  @Override
+  public List<Reference> getReferences() {
+    return this.edmx.getReferences();
+  }
+}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/cbbe3da6/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/AbstractClientAnnotatableDynamicAnnotationExpression.java
----------------------------------------------------------------------
diff --git a/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/AbstractClientAnnotatableDynamicAnnotationExpression.java b/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/AbstractClientAnnotatableDynamicAnnotationExpression.java
new file mode 100644
index 0000000..614ca1f
--- /dev/null
+++ b/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/AbstractClientAnnotatableDynamicAnnotationExpression.java
@@ -0,0 +1,38 @@
+/*
+ * 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.client.core.edm.xml;
+
+import java.util.ArrayList;
+import java.util.List;
+
+import org.apache.olingo.commons.api.edm.provider.Annotatable;
+import org.apache.olingo.commons.api.edm.provider.Annotation;
+
+abstract class AbstractClientAnnotatableDynamicAnnotationExpression
+        extends AbstractClientDynamicAnnotationExpression implements Annotatable {
+
+  private static final long serialVersionUID = -450668773857358139L;
+
+  private final List<Annotation> annotations = new ArrayList<Annotation>();
+
+  @Override
+  public List<Annotation> getAnnotations() {
+    return annotations;
+  }
+}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/cbbe3da6/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/AbstractClientAnnotationExpression.java
----------------------------------------------------------------------
diff --git a/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/AbstractClientAnnotationExpression.java b/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/AbstractClientAnnotationExpression.java
new file mode 100644
index 0000000..4bc802f
--- /dev/null
+++ b/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/AbstractClientAnnotationExpression.java
@@ -0,0 +1,49 @@
+/*
+ * 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.client.core.edm.xml;
+
+import org.apache.olingo.commons.api.edm.provider.AbstractEdmItem;
+import org.apache.olingo.commons.api.edm.provider.annotation.AnnotationExpression;
+import org.apache.olingo.commons.api.edm.provider.annotation.ConstantAnnotationExpression;
+import org.apache.olingo.commons.api.edm.provider.annotation.DynamicAnnotationExpression;
+
+abstract class AbstractClientAnnotationExpression extends AbstractEdmItem implements AnnotationExpression {
+
+  private static final long serialVersionUID = -4238652997159205377L;
+
+  @Override
+  public boolean isConstant() {
+    return this instanceof ConstantAnnotationExpression;
+  }
+
+  @Override
+  public ConstantAnnotationExpression asConstant() {
+    return isConstant() ? (ConstantAnnotationExpression) this : null;
+  }
+
+  @Override
+  public boolean isDynamic() {
+    return this instanceof DynamicAnnotationExpression;
+  }
+
+  @Override
+  public DynamicAnnotationExpression asDynamic() {
+    return isDynamic() ? (DynamicAnnotationExpression) this : null;
+  }
+}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/cbbe3da6/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/AbstractClientDynamicAnnotationExpression.java
----------------------------------------------------------------------
diff --git a/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/AbstractClientDynamicAnnotationExpression.java b/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/AbstractClientDynamicAnnotationExpression.java
new file mode 100644
index 0000000..8e8440e
--- /dev/null
+++ b/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/AbstractClientDynamicAnnotationExpression.java
@@ -0,0 +1,356 @@
+/*
+ * 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.client.core.edm.xml;
+
+import com.fasterxml.jackson.core.JsonLocation;
+import com.fasterxml.jackson.core.JsonParseException;
+import com.fasterxml.jackson.core.JsonParser;
+import com.fasterxml.jackson.core.JsonToken;
+import com.fasterxml.jackson.databind.DeserializationContext;
+import org.apache.commons.lang3.ArrayUtils;
+import org.apache.commons.lang3.ClassUtils;
+import org.apache.olingo.commons.api.edm.provider.annotation.AnnotationPath;
+import org.apache.olingo.commons.api.edm.provider.annotation.Apply;
+import org.apache.olingo.commons.api.edm.provider.annotation.Cast;
+import org.apache.olingo.commons.api.edm.provider.annotation.Collection;
+import org.apache.olingo.commons.api.edm.provider.annotation.DynamicAnnotationExpression;
+import org.apache.olingo.commons.api.edm.provider.annotation.If;
+import org.apache.olingo.commons.api.edm.provider.annotation.IsOf;
+import org.apache.olingo.commons.api.edm.provider.annotation.LabeledElement;
+import org.apache.olingo.commons.api.edm.provider.annotation.LabeledElementReference;
+import org.apache.olingo.commons.api.edm.provider.annotation.NavigationPropertyPath;
+import org.apache.olingo.commons.api.edm.provider.annotation.Not;
+import org.apache.olingo.commons.api.edm.provider.annotation.Null;
+import org.apache.olingo.commons.api.edm.provider.annotation.Path;
+import org.apache.olingo.commons.api.edm.provider.annotation.PropertyPath;
+import org.apache.olingo.commons.api.edm.provider.annotation.PropertyValue;
+import org.apache.olingo.commons.api.edm.provider.annotation.Record;
+import org.apache.olingo.commons.api.edm.provider.annotation.TwoParamsOpDynamicAnnotationExpression;
+import org.apache.olingo.commons.api.edm.provider.annotation.UrlRef;
+
+import com.fasterxml.jackson.databind.annotation.JsonDeserialize;
+
+import java.io.IOException;
+
+@JsonDeserialize(using = AbstractClientDynamicAnnotationExpression.DynamicAnnotationExpressionDeserializer.class)
+abstract class AbstractClientDynamicAnnotationExpression
+        extends AbstractClientAnnotationExpression implements DynamicAnnotationExpression {
+
+  private static final long serialVersionUID = 1093411847477874348L;
+
+  @Override
+  public boolean isNot() {
+    return this instanceof Not;
+  }
+
+  @Override
+  public Not asNot() {
+    return isNot() ? (Not) this : null;
+
+  }
+
+  @Override
+  public boolean isTwoParamsOp() {
+    return this instanceof TwoParamsOpDynamicAnnotationExpression;
+  }
+
+  @Override
+  public TwoParamsOpDynamicAnnotationExpression asTwoParamsOp() {
+    return isTwoParamsOp() ? (TwoParamsOpDynamicAnnotationExpression) this : null;
+  }
+
+  @Override
+  public boolean isAnnotationPath() {
+    return this instanceof AnnotationPath;
+  }
+
+  @Override
+  public AnnotationPath asAnnotationPath() {
+    return isAnnotationPath() ? (AnnotationPath) this : null;
+  }
+
+  @Override
+  public boolean isApply() {
+    return this instanceof Apply;
+  }
+
+  @Override
+  public Apply asApply() {
+    return isApply() ? (Apply) this : null;
+  }
+
+  @Override
+  public boolean isCast() {
+    return this instanceof Cast;
+  }
+
+  @Override
+  public Cast asCast() {
+    return isCast() ? (Cast) this : null;
+  }
+
+  @Override
+  public boolean isCollection() {
+    return this instanceof Collection;
+  }
+
+  @Override
+  public Collection asCollection() {
+    return isCollection() ? (Collection) this : null;
+  }
+
+  @Override
+  public boolean isIf() {
+    return this instanceof If;
+  }
+
+  @Override
+  public If asIf() {
+    return isIf() ? (If) this : null;
+  }
+
+  @Override
+  public boolean isIsOf() {
+    return this instanceof IsOf;
+  }
+
+  @Override
+  public IsOf asIsOf() {
+    return isIsOf() ? (IsOf) this : null;
+  }
+
+  @Override
+  public boolean isLabeledElement() {
+    return this instanceof LabeledElement;
+  }
+
+  @Override
+  public LabeledElement asLabeledElement() {
+    return isLabeledElement() ? (LabeledElement) this : null;
+  }
+
+  @Override
+  public boolean isLabeledElementReference() {
+    return this instanceof LabeledElementReference;
+  }
+
+  @Override
+  public LabeledElementReference asLabeledElementReference() {
+    return isLabeledElementReference() ? (LabeledElementReference) this : null;
+  }
+
+  @Override
+  public boolean isNull() {
+    return this instanceof Null;
+  }
+
+  @Override
+  public Null asNull() {
+    return isNull() ? (Null) this : null;
+  }
+
+  @Override
+  public boolean isNavigationPropertyPath() {
+    return this instanceof NavigationPropertyPath;
+  }
+
+  @Override
+  public NavigationPropertyPath asNavigationPropertyPath() {
+    return isNavigationPropertyPath() ? (NavigationPropertyPath) this : null;
+  }
+
+  @Override
+  public boolean isPath() {
+    return this instanceof Path;
+  }
+
+  @Override
+  public Path asPath() {
+    return isPath() ? (Path) this : null;
+  }
+
+  @Override
+  public boolean isPropertyPath() {
+    return this instanceof PropertyPath;
+  }
+
+  @Override
+  public PropertyPath asPropertyPath() {
+    return isPropertyPath() ? (PropertyPath) this : null;
+  }
+
+  @Override
+  public boolean isPropertyValue() {
+    return this instanceof PropertyValue;
+  }
+
+  @Override
+  public PropertyValue asPropertyValue() {
+    return isPropertyValue() ? (PropertyValue) this : null;
+  }
+
+  @Override
+  public boolean isRecord() {
+    return this instanceof Record;
+  }
+
+  @Override
+  public Record asRecord() {
+    return isRecord() ? (Record) this : null;
+  }
+
+  @Override
+  public boolean isUrlRef() {
+    return this instanceof UrlRef;
+  }
+
+  @Override
+  public UrlRef asUrlRef() {
+    return isUrlRef() ? (UrlRef) this : null;
+  }
+
+  static class DynamicAnnotationExpressionDeserializer
+          extends AbstractClientEdmDeserializer<AbstractClientDynamicAnnotationExpression> {
+
+    private static final String[] EL_OR_ATTR = {
+            AnnotationPath.class.getSimpleName(), NavigationPropertyPath.class.getSimpleName(),
+            Path.class.getSimpleName(), PropertyPath.class.getSimpleName()
+    };
+
+    private static final String APPLY = Apply.class.getSimpleName();
+    private static final String CAST = Cast.class.getSimpleName();
+    private static final String COLLECTION = Collection.class.getSimpleName();
+    private static final String IF = If.class.getSimpleName();
+    private static final String IS_OF = IsOf.class.getSimpleName();
+    private static final String LABELED_ELEMENT = LabeledElement.class.getSimpleName();
+    private static final String NULL = Null.class.getSimpleName();
+    private static final String RECORD = Record.class.getSimpleName();
+    private static final String URL_REF = UrlRef.class.getSimpleName();
+
+    private AbstractClientElementOrAttributeExpression getElementOrAttributeExpression(final String simpleClassName)
+            throws JsonParseException {
+
+      try {
+        @SuppressWarnings("unchecked")
+        Class<? extends AbstractClientElementOrAttributeExpression> elOrAttrClass =
+                (Class<? extends AbstractClientElementOrAttributeExpression>) ClassUtils.getClass(
+                        getClass().getPackage().getName() + ".Client" + simpleClassName);
+        return elOrAttrClass.newInstance();
+      } catch (Exception e) {
+        throw new JsonParseException("Could not instantiate " + simpleClassName, JsonLocation.NA, e);
+      }
+    }
+
+    private AbstractClientAnnotationExpression parseConstOrEnumExpression(final JsonParser jp) throws IOException {
+      AbstractClientAnnotationExpression result;
+      if (isAnnotationConstExprConstruct(jp)) {
+        result = parseAnnotationConstExprConstruct(jp);
+      } else {
+        result = jp.readValueAs(AbstractClientDynamicAnnotationExpression.class);
+      }
+      jp.nextToken();
+
+      return result;
+    }
+
+    @Override
+    protected AbstractClientDynamicAnnotationExpression doDeserialize(final JsonParser jp,
+        final DeserializationContext ctxt) throws IOException {
+
+      AbstractClientDynamicAnnotationExpression expression = null;
+
+      if ("Not".equals(jp.getCurrentName())) {
+        final ClientNot not = new ClientNot();
+
+        jp.nextToken();
+        //Search for field name
+        while (jp.getCurrentToken() != JsonToken.FIELD_NAME) {
+          jp.nextToken();
+        }
+        not.setExpression(jp.readValueAs(AbstractClientDynamicAnnotationExpression.class));
+        //Search for end object
+        while (jp.getCurrentToken() != JsonToken.END_OBJECT || !jp.getCurrentName().equals("Not")) {
+          jp.nextToken();
+        }
+
+        expression = not;
+      } else if (TwoParamsOpDynamicAnnotationExpression.Type.fromString(jp.getCurrentName()) != null) {
+        final ClientTwoParamsOpDynamicAnnotationExpression dynExprDoubleParamOp =
+                new ClientTwoParamsOpDynamicAnnotationExpression();
+        dynExprDoubleParamOp.setType(TwoParamsOpDynamicAnnotationExpression.Type.fromString(jp.getCurrentName()));
+
+        jp.nextToken();
+        //Search for field name
+        while (jp.getCurrentToken() != JsonToken.FIELD_NAME) {
+          jp.nextToken();
+        }
+        dynExprDoubleParamOp.setLeftExpression(jp.readValueAs(AbstractClientDynamicAnnotationExpression.class));
+        dynExprDoubleParamOp.setRightExpression(jp.readValueAs(AbstractClientDynamicAnnotationExpression.class));
+        //Search for expression
+        while (jp.getCurrentToken() != JsonToken.END_OBJECT || !jp.getCurrentName().equals(dynExprDoubleParamOp
+                .getType().name())) {
+          jp.nextToken();
+        }
+
+        expression = dynExprDoubleParamOp;
+      } else if (ArrayUtils.contains(EL_OR_ATTR, jp.getCurrentName())) {
+        final AbstractClientElementOrAttributeExpression elOrAttr =
+            getElementOrAttributeExpression(jp.getCurrentName());
+        elOrAttr.setValue(jp.nextTextValue());
+        expression = elOrAttr;
+      } else if (APPLY.equals(jp.getCurrentName())) {
+        jp.nextToken();
+        expression = jp.readValueAs(ClientApply.class);
+      } else if (CAST.equals(jp.getCurrentName())) {
+        jp.nextToken();
+        expression = jp.readValueAs(ClientCast.class);
+      } else if (COLLECTION.equals(jp.getCurrentName())) {
+        jp.nextToken();
+        expression = jp.readValueAs(ClientCollection.class);
+      } else if (IF.equals(jp.getCurrentName())) {
+        jp.nextToken();
+        jp.nextToken();
+
+        final ClientIf ifImpl = new ClientIf();
+        ifImpl.setGuard(parseConstOrEnumExpression(jp));
+        ifImpl.setThen(parseConstOrEnumExpression(jp));
+        ifImpl.setElse(parseConstOrEnumExpression(jp));
+
+        expression = ifImpl;
+      } else if (IS_OF.equals(jp.getCurrentName())) {
+        jp.nextToken();
+        expression = jp.readValueAs(ClientIsOf.class);
+      } else if (LABELED_ELEMENT.equals(jp.getCurrentName())) {
+        jp.nextToken();
+        expression = jp.readValueAs(ClientLabeledElement.class);
+      } else if (NULL.equals(jp.getCurrentName())) {
+        jp.nextToken();
+        expression = jp.readValueAs(ClientNull.class);
+      } else if (RECORD.equals(jp.getCurrentName())) {
+        jp.nextToken();
+        expression = jp.readValueAs(ClientRecord.class);
+      } else if (URL_REF.equals(jp.getCurrentName())) {
+        jp.nextToken();
+        expression = jp.readValueAs(ClientUrlRef.class);
+      }
+
+      return expression;
+    }
+  }
+}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/cbbe3da6/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/AbstractClientEdmDeserializer.java
----------------------------------------------------------------------
diff --git a/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/AbstractClientEdmDeserializer.java b/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/AbstractClientEdmDeserializer.java
index e02c054..5447de6 100644
--- a/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/AbstractClientEdmDeserializer.java
+++ b/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/AbstractClientEdmDeserializer.java
@@ -20,14 +20,12 @@ package org.apache.olingo.client.core.edm.xml;
 
 import java.io.IOException;
 
-import org.apache.olingo.client.core.edm.xml.annotation.ClientConstantAnnotationExpression;
-
 import com.fasterxml.jackson.core.JsonParser;
 import com.fasterxml.jackson.databind.DeserializationContext;
 import com.fasterxml.jackson.databind.JsonDeserializer;
 import com.fasterxml.jackson.dataformat.xml.deser.FromXmlParser;
 
-public abstract class AbstractClientEdmDeserializer<T> extends JsonDeserializer<T> {
+abstract class AbstractClientEdmDeserializer<T> extends JsonDeserializer<T> {
 
   protected boolean isAnnotationConstExprConstruct(final JsonParser jp) throws IOException {
     return ClientConstantAnnotationExpression.Type.fromString(jp.getCurrentName()) != null;

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/cbbe3da6/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/AbstractClientElementOrAttributeExpression.java
----------------------------------------------------------------------
diff --git a/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/AbstractClientElementOrAttributeExpression.java b/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/AbstractClientElementOrAttributeExpression.java
new file mode 100644
index 0000000..7bcbf90
--- /dev/null
+++ b/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/AbstractClientElementOrAttributeExpression.java
@@ -0,0 +1,37 @@
+/*
+ * 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.client.core.edm.xml;
+
+/**
+ * Groups dynamic expressions that may be provided using element notation or attribute notation.
+ */
+class AbstractClientElementOrAttributeExpression extends AbstractClientDynamicAnnotationExpression {
+
+  private static final long serialVersionUID = 1588336268773032932L;
+
+  private String value;
+
+  public String getValue() {
+    return value;
+  }
+
+  public void setValue(final String value) {
+    this.value = value;
+  }
+}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/cbbe3da6/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/ClientAction.java
----------------------------------------------------------------------
diff --git a/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/ClientAction.java b/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/ClientAction.java
index 57bdad6..ceedc25 100644
--- a/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/ClientAction.java
+++ b/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/ClientAction.java
@@ -29,7 +29,7 @@ import com.fasterxml.jackson.databind.annotation.JsonDeserialize;
 import java.io.IOException;
 
 @JsonDeserialize(using = ClientAction.ActionDeserializer.class)
-public class ClientAction extends  Action {
+class ClientAction extends  Action {
 
   private static final long serialVersionUID = 5321541275349234088L;
 

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/cbbe3da6/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/ClientActionImport.java
----------------------------------------------------------------------
diff --git a/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/ClientActionImport.java b/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/ClientActionImport.java
index 8c251f3..4be6305 100644
--- a/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/ClientActionImport.java
+++ b/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/ClientActionImport.java
@@ -27,7 +27,7 @@ import org.apache.olingo.commons.api.edm.provider.ActionImport;
 import java.io.IOException;
 
 @JsonDeserialize(using = ClientActionImport.ActionImportDeserializer.class)
-public class ClientActionImport extends ActionImport {
+class ClientActionImport extends ActionImport {
 
   private static final long serialVersionUID = 2971468441177647068L;
 

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/cbbe3da6/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/ClientAnnotation.java
----------------------------------------------------------------------
diff --git a/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/ClientAnnotation.java b/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/ClientAnnotation.java
index 85b866d..cb27d0b 100644
--- a/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/ClientAnnotation.java
+++ b/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/ClientAnnotation.java
@@ -23,13 +23,12 @@ import java.io.IOException;
 import com.fasterxml.jackson.core.JsonParser;
 import com.fasterxml.jackson.core.JsonToken;
 import com.fasterxml.jackson.databind.DeserializationContext;
-import org.apache.olingo.client.core.edm.xml.annotation.AbstractClientDynamicAnnotationExpression;
 import org.apache.olingo.commons.api.edm.provider.Annotation;
 
 import com.fasterxml.jackson.databind.annotation.JsonDeserialize;
 
 @JsonDeserialize(using = ClientAnnotation.AnnotationDeserializer.class)
-public class ClientAnnotation extends Annotation {
+class ClientAnnotation extends Annotation {
 
   private static final long serialVersionUID = 5464714417411058033L;
 

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/cbbe3da6/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/ClientAnnotationPath.java
----------------------------------------------------------------------
diff --git a/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/ClientAnnotationPath.java b/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/ClientAnnotationPath.java
new file mode 100644
index 0000000..7644c03
--- /dev/null
+++ b/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/ClientAnnotationPath.java
@@ -0,0 +1,27 @@
+/*
+ * 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.client.core.edm.xml;
+
+import org.apache.olingo.commons.api.edm.provider.annotation.AnnotationPath;
+
+class ClientAnnotationPath extends AbstractClientElementOrAttributeExpression implements AnnotationPath {
+
+  private static final long serialVersionUID = 5360735207353494466L;
+
+}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/cbbe3da6/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/ClientAnnotations.java
----------------------------------------------------------------------
diff --git a/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/ClientAnnotations.java b/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/ClientAnnotations.java
index 55d9cbd..561fcfd 100644
--- a/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/ClientAnnotations.java
+++ b/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/ClientAnnotations.java
@@ -28,7 +28,7 @@ import com.fasterxml.jackson.databind.annotation.JsonDeserialize;
 import java.io.IOException;
 
 @JsonDeserialize(using = ClientAnnotations.AnnotationsDeserializer.class)
-public class ClientAnnotations extends Annotations {
+class ClientAnnotations extends Annotations {
 
   private static final long serialVersionUID = -5961207981571644200L;
 

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/cbbe3da6/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/ClientApply.java
----------------------------------------------------------------------
diff --git a/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/ClientApply.java b/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/ClientApply.java
new file mode 100644
index 0000000..9d89fc7
--- /dev/null
+++ b/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/ClientApply.java
@@ -0,0 +1,80 @@
+/*
+ * 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.client.core.edm.xml;
+
+import java.io.IOException;
+import java.util.ArrayList;
+import java.util.List;
+
+import com.fasterxml.jackson.core.JsonParser;
+import com.fasterxml.jackson.core.JsonToken;
+import com.fasterxml.jackson.databind.DeserializationContext;
+import org.apache.olingo.commons.api.edm.provider.annotation.AnnotationExpression;
+import org.apache.olingo.commons.api.edm.provider.annotation.Apply;
+
+import com.fasterxml.jackson.databind.annotation.JsonDeserialize;
+
+@JsonDeserialize(using = ClientApply.ApplyDeserializer.class)
+class ClientApply extends AbstractClientAnnotatableDynamicAnnotationExpression implements Apply {
+
+  private static final long serialVersionUID = 4358398303405059879L;
+
+  private String function;
+
+  private final List<AnnotationExpression> parameters = new ArrayList<AnnotationExpression>();
+
+  @Override
+  public String getFunction() {
+    return function;
+  }
+
+  public void setFunction(final String function) {
+    this.function = function;
+  }
+
+  @Override
+  public List<AnnotationExpression> getParameters() {
+    return parameters;
+  }
+
+  static class ApplyDeserializer extends AbstractClientEdmDeserializer<ClientApply> {
+
+    @Override
+    protected ClientApply doDeserialize(final JsonParser jp, final DeserializationContext ctxt)
+            throws IOException {
+      final ClientApply apply = new ClientApply();
+      for (; jp.getCurrentToken() != JsonToken.END_OBJECT; jp.nextToken()) {
+        final JsonToken token = jp.getCurrentToken();
+        if (token == JsonToken.FIELD_NAME) {
+          if ("Function".equals(jp.getCurrentName())) {
+            apply.setFunction(jp.nextTextValue());
+          } else if ("Annotation".equals(jp.getCurrentName())) {
+            apply.getAnnotations().add(jp.readValueAs(ClientAnnotation.class));
+          } else if (isAnnotationConstExprConstruct(jp)) {
+            apply.getParameters().add(parseAnnotationConstExprConstruct(jp));
+          } else {
+            apply.getParameters().add(jp.readValueAs(AbstractClientDynamicAnnotationExpression.class));
+          }
+        }
+      }
+
+      return apply;
+    }
+  }
+}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/cbbe3da6/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/ClientCast.java
----------------------------------------------------------------------
diff --git a/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/ClientCast.java b/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/ClientCast.java
new file mode 100644
index 0000000..2160268
--- /dev/null
+++ b/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/ClientCast.java
@@ -0,0 +1,137 @@
+/*
+ * 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.client.core.edm.xml;
+
+import com.fasterxml.jackson.core.JsonParser;
+import com.fasterxml.jackson.core.JsonToken;
+import com.fasterxml.jackson.databind.DeserializationContext;
+import org.apache.olingo.commons.api.edm.geo.SRID;
+import org.apache.olingo.commons.api.edm.provider.annotation.Cast;
+import org.apache.olingo.commons.api.edm.provider.annotation.DynamicAnnotationExpression;
+
+import com.fasterxml.jackson.databind.annotation.JsonDeserialize;
+
+import java.io.IOException;
+
+@JsonDeserialize(using = ClientCast.CastDeserializer.class)
+class ClientCast extends AbstractClientAnnotatableDynamicAnnotationExpression implements Cast {
+
+  private static final long serialVersionUID = 3312415984116005313L;
+
+  private String type;
+
+  private Integer maxLength;
+
+  private Integer precision;
+
+  private Integer scale;
+
+  private SRID srid;
+
+  private DynamicAnnotationExpression value;
+
+  @Override
+  public String getType() {
+    return type;
+  }
+
+  public void setType(final String type) {
+    this.type = type;
+  }
+
+  @Override
+  public Integer getMaxLength() {
+    return maxLength;
+  }
+
+  public void setMaxLength(final Integer maxLength) {
+    this.maxLength = maxLength;
+  }
+
+  @Override
+  public Integer getPrecision() {
+    return precision;
+  }
+
+  public void setPrecision(final Integer precision) {
+    this.precision = precision;
+  }
+
+  @Override
+  public Integer getScale() {
+    return scale;
+  }
+
+  public void setScale(final Integer scale) {
+    this.scale = scale;
+  }
+
+  @Override
+  public SRID getSrid() {
+    return srid;
+  }
+
+  public void setSrid(final SRID srid) {
+    this.srid = srid;
+  }
+
+  @Override
+  public DynamicAnnotationExpression getValue() {
+    return value;
+  }
+
+  public void setValue(final DynamicAnnotationExpression value) {
+    this.value = value;
+  }
+
+  static class CastDeserializer extends AbstractClientEdmDeserializer<ClientCast> {
+
+    @Override
+    protected ClientCast doDeserialize(final JsonParser jp, final DeserializationContext ctxt)
+            throws IOException {
+      final ClientCast cast = new ClientCast();
+      for (; jp.getCurrentToken() != JsonToken.END_OBJECT; jp.nextToken()) {
+        final JsonToken token = jp.getCurrentToken();
+        if (token == JsonToken.FIELD_NAME) {
+          if ("Type".equals(jp.getCurrentName())) {
+            cast.setType(jp.nextTextValue());
+          } else if ("Annotation".equals(jp.getCurrentName())) {
+            cast.getAnnotations().add(jp.readValueAs(ClientAnnotation.class));
+          } else if ("MaxLength".equals(jp.getCurrentName())) {
+            final String maxLenght = jp.nextTextValue();
+            cast.setMaxLength(maxLenght.equalsIgnoreCase("max") ? Integer.MAX_VALUE : Integer.valueOf(maxLenght));
+          } else if ("Precision".equals(jp.getCurrentName())) {
+            cast.setPrecision(Integer.valueOf(jp.nextTextValue()));
+          } else if ("Scale".equals(jp.getCurrentName())) {
+            final String scale = jp.nextTextValue();
+            cast.setScale(scale.equalsIgnoreCase("variable") ? 0 : Integer.valueOf(scale));
+          } else if ("SRID".equals(jp.getCurrentName())) {
+            final String srid = jp.nextTextValue();
+            if (srid != null) {
+              cast.setSrid(SRID.valueOf(srid));
+            }
+          } else {
+            cast.setValue(jp.readValueAs(AbstractClientDynamicAnnotationExpression.class));
+          }
+        }
+      }
+      return cast;
+    }
+  }
+}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/cbbe3da6/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/ClientCollection.java
----------------------------------------------------------------------
diff --git a/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/ClientCollection.java b/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/ClientCollection.java
new file mode 100644
index 0000000..6dc43a9
--- /dev/null
+++ b/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/ClientCollection.java
@@ -0,0 +1,64 @@
+/*
+ * 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.client.core.edm.xml;
+
+import java.io.IOException;
+import java.util.ArrayList;
+import java.util.List;
+
+import com.fasterxml.jackson.core.JsonParser;
+import com.fasterxml.jackson.core.JsonToken;
+import com.fasterxml.jackson.databind.DeserializationContext;
+import org.apache.olingo.commons.api.edm.provider.annotation.AnnotationExpression;
+import org.apache.olingo.commons.api.edm.provider.annotation.Collection;
+
+import com.fasterxml.jackson.databind.annotation.JsonDeserialize;
+
+@JsonDeserialize(using = ClientCollection.CollectionDeserializer.class)
+class ClientCollection extends AbstractClientDynamicAnnotationExpression implements Collection {
+
+  private static final long serialVersionUID = -724749123749715643L;
+
+  private final List<AnnotationExpression> items = new ArrayList<AnnotationExpression>();
+
+  @Override
+  public List<AnnotationExpression> getItems() {
+    return items;
+  }
+
+  static class CollectionDeserializer extends AbstractClientEdmDeserializer<ClientCollection> {
+    @Override
+    protected ClientCollection doDeserialize(final JsonParser jp, final DeserializationContext ctxt)
+            throws IOException {
+      final ClientCollection collection = new ClientCollection();
+      for (; jp.getCurrentToken() != JsonToken.END_OBJECT; jp.nextToken()) {
+        final JsonToken token = jp.getCurrentToken();
+        if (token == JsonToken.FIELD_NAME) {
+          if (isAnnotationConstExprConstruct(jp)) {
+            collection.getItems().add(parseAnnotationConstExprConstruct(jp));
+          } else {
+            collection.getItems().add(jp.readValueAs(AbstractClientDynamicAnnotationExpression.class));
+          }
+        }
+      }
+
+      return collection;
+    }
+  }
+}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/cbbe3da6/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/ClientComplexType.java
----------------------------------------------------------------------
diff --git a/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/ClientComplexType.java b/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/ClientComplexType.java
index ebc0452..875b56f 100644
--- a/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/ClientComplexType.java
+++ b/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/ClientComplexType.java
@@ -29,7 +29,7 @@ import com.fasterxml.jackson.databind.annotation.JsonDeserialize;
 import java.io.IOException;
 
 @JsonDeserialize(using = ClientComplexType.ComplexTypeDeserializer.class)
-public class ClientComplexType extends ComplexType {
+class ClientComplexType extends ComplexType {
 
   private static final long serialVersionUID = 4076944306925840115L;
 

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/cbbe3da6/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/ClientConstantAnnotationExpression.java
----------------------------------------------------------------------
diff --git a/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/ClientConstantAnnotationExpression.java b/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/ClientConstantAnnotationExpression.java
new file mode 100644
index 0000000..6ff3fd3
--- /dev/null
+++ b/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/ClientConstantAnnotationExpression.java
@@ -0,0 +1,52 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.olingo.client.core.edm.xml;
+
+import org.apache.olingo.commons.api.edm.provider.annotation.ConstantAnnotationExpression;
+
+class ClientConstantAnnotationExpression
+        extends AbstractClientAnnotationExpression implements ConstantAnnotationExpression {
+
+  private static final long serialVersionUID = 5618680702707972904L;
+
+  private Type type;
+
+  private String value;
+
+  @Override
+  public Type getType() {
+    return type;
+  }
+
+  @Override
+  public void setType(final Type type) {
+    this.type = type;
+  }
+
+  @Override
+  public String getValue() {
+    return value;
+  }
+
+  @Override
+  public void setValue(final String value) {
+    this.value = value;
+  }
+
+}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/cbbe3da6/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/ClientDataServices.java
----------------------------------------------------------------------
diff --git a/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/ClientDataServices.java b/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/ClientDataServices.java
index f68c457..3292b34 100644
--- a/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/ClientDataServices.java
+++ b/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/ClientDataServices.java
@@ -32,7 +32,7 @@ import org.apache.olingo.commons.api.edm.provider.Schema;
 import com.fasterxml.jackson.databind.annotation.JsonDeserialize;
 
 @JsonDeserialize(using = ClientDataServices.DataServicesDeserializer.class)
-public class ClientDataServices extends AbstractEdmItem implements DataServices {
+class ClientDataServices extends AbstractEdmItem implements DataServices {
 
   private static final long serialVersionUID = 4200317286476885204L;
 

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/cbbe3da6/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/ClientEntityContainer.java
----------------------------------------------------------------------
diff --git a/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/ClientEntityContainer.java b/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/ClientEntityContainer.java
index d91f8d3..6efbf34 100644
--- a/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/ClientEntityContainer.java
+++ b/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/ClientEntityContainer.java
@@ -28,7 +28,7 @@ import com.fasterxml.jackson.databind.annotation.JsonDeserialize;
 import java.io.IOException;
 
 @JsonDeserialize(using = ClientEntityContainer.EntityContainerDeserializer.class)
-public class ClientEntityContainer extends EntityContainer {
+class ClientEntityContainer extends EntityContainer {
 
   private static final long serialVersionUID = 5631432527646955795L;
 

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/cbbe3da6/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/ClientEntityKey.java
----------------------------------------------------------------------
diff --git a/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/ClientEntityKey.java b/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/ClientEntityKey.java
index f238699..6e2a137 100644
--- a/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/ClientEntityKey.java
+++ b/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/ClientEntityKey.java
@@ -31,7 +31,7 @@ import org.apache.olingo.commons.api.edm.provider.PropertyRef;
 import com.fasterxml.jackson.databind.annotation.JsonDeserialize;
 
 @JsonDeserialize(using = ClientEntityKey.EntityKeyDeserializer.class)
-public class ClientEntityKey extends AbstractEdmItem {
+class ClientEntityKey extends AbstractEdmItem {
 
   private static final long serialVersionUID = 520227585458843347L;
 

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/cbbe3da6/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/ClientEntitySet.java
----------------------------------------------------------------------
diff --git a/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/ClientEntitySet.java b/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/ClientEntitySet.java
index 655f80d..11d3cde 100644
--- a/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/ClientEntitySet.java
+++ b/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/ClientEntitySet.java
@@ -29,7 +29,7 @@ import com.fasterxml.jackson.databind.annotation.JsonDeserialize;
 import java.io.IOException;
 
 @JsonDeserialize(using = ClientEntitySet.EntitySetDeserializer.class)
-public class ClientEntitySet extends EntitySet {
+class ClientEntitySet extends EntitySet {
 
   private static final long serialVersionUID = -5553885465204370676L;
 

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/cbbe3da6/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/ClientEntityType.java
----------------------------------------------------------------------
diff --git a/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/ClientEntityType.java b/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/ClientEntityType.java
index 9089bc9..4e1e7eb 100644
--- a/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/ClientEntityType.java
+++ b/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/ClientEntityType.java
@@ -29,7 +29,7 @@ import com.fasterxml.jackson.databind.annotation.JsonDeserialize;
 import java.io.IOException;
 
 @JsonDeserialize(using = ClientEntityType.EntityTypeDeserializer.class)
-public class ClientEntityType extends EntityType {
+class ClientEntityType extends EntityType {
 
   private static final long serialVersionUID = -3986417775876689669L;
 

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/cbbe3da6/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/ClientEnumMember.java
----------------------------------------------------------------------
diff --git a/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/ClientEnumMember.java b/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/ClientEnumMember.java
index af6f64d..603e7fe 100644
--- a/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/ClientEnumMember.java
+++ b/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/ClientEnumMember.java
@@ -27,7 +27,7 @@ import org.apache.olingo.commons.api.edm.provider.EnumMember;
 import java.io.IOException;
 
 @JsonDeserialize(using = ClientEnumMember.EnumMemberDeserializer.class)
-public class ClientEnumMember extends EnumMember {
+class ClientEnumMember extends EnumMember {
 
   private static final long serialVersionUID = -6138606817225829791L;
 

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/cbbe3da6/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/ClientEnumType.java
----------------------------------------------------------------------
diff --git a/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/ClientEnumType.java b/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/ClientEnumType.java
index 284b5c9..4abaebb 100644
--- a/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/ClientEnumType.java
+++ b/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/ClientEnumType.java
@@ -29,7 +29,7 @@ import com.fasterxml.jackson.databind.annotation.JsonDeserialize;
 import java.io.IOException;
 
 @JsonDeserialize(using = ClientEnumType.EnumTypeDeserializer.class)
-public class ClientEnumType extends EnumType {
+class ClientEnumType extends EnumType {
 
   private static final long serialVersionUID = 9191189755592743333L;
 

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/cbbe3da6/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/ClientFunction.java
----------------------------------------------------------------------
diff --git a/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/ClientFunction.java b/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/ClientFunction.java
index c9260f1..7901399 100644
--- a/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/ClientFunction.java
+++ b/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/ClientFunction.java
@@ -29,7 +29,7 @@ import com.fasterxml.jackson.databind.annotation.JsonDeserialize;
 import java.io.IOException;
 
 @JsonDeserialize(using = ClientFunction.FunctionDeserializer.class)
-public class ClientFunction extends Function {
+class ClientFunction extends Function {
 
   private static final long serialVersionUID = -5494898295282843362L;
 

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/cbbe3da6/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/ClientFunctionImport.java
----------------------------------------------------------------------
diff --git a/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/ClientFunctionImport.java b/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/ClientFunctionImport.java
index 3a7230f..86bce9c 100644
--- a/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/ClientFunctionImport.java
+++ b/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/ClientFunctionImport.java
@@ -29,7 +29,7 @@ import com.fasterxml.jackson.databind.annotation.JsonDeserialize;
 import java.io.IOException;
 
 @JsonDeserialize(using = ClientFunctionImport.FunctionImportDeserializer.class)
-public class ClientFunctionImport extends FunctionImport {
+class ClientFunctionImport extends FunctionImport {
 
   private static final long serialVersionUID = -1686801084142932402L;
 

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/cbbe3da6/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/ClientIf.java
----------------------------------------------------------------------
diff --git a/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/ClientIf.java b/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/ClientIf.java
new file mode 100644
index 0000000..26d33e6
--- /dev/null
+++ b/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/ClientIf.java
@@ -0,0 +1,61 @@
+/*
+ * 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.client.core.edm.xml;
+
+import org.apache.olingo.commons.api.edm.provider.annotation.AnnotationExpression;
+import org.apache.olingo.commons.api.edm.provider.annotation.If;
+
+class ClientIf extends AbstractClientAnnotatableDynamicAnnotationExpression implements If {
+
+  private static final long serialVersionUID = -8571383625077590656L;
+
+  private AnnotationExpression guard;
+
+  private AnnotationExpression _then;
+
+  private AnnotationExpression _else;
+
+  @Override
+  public AnnotationExpression getGuard() {
+    return guard;
+  }
+
+  public void setGuard(final AnnotationExpression guard) {
+    this.guard = guard;
+  }
+
+  @Override
+  public AnnotationExpression getThen() {
+    return _then;
+  }
+
+  public void setThen(final AnnotationExpression _then) {
+    this._then = _then;
+  }
+
+  @Override
+  public AnnotationExpression getElse() {
+    return _else;
+  }
+
+  public void setElse(final AnnotationExpression _else) {
+    this._else = _else;
+  }
+
+}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/cbbe3da6/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/ClientInclude.java
----------------------------------------------------------------------
diff --git a/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/ClientInclude.java b/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/ClientInclude.java
index 01984e0..4bc8075 100644
--- a/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/ClientInclude.java
+++ b/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/ClientInclude.java
@@ -28,7 +28,7 @@ import org.apache.olingo.commons.api.edm.provider.AbstractEdmItem;
 import java.io.IOException;
 
 @JsonDeserialize(using = ClientInclude.IncludeDeserializer.class)
-public class ClientInclude extends AbstractEdmItem implements Include {
+class ClientInclude extends AbstractEdmItem implements Include {
 
   private static final long serialVersionUID = -5450008299655584221L;
 

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/cbbe3da6/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/ClientIncludeAnnotations.java
----------------------------------------------------------------------
diff --git a/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/ClientIncludeAnnotations.java b/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/ClientIncludeAnnotations.java
index 4cf80c0..30ddccc 100644
--- a/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/ClientIncludeAnnotations.java
+++ b/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/ClientIncludeAnnotations.java
@@ -28,7 +28,7 @@ import org.apache.olingo.commons.api.edm.provider.AbstractEdmItem;
 import java.io.IOException;
 
 @JsonDeserialize(using = ClientIncludeAnnotations.IncludeAnnotationsDeserializer.class)
-public class ClientIncludeAnnotations extends AbstractEdmItem implements IncludeAnnotations {
+class ClientIncludeAnnotations extends AbstractEdmItem implements IncludeAnnotations {
 
   private static final long serialVersionUID = -8157841387011422396L;
 

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/cbbe3da6/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/ClientIsOf.java
----------------------------------------------------------------------
diff --git a/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/ClientIsOf.java b/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/ClientIsOf.java
new file mode 100644
index 0000000..bae05ac
--- /dev/null
+++ b/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/ClientIsOf.java
@@ -0,0 +1,136 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.olingo.client.core.edm.xml;
+
+import com.fasterxml.jackson.core.JsonParser;
+import com.fasterxml.jackson.core.JsonToken;
+import com.fasterxml.jackson.databind.DeserializationContext;
+import org.apache.olingo.commons.api.edm.geo.SRID;
+import org.apache.olingo.commons.api.edm.provider.annotation.DynamicAnnotationExpression;
+import org.apache.olingo.commons.api.edm.provider.annotation.IsOf;
+
+import com.fasterxml.jackson.databind.annotation.JsonDeserialize;
+
+import java.io.IOException;
+
+@JsonDeserialize(using = ClientIsOf.IsOfDeserializer.class)
+class ClientIsOf extends AbstractClientAnnotatableDynamicAnnotationExpression implements IsOf {
+
+  private static final long serialVersionUID = -893355856129761174L;
+
+  private String type;
+
+  private Integer maxLength;
+
+  private Integer precision;
+
+  private Integer scale;
+
+  private SRID srid;
+
+  private DynamicAnnotationExpression value;
+
+  @Override
+  public String getType() {
+    return type;
+  }
+
+  public void setType(final String type) {
+    this.type = type;
+  }
+
+  @Override
+  public Integer getMaxLength() {
+    return maxLength;
+  }
+
+  public void setMaxLength(final Integer maxLength) {
+    this.maxLength = maxLength;
+  }
+
+  @Override
+  public Integer getPrecision() {
+    return precision;
+  }
+
+  public void setPrecision(final Integer precision) {
+    this.precision = precision;
+  }
+
+  @Override
+  public Integer getScale() {
+    return scale;
+  }
+
+  public void setScale(final Integer scale) {
+    this.scale = scale;
+  }
+
+  @Override
+  public SRID getSrid() {
+    return srid;
+  }
+
+  public void setSrid(final SRID srid) {
+    this.srid = srid;
+  }
+
+  @Override
+  public DynamicAnnotationExpression getValue() {
+    return value;
+  }
+
+  public void setValue(final DynamicAnnotationExpression value) {
+    this.value = value;
+  }
+
+  static class IsOfDeserializer extends AbstractClientEdmDeserializer<ClientIsOf> {
+    @Override
+    protected ClientIsOf doDeserialize(final JsonParser jp, final DeserializationContext ctxt)
+            throws IOException {
+      final ClientIsOf isof = new ClientIsOf();
+      for (; jp.getCurrentToken() != JsonToken.END_OBJECT; jp.nextToken()) {
+        final JsonToken token = jp.getCurrentToken();
+        if (token == JsonToken.FIELD_NAME) {
+          if ("Type".equals(jp.getCurrentName())) {
+            isof.setType(jp.nextTextValue());
+          } else if ("Annotation".equals(jp.getCurrentName())) {
+            isof.getAnnotations().add(jp.readValueAs(ClientAnnotation.class));
+          } else if ("MaxLength".equals(jp.getCurrentName())) {
+            final String maxLenght = jp.nextTextValue();
+            isof.setMaxLength(maxLenght.equalsIgnoreCase("max") ? Integer.MAX_VALUE : Integer.valueOf(maxLenght));
+          } else if ("Precision".equals(jp.getCurrentName())) {
+            isof.setPrecision(Integer.valueOf(jp.nextTextValue()));
+          } else if ("Scale".equals(jp.getCurrentName())) {
+            final String scale = jp.nextTextValue();
+            isof.setScale(scale.equalsIgnoreCase("variable") ? 0 : Integer.valueOf(scale));
+          } else if ("SRID".equals(jp.getCurrentName())) {
+            final String srid = jp.nextTextValue();
+            if (srid != null) {
+              isof.setSrid(SRID.valueOf(srid));
+            }
+          } else {
+            isof.setValue(jp.readValueAs(AbstractClientDynamicAnnotationExpression.class));
+          }
+        }
+      }
+      return isof;
+    }
+  }
+}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/cbbe3da6/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/ClientLabeledElement.java
----------------------------------------------------------------------
diff --git a/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/ClientLabeledElement.java b/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/ClientLabeledElement.java
new file mode 100644
index 0000000..5ae9a89
--- /dev/null
+++ b/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/ClientLabeledElement.java
@@ -0,0 +1,79 @@
+/*
+ * 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.client.core.edm.xml;
+
+import com.fasterxml.jackson.core.JsonParser;
+import com.fasterxml.jackson.core.JsonToken;
+import com.fasterxml.jackson.databind.DeserializationContext;
+import org.apache.olingo.commons.api.edm.provider.annotation.DynamicAnnotationExpression;
+import org.apache.olingo.commons.api.edm.provider.annotation.LabeledElement;
+
+import com.fasterxml.jackson.databind.annotation.JsonDeserialize;
+
+import java.io.IOException;
+
+@JsonDeserialize(using = ClientLabeledElement.LabeledElementDeserializer.class)
+class ClientLabeledElement
+        extends AbstractClientAnnotatableDynamicAnnotationExpression implements LabeledElement {
+
+  private static final long serialVersionUID = 4909387630253341824L;
+
+  private String name;
+
+  private DynamicAnnotationExpression value;
+
+  @Override
+  public String getName() {
+    return name;
+  }
+
+  public void setName(final String name) {
+    this.name = name;
+  }
+
+  @Override
+  public DynamicAnnotationExpression getValue() {
+    return value;
+  }
+
+  public void setValue(final DynamicAnnotationExpression value) {
+    this.value = value;
+  }
+
+  static class LabeledElementDeserializer extends AbstractClientEdmDeserializer<ClientLabeledElement> {
+    @Override
+    protected ClientLabeledElement doDeserialize(final JsonParser jp, final DeserializationContext ctxt)
+            throws IOException {
+      final ClientLabeledElement element = new ClientLabeledElement();
+      for (; jp.getCurrentToken() != JsonToken.END_OBJECT; jp.nextToken()) {
+        final JsonToken token = jp.getCurrentToken();
+        if (token == JsonToken.FIELD_NAME) {
+          if ("Name".equals(jp.getCurrentName())) {
+            element.setName(jp.nextTextValue());
+          } else if ("Annotation".equals(jp.getCurrentName())) {
+            element.getAnnotations().add(jp.readValueAs(ClientAnnotation.class));
+          } else {
+            element.setValue(jp.readValueAs(AbstractClientDynamicAnnotationExpression.class));
+          }
+        }
+      }
+      return element;
+    }
+  }
+}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/cbbe3da6/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/ClientLabeledElementReference.java
----------------------------------------------------------------------
diff --git a/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/ClientLabeledElementReference.java b/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/ClientLabeledElementReference.java
new file mode 100644
index 0000000..e1a6303
--- /dev/null
+++ b/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/ClientLabeledElementReference.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.client.core.edm.xml;
+
+import org.apache.olingo.commons.api.edm.provider.annotation.LabeledElementReference;
+
+class ClientLabeledElementReference
+        extends AbstractClientElementOrAttributeExpression implements LabeledElementReference {
+
+  private static final long serialVersionUID = 7560525604021670529L;
+
+}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/cbbe3da6/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/ClientNavigationProperty.java
----------------------------------------------------------------------
diff --git a/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/ClientNavigationProperty.java b/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/ClientNavigationProperty.java
index cea0c83..2c561c7 100644
--- a/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/ClientNavigationProperty.java
+++ b/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/ClientNavigationProperty.java
@@ -29,7 +29,7 @@ import com.fasterxml.jackson.databind.annotation.JsonDeserialize;
 import java.io.IOException;
 
 @JsonDeserialize(using = ClientNavigationProperty.NavigationPropertyDeserializer.class)
-public class ClientNavigationProperty extends NavigationProperty {
+class ClientNavigationProperty extends NavigationProperty {
 
   private static final long serialVersionUID = 6240231735592427582L;
 

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/cbbe3da6/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/ClientNavigationPropertyBinding.java
----------------------------------------------------------------------
diff --git a/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/ClientNavigationPropertyBinding.java b/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/ClientNavigationPropertyBinding.java
index dae72f3..fffe729 100644
--- a/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/ClientNavigationPropertyBinding.java
+++ b/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/ClientNavigationPropertyBinding.java
@@ -27,7 +27,7 @@ import org.apache.olingo.commons.api.edm.provider.NavigationPropertyBinding;
 import java.io.IOException;
 
 @JsonDeserialize(using = ClientNavigationPropertyBinding.NavigationPropertyBindingDeserializer.class)
-public class ClientNavigationPropertyBinding extends NavigationPropertyBinding {
+class ClientNavigationPropertyBinding extends NavigationPropertyBinding {
 
   private static final long serialVersionUID = -7056978592235483660L;
 

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/cbbe3da6/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/ClientNavigationPropertyPath.java
----------------------------------------------------------------------
diff --git a/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/ClientNavigationPropertyPath.java b/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/ClientNavigationPropertyPath.java
new file mode 100644
index 0000000..8a3173c
--- /dev/null
+++ b/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/ClientNavigationPropertyPath.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.client.core.edm.xml;
+
+import org.apache.olingo.commons.api.edm.provider.annotation.NavigationPropertyPath;
+
+class ClientNavigationPropertyPath extends AbstractClientElementOrAttributeExpression
+    implements NavigationPropertyPath {
+
+  private static final long serialVersionUID = 879840502446301312L;
+
+}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/cbbe3da6/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/ClientNot.java
----------------------------------------------------------------------
diff --git a/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/ClientNot.java b/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/ClientNot.java
new file mode 100644
index 0000000..eca2b67
--- /dev/null
+++ b/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/ClientNot.java
@@ -0,0 +1,39 @@
+/*
+ * 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.client.core.edm.xml;
+
+import org.apache.olingo.commons.api.edm.provider.annotation.DynamicAnnotationExpression;
+import org.apache.olingo.commons.api.edm.provider.annotation.Not;
+
+class ClientNot extends AbstractClientDynamicAnnotationExpression implements Not {
+
+  private static final long serialVersionUID = -437788415922966812L;
+
+  private DynamicAnnotationExpression expression;
+
+  @Override
+  public DynamicAnnotationExpression getExpression() {
+    return expression;
+  }
+
+  public void setExpression(final DynamicAnnotationExpression expression) {
+    this.expression = expression;
+  }
+
+}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/cbbe3da6/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/ClientNull.java
----------------------------------------------------------------------
diff --git a/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/ClientNull.java b/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/ClientNull.java
new file mode 100644
index 0000000..950d10c
--- /dev/null
+++ b/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/ClientNull.java
@@ -0,0 +1,51 @@
+/*
+ * 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.client.core.edm.xml;
+
+import com.fasterxml.jackson.core.JsonParser;
+import com.fasterxml.jackson.core.JsonToken;
+import com.fasterxml.jackson.databind.DeserializationContext;
+import org.apache.olingo.commons.api.edm.provider.annotation.Null;
+
+import com.fasterxml.jackson.databind.annotation.JsonDeserialize;
+
+import java.io.IOException;
+
+@JsonDeserialize(using = ClientNull.NullDeserializer.class)
+class ClientNull extends AbstractClientAnnotatableDynamicAnnotationExpression implements Null {
+
+  private static final long serialVersionUID = -3148516847180393142L;
+
+  static class NullDeserializer extends AbstractClientEdmDeserializer<ClientNull> {
+    @Override
+    protected ClientNull doDeserialize(final JsonParser jp, final DeserializationContext ctxt)
+            throws IOException {
+      final ClientNull _null = new ClientNull();
+      for (; jp.getCurrentToken() != JsonToken.END_OBJECT; jp.nextToken()) {
+        final JsonToken token = jp.getCurrentToken();
+        if (token == JsonToken.FIELD_NAME) {
+          if ("Annotation".equals(jp.getCurrentName())) {
+            _null.getAnnotations().add(jp.readValueAs(ClientAnnotation.class));
+          }
+        }
+      }
+      return _null;
+    }
+  }
+}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/cbbe3da6/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/ClientOnDelete.java
----------------------------------------------------------------------
diff --git a/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/ClientOnDelete.java b/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/ClientOnDelete.java
index 398fd58..bd38595 100644
--- a/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/ClientOnDelete.java
+++ b/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/ClientOnDelete.java
@@ -28,7 +28,7 @@ import org.apache.olingo.commons.api.edm.provider.OnDeleteAction;
 import java.io.IOException;
 
 @JsonDeserialize(using = ClientOnDelete.OnDeleteDeserializer.class)
-public class ClientOnDelete extends OnDelete {
+class ClientOnDelete extends OnDelete {
 
   private static final long serialVersionUID = -7130889202653716784L;
 

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/cbbe3da6/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/ClientParameter.java
----------------------------------------------------------------------
diff --git a/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/ClientParameter.java b/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/ClientParameter.java
index 34f95cf..be2ecea 100644
--- a/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/ClientParameter.java
+++ b/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/ClientParameter.java
@@ -30,7 +30,7 @@ import com.fasterxml.jackson.databind.annotation.JsonDeserialize;
 import java.io.IOException;
 
 @JsonDeserialize(using = ClientParameter.ParameterDeserializer.class)
-public class ClientParameter extends Parameter {
+class ClientParameter extends Parameter {
 
   private static final long serialVersionUID = 7119478691341167904L;
 


[26/50] [abbrv] olingo-odata4 git commit: [OLINGO-564] Renamed 'OData*' to 'Client*' classes

Posted by mi...@apache.org.
http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/c37d4da5/lib/server-core/src/main/java/org/apache/olingo/server/core/serializer/xml/ODataXmlSerializerImpl.java
----------------------------------------------------------------------
diff --git a/lib/server-core/src/main/java/org/apache/olingo/server/core/serializer/xml/ODataXmlSerializerImpl.java b/lib/server-core/src/main/java/org/apache/olingo/server/core/serializer/xml/ODataXmlSerializerImpl.java
index 2213c5a..6763495 100644
--- a/lib/server-core/src/main/java/org/apache/olingo/server/core/serializer/xml/ODataXmlSerializerImpl.java
+++ b/lib/server-core/src/main/java/org/apache/olingo/server/core/serializer/xml/ODataXmlSerializerImpl.java
@@ -29,7 +29,7 @@ import org.apache.olingo.commons.api.edm.Edm;
 import org.apache.olingo.commons.api.edm.EdmComplexType;
 import org.apache.olingo.commons.api.edm.EdmEntityType;
 import org.apache.olingo.commons.api.edm.EdmPrimitiveType;
-import org.apache.olingo.server.api.ODataServerError;
+import org.apache.olingo.server.api.ClientServerError;
 import org.apache.olingo.server.api.ServiceMetadata;
 import org.apache.olingo.server.api.serializer.ComplexSerializerOptions;
 import org.apache.olingo.server.api.serializer.EntityCollectionSerializerOptions;
@@ -102,7 +102,7 @@ public class ODataXmlSerializerImpl implements ODataSerializer {
   }
 
   @Override
-  public SerializerResult error(ODataServerError error) throws SerializerException {
+  public SerializerResult error(ClientServerError error) throws SerializerException {
     throw new SerializerException("error serialization not implemented for XML format",
         SerializerException.MessageKeys.NOT_IMPLEMENTED);
   }

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/c37d4da5/lib/server-core/src/test/java/org/apache/olingo/server/core/serializer/json/ClientErrorSerializerTest.java
----------------------------------------------------------------------
diff --git a/lib/server-core/src/test/java/org/apache/olingo/server/core/serializer/json/ClientErrorSerializerTest.java b/lib/server-core/src/test/java/org/apache/olingo/server/core/serializer/json/ClientErrorSerializerTest.java
new file mode 100644
index 0000000..c30a719
--- /dev/null
+++ b/lib/server-core/src/test/java/org/apache/olingo/server/core/serializer/json/ClientErrorSerializerTest.java
@@ -0,0 +1,136 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ * 
+ * http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.olingo.server.core.serializer.json;
+
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertNotNull;
+
+import java.io.InputStream;
+import java.util.ArrayList;
+import java.util.List;
+
+import org.apache.commons.io.IOUtils;
+import org.apache.olingo.commons.api.domain.ClientErrorDetail;
+import org.apache.olingo.commons.api.format.ODataFormat;
+import org.apache.olingo.server.api.OData;
+import org.apache.olingo.server.api.ClientServerError;
+import org.apache.olingo.server.api.serializer.ODataSerializer;
+import org.apache.olingo.server.api.serializer.SerializerException;
+import org.junit.Before;
+import org.junit.Test;
+
+import com.fasterxml.jackson.databind.JsonNode;
+import com.fasterxml.jackson.databind.ObjectMapper;
+import com.fasterxml.jackson.databind.node.JsonNodeType;
+
+public class ClientErrorSerializerTest {
+
+  ODataSerializer ser;
+
+  @Before
+  public void before() throws Exception {
+    ser = OData.newInstance().createSerializer(ODataFormat.JSON);
+  }
+
+  @Test
+  public void basicODataErrorNoCode() throws Exception {
+    ClientServerError error = new ClientServerError();
+    error.setMessage("ErrorMessage");
+    InputStream stream = ser.error(error).getContent();
+    String jsonString = IOUtils.toString(stream);
+    assertEquals("{\"error\":{\"code\":null,\"message\":\"ErrorMessage\"}}", jsonString);
+  }
+
+  @Test
+  public void basicODataErrorWithCode() throws Exception {
+    ClientServerError error = new ClientServerError();
+    error.setCode("Code").setMessage("ErrorMessage");
+    InputStream stream = ser.error(error).getContent();
+    String jsonString = IOUtils.toString(stream);
+    assertEquals("{\"error\":{\"code\":\"Code\",\"message\":\"ErrorMessage\"}}", jsonString);
+  }
+
+  @Test
+  public void basicODataErrorWithCodeAndTarget() throws Exception {
+    ClientServerError error = new ClientServerError();
+    error.setCode("Code").setMessage("ErrorMessage").setTarget("Target");
+    InputStream stream = ser.error(error).getContent();
+    String jsonString = IOUtils.toString(stream);
+    assertEquals("{\"error\":{\"code\":\"Code\",\"message\":\"ErrorMessage\",\"target\":\"Target\"}}", jsonString);
+  }
+
+  @Test(expected = SerializerException.class)
+  public void nullErrorResultsInException() throws Exception {
+    ser.error(null);
+  }
+
+  @Test
+  public void emptyDetailsList() throws Exception {
+    ClientServerError error = new ClientServerError();
+    error.setMessage("ErrorMessage").setDetails(new ArrayList<ClientErrorDetail>());
+    InputStream stream = ser.error(error).getContent();
+    String jsonString = IOUtils.toString(stream);
+    assertEquals("{\"error\":{\"code\":null,\"message\":\"ErrorMessage\",\"details\":[]}}", jsonString);
+  }
+
+  @Test
+  public void nothingSetAtODataErrorObject() throws Exception {
+    ClientServerError error = new ClientServerError();
+    InputStream stream = ser.error(error).getContent();
+    String jsonString = IOUtils.toString(stream);
+    assertEquals("{\"error\":{\"code\":null,\"message\":null}}", jsonString);
+  }
+
+  @Test
+  public void singleDetailNothingSet() throws Exception {
+    List<ClientErrorDetail> details = new ArrayList<ClientErrorDetail>();
+    details.add(new ClientErrorDetail());
+    ClientServerError error = new ClientServerError().setDetails(details);
+    InputStream stream = ser.error(error).getContent();
+    String jsonString = IOUtils.toString(stream);
+    assertEquals("{\"error\":{\"code\":null,\"message\":null,\"details\":[{\"code\":null,\"message\":null}]}}",
+        jsonString);
+  }
+
+  @Test
+  public void verifiedWithJacksonParser() throws Exception {
+    List<ClientErrorDetail> details = new ArrayList<ClientErrorDetail>();
+    details.add(new ClientErrorDetail().setCode("detailCode").setMessage("detailMessage").setTarget("detailTarget"));
+    ClientServerError error =
+        new ClientServerError().setCode("Code").setMessage("Message").setTarget("Target").setDetails(details);
+    InputStream stream = ser.error(error).getContent();
+    JsonNode tree = new ObjectMapper().readTree(stream);
+    assertNotNull(tree);
+    tree = tree.get("error");
+    assertNotNull(tree);
+    assertEquals("Code", tree.get("code").textValue());
+    assertEquals("Message", tree.get("message").textValue());
+    assertEquals("Target", tree.get("target").textValue());
+
+    tree = tree.get("details");
+    assertNotNull(tree);
+    assertEquals(JsonNodeType.ARRAY, tree.getNodeType());
+
+    tree = tree.get(0);
+    assertNotNull(tree);
+    assertEquals("detailCode", tree.get("code").textValue());
+    assertEquals("detailMessage", tree.get("message").textValue());
+    assertEquals("detailTarget", tree.get("target").textValue());
+  }
+}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/c37d4da5/lib/server-core/src/test/java/org/apache/olingo/server/core/serializer/json/ODataErrorSerializerTest.java
----------------------------------------------------------------------
diff --git a/lib/server-core/src/test/java/org/apache/olingo/server/core/serializer/json/ODataErrorSerializerTest.java b/lib/server-core/src/test/java/org/apache/olingo/server/core/serializer/json/ODataErrorSerializerTest.java
deleted file mode 100644
index de5a25e..0000000
--- a/lib/server-core/src/test/java/org/apache/olingo/server/core/serializer/json/ODataErrorSerializerTest.java
+++ /dev/null
@@ -1,136 +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.server.core.serializer.json;
-
-import static org.junit.Assert.assertEquals;
-import static org.junit.Assert.assertNotNull;
-
-import java.io.InputStream;
-import java.util.ArrayList;
-import java.util.List;
-
-import org.apache.commons.io.IOUtils;
-import org.apache.olingo.commons.api.domain.ODataErrorDetail;
-import org.apache.olingo.commons.api.format.ODataFormat;
-import org.apache.olingo.server.api.OData;
-import org.apache.olingo.server.api.ODataServerError;
-import org.apache.olingo.server.api.serializer.ODataSerializer;
-import org.apache.olingo.server.api.serializer.SerializerException;
-import org.junit.Before;
-import org.junit.Test;
-
-import com.fasterxml.jackson.databind.JsonNode;
-import com.fasterxml.jackson.databind.ObjectMapper;
-import com.fasterxml.jackson.databind.node.JsonNodeType;
-
-public class ODataErrorSerializerTest {
-
-  ODataSerializer ser;
-
-  @Before
-  public void before() throws Exception {
-    ser = OData.newInstance().createSerializer(ODataFormat.JSON);
-  }
-
-  @Test
-  public void basicODataErrorNoCode() throws Exception {
-    ODataServerError error = new ODataServerError();
-    error.setMessage("ErrorMessage");
-    InputStream stream = ser.error(error).getContent();
-    String jsonString = IOUtils.toString(stream);
-    assertEquals("{\"error\":{\"code\":null,\"message\":\"ErrorMessage\"}}", jsonString);
-  }
-
-  @Test
-  public void basicODataErrorWithCode() throws Exception {
-    ODataServerError error = new ODataServerError();
-    error.setCode("Code").setMessage("ErrorMessage");
-    InputStream stream = ser.error(error).getContent();
-    String jsonString = IOUtils.toString(stream);
-    assertEquals("{\"error\":{\"code\":\"Code\",\"message\":\"ErrorMessage\"}}", jsonString);
-  }
-
-  @Test
-  public void basicODataErrorWithCodeAndTarget() throws Exception {
-    ODataServerError error = new ODataServerError();
-    error.setCode("Code").setMessage("ErrorMessage").setTarget("Target");
-    InputStream stream = ser.error(error).getContent();
-    String jsonString = IOUtils.toString(stream);
-    assertEquals("{\"error\":{\"code\":\"Code\",\"message\":\"ErrorMessage\",\"target\":\"Target\"}}", jsonString);
-  }
-
-  @Test(expected = SerializerException.class)
-  public void nullErrorResultsInException() throws Exception {
-    ser.error(null);
-  }
-
-  @Test
-  public void emptyDetailsList() throws Exception {
-    ODataServerError error = new ODataServerError();
-    error.setMessage("ErrorMessage").setDetails(new ArrayList<ODataErrorDetail>());
-    InputStream stream = ser.error(error).getContent();
-    String jsonString = IOUtils.toString(stream);
-    assertEquals("{\"error\":{\"code\":null,\"message\":\"ErrorMessage\",\"details\":[]}}", jsonString);
-  }
-
-  @Test
-  public void nothingSetAtODataErrorObject() throws Exception {
-    ODataServerError error = new ODataServerError();
-    InputStream stream = ser.error(error).getContent();
-    String jsonString = IOUtils.toString(stream);
-    assertEquals("{\"error\":{\"code\":null,\"message\":null}}", jsonString);
-  }
-
-  @Test
-  public void singleDetailNothingSet() throws Exception {
-    List<ODataErrorDetail> details = new ArrayList<ODataErrorDetail>();
-    details.add(new ODataErrorDetail());
-    ODataServerError error = new ODataServerError().setDetails(details);
-    InputStream stream = ser.error(error).getContent();
-    String jsonString = IOUtils.toString(stream);
-    assertEquals("{\"error\":{\"code\":null,\"message\":null,\"details\":[{\"code\":null,\"message\":null}]}}",
-        jsonString);
-  }
-
-  @Test
-  public void verifiedWithJacksonParser() throws Exception {
-    List<ODataErrorDetail> details = new ArrayList<ODataErrorDetail>();
-    details.add(new ODataErrorDetail().setCode("detailCode").setMessage("detailMessage").setTarget("detailTarget"));
-    ODataServerError error =
-        new ODataServerError().setCode("Code").setMessage("Message").setTarget("Target").setDetails(details);
-    InputStream stream = ser.error(error).getContent();
-    JsonNode tree = new ObjectMapper().readTree(stream);
-    assertNotNull(tree);
-    tree = tree.get("error");
-    assertNotNull(tree);
-    assertEquals("Code", tree.get("code").textValue());
-    assertEquals("Message", tree.get("message").textValue());
-    assertEquals("Target", tree.get("target").textValue());
-
-    tree = tree.get("details");
-    assertNotNull(tree);
-    assertEquals(JsonNodeType.ARRAY, tree.getNodeType());
-
-    tree = tree.get(0);
-    assertNotNull(tree);
-    assertEquals("detailCode", tree.get("code").textValue());
-    assertEquals("detailMessage", tree.get("message").textValue());
-    assertEquals("detailTarget", tree.get("target").textValue());
-  }
-}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/c37d4da5/lib/server-tecsvc/src/main/java/org/apache/olingo/server/tecsvc/data/DataCreator.java
----------------------------------------------------------------------
diff --git a/lib/server-tecsvc/src/main/java/org/apache/olingo/server/tecsvc/data/DataCreator.java b/lib/server-tecsvc/src/main/java/org/apache/olingo/server/tecsvc/data/DataCreator.java
index dcb3bfd..452e529 100644
--- a/lib/server-tecsvc/src/main/java/org/apache/olingo/server/tecsvc/data/DataCreator.java
+++ b/lib/server-tecsvc/src/main/java/org/apache/olingo/server/tecsvc/data/DataCreator.java
@@ -35,7 +35,7 @@ import org.apache.olingo.commons.api.data.EntityCollection;
 import org.apache.olingo.commons.api.data.Link;
 import org.apache.olingo.commons.api.data.Property;
 import org.apache.olingo.commons.api.data.ValueType;
-import org.apache.olingo.commons.api.domain.ODataLinkType;
+import org.apache.olingo.commons.api.domain.ClientLinkType;
 
 public class DataCreator {
 
@@ -628,7 +628,7 @@ public class DataCreator {
     Link link = entity.getNavigationLink(navigationPropertyName);
     if (link == null) {
       link = new Link();
-      link.setType(ODataLinkType.ENTITY_NAVIGATION.toString());
+      link.setType(ClientLinkType.ENTITY_NAVIGATION.toString());
       link.setTitle(navigationPropertyName);
       entity.getNavigationLinks().add(link);
     }
@@ -639,7 +639,7 @@ public class DataCreator {
     Link link = entity.getNavigationLink(navigationPropertyName);
     if (link == null) {
       link = new Link();
-      link.setType(ODataLinkType.ENTITY_SET_NAVIGATION.toString());
+      link.setType(ClientLinkType.ENTITY_SET_NAVIGATION.toString());
       link.setTitle(navigationPropertyName);
       EntityCollection target = new EntityCollection();
       target.getEntities().addAll(Arrays.asList(targets));

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/c37d4da5/lib/server-test/src/test/java/org/apache/olingo/server/core/ODataHandlerTest.java
----------------------------------------------------------------------
diff --git a/lib/server-test/src/test/java/org/apache/olingo/server/core/ODataHandlerTest.java b/lib/server-test/src/test/java/org/apache/olingo/server/core/ODataHandlerTest.java
index 20eb233..2a51b8d 100644
--- a/lib/server-test/src/test/java/org/apache/olingo/server/core/ODataHandlerTest.java
+++ b/lib/server-test/src/test/java/org/apache/olingo/server/core/ODataHandlerTest.java
@@ -51,7 +51,7 @@ import org.apache.olingo.server.api.OData;
 import org.apache.olingo.server.api.ODataApplicationException;
 import org.apache.olingo.server.api.ODataRequest;
 import org.apache.olingo.server.api.ODataResponse;
-import org.apache.olingo.server.api.ODataServerError;
+import org.apache.olingo.server.api.ClientServerError;
 import org.apache.olingo.server.api.ServiceMetadata;
 import org.apache.olingo.server.api.edmx.EdmxReference;
 import org.apache.olingo.server.api.processor.ActionComplexCollectionProcessor;
@@ -692,7 +692,7 @@ public class ODataHandlerTest {
     ErrorProcessor errorProcessor = mock(ErrorProcessor.class);
     dispatch(HttpMethod.POST, "ESAllPrim", "", HttpHeader.CONTENT_TYPE, "some/unsupported", errorProcessor);
     verifyZeroInteractions(processor);
-    verify(errorProcessor).processError(any(ODataRequest.class), any(ODataResponse.class), any(ODataServerError.class),
+    verify(errorProcessor).processError(any(ODataRequest.class), any(ODataResponse.class), any(ClientServerError.class),
         any(ContentType.class));
   }
 

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/c37d4da5/lib/server-test/src/test/java/org/apache/olingo/server/core/deserializer/json/ODataDeserializerDeepInsertTest.java
----------------------------------------------------------------------
diff --git a/lib/server-test/src/test/java/org/apache/olingo/server/core/deserializer/json/ODataDeserializerDeepInsertTest.java b/lib/server-test/src/test/java/org/apache/olingo/server/core/deserializer/json/ODataDeserializerDeepInsertTest.java
index 0347941..192f9b7 100644
--- a/lib/server-test/src/test/java/org/apache/olingo/server/core/deserializer/json/ODataDeserializerDeepInsertTest.java
+++ b/lib/server-test/src/test/java/org/apache/olingo/server/core/deserializer/json/ODataDeserializerDeepInsertTest.java
@@ -27,7 +27,7 @@ import java.io.InputStream;
 
 import org.apache.olingo.commons.api.data.Entity;
 import org.apache.olingo.commons.api.data.Link;
-import org.apache.olingo.commons.api.domain.ODataLinkType;
+import org.apache.olingo.commons.api.domain.ClientLinkType;
 import org.apache.olingo.commons.api.edm.EdmEntityType;
 import org.apache.olingo.commons.api.edm.FullQualifiedName;
 import org.apache.olingo.commons.api.format.ODataFormat;
@@ -46,7 +46,7 @@ public class ODataDeserializerDeepInsertTest extends AbstractODataDeserializerTe
     assertNotNull(navigationLink);
 
     assertEquals("NavPropertyETTwoPrimOne", navigationLink.getTitle());
-    assertEquals(ODataLinkType.ENTITY_NAVIGATION.toString(), navigationLink.getType());
+    assertEquals(ClientLinkType.ENTITY_NAVIGATION.toString(), navigationLink.getType());
     assertNotNull(navigationLink.getInlineEntity());
     assertNull(navigationLink.getInlineEntitySet());
   }
@@ -68,7 +68,7 @@ public class ODataDeserializerDeepInsertTest extends AbstractODataDeserializerTe
     assertNotNull(navigationLink);
 
     assertEquals("NavPropertyETTwoPrimMany", navigationLink.getTitle());
-    assertEquals(ODataLinkType.ENTITY_SET_NAVIGATION.toString(), navigationLink.getType());
+    assertEquals(ClientLinkType.ENTITY_SET_NAVIGATION.toString(), navigationLink.getType());
     assertNull(navigationLink.getInlineEntity());
     assertNotNull(navigationLink.getInlineEntitySet());
     assertEquals(1, navigationLink.getInlineEntitySet().getEntities().size());

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/c37d4da5/lib/server-test/src/test/java/org/apache/olingo/server/core/deserializer/json/ODataJsonDeserializerEntityTest.java
----------------------------------------------------------------------
diff --git a/lib/server-test/src/test/java/org/apache/olingo/server/core/deserializer/json/ODataJsonDeserializerEntityTest.java b/lib/server-test/src/test/java/org/apache/olingo/server/core/deserializer/json/ODataJsonDeserializerEntityTest.java
index 8c01c21..7886fbc 100644
--- a/lib/server-test/src/test/java/org/apache/olingo/server/core/deserializer/json/ODataJsonDeserializerEntityTest.java
+++ b/lib/server-test/src/test/java/org/apache/olingo/server/core/deserializer/json/ODataJsonDeserializerEntityTest.java
@@ -40,7 +40,7 @@ import org.apache.olingo.commons.api.data.Entity;
 import org.apache.olingo.commons.api.data.Link;
 import org.apache.olingo.commons.api.data.Property;
 import org.apache.olingo.commons.api.data.ValueType;
-import org.apache.olingo.commons.api.domain.ODataLinkType;
+import org.apache.olingo.commons.api.domain.ClientLinkType;
 import org.apache.olingo.commons.api.edm.Edm;
 import org.apache.olingo.commons.api.edm.EdmEntityType;
 import org.apache.olingo.commons.api.edm.EdmProperty;
@@ -474,7 +474,7 @@ public class ODataJsonDeserializerEntityTest extends AbstractODataDeserializerTe
     assertNotNull(bindingToOne);
     assertEquals("NavPropertyETTwoPrimOne", bindingToOne.getTitle());
     assertEquals("ESTwoPrim(2)", bindingToOne.getBindingLink());
-    assertEquals(ODataLinkType.ENTITY_BINDING.toString(), bindingToOne.getType());
+    assertEquals(ClientLinkType.ENTITY_BINDING.toString(), bindingToOne.getType());
     assertTrue(bindingToOne.getBindingLinks().isEmpty());
     assertNull(bindingToOne.getHref());
     assertNull(bindingToOne.getRel());
@@ -484,7 +484,7 @@ public class ODataJsonDeserializerEntityTest extends AbstractODataDeserializerTe
     assertEquals("NavPropertyETTwoPrimMany", bindingToMany.getTitle());
     assertNotNull(bindingToMany.getBindingLinks());
     assertEquals(2, bindingToMany.getBindingLinks().size());
-    assertEquals(ODataLinkType.ENTITY_COLLECTION_BINDING.toString(), bindingToMany.getType());
+    assertEquals(ClientLinkType.ENTITY_COLLECTION_BINDING.toString(), bindingToMany.getType());
     assertNull(bindingToMany.getBindingLink());
     assertNull(bindingToMany.getHref());
     assertNull(bindingToMany.getRel());


[43/50] [abbrv] olingo-odata4 git commit: [OLINGO-564] first step for common -> client extraction

Posted by mi...@apache.org.
http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/17152920/lib/commons-core/src/main/java/org/apache/olingo/commons/core/serialization/JsonDeserializer.java
----------------------------------------------------------------------
diff --git a/lib/commons-core/src/main/java/org/apache/olingo/commons/core/serialization/JsonDeserializer.java b/lib/commons-core/src/main/java/org/apache/olingo/commons/core/serialization/JsonDeserializer.java
index 9977b06..1047bdf 100755
--- a/lib/commons-core/src/main/java/org/apache/olingo/commons/core/serialization/JsonDeserializer.java
+++ b/lib/commons-core/src/main/java/org/apache/olingo/commons/core/serialization/JsonDeserializer.java
@@ -43,9 +43,8 @@ import org.apache.olingo.commons.api.data.Property;
 import org.apache.olingo.commons.api.data.ResWrap;
 import org.apache.olingo.commons.api.data.Valuable;
 import org.apache.olingo.commons.api.data.ValueType;
-import org.apache.olingo.commons.api.domain.ClientError;
-import org.apache.olingo.commons.api.domain.ClientLinkType;
-import org.apache.olingo.commons.api.domain.ClientPropertyType;
+import org.apache.olingo.commons.api.domain.ODataError;
+import org.apache.olingo.commons.api.domain.ODataPropertyType;
 import org.apache.olingo.commons.api.edm.EdmPrimitiveType;
 import org.apache.olingo.commons.api.edm.EdmPrimitiveTypeException;
 import org.apache.olingo.commons.api.edm.EdmPrimitiveTypeKind;
@@ -100,11 +99,11 @@ public class JsonDeserializer implements ODataDeserializer {
       JsonEntityDeserializer entityDeserializer = new JsonEntityDeserializer(serverMode);
 
       if (inline instanceof ObjectNode) {
-        link.setType(ClientLinkType.ENTITY_NAVIGATION.toString());
+        link.setType(Constants.ENTITY_NAVIGATION_LINK_TYPE);
         link.setInlineEntity(entityDeserializer.doDeserialize(inline.traverse(codec)).getPayload());
 
       } else if (inline instanceof ArrayNode) {
-        link.setType(ClientLinkType.ENTITY_SET_NAVIGATION.toString());
+          link.setType(Constants.ENTITY_SET_NAVIGATION_LINK_TYPE);
 
         final EntityCollection entitySet = new EntityCollection();
         for (final Iterator<JsonNode> entries = inline.elements(); entries.hasNext();) {
@@ -136,7 +135,7 @@ public class JsonDeserializer implements ODataDeserializer {
 
       if (field.getValue().isValueNode()) {
         link.setHref(field.getValue().textValue());
-        link.setType(ClientLinkType.ENTITY_NAVIGATION.toString());
+        link.setType(Constants.ENTITY_NAVIGATION_LINK_TYPE);
       }
 
       linked.getNavigationLinks().add(link);
@@ -148,7 +147,7 @@ public class JsonDeserializer implements ODataDeserializer {
       link.setTitle(getTitle(field));
       link.setRel(Constants.NS_ASSOCIATION_LINK_REL + getTitle(field));
       link.setHref(field.getValue().textValue());
-      link.setType(ClientLinkType.ASSOCIATION.toString());
+      link.setType(Constants.ASSOCIATION_LINK_TYPE);
       linked.getAssociationLinks().add(link);
 
       toRemove.add(field.getKey());
@@ -168,7 +167,7 @@ public class JsonDeserializer implements ODataDeserializer {
         link.setTitle(getTitle(field));
         link.setRel(Constants.NS_NAVIGATION_LINK_REL + getTitle(field));
         link.setHref(field.getValue().textValue());
-        link.setType(ClientLinkType.ENTITY_NAVIGATION.toString());
+        link.setType(Constants.ENTITY_NAVIGATION_LINK_TYPE);
         linked.getNavigationLinks().add(link);
 
         toRemove.add(setInline(field.getKey(), suffix, tree, codec, link));
@@ -180,7 +179,7 @@ public class JsonDeserializer implements ODataDeserializer {
           link.setTitle(getTitle(field));
           link.setRel(Constants.NS_NAVIGATION_LINK_REL + getTitle(field));
           link.setHref(node.asText());
-          link.setType(ClientLinkType.ENTITY_SET_NAVIGATION.toString());
+          link.setType(Constants.ENTITY_SET_NAVIGATION_LINK_TYPE);
           linked.getNavigationLinks().add(link);
           toRemove.add(setInline(field.getKey(), Constants.JSON_BIND_LINK_SUFFIX, tree, codec, link));
         }
@@ -189,32 +188,32 @@ public class JsonDeserializer implements ODataDeserializer {
     }
   }
 
-  private Map.Entry<ClientPropertyType, EdmTypeInfo> guessPropertyType(final JsonNode node) {
-    ClientPropertyType type;
+  private Map.Entry<ODataPropertyType, EdmTypeInfo> guessPropertyType(final JsonNode node) {
+    ODataPropertyType type;
     String typeExpression = null;
 
     if (node.isValueNode() || node.isNull()) {
-      type = ClientPropertyType.PRIMITIVE;
+      type = ODataPropertyType.PRIMITIVE;
       typeExpression = guessPrimitiveTypeKind(node).getFullQualifiedName().toString();
     } else if (node.isArray()) {
-      type = ClientPropertyType.COLLECTION;
+      type = ODataPropertyType.COLLECTION;
       if (node.has(0) && node.get(0).isValueNode()) {
         typeExpression = "Collection(" + guessPrimitiveTypeKind(node.get(0)) + ')';
       }
     } else if (node.isObject()) {
       if (node.has(Constants.ATTR_TYPE)) {
-        type = ClientPropertyType.PRIMITIVE;
+        type = ODataPropertyType.PRIMITIVE;
         typeExpression = "Edm.Geography" + node.get(Constants.ATTR_TYPE).asText();
       } else {
-        type = ClientPropertyType.COMPLEX;
+        type = ODataPropertyType.COMPLEX;
       }
     } else {
-      type = ClientPropertyType.EMPTY;
+      type = ODataPropertyType.EMPTY;
     }
 
     final EdmTypeInfo typeInfo = typeExpression == null ? null :
         new EdmTypeInfo.Builder().setTypeExpression(typeExpression).build();
-    return new SimpleEntry<ClientPropertyType, EdmTypeInfo>(type, typeInfo);
+    return new SimpleEntry<ODataPropertyType, EdmTypeInfo>(type, typeInfo);
   }
 
   private EdmPrimitiveTypeKind guessPrimitiveTypeKind(final JsonNode node) {
@@ -337,15 +336,15 @@ public class JsonDeserializer implements ODataDeserializer {
     EdmTypeInfo typeInfo = StringUtils.isBlank(valuable.getType()) ? null
         : new EdmTypeInfo.Builder().setTypeExpression(valuable.getType()).build();
 
-    final Map.Entry<ClientPropertyType, EdmTypeInfo> guessed = guessPropertyType(node);
+    final Map.Entry<ODataPropertyType, EdmTypeInfo> guessed = guessPropertyType(node);
     if (typeInfo == null) {
       typeInfo = guessed.getValue();
     }
 
-    final ClientPropertyType propType = typeInfo == null ? guessed.getKey()
-        : typeInfo.isCollection() ? ClientPropertyType.COLLECTION
-            : typeInfo.isPrimitiveType() ? ClientPropertyType.PRIMITIVE
-                : node.isValueNode() ? ClientPropertyType.ENUM : ClientPropertyType.COMPLEX;
+    final ODataPropertyType propType = typeInfo == null ? guessed.getKey()
+        : typeInfo.isCollection() ? ODataPropertyType.COLLECTION
+            : typeInfo.isPrimitiveType() ? ODataPropertyType.PRIMITIVE
+                : node.isValueNode() ? ODataPropertyType.ENUM : ODataPropertyType.COMPLEX;
 
     switch (propType) {
     case COLLECTION:
@@ -411,7 +410,7 @@ public class JsonDeserializer implements ODataDeserializer {
   }
 
   @Override
-  public ClientError toError(final InputStream input) throws ODataDeserializerException {
+  public ODataError toError(final InputStream input) throws ODataDeserializerException {
     try {
       parser = new JsonFactory(new ObjectMapper()).createParser(input);
       return new JsonODataErrorDeserializer(serverMode).doDeserialize(parser);

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/17152920/lib/commons-core/src/main/java/org/apache/olingo/commons/core/serialization/JsonEntityDeserializer.java
----------------------------------------------------------------------
diff --git a/lib/commons-core/src/main/java/org/apache/olingo/commons/core/serialization/JsonEntityDeserializer.java b/lib/commons-core/src/main/java/org/apache/olingo/commons/core/serialization/JsonEntityDeserializer.java
index 47a2598..248f425 100644
--- a/lib/commons-core/src/main/java/org/apache/olingo/commons/core/serialization/JsonEntityDeserializer.java
+++ b/lib/commons-core/src/main/java/org/apache/olingo/commons/core/serialization/JsonEntityDeserializer.java
@@ -34,9 +34,8 @@ import org.apache.olingo.commons.api.Constants;
 import org.apache.olingo.commons.api.data.Annotation;
 import org.apache.olingo.commons.api.data.Entity;
 import org.apache.olingo.commons.api.data.Link;
+import org.apache.olingo.commons.api.data.Operation;
 import org.apache.olingo.commons.api.data.ResWrap;
-import org.apache.olingo.commons.api.domain.ClientLinkType;
-import org.apache.olingo.commons.api.domain.ClientOperation;
 import org.apache.olingo.commons.api.edm.EdmPrimitiveTypeException;
 import org.apache.olingo.commons.core.edm.EdmTypeInfo;
 
@@ -154,7 +153,7 @@ public class JsonEntityDeserializer extends JsonDeserializer {
         link.setTitle(getTitle(field));
         link.setRel(Constants.NS_MEDIA_EDIT_LINK_REL + getTitle(field));
         link.setHref(field.getValue().textValue());
-        link.setType(ClientLinkType.MEDIA_EDIT.toString());
+        link.setType(Constants.MEDIA_EDIT_LINK_TYPE);
         entity.getMediaEditLinks().add(link);
 
         if (tree.has(link.getTitle() + getJSONAnnotation(Constants.JSON_MEDIA_ETAG))) {
@@ -174,7 +173,7 @@ public class JsonEntityDeserializer extends JsonDeserializer {
         }
         toRemove.add(field.getKey());
       } else if (field.getKey().charAt(0) == '#') {
-        final ClientOperation operation = new ClientOperation();
+        final Operation operation = new Operation();
         operation.setMetadataAnchor(field.getKey());
 
         final ObjectNode opNode = (ObjectNode) tree.get(field.getKey());

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/17152920/lib/commons-core/src/main/java/org/apache/olingo/commons/core/serialization/JsonEntitySerializer.java
----------------------------------------------------------------------
diff --git a/lib/commons-core/src/main/java/org/apache/olingo/commons/core/serialization/JsonEntitySerializer.java b/lib/commons-core/src/main/java/org/apache/olingo/commons/core/serialization/JsonEntitySerializer.java
index 9f58664..8a6030d 100644
--- a/lib/commons-core/src/main/java/org/apache/olingo/commons/core/serialization/JsonEntitySerializer.java
+++ b/lib/commons-core/src/main/java/org/apache/olingo/commons/core/serialization/JsonEntitySerializer.java
@@ -25,9 +25,9 @@ import org.apache.olingo.commons.api.Constants;
 import org.apache.olingo.commons.api.data.Annotation;
 import org.apache.olingo.commons.api.data.Entity;
 import org.apache.olingo.commons.api.data.Link;
+import org.apache.olingo.commons.api.data.Operation;
 import org.apache.olingo.commons.api.data.Property;
 import org.apache.olingo.commons.api.data.ResWrap;
-import org.apache.olingo.commons.api.domain.ClientOperation;
 import org.apache.olingo.commons.api.edm.EdmPrimitiveTypeException;
 import org.apache.olingo.commons.api.format.ODataFormat;
 import org.apache.olingo.commons.core.edm.EdmTypeInfo;
@@ -122,7 +122,7 @@ public class JsonEntitySerializer extends JsonSerializer {
     }
 
     if (serverMode) {
-      for (ClientOperation operation : entity.getOperations()) {
+      for (Operation operation : entity.getOperations()) {
         jgen.writeObjectFieldStart("#" + StringUtils.substringAfterLast(operation.getMetadataAnchor(), "#"));
         jgen.writeStringField(Constants.ATTR_TITLE, operation.getTitle());
         jgen.writeStringField(Constants.ATTR_TARGET, operation.getTarget().toASCIIString());

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/17152920/lib/commons-core/src/main/java/org/apache/olingo/commons/core/serialization/JsonODataErrorDeserializer.java
----------------------------------------------------------------------
diff --git a/lib/commons-core/src/main/java/org/apache/olingo/commons/core/serialization/JsonODataErrorDeserializer.java b/lib/commons-core/src/main/java/org/apache/olingo/commons/core/serialization/JsonODataErrorDeserializer.java
index 9e225ad..89252dc 100644
--- a/lib/commons-core/src/main/java/org/apache/olingo/commons/core/serialization/JsonODataErrorDeserializer.java
+++ b/lib/commons-core/src/main/java/org/apache/olingo/commons/core/serialization/JsonODataErrorDeserializer.java
@@ -25,8 +25,8 @@ import java.util.Iterator;
 import java.util.List;
 
 import org.apache.olingo.commons.api.Constants;
-import org.apache.olingo.commons.api.domain.ClientError;
-import org.apache.olingo.commons.api.domain.ClientErrorDetail;
+import org.apache.olingo.commons.api.domain.ODataError;
+import org.apache.olingo.commons.api.domain.ODataErrorDetail;
 
 import com.fasterxml.jackson.core.JsonParser;
 import com.fasterxml.jackson.databind.JsonNode;
@@ -38,9 +38,9 @@ public class JsonODataErrorDeserializer extends JsonDeserializer {
     super(serverMode);
   }
 
-  protected ClientError doDeserialize(final JsonParser parser) throws IOException {
+  protected ODataError doDeserialize(final JsonParser parser) throws IOException {
 
-    final ClientError error = new ClientError();
+    final ODataError error = new ODataError();
 
     final ObjectNode tree = parser.getCodec().readTree(parser);
     if (tree.has(Constants.JSON_ERROR)) {
@@ -61,7 +61,7 @@ public class JsonODataErrorDeserializer extends JsonDeserializer {
         error.setTarget(errorNode.get(Constants.ERROR_TARGET).textValue());
       }
       if (errorNode.hasNonNull(Constants.ERROR_DETAILS)) {
-        List<ClientErrorDetail> details = new ArrayList<ClientErrorDetail>();
+        List<ODataErrorDetail> details = new ArrayList<ODataErrorDetail>();
         JsonODataErrorDetailDeserializer detailDeserializer = new JsonODataErrorDetailDeserializer(serverMode);
         for (JsonNode jsonNode : errorNode.get(Constants.ERROR_DETAILS)) {
           details.add(detailDeserializer.doDeserialize(jsonNode.traverse(parser.getCodec()))

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/17152920/lib/commons-core/src/main/java/org/apache/olingo/commons/core/serialization/JsonODataErrorDetailDeserializer.java
----------------------------------------------------------------------
diff --git a/lib/commons-core/src/main/java/org/apache/olingo/commons/core/serialization/JsonODataErrorDetailDeserializer.java b/lib/commons-core/src/main/java/org/apache/olingo/commons/core/serialization/JsonODataErrorDetailDeserializer.java
index 0b5cddb..138bad3 100644
--- a/lib/commons-core/src/main/java/org/apache/olingo/commons/core/serialization/JsonODataErrorDetailDeserializer.java
+++ b/lib/commons-core/src/main/java/org/apache/olingo/commons/core/serialization/JsonODataErrorDetailDeserializer.java
@@ -23,7 +23,7 @@ import java.net.URI;
 
 import org.apache.olingo.commons.api.Constants;
 import org.apache.olingo.commons.api.data.ResWrap;
-import org.apache.olingo.commons.api.domain.ClientErrorDetail;
+import org.apache.olingo.commons.api.domain.ODataErrorDetail;
 
 import com.fasterxml.jackson.core.JsonParser;
 import com.fasterxml.jackson.databind.JsonNode;
@@ -34,9 +34,9 @@ public class JsonODataErrorDetailDeserializer extends JsonDeserializer {
     super(serverMode);
   }
 
-  protected ResWrap<ClientErrorDetail> doDeserialize(final JsonParser parser) throws IOException {
+  protected ResWrap<ODataErrorDetail> doDeserialize(final JsonParser parser) throws IOException {
 
-    final ClientErrorDetail error = new ClientErrorDetail();
+    final ODataErrorDetail error = new ODataErrorDetail();
     final JsonNode errorNode = parser.getCodec().readTree(parser);
     if (errorNode.has(Constants.ERROR_CODE)) {
       error.setCode(errorNode.get(Constants.ERROR_CODE).textValue());
@@ -53,6 +53,6 @@ public class JsonODataErrorDetailDeserializer extends JsonDeserializer {
       error.setTarget(errorNode.get(Constants.ERROR_TARGET).textValue());
     }
 
-    return new ResWrap<ClientErrorDetail>((URI) null, null, error);
+    return new ResWrap<ODataErrorDetail>((URI) null, null, error);
   }
 }

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/17152920/lib/commons-core/src/main/java/org/apache/olingo/commons/core/serialization/JsonSerializer.java
----------------------------------------------------------------------
diff --git a/lib/commons-core/src/main/java/org/apache/olingo/commons/core/serialization/JsonSerializer.java b/lib/commons-core/src/main/java/org/apache/olingo/commons/core/serialization/JsonSerializer.java
index 2eae519..727e03e 100755
--- a/lib/commons-core/src/main/java/org/apache/olingo/commons/core/serialization/JsonSerializer.java
+++ b/lib/commons-core/src/main/java/org/apache/olingo/commons/core/serialization/JsonSerializer.java
@@ -40,7 +40,6 @@ import org.apache.olingo.commons.api.data.Property;
 import org.apache.olingo.commons.api.data.ResWrap;
 import org.apache.olingo.commons.api.data.Valuable;
 import org.apache.olingo.commons.api.data.ValueType;
-import org.apache.olingo.commons.api.domain.ClientLinkType;
 import org.apache.olingo.commons.api.edm.EdmPrimitiveTypeException;
 import org.apache.olingo.commons.api.edm.EdmPrimitiveTypeKind;
 import org.apache.olingo.commons.api.edm.geo.Geospatial;
@@ -157,14 +156,7 @@ public class JsonSerializer implements ODataSerializer {
         valuable(jgen, annotation, link.getTitle() + "@" + annotation.getTerm());
       }
 
-      ClientLinkType type = null;
-      try {
-        type = ClientLinkType.fromString(link.getRel(), link.getType());
-      } catch (IllegalArgumentException e) {
-        // ignore
-      }
-
-      if (type == ClientLinkType.ENTITY_SET_NAVIGATION) {
+      if (isEntitySetNavigation(link)) {
         final List<String> uris;
         if (entitySetLinks.containsKey(link.getTitle())) {
           uris = entitySetLinks.get(link.getTitle());
@@ -204,6 +196,10 @@ public class JsonSerializer implements ODataSerializer {
     }
   }
 
+  private boolean isEntitySetNavigation(Link link) {
+    return Constants.ENTITY_SET_NAVIGATION_LINK_TYPE.equals(link.getType());
+  }
+
   protected void serverLinks(final Linked linked, final JsonGenerator jgen)
       throws IOException, EdmPrimitiveTypeException {
     if (linked instanceof Entity) {

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/17152920/lib/server-api/src/main/java/org/apache/olingo/server/api/ClientServerError.java
----------------------------------------------------------------------
diff --git a/lib/server-api/src/main/java/org/apache/olingo/server/api/ClientServerError.java b/lib/server-api/src/main/java/org/apache/olingo/server/api/ClientServerError.java
index f64f0d0..6bbde22 100644
--- a/lib/server-api/src/main/java/org/apache/olingo/server/api/ClientServerError.java
+++ b/lib/server-api/src/main/java/org/apache/olingo/server/api/ClientServerError.java
@@ -22,13 +22,13 @@ import java.util.List;
 import java.util.Locale;
 import java.util.Map;
 
-import org.apache.olingo.commons.api.domain.ClientError;
-import org.apache.olingo.commons.api.domain.ClientErrorDetail;
+import org.apache.olingo.commons.api.domain.ODataError;
+import org.apache.olingo.commons.api.domain.ODataErrorDetail;
 
 /**
  * Server error.
  */
-public class ClientServerError extends ClientError {
+public class ClientServerError extends ODataError {
 
   private Exception exception;
   private int statusCode;
@@ -121,7 +121,7 @@ public class ClientServerError extends ClientError {
    * Sets error details.
    * @return this for method chaining.
    */
-  public ClientServerError setDetails(List<ClientErrorDetail> details) {
+  public ClientServerError setDetails(List<ODataErrorDetail> details) {
     super.setDetails(details);
     return this;
   }

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/17152920/lib/server-core-ext/src/main/java/org/apache/olingo/server/core/responses/ResponseUtil.java
----------------------------------------------------------------------
diff --git a/lib/server-core-ext/src/main/java/org/apache/olingo/server/core/responses/ResponseUtil.java b/lib/server-core-ext/src/main/java/org/apache/olingo/server/core/responses/ResponseUtil.java
index e20299a..0cc16a0 100644
--- a/lib/server-core-ext/src/main/java/org/apache/olingo/server/core/responses/ResponseUtil.java
+++ b/lib/server-core-ext/src/main/java/org/apache/olingo/server/core/responses/ResponseUtil.java
@@ -22,13 +22,13 @@ import java.util.ArrayList;
 import java.util.Arrays;
 import java.util.List;
 
+import org.apache.olingo.commons.api.Constants;
 import org.apache.olingo.commons.api.data.ComplexValue;
 import org.apache.olingo.commons.api.data.Entity;
 import org.apache.olingo.commons.api.data.EntityCollection;
 import org.apache.olingo.commons.api.data.Link;
 import org.apache.olingo.commons.api.data.Property;
 import org.apache.olingo.commons.api.data.ValueType;
-import org.apache.olingo.commons.api.domain.ClientLinkType;
 
 public class ResponseUtil {
   public static Property createPrimitive(final String name, final String type, final Object value) {
@@ -62,7 +62,7 @@ public class ResponseUtil {
     Link link = entity.getNavigationLink(navigationPropertyName);
     if (link == null) {
       link = new Link();
-      link.setType(ClientLinkType.ENTITY_NAVIGATION.toString());
+      link.setType(Constants.ENTITY_NAVIGATION_LINK_TYPE);
       link.setTitle(navigationPropertyName);
       entity.getNavigationLinks().add(link);
     }
@@ -73,7 +73,7 @@ public class ResponseUtil {
     Link link = entity.getNavigationLink(navigationPropertyName);
     if (link == null) {
       link = new Link();
-      link.setType(ClientLinkType.ENTITY_SET_NAVIGATION.toString());
+      link.setType(Constants.ENTITY_SET_NAVIGATION_LINK_TYPE);
       link.setTitle(navigationPropertyName);
       EntityCollection target = new EntityCollection();
       target.getEntities().addAll(Arrays.asList(targets));

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/17152920/lib/server-core/src/main/java/org/apache/olingo/server/core/deserializer/json/ODataJsonDeserializer.java
----------------------------------------------------------------------
diff --git a/lib/server-core/src/main/java/org/apache/olingo/server/core/deserializer/json/ODataJsonDeserializer.java b/lib/server-core/src/main/java/org/apache/olingo/server/core/deserializer/json/ODataJsonDeserializer.java
index e6ab0c9..5bbbcff 100644
--- a/lib/server-core/src/main/java/org/apache/olingo/server/core/deserializer/json/ODataJsonDeserializer.java
+++ b/lib/server-core/src/main/java/org/apache/olingo/server/core/deserializer/json/ODataJsonDeserializer.java
@@ -37,7 +37,6 @@ import org.apache.olingo.commons.api.data.Link;
 import org.apache.olingo.commons.api.data.Parameter;
 import org.apache.olingo.commons.api.data.Property;
 import org.apache.olingo.commons.api.data.ValueType;
-import org.apache.olingo.commons.api.domain.ClientLinkType;
 import org.apache.olingo.commons.api.edm.EdmAction;
 import org.apache.olingo.commons.api.edm.EdmComplexType;
 import org.apache.olingo.commons.api.edm.EdmEntityType;
@@ -358,14 +357,14 @@ public class ODataJsonDeserializer implements ODataDeserializer {
         final ExpandTreeBuilder childExpandBuilder = (expandBuilder != null) ?
             expandBuilder.expand(edmNavigationProperty) : null;
         if (jsonNode.isArray() && edmNavigationProperty.isCollection()) {
-          link.setType(ClientLinkType.ENTITY_SET_NAVIGATION.toString());
+          link.setType(Constants.ENTITY_SET_NAVIGATION_LINK_TYPE);
           EntityCollection inlineEntitySet = new EntityCollection();
           inlineEntitySet.getEntities().addAll(consumeEntitySetArray(edmNavigationProperty.getType(), jsonNode,
               childExpandBuilder));
           link.setInlineEntitySet(inlineEntitySet);
         } else if (!jsonNode.isArray() && (!jsonNode.isValueNode() || jsonNode.isNull())
             && !edmNavigationProperty.isCollection()) {
-          link.setType(ClientLinkType.ENTITY_NAVIGATION.toString());
+          link.setType(Constants.ENTITY_NAVIGATION_LINK_TYPE);
           if (!jsonNode.isNull()) {
             Entity inlineEntity = consumeEntityNode(edmNavigationProperty.getType(), (ObjectNode) jsonNode,
                 childExpandBuilder);
@@ -409,7 +408,7 @@ public class ODataJsonDeserializer implements ODataDeserializer {
         }
         bindingLinkStrings.add(arrayValue.asText());
       }
-      bindingLink.setType(ClientLinkType.ENTITY_COLLECTION_BINDING.toString());
+      bindingLink.setType(Constants.ENTITY_COLLECTION_BINDING_LINK_TYPE);
       bindingLink.setBindingLinks(bindingLinkStrings);
     } else {
       assertIsNullNode(key, jsonNode);
@@ -418,7 +417,7 @@ public class ODataJsonDeserializer implements ODataDeserializer {
             DeserializerException.MessageKeys.INVALID_ANNOTATION_TYPE, key);
       }
       bindingLink.setBindingLink(jsonNode.asText());
-      bindingLink.setType(ClientLinkType.ENTITY_BINDING.toString());
+      bindingLink.setType(Constants.ENTITY_BINDING_LINK_TYPE);
     }
     return bindingLink;
   }

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/17152920/lib/server-core/src/main/java/org/apache/olingo/server/core/serializer/json/ODataErrorSerializer.java
----------------------------------------------------------------------
diff --git a/lib/server-core/src/main/java/org/apache/olingo/server/core/serializer/json/ODataErrorSerializer.java b/lib/server-core/src/main/java/org/apache/olingo/server/core/serializer/json/ODataErrorSerializer.java
index 354c811..14381bb 100644
--- a/lib/server-core/src/main/java/org/apache/olingo/server/core/serializer/json/ODataErrorSerializer.java
+++ b/lib/server-core/src/main/java/org/apache/olingo/server/core/serializer/json/ODataErrorSerializer.java
@@ -21,15 +21,15 @@ package org.apache.olingo.server.core.serializer.json;
 import java.io.IOException;
 
 import org.apache.olingo.commons.api.Constants;
-import org.apache.olingo.commons.api.domain.ClientError;
-import org.apache.olingo.commons.api.domain.ClientErrorDetail;
+import org.apache.olingo.commons.api.domain.ODataError;
+import org.apache.olingo.commons.api.domain.ODataErrorDetail;
 import org.apache.olingo.server.api.serializer.SerializerException;
 
 import com.fasterxml.jackson.core.JsonGenerator;
 
 public class ODataErrorSerializer {
 
-  public void writeErrorDocument(JsonGenerator json, final ClientError error)
+  public void writeErrorDocument(JsonGenerator json, final ODataError error)
       throws IOException, SerializerException {
     if (error == null) {
       throw new SerializerException("ODataError object MUST NOT be null!",
@@ -43,7 +43,7 @@ public class ODataErrorSerializer {
 
     if (error.getDetails() != null) {
       json.writeArrayFieldStart(Constants.ERROR_DETAILS);
-      for (ClientErrorDetail detail : error.getDetails()) {
+      for (ODataErrorDetail detail : error.getDetails()) {
         json.writeStartObject();
         writeODataError(json, detail.getCode(), detail.getMessage(), detail.getTarget());
         json.writeEndObject();

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/17152920/lib/server-core/src/test/java/org/apache/olingo/server/core/serializer/json/ClientErrorSerializerTest.java
----------------------------------------------------------------------
diff --git a/lib/server-core/src/test/java/org/apache/olingo/server/core/serializer/json/ClientErrorSerializerTest.java b/lib/server-core/src/test/java/org/apache/olingo/server/core/serializer/json/ClientErrorSerializerTest.java
index c30a719..adf0eb4 100644
--- a/lib/server-core/src/test/java/org/apache/olingo/server/core/serializer/json/ClientErrorSerializerTest.java
+++ b/lib/server-core/src/test/java/org/apache/olingo/server/core/serializer/json/ClientErrorSerializerTest.java
@@ -26,7 +26,7 @@ import java.util.ArrayList;
 import java.util.List;
 
 import org.apache.commons.io.IOUtils;
-import org.apache.olingo.commons.api.domain.ClientErrorDetail;
+import org.apache.olingo.commons.api.domain.ODataErrorDetail;
 import org.apache.olingo.commons.api.format.ODataFormat;
 import org.apache.olingo.server.api.OData;
 import org.apache.olingo.server.api.ClientServerError;
@@ -83,7 +83,7 @@ public class ClientErrorSerializerTest {
   @Test
   public void emptyDetailsList() throws Exception {
     ClientServerError error = new ClientServerError();
-    error.setMessage("ErrorMessage").setDetails(new ArrayList<ClientErrorDetail>());
+    error.setMessage("ErrorMessage").setDetails(new ArrayList<ODataErrorDetail>());
     InputStream stream = ser.error(error).getContent();
     String jsonString = IOUtils.toString(stream);
     assertEquals("{\"error\":{\"code\":null,\"message\":\"ErrorMessage\",\"details\":[]}}", jsonString);
@@ -99,8 +99,8 @@ public class ClientErrorSerializerTest {
 
   @Test
   public void singleDetailNothingSet() throws Exception {
-    List<ClientErrorDetail> details = new ArrayList<ClientErrorDetail>();
-    details.add(new ClientErrorDetail());
+    List<ODataErrorDetail> details = new ArrayList<ODataErrorDetail>();
+    details.add(new ODataErrorDetail());
     ClientServerError error = new ClientServerError().setDetails(details);
     InputStream stream = ser.error(error).getContent();
     String jsonString = IOUtils.toString(stream);
@@ -110,8 +110,8 @@ public class ClientErrorSerializerTest {
 
   @Test
   public void verifiedWithJacksonParser() throws Exception {
-    List<ClientErrorDetail> details = new ArrayList<ClientErrorDetail>();
-    details.add(new ClientErrorDetail().setCode("detailCode").setMessage("detailMessage").setTarget("detailTarget"));
+    List<ODataErrorDetail> details = new ArrayList<ODataErrorDetail>();
+    details.add(new ODataErrorDetail().setCode("detailCode").setMessage("detailMessage").setTarget("detailTarget"));
     ClientServerError error =
         new ClientServerError().setCode("Code").setMessage("Message").setTarget("Target").setDetails(details);
     InputStream stream = ser.error(error).getContent();

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/17152920/lib/server-tecsvc/src/main/java/org/apache/olingo/server/tecsvc/data/DataCreator.java
----------------------------------------------------------------------
diff --git a/lib/server-tecsvc/src/main/java/org/apache/olingo/server/tecsvc/data/DataCreator.java b/lib/server-tecsvc/src/main/java/org/apache/olingo/server/tecsvc/data/DataCreator.java
index 452e529..db0b7ac 100644
--- a/lib/server-tecsvc/src/main/java/org/apache/olingo/server/tecsvc/data/DataCreator.java
+++ b/lib/server-tecsvc/src/main/java/org/apache/olingo/server/tecsvc/data/DataCreator.java
@@ -29,13 +29,13 @@ import java.util.Map;
 import java.util.TimeZone;
 import java.util.UUID;
 
+import org.apache.olingo.commons.api.Constants;
 import org.apache.olingo.commons.api.data.ComplexValue;
 import org.apache.olingo.commons.api.data.Entity;
 import org.apache.olingo.commons.api.data.EntityCollection;
 import org.apache.olingo.commons.api.data.Link;
 import org.apache.olingo.commons.api.data.Property;
 import org.apache.olingo.commons.api.data.ValueType;
-import org.apache.olingo.commons.api.domain.ClientLinkType;
 
 public class DataCreator {
 
@@ -628,7 +628,7 @@ public class DataCreator {
     Link link = entity.getNavigationLink(navigationPropertyName);
     if (link == null) {
       link = new Link();
-      link.setType(ClientLinkType.ENTITY_NAVIGATION.toString());
+      link.setType(Constants.ENTITY_NAVIGATION_LINK_TYPE);
       link.setTitle(navigationPropertyName);
       entity.getNavigationLinks().add(link);
     }
@@ -639,7 +639,7 @@ public class DataCreator {
     Link link = entity.getNavigationLink(navigationPropertyName);
     if (link == null) {
       link = new Link();
-      link.setType(ClientLinkType.ENTITY_SET_NAVIGATION.toString());
+      link.setType(Constants.ENTITY_SET_NAVIGATION_LINK_TYPE);
       link.setTitle(navigationPropertyName);
       EntityCollection target = new EntityCollection();
       target.getEntities().addAll(Arrays.asList(targets));

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/17152920/lib/server-test/src/test/java/org/apache/olingo/server/core/deserializer/json/ODataDeserializerDeepInsertTest.java
----------------------------------------------------------------------
diff --git a/lib/server-test/src/test/java/org/apache/olingo/server/core/deserializer/json/ODataDeserializerDeepInsertTest.java b/lib/server-test/src/test/java/org/apache/olingo/server/core/deserializer/json/ODataDeserializerDeepInsertTest.java
index 192f9b7..bcacb3a 100644
--- a/lib/server-test/src/test/java/org/apache/olingo/server/core/deserializer/json/ODataDeserializerDeepInsertTest.java
+++ b/lib/server-test/src/test/java/org/apache/olingo/server/core/deserializer/json/ODataDeserializerDeepInsertTest.java
@@ -25,9 +25,9 @@ import static org.junit.Assert.assertNull;
 import java.io.ByteArrayInputStream;
 import java.io.InputStream;
 
+import org.apache.olingo.commons.api.Constants;
 import org.apache.olingo.commons.api.data.Entity;
 import org.apache.olingo.commons.api.data.Link;
-import org.apache.olingo.commons.api.domain.ClientLinkType;
 import org.apache.olingo.commons.api.edm.EdmEntityType;
 import org.apache.olingo.commons.api.edm.FullQualifiedName;
 import org.apache.olingo.commons.api.format.ODataFormat;
@@ -46,7 +46,7 @@ public class ODataDeserializerDeepInsertTest extends AbstractODataDeserializerTe
     assertNotNull(navigationLink);
 
     assertEquals("NavPropertyETTwoPrimOne", navigationLink.getTitle());
-    assertEquals(ClientLinkType.ENTITY_NAVIGATION.toString(), navigationLink.getType());
+    assertEquals(Constants.ENTITY_NAVIGATION_LINK_TYPE, navigationLink.getType());
     assertNotNull(navigationLink.getInlineEntity());
     assertNull(navigationLink.getInlineEntitySet());
   }
@@ -68,7 +68,7 @@ public class ODataDeserializerDeepInsertTest extends AbstractODataDeserializerTe
     assertNotNull(navigationLink);
 
     assertEquals("NavPropertyETTwoPrimMany", navigationLink.getTitle());
-    assertEquals(ClientLinkType.ENTITY_SET_NAVIGATION.toString(), navigationLink.getType());
+    assertEquals(Constants.ENTITY_SET_NAVIGATION_LINK_TYPE, navigationLink.getType());
     assertNull(navigationLink.getInlineEntity());
     assertNotNull(navigationLink.getInlineEntitySet());
     assertEquals(1, navigationLink.getInlineEntitySet().getEntities().size());

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/17152920/lib/server-test/src/test/java/org/apache/olingo/server/core/deserializer/json/ODataJsonDeserializerEntityTest.java
----------------------------------------------------------------------
diff --git a/lib/server-test/src/test/java/org/apache/olingo/server/core/deserializer/json/ODataJsonDeserializerEntityTest.java b/lib/server-test/src/test/java/org/apache/olingo/server/core/deserializer/json/ODataJsonDeserializerEntityTest.java
index 7886fbc..cd3c710 100644
--- a/lib/server-test/src/test/java/org/apache/olingo/server/core/deserializer/json/ODataJsonDeserializerEntityTest.java
+++ b/lib/server-test/src/test/java/org/apache/olingo/server/core/deserializer/json/ODataJsonDeserializerEntityTest.java
@@ -35,12 +35,12 @@ import java.util.Collections;
 import java.util.Date;
 import java.util.List;
 
+import org.apache.olingo.commons.api.Constants;
 import org.apache.olingo.commons.api.data.ComplexValue;
 import org.apache.olingo.commons.api.data.Entity;
 import org.apache.olingo.commons.api.data.Link;
 import org.apache.olingo.commons.api.data.Property;
 import org.apache.olingo.commons.api.data.ValueType;
-import org.apache.olingo.commons.api.domain.ClientLinkType;
 import org.apache.olingo.commons.api.edm.Edm;
 import org.apache.olingo.commons.api.edm.EdmEntityType;
 import org.apache.olingo.commons.api.edm.EdmProperty;
@@ -474,7 +474,7 @@ public class ODataJsonDeserializerEntityTest extends AbstractODataDeserializerTe
     assertNotNull(bindingToOne);
     assertEquals("NavPropertyETTwoPrimOne", bindingToOne.getTitle());
     assertEquals("ESTwoPrim(2)", bindingToOne.getBindingLink());
-    assertEquals(ClientLinkType.ENTITY_BINDING.toString(), bindingToOne.getType());
+    assertEquals(Constants.ENTITY_BINDING_LINK_TYPE, bindingToOne.getType());
     assertTrue(bindingToOne.getBindingLinks().isEmpty());
     assertNull(bindingToOne.getHref());
     assertNull(bindingToOne.getRel());
@@ -484,7 +484,7 @@ public class ODataJsonDeserializerEntityTest extends AbstractODataDeserializerTe
     assertEquals("NavPropertyETTwoPrimMany", bindingToMany.getTitle());
     assertNotNull(bindingToMany.getBindingLinks());
     assertEquals(2, bindingToMany.getBindingLinks().size());
-    assertEquals(ClientLinkType.ENTITY_COLLECTION_BINDING.toString(), bindingToMany.getType());
+    assertEquals(Constants.ENTITY_COLLECTION_BINDING_LINK_TYPE, bindingToMany.getType());
     assertNull(bindingToMany.getBindingLink());
     assertNull(bindingToMany.getHref());
     assertNull(bindingToMany.getRel());


[04/50] [abbrv] olingo-odata4 git commit: [OLINGO-564] Renamed client edm classes

Posted by mi...@apache.org.
http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/754e23ab/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/ClientNavigationProperty.java
----------------------------------------------------------------------
diff --git a/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/ClientNavigationProperty.java b/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/ClientNavigationProperty.java
new file mode 100644
index 0000000..cea0c83
--- /dev/null
+++ b/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/ClientNavigationProperty.java
@@ -0,0 +1,80 @@
+/*
+ * 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.client.core.edm.xml;
+
+import com.fasterxml.jackson.core.JsonParser;
+import com.fasterxml.jackson.core.JsonToken;
+import com.fasterxml.jackson.databind.DeserializationContext;
+import org.apache.commons.lang3.BooleanUtils;
+import org.apache.olingo.commons.api.edm.provider.NavigationProperty;
+
+import com.fasterxml.jackson.databind.annotation.JsonDeserialize;
+
+import java.io.IOException;
+
+@JsonDeserialize(using = ClientNavigationProperty.NavigationPropertyDeserializer.class)
+public class ClientNavigationProperty extends NavigationProperty {
+
+  private static final long serialVersionUID = 6240231735592427582L;
+
+  static class NavigationPropertyDeserializer extends AbstractClientEdmDeserializer<NavigationProperty> {
+
+    @Override
+    protected NavigationProperty doDeserialize(final JsonParser jp, final DeserializationContext ctxt)
+            throws IOException {
+
+      final NavigationProperty property = new ClientNavigationProperty();
+
+      for (; jp.getCurrentToken() != JsonToken.END_OBJECT; jp.nextToken()) {
+        final JsonToken token = jp.getCurrentToken();
+        if (token == JsonToken.FIELD_NAME) {
+          if ("Name".equals(jp.getCurrentName())) {
+            property.setName(jp.nextTextValue());
+          } else if ("Type".equals(jp.getCurrentName())) {
+            String metadataTypeName = jp.nextTextValue();
+            if (metadataTypeName.startsWith("Collection(")) {
+              property.setType(metadataTypeName.substring(metadataTypeName.indexOf("(") + 1,
+                      metadataTypeName.length() - 1));
+              property.setCollection(true);
+            } else {
+              property.setType(metadataTypeName);
+              property.setCollection(false);
+            }
+          } else if ("Nullable".equals(jp.getCurrentName())) {
+            property.setNullable(BooleanUtils.toBoolean(jp.nextTextValue()));
+          } else if ("Partner".equals(jp.getCurrentName())) {
+            property.setPartner(jp.nextTextValue());
+          } else if ("ContainsTarget".equals(jp.getCurrentName())) {
+            property.setContainsTarget(BooleanUtils.toBoolean(jp.nextTextValue()));
+          } else if ("ReferentialConstraint".equals(jp.getCurrentName())) {
+            jp.nextToken();
+            property.getReferentialConstraints().add(jp.readValueAs(ClientReferentialConstraint.class));
+          } else if ("OnDelete".equals(jp.getCurrentName())) {
+            jp.nextToken();
+            property.setOnDelete(jp.readValueAs(ClientOnDelete.class));
+          } else if ("Annotation".equals(jp.getCurrentName())) {
+            jp.nextToken();
+            property.getAnnotations().add(jp.readValueAs(ClientAnnotation.class));
+          }
+        }
+      }
+      return property;
+    }
+  }
+}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/754e23ab/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/ClientNavigationPropertyBinding.java
----------------------------------------------------------------------
diff --git a/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/ClientNavigationPropertyBinding.java b/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/ClientNavigationPropertyBinding.java
new file mode 100644
index 0000000..dae72f3
--- /dev/null
+++ b/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/ClientNavigationPropertyBinding.java
@@ -0,0 +1,66 @@
+/*
+ * 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.client.core.edm.xml;
+
+import com.fasterxml.jackson.core.JsonParser;
+import com.fasterxml.jackson.core.JsonToken;
+import com.fasterxml.jackson.databind.DeserializationContext;
+import com.fasterxml.jackson.databind.annotation.JsonDeserialize;
+import org.apache.olingo.commons.api.edm.provider.NavigationPropertyBinding;
+
+import java.io.IOException;
+
+@JsonDeserialize(using = ClientNavigationPropertyBinding.NavigationPropertyBindingDeserializer.class)
+public class ClientNavigationPropertyBinding extends NavigationPropertyBinding {
+
+  private static final long serialVersionUID = -7056978592235483660L;
+
+  @Override
+  public NavigationPropertyBinding setPath(final String path) {
+    super.setPath(path);
+    return this;
+  }
+
+  @Override
+  public NavigationPropertyBinding setTarget(final String target) {
+    super.setTarget(target);
+    return this;
+  }
+
+  static class NavigationPropertyBindingDeserializer extends AbstractClientEdmDeserializer<NavigationPropertyBinding> {
+    @Override
+    protected NavigationPropertyBinding doDeserialize(final JsonParser jp, final DeserializationContext ctxt)
+            throws IOException {
+
+      final ClientNavigationPropertyBinding member = new ClientNavigationPropertyBinding();
+
+      for (; jp.getCurrentToken() != JsonToken.END_OBJECT; jp.nextToken()) {
+        final JsonToken token = jp.getCurrentToken();
+        if (token == JsonToken.FIELD_NAME) {
+          if ("Path".equals(jp.getCurrentName())) {
+            member.setPath(jp.nextTextValue());
+          } else if ("Target".equals(jp.getCurrentName())) {
+            member.setTarget(jp.nextTextValue());
+          }
+        }
+      }
+      return member;
+    }
+  }
+}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/754e23ab/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/ClientOnDelete.java
----------------------------------------------------------------------
diff --git a/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/ClientOnDelete.java b/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/ClientOnDelete.java
new file mode 100644
index 0000000..398fd58
--- /dev/null
+++ b/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/ClientOnDelete.java
@@ -0,0 +1,54 @@
+/*
+ * 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.client.core.edm.xml;
+
+import com.fasterxml.jackson.core.JsonParser;
+import com.fasterxml.jackson.core.JsonToken;
+import com.fasterxml.jackson.databind.DeserializationContext;
+import com.fasterxml.jackson.databind.annotation.JsonDeserialize;
+import org.apache.olingo.commons.api.edm.provider.OnDelete;
+import org.apache.olingo.commons.api.edm.provider.OnDeleteAction;
+
+import java.io.IOException;
+
+@JsonDeserialize(using = ClientOnDelete.OnDeleteDeserializer.class)
+public class ClientOnDelete extends OnDelete {
+
+  private static final long serialVersionUID = -7130889202653716784L;
+
+  static class OnDeleteDeserializer extends AbstractClientEdmDeserializer<OnDelete> {
+    @Override
+    protected OnDelete doDeserialize(final JsonParser jp, final DeserializationContext ctxt)
+            throws IOException {
+
+      final OnDelete ondelete = new ClientOnDelete();
+
+      for (; jp.getCurrentToken() != JsonToken.END_OBJECT; jp.nextToken()) {
+        final JsonToken token = jp.getCurrentToken();
+        if (token == JsonToken.FIELD_NAME) {
+          if ("Action".equals(jp.getCurrentName())) {
+            OnDeleteAction action = OnDeleteAction.valueOf(jp.nextTextValue());
+            ondelete.setAction(action);
+          }
+        }
+      }
+      return ondelete;
+    }
+  }
+}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/754e23ab/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/ClientParameter.java
----------------------------------------------------------------------
diff --git a/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/ClientParameter.java b/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/ClientParameter.java
new file mode 100644
index 0000000..34f95cf
--- /dev/null
+++ b/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/ClientParameter.java
@@ -0,0 +1,84 @@
+/*
+ * 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.client.core.edm.xml;
+
+import com.fasterxml.jackson.core.JsonParser;
+import com.fasterxml.jackson.core.JsonToken;
+import com.fasterxml.jackson.databind.DeserializationContext;
+import org.apache.commons.lang3.BooleanUtils;
+import org.apache.olingo.commons.api.edm.geo.SRID;
+import org.apache.olingo.commons.api.edm.provider.Parameter;
+
+import com.fasterxml.jackson.databind.annotation.JsonDeserialize;
+
+import java.io.IOException;
+
+@JsonDeserialize(using = ClientParameter.ParameterDeserializer.class)
+public class ClientParameter extends Parameter {
+
+  private static final long serialVersionUID = 7119478691341167904L;
+
+  static class ParameterDeserializer extends AbstractClientEdmDeserializer<ClientParameter> {
+    @Override
+    protected ClientParameter doDeserialize(final JsonParser jp, final DeserializationContext ctxt)
+            throws IOException {
+
+      final ClientParameter parameter = new ClientParameter();
+
+      for (; jp.getCurrentToken() != JsonToken.END_OBJECT; jp.nextToken()) {
+        final JsonToken token = jp.getCurrentToken();
+        if (token == JsonToken.FIELD_NAME) {
+          if ("Name".equals(jp.getCurrentName())) {
+            parameter.setName(jp.nextTextValue());
+          } else if ("Type".equals(jp.getCurrentName())) {
+            String metadataTypeName = jp.nextTextValue();
+            if (metadataTypeName.startsWith("Collection(")) {
+              parameter.setType(metadataTypeName.substring(metadataTypeName.indexOf("(") + 1,
+                      metadataTypeName.length() - 1));
+              parameter.setCollection(true);
+            } else {
+              parameter.setType(metadataTypeName);
+              parameter.setCollection(false);
+            }
+          } else if ("Nullable".equals(jp.getCurrentName())) {
+            parameter.setNullable(BooleanUtils.toBoolean(jp.nextTextValue()));
+          } else if ("MaxLength".equals(jp.getCurrentName())) {
+            final String maxLenght = jp.nextTextValue();
+            parameter.setMaxLength(maxLenght.equalsIgnoreCase("max") ? Integer.MAX_VALUE : Integer.valueOf(maxLenght));
+          } else if ("Precision".equals(jp.getCurrentName())) {
+            parameter.setPrecision(Integer.valueOf(jp.nextTextValue()));
+          } else if ("Scale".equals(jp.getCurrentName())) {
+            final String scale = jp.nextTextValue();
+            parameter.setScale(scale.equalsIgnoreCase("variable") ? 0 : Integer.valueOf(scale));
+          } else if ("SRID".equals(jp.getCurrentName())) {
+            final String srid = jp.nextTextValue();
+            if (srid != null) {
+              parameter.setSrid(SRID.valueOf(srid));
+            }
+          } else if ("Annotation".equals(jp.getCurrentName())) {
+            jp.nextToken();
+            parameter.getAnnotations().add(jp.readValueAs(ClientAnnotation.class));
+          }
+        }
+      }
+
+      return parameter;
+    }
+  }
+}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/754e23ab/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/ClientProperty.java
----------------------------------------------------------------------
diff --git a/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/ClientProperty.java b/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/ClientProperty.java
new file mode 100644
index 0000000..920c383
--- /dev/null
+++ b/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/ClientProperty.java
@@ -0,0 +1,88 @@
+/*
+ * 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.client.core.edm.xml;
+
+import com.fasterxml.jackson.core.JsonParser;
+import com.fasterxml.jackson.core.JsonToken;
+import com.fasterxml.jackson.databind.DeserializationContext;
+import org.apache.commons.lang3.BooleanUtils;
+import org.apache.olingo.commons.api.edm.geo.SRID;
+import org.apache.olingo.commons.api.edm.provider.Property;
+
+import com.fasterxml.jackson.databind.annotation.JsonDeserialize;
+
+import java.io.IOException;
+
+@JsonDeserialize(using = ClientProperty.PropertyDeserializer.class)
+public class ClientProperty extends Property {
+
+  private static final long serialVersionUID = -4521766603286651372L;
+
+  static class PropertyDeserializer extends AbstractClientEdmDeserializer<ClientProperty> {
+    @Override
+    protected ClientProperty doDeserialize(final JsonParser jp, final DeserializationContext ctxt)
+            throws IOException {
+
+      final ClientProperty property = new ClientProperty();
+
+      for (; jp.getCurrentToken() != JsonToken.END_OBJECT; jp.nextToken()) {
+        final JsonToken token = jp.getCurrentToken();
+        if (token == JsonToken.FIELD_NAME) {
+          if ("Name".equals(jp.getCurrentName())) {
+            property.setName(jp.nextTextValue());
+          } else if ("Type".equals(jp.getCurrentName())) {
+            String metadataTypeName = jp.nextTextValue();
+            if (metadataTypeName.startsWith("Collection(")) {
+              property.setType(metadataTypeName.substring(metadataTypeName.indexOf("(") + 1,
+                      metadataTypeName.length() - 1));
+              property.setCollection(true);
+            } else {
+              property.setType(metadataTypeName);
+              property.setCollection(false);
+            }
+          } else if ("Nullable".equals(jp.getCurrentName())) {
+            property.setNullable(BooleanUtils.toBoolean(jp.nextTextValue()));
+          } else if ("DefaultValue".equals(jp.getCurrentName())) {
+            property.setDefaultValue(jp.nextTextValue());
+          } else if ("MaxLength".equals(jp.getCurrentName())) {
+            final String maxLenght = jp.nextTextValue();
+            property.setMaxLength(maxLenght.equalsIgnoreCase("max") ? Integer.MAX_VALUE : Integer.valueOf(maxLenght));
+          } else if ("Precision".equals(jp.getCurrentName())) {
+            property.setPrecision(Integer.valueOf(jp.nextTextValue()));
+          } else if ("Scale".equals(jp.getCurrentName())) {
+            final String scale = jp.nextTextValue();
+            property.setScale(scale.equalsIgnoreCase("variable") ? 0 : Integer.valueOf(scale));
+          } else if ("Unicode".equals(jp.getCurrentName())) {
+            property.setUnicode(BooleanUtils.toBoolean(jp.nextTextValue()));
+          } else if ("SRID".equals(jp.getCurrentName())) {
+            final String srid = jp.nextTextValue();
+            if (srid != null) {
+              property.setSrid(SRID.valueOf(srid));
+            }
+          } else if ("Annotation".equals(jp.getCurrentName())) {
+            jp.nextToken();
+            property.getAnnotations().add(jp.readValueAs(ClientAnnotation.class));
+          }
+        }
+      }
+
+      return property;
+    }
+  }
+}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/754e23ab/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/ClientPropertyRef.java
----------------------------------------------------------------------
diff --git a/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/ClientPropertyRef.java b/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/ClientPropertyRef.java
new file mode 100644
index 0000000..82dc0b0
--- /dev/null
+++ b/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/ClientPropertyRef.java
@@ -0,0 +1,54 @@
+/*
+ * 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.client.core.edm.xml;
+
+import com.fasterxml.jackson.core.JsonParser;
+import com.fasterxml.jackson.core.JsonToken;
+import com.fasterxml.jackson.databind.DeserializationContext;
+import com.fasterxml.jackson.databind.annotation.JsonDeserialize;
+import org.apache.olingo.commons.api.edm.provider.PropertyRef;
+
+import java.io.IOException;
+
+@JsonDeserialize(using = ClientPropertyRef.PropertyRefDeserializer.class)
+public class ClientPropertyRef extends PropertyRef {
+
+  private static final long serialVersionUID = 1504095609268590326L;
+
+  static class PropertyRefDeserializer extends AbstractClientEdmDeserializer<PropertyRef> {
+    @Override
+    protected PropertyRef doDeserialize(final JsonParser jp, final DeserializationContext ctxt)
+            throws IOException {
+
+      final PropertyRef propertyRef = new ClientPropertyRef();
+
+      for (; jp.getCurrentToken() != JsonToken.END_OBJECT; jp.nextToken()) {
+        final JsonToken token = jp.getCurrentToken();
+        if (token == JsonToken.FIELD_NAME) {
+          if ("Name".equals(jp.getCurrentName())) {
+            propertyRef.setName(jp.nextTextValue());
+          } else if ("Alias".equals(jp.getCurrentName())) {
+            propertyRef.setAlias(jp.nextTextValue());
+          }
+        }
+      }
+      return propertyRef;
+    }
+  }
+}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/754e23ab/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/ClientReference.java
----------------------------------------------------------------------
diff --git a/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/ClientReference.java b/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/ClientReference.java
new file mode 100644
index 0000000..a989ba3
--- /dev/null
+++ b/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/ClientReference.java
@@ -0,0 +1,98 @@
+/*
+ * 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.client.core.edm.xml;
+
+import java.io.IOException;
+import java.net.URI;
+import java.util.ArrayList;
+import java.util.List;
+
+import com.fasterxml.jackson.core.JsonParser;
+import com.fasterxml.jackson.core.JsonToken;
+import com.fasterxml.jackson.databind.DeserializationContext;
+import org.apache.olingo.client.api.edm.xml.Include;
+import org.apache.olingo.client.api.edm.xml.IncludeAnnotations;
+import org.apache.olingo.client.api.edm.xml.Reference;
+import org.apache.olingo.commons.api.edm.provider.AbstractEdmItem;
+import org.apache.olingo.commons.api.edm.provider.Annotation;
+
+import com.fasterxml.jackson.databind.annotation.JsonDeserialize;
+
+@JsonDeserialize(using = ClientReference.ReferenceDeserializer.class)
+public class ClientReference extends AbstractEdmItem implements Reference {
+
+  private static final long serialVersionUID = 7720274712545267654L;
+
+  private URI uri;
+  private final List<Include> includes = new ArrayList<Include>();
+  private final List<IncludeAnnotations> includeAnnotations = new ArrayList<IncludeAnnotations>();
+  private final List<Annotation> annotations = new ArrayList<Annotation>();
+
+  @Override
+  public List<Annotation> getAnnotations() {
+    return annotations;
+  }
+  
+  @Override
+  public URI getUri() {
+    return uri;
+  }
+
+  public void setUri(final URI uri) {
+    this.uri = uri;
+  }
+
+  @Override
+  public List<Include> getIncludes() {
+    return includes;
+  }
+
+  @Override
+  public List<IncludeAnnotations> getIncludeAnnotations() {
+    return includeAnnotations;
+  }
+
+  static class ReferenceDeserializer extends AbstractClientEdmDeserializer<ClientReference> {
+    @Override
+    protected ClientReference doDeserialize(final JsonParser jp, final DeserializationContext ctxt)
+            throws IOException {
+      final ClientReference reference = new ClientReference();
+
+      for (; jp.getCurrentToken() != JsonToken.END_OBJECT; jp.nextToken()) {
+        final JsonToken token = jp.getCurrentToken();
+        if (token == JsonToken.FIELD_NAME) {
+          if ("Uri".equals(jp.getCurrentName())) {
+            reference.setUri(URI.create(jp.nextTextValue()));
+          } else if ("Include".equals(jp.getCurrentName())) {
+            jp.nextToken();
+            reference.getIncludes().add(jp.readValueAs( ClientInclude.class));
+          } else if ("IncludeAnnotations".equals(jp.getCurrentName())) {
+            jp.nextToken();
+            reference.getIncludeAnnotations().add(jp.readValueAs( ClientIncludeAnnotations.class));
+          } else if ("Annotation".equals(jp.getCurrentName())) {
+            jp.nextToken();
+            reference.getAnnotations().add(jp.readValueAs( ClientAnnotation.class));
+          }
+        }
+      }
+
+      return reference;
+    }
+  }
+}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/754e23ab/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/ClientReferentialConstraint.java
----------------------------------------------------------------------
diff --git a/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/ClientReferentialConstraint.java b/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/ClientReferentialConstraint.java
new file mode 100644
index 0000000..9524e74
--- /dev/null
+++ b/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/ClientReferentialConstraint.java
@@ -0,0 +1,54 @@
+/*
+ * 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.client.core.edm.xml;
+
+import com.fasterxml.jackson.core.JsonParser;
+import com.fasterxml.jackson.core.JsonToken;
+import com.fasterxml.jackson.databind.DeserializationContext;
+import com.fasterxml.jackson.databind.annotation.JsonDeserialize;
+import org.apache.olingo.commons.api.edm.provider.ReferentialConstraint;
+
+import java.io.IOException;
+
+@JsonDeserialize(using = ClientReferentialConstraint.ReferentialConstraintDeserializer.class)
+public class ClientReferentialConstraint extends ReferentialConstraint {
+
+  private static final long serialVersionUID = -5822115908069878139L;
+
+  static class ReferentialConstraintDeserializer extends AbstractClientEdmDeserializer<ReferentialConstraint> {
+    @Override
+    protected ReferentialConstraint doDeserialize(final JsonParser jp, final DeserializationContext ctxt)
+            throws IOException {
+
+      final ReferentialConstraint refConst = new ClientReferentialConstraint();
+
+      for (; jp.getCurrentToken() != JsonToken.END_OBJECT; jp.nextToken()) {
+        final JsonToken token = jp.getCurrentToken();
+        if (token == JsonToken.FIELD_NAME) {
+          if ("Property".equals(jp.getCurrentName())) {
+            refConst.setProperty(jp.nextTextValue());
+          } else if ("ReferencedProperty".equals(jp.getCurrentName())) {
+            refConst.setReferencedProperty(jp.nextTextValue());
+          }
+        }
+      }
+      return refConst;
+    }
+  }
+}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/754e23ab/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/ClientReturnType.java
----------------------------------------------------------------------
diff --git a/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/ClientReturnType.java b/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/ClientReturnType.java
new file mode 100644
index 0000000..587a189
--- /dev/null
+++ b/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/ClientReturnType.java
@@ -0,0 +1,78 @@
+/*
+ * 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.client.core.edm.xml;
+
+import com.fasterxml.jackson.core.JsonParser;
+import com.fasterxml.jackson.core.JsonToken;
+import com.fasterxml.jackson.databind.DeserializationContext;
+import org.apache.commons.lang3.BooleanUtils;
+import org.apache.olingo.commons.api.edm.geo.SRID;
+import org.apache.olingo.commons.api.edm.provider.ReturnType;
+
+import com.fasterxml.jackson.databind.annotation.JsonDeserialize;
+
+import java.io.IOException;
+
+@JsonDeserialize(using = ClientReturnType.ReturnTypeDeserializer.class)
+public class ClientReturnType extends ReturnType {
+
+  private static final long serialVersionUID = 6261092793901735110L;
+
+  static class ReturnTypeDeserializer extends AbstractClientEdmDeserializer<ClientReturnType> {
+    @Override
+    protected ClientReturnType doDeserialize(final JsonParser jp, final DeserializationContext ctxt)
+            throws IOException {
+      final ClientReturnType returnType = new ClientReturnType();
+
+      for (; jp.getCurrentToken() != JsonToken.END_OBJECT; jp.nextToken()) {
+        final JsonToken token = jp.getCurrentToken();
+        if (token == JsonToken.FIELD_NAME) {
+          if ("Type".equals(jp.getCurrentName())) {
+            String metadataTypeName = jp.nextTextValue();
+            if (metadataTypeName.startsWith("Collection(")) {
+              returnType.setType(metadataTypeName.substring(metadataTypeName.indexOf("(") + 1,
+                      metadataTypeName.length() - 1));
+              returnType.setCollection(true);
+            } else {
+              returnType.setType(metadataTypeName);
+              returnType.setCollection(false);
+            }
+          } else if ("Nullable".equals(jp.getCurrentName())) {
+            returnType.setNullable(BooleanUtils.toBoolean(jp.nextTextValue()));
+          } else if ("MaxLength".equals(jp.getCurrentName())) {
+            final String maxLenght = jp.nextTextValue();
+            returnType.setMaxLength(maxLenght.equalsIgnoreCase("max") ? Integer.MAX_VALUE : Integer.valueOf(maxLenght));
+          } else if ("Precision".equals(jp.getCurrentName())) {
+            returnType.setPrecision(Integer.valueOf(jp.nextTextValue()));
+          } else if ("Scale".equals(jp.getCurrentName())) {
+            final String scale = jp.nextTextValue();
+            returnType.setScale(scale.equalsIgnoreCase("variable") ? 0 : Integer.valueOf(scale));
+          } else if ("SRID".equals(jp.getCurrentName())) {
+            final String srid = jp.nextTextValue();
+            if (srid != null) {
+              returnType.setSrid(SRID.valueOf(srid));
+            }
+          }
+        }
+      }
+
+      return returnType;
+    }
+  }
+}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/754e23ab/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/ClientSchema.java
----------------------------------------------------------------------
diff --git a/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/ClientSchema.java b/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/ClientSchema.java
new file mode 100644
index 0000000..46e76cd
--- /dev/null
+++ b/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/ClientSchema.java
@@ -0,0 +1,86 @@
+/*
+ * 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.client.core.edm.xml;
+
+import com.fasterxml.jackson.core.JsonParser;
+import com.fasterxml.jackson.core.JsonToken;
+import com.fasterxml.jackson.databind.DeserializationContext;
+import org.apache.olingo.commons.api.edm.provider.Schema;
+
+import com.fasterxml.jackson.databind.annotation.JsonDeserialize;
+
+import java.io.IOException;
+
+@JsonDeserialize(using = ClientSchema.SchemaDeserializer.class)
+public class ClientSchema extends Schema {
+
+  private static final long serialVersionUID = 1911087363912024939L;
+
+  static class SchemaDeserializer extends AbstractClientEdmDeserializer<ClientSchema> {
+    @Override
+    protected ClientSchema doDeserialize(final JsonParser jp, final DeserializationContext ctxt)
+            throws IOException {
+      final ClientSchema schema = new ClientSchema();
+
+      for (; jp.getCurrentToken() != JsonToken.END_OBJECT; jp.nextToken()) {
+        final JsonToken token = jp.getCurrentToken();
+        if (token == JsonToken.FIELD_NAME) {
+          if ("Namespace".equals(jp.getCurrentName())) {
+            schema.setNamespace(jp.nextTextValue());
+          } else if ("Alias".equals(jp.getCurrentName())) {
+            schema.setAlias(jp.nextTextValue());
+          } else if ("ComplexType".equals(jp.getCurrentName())) {
+            jp.nextToken();
+            schema.getComplexTypes().add(jp.readValueAs(ClientComplexType.class));
+          } else if ("EntityType".equals(jp.getCurrentName())) {
+            jp.nextToken();
+            schema.getEntityTypes().add(jp.readValueAs(ClientEntityType.class));
+          } else if ("EnumType".equals(jp.getCurrentName())) {
+            jp.nextToken();
+            schema.getEnumTypes().add(jp.readValueAs(ClientEnumType.class));
+          } else if ("EntityContainer".equals(jp.getCurrentName())) {
+            jp.nextToken();
+            ClientEntityContainer entityContainer = jp.readValueAs(ClientEntityContainer.class);
+            schema.setEntityContainer(entityContainer);
+          } else if ("Action".equals(jp.getCurrentName())) {
+            jp.nextToken();
+            schema.getActions().add(jp.readValueAs(ClientAction.class));
+          } else if ("Function".equals(jp.getCurrentName())) {
+            jp.nextToken();
+            schema.getFunctions().add(jp.readValueAs(ClientFunction.class));
+          } else if ("TypeDefinition".equals(jp.getCurrentName())) {
+            jp.nextToken();
+            schema.getTypeDefinitions().add(jp.readValueAs(ClientTypeDefinition.class));
+          }
+        } else if ("Annotations".equals(jp.getCurrentName())) {
+          jp.nextToken();
+          schema.getAnnotationGroups().add(jp.readValueAs(ClientAnnotations.class));
+        } else if ("Annotation".equals(jp.getCurrentName())) {
+          jp.nextToken();
+          schema.getAnnotations().add(jp.readValueAs(ClientAnnotation.class));
+        } else if ("Term".equals(jp.getCurrentName())) {
+          jp.nextToken();
+          schema.getTerms().add(jp.readValueAs(ClientTerm.class));
+        }
+      }
+
+      return schema;
+    }
+  }
+}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/754e23ab/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/ClientSingleton.java
----------------------------------------------------------------------
diff --git a/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/ClientSingleton.java b/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/ClientSingleton.java
new file mode 100644
index 0000000..efe25ea
--- /dev/null
+++ b/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/ClientSingleton.java
@@ -0,0 +1,62 @@
+/*
+ * 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.client.core.edm.xml;
+
+import com.fasterxml.jackson.core.JsonParser;
+import com.fasterxml.jackson.core.JsonToken;
+import com.fasterxml.jackson.databind.DeserializationContext;
+import org.apache.olingo.commons.api.edm.provider.Singleton;
+
+import com.fasterxml.jackson.databind.annotation.JsonDeserialize;
+
+import java.io.IOException;
+
+@JsonDeserialize(using = ClientSingleton.SingletonDeserializer.class)
+public class ClientSingleton extends Singleton {
+
+  private static final long serialVersionUID = 1656749615107151921L;
+
+  static class SingletonDeserializer extends AbstractClientEdmDeserializer<ClientSingleton> {
+    @Override
+    protected ClientSingleton doDeserialize(final JsonParser jp, final DeserializationContext ctxt)
+            throws IOException {
+      final ClientSingleton singleton = new ClientSingleton();
+
+      for (; jp.getCurrentToken() != JsonToken.END_OBJECT; jp.nextToken()) {
+        final JsonToken token = jp.getCurrentToken();
+        if (token == JsonToken.FIELD_NAME) {
+          if ("Name".equals(jp.getCurrentName())) {
+            singleton.setName(jp.nextTextValue());
+          } else if ("Type".equals(jp.getCurrentName())) {
+            singleton.setType(jp.nextTextValue());
+          } else if ("NavigationPropertyBinding".equals(jp.getCurrentName())) {
+            jp.nextToken();
+            singleton.getNavigationPropertyBindings().add(
+                    jp.readValueAs(ClientNavigationPropertyBinding.class));
+          } else if ("Annotation".equals(jp.getCurrentName())) {
+            jp.nextToken();
+            singleton.getAnnotations().add(jp.readValueAs(ClientAnnotation.class));
+          }
+        }
+      }
+
+      return singleton;
+    }
+  }
+}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/754e23ab/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/ClientTerm.java
----------------------------------------------------------------------
diff --git a/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/ClientTerm.java b/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/ClientTerm.java
new file mode 100644
index 0000000..b343ee9
--- /dev/null
+++ b/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/ClientTerm.java
@@ -0,0 +1,83 @@
+/*
+ * 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.client.core.edm.xml;
+
+import com.fasterxml.jackson.core.JsonParser;
+import com.fasterxml.jackson.core.JsonToken;
+import com.fasterxml.jackson.databind.DeserializationContext;
+import org.apache.commons.lang3.BooleanUtils;
+import org.apache.commons.lang3.StringUtils;
+import org.apache.olingo.commons.api.edm.geo.SRID;
+import org.apache.olingo.commons.api.edm.provider.Term;
+
+import com.fasterxml.jackson.databind.annotation.JsonDeserialize;
+
+import java.io.IOException;
+import java.util.Arrays;
+
+@JsonDeserialize(using = ClientTerm.TermDeserializer.class)
+public class ClientTerm extends Term {
+
+  private static final long serialVersionUID = -8350072064720586186L;
+
+  static class TermDeserializer extends AbstractClientEdmDeserializer<ClientTerm> {
+    @Override
+    protected ClientTerm doDeserialize(final JsonParser jp, final DeserializationContext ctxt)
+            throws IOException {
+      final ClientTerm term = new ClientTerm();
+
+      for (; jp.getCurrentToken() != JsonToken.END_OBJECT; jp.nextToken()) {
+        final JsonToken token = jp.getCurrentToken();
+        if (token == JsonToken.FIELD_NAME) {
+          if ("Name".equals(jp.getCurrentName())) {
+            term.setName(jp.nextTextValue());
+          } else if ("Type".equals(jp.getCurrentName())) {
+            term.setType(jp.nextTextValue());
+          } else if ("BaseTerm".equals(jp.getCurrentName())) {
+            term.setBaseTerm(jp.nextTextValue());
+          } else if ("DefaultValue".equals(jp.getCurrentName())) {
+            term.setDefaultValue(jp.nextTextValue());
+          } else if ("Nullable".equals(jp.getCurrentName())) {
+            term.setNullable(BooleanUtils.toBoolean(jp.nextTextValue()));
+          } else if ("MaxLength".equals(jp.getCurrentName())) {
+            final String maxLenght = jp.nextTextValue();
+            term.setMaxLength(maxLenght.equalsIgnoreCase("max") ? Integer.MAX_VALUE : Integer.valueOf(maxLenght));
+          } else if ("Precision".equals(jp.getCurrentName())) {
+            term.setPrecision(Integer.valueOf(jp.nextTextValue()));
+          } else if ("Scale".equals(jp.getCurrentName())) {
+            final String scale = jp.nextTextValue();
+            term.setScale(scale.equalsIgnoreCase("variable") ? 0 : Integer.valueOf(scale));
+          } else if ("SRID".equals(jp.getCurrentName())) {
+            final String srid = jp.nextTextValue();
+            if (srid != null) {
+              term.setSrid(SRID.valueOf(srid));
+            }
+          } else if ("AppliesTo".equals(jp.getCurrentName())) {
+            term.getAppliesTo().addAll(Arrays.asList(StringUtils.split(jp.nextTextValue())));
+          } else if ("Annotation".equals(jp.getCurrentName())) {
+            jp.nextToken();
+            term.getAnnotations().add(jp.readValueAs(ClientAnnotation.class));
+          }
+        }
+      }
+
+      return term;
+    }
+  }
+}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/754e23ab/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/ClientTypeDefinition.java
----------------------------------------------------------------------
diff --git a/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/ClientTypeDefinition.java b/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/ClientTypeDefinition.java
new file mode 100644
index 0000000..87e2bb8
--- /dev/null
+++ b/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/ClientTypeDefinition.java
@@ -0,0 +1,74 @@
+/*
+ * 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.client.core.edm.xml;
+
+import com.fasterxml.jackson.core.JsonParser;
+import com.fasterxml.jackson.core.JsonToken;
+import com.fasterxml.jackson.databind.DeserializationContext;
+import org.apache.commons.lang3.BooleanUtils;
+import org.apache.olingo.commons.api.edm.geo.SRID;
+import org.apache.olingo.commons.api.edm.provider.TypeDefinition;
+
+import com.fasterxml.jackson.databind.annotation.JsonDeserialize;
+
+import java.io.IOException;
+
+@JsonDeserialize(using = ClientTypeDefinition.TypeDefinitionDeserializer.class)
+public class ClientTypeDefinition extends TypeDefinition {
+
+  private static final long serialVersionUID = -902407149079419602L;
+
+  static class TypeDefinitionDeserializer extends AbstractClientEdmDeserializer<ClientTypeDefinition> {
+    @Override
+    protected ClientTypeDefinition doDeserialize(final JsonParser jp, final DeserializationContext ctxt)
+            throws IOException {
+      final ClientTypeDefinition typeDefinition = new ClientTypeDefinition();
+
+      for (; jp.getCurrentToken() != JsonToken.END_OBJECT; jp.nextToken()) {
+        final JsonToken token = jp.getCurrentToken();
+        if (token == JsonToken.FIELD_NAME) {
+          if ("Name".equals(jp.getCurrentName())) {
+            typeDefinition.setName(jp.nextTextValue());
+          } else if ("UnderlyingType".equals(jp.getCurrentName())) {
+            typeDefinition.setUnderlyingType(jp.nextTextValue());
+          } else if ("MaxLength".equals(jp.getCurrentName())) {
+            typeDefinition.setMaxLength(jp.nextIntValue(0));
+          } else if ("Unicode".equals(jp.getCurrentName())) {
+            typeDefinition.setUnicode(BooleanUtils.toBoolean(jp.nextTextValue()));
+          } else if ("Precision".equals(jp.getCurrentName())) {
+            typeDefinition.setPrecision(jp.nextIntValue(0));
+          } else if ("Scale".equals(jp.getCurrentName())) {
+            final String scale = jp.nextTextValue();
+            typeDefinition.setScale(scale.equalsIgnoreCase("variable") ? 0 : Integer.valueOf(scale));
+          } else if ("SRID".equals(jp.getCurrentName())) {
+            final String srid = jp.nextTextValue();
+            if (srid != null) {
+              typeDefinition.setSrid(SRID.valueOf(srid));
+            }
+          } else if ("Annotation".equals(jp.getCurrentName())) {
+            jp.nextToken();
+            typeDefinition.getAnnotations().add(jp.readValueAs(ClientAnnotation.class));
+          }
+        }
+      }
+
+      return typeDefinition;
+    }
+  }
+}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/754e23ab/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/ClientXMLMetadata.java
----------------------------------------------------------------------
diff --git a/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/ClientXMLMetadata.java b/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/ClientXMLMetadata.java
new file mode 100644
index 0000000..680e622
--- /dev/null
+++ b/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/ClientXMLMetadata.java
@@ -0,0 +1,75 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ * 
+ * http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.olingo.client.core.edm.xml;
+
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
+import org.apache.commons.lang3.StringUtils;
+import org.apache.olingo.client.api.edm.xml.Edmx;
+import org.apache.olingo.client.api.edm.xml.Reference;
+import org.apache.olingo.client.api.edm.xml.XMLMetadata;
+import org.apache.olingo.commons.api.edm.provider.AbstractEdmItem;
+import org.apache.olingo.commons.api.edm.provider.Schema;
+
+/**
+ * Entry point for access information about EDM metadata.
+ */
+public class ClientXMLMetadata extends AbstractEdmItem implements XMLMetadata {
+
+  private static final long serialVersionUID = 6025723060298454901L;
+  protected final Edmx edmx;
+
+  public ClientXMLMetadata(final Edmx edmx) {
+    this.edmx = edmx;
+  }
+
+  @Override
+  public List<Schema> getSchemas() {
+    return this.edmx.getDataServices().getSchemas();
+  }
+
+  @Override
+  public Schema getSchema(final int index) {
+    return getSchemas().get(index);
+  }
+
+  @Override
+  public Schema getSchema(final String key) {
+    return getSchemaByNsOrAlias().get(key);
+  }
+
+  @Override
+  public Map<String, Schema> getSchemaByNsOrAlias() {
+    final Map<String, Schema> schemaByNsOrAlias = new HashMap<String, Schema>();
+    for (Schema schema : getSchemas()) {
+      schemaByNsOrAlias.put(schema.getNamespace(), schema);
+      if (StringUtils.isNotBlank(schema.getAlias())) {
+        schemaByNsOrAlias.put(schema.getAlias(), schema);
+      }
+    }
+    return schemaByNsOrAlias;
+  }
+
+  @Override
+  public List<Reference> getReferences() {
+    return this.edmx.getReferences();
+  }
+}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/754e23ab/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/ComplexTypeImpl.java
----------------------------------------------------------------------
diff --git a/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/ComplexTypeImpl.java b/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/ComplexTypeImpl.java
deleted file mode 100644
index af0b1d6..0000000
--- a/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/ComplexTypeImpl.java
+++ /dev/null
@@ -1,72 +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 >ied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-package org.apache.olingo.client.core.edm.xml;
-
-import com.fasterxml.jackson.core.JsonParser;
-import com.fasterxml.jackson.core.JsonToken;
-import com.fasterxml.jackson.databind.DeserializationContext;
-import org.apache.commons.lang3.BooleanUtils;
-import org.apache.olingo.commons.api.edm.provider.ComplexType;
-
-import com.fasterxml.jackson.databind.annotation.JsonDeserialize;
-
-import java.io.IOException;
-
-@JsonDeserialize(using = ComplexTypeImpl.ComplexTypeDeserializer.class)
-public class ComplexTypeImpl extends ComplexType {
-
-  private static final long serialVersionUID = 4076944306925840115L;
-
-  static class ComplexTypeDeserializer extends AbstractEdmDeserializer<ComplexType> {
-
-    @Override
-    protected ComplexType doDeserialize(final JsonParser jp, final DeserializationContext ctxt)
-            throws IOException {
-
-      final ComplexTypeImpl complexType = new ComplexTypeImpl();
-
-      for (; jp.getCurrentToken() != JsonToken.END_OBJECT; jp.nextToken()) {
-        final JsonToken token = jp.getCurrentToken();
-        if (token == JsonToken.FIELD_NAME) {
-          if ("Name".equals(jp.getCurrentName())) {
-            complexType.setName(jp.nextTextValue());
-          } else if ("Abstract".equals(jp.getCurrentName())) {
-            complexType.setAbstract(BooleanUtils.toBoolean(jp.nextTextValue()));
-          } else if ("BaseType".equals(jp.getCurrentName())) {
-            complexType.setBaseType(jp.nextTextValue());
-          } else if ("OpenType".equals(jp.getCurrentName())) {
-            complexType.setOpenType(BooleanUtils.toBoolean(jp.nextTextValue()));
-          } else if ("Property".equals(jp.getCurrentName())) {
-            jp.nextToken();
-            complexType.getProperties().add(jp.readValueAs(PropertyImpl.class));
-          } else if ("NavigationProperty".equals(jp.getCurrentName())) {
-            jp.nextToken();
-            complexType.getNavigationProperties().add(jp.readValueAs(NavigationPropertyImpl.class));
-          } else if ("Annotation".equals(jp.getCurrentName())) {
-            jp.nextToken();
-            complexType.getAnnotations().add(jp.readValueAs(AnnotationImpl.class));
-          }
-        }
-      }
-
-      return complexType;
-    }
-  }
-
-}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/754e23ab/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/DataServicesImpl.java
----------------------------------------------------------------------
diff --git a/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/DataServicesImpl.java b/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/DataServicesImpl.java
deleted file mode 100644
index e446e29..0000000
--- a/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/DataServicesImpl.java
+++ /dev/null
@@ -1,93 +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.client.core.edm.xml;
-
-import java.io.IOException;
-import java.util.ArrayList;
-import java.util.List;
-
-import com.fasterxml.jackson.core.JsonParser;
-import com.fasterxml.jackson.core.JsonToken;
-import com.fasterxml.jackson.databind.DeserializationContext;
-import org.apache.olingo.client.api.edm.xml.DataServices;
-import org.apache.olingo.commons.api.edm.provider.AbstractEdmItem;
-import org.apache.olingo.commons.api.edm.provider.Schema;
-
-import com.fasterxml.jackson.databind.annotation.JsonDeserialize;
-
-@JsonDeserialize(using = DataServicesImpl.DataServicesDeserializer.class)
-public class DataServicesImpl extends AbstractEdmItem implements DataServices {
-
-  private static final long serialVersionUID = 4200317286476885204L;
-
-  private final List<Schema> schemas = new ArrayList<Schema>();
-  
-  private String dataServiceVersion;
-
-  private String maxDataServiceVersion;
-
-  @Override
-  public String getDataServiceVersion() {
-    return dataServiceVersion;
-  }
-
-  public void setDataServiceVersion(final String version) {
-    this.dataServiceVersion = version;
-  }
-
-  @Override
-  public String getMaxDataServiceVersion() {
-    return maxDataServiceVersion;
-  }
-
-  public void setMaxDataServiceVersion(final String version) {
-    this.maxDataServiceVersion = version;
-  }
-
-  @Override
-  public List<Schema> getSchemas() {
-    return schemas;
-  }
-
-  static class DataServicesDeserializer extends AbstractEdmDeserializer<DataServicesImpl> {
-
-    @Override
-    protected DataServicesImpl doDeserialize(final JsonParser jp, final DeserializationContext ctxt)
-            throws IOException {
-
-      final DataServicesImpl dataServices = new DataServicesImpl();
-
-      for (; jp.getCurrentToken() != JsonToken.END_OBJECT; jp.nextToken()) {
-        final JsonToken token = jp.getCurrentToken();
-        if (token == JsonToken.FIELD_NAME) {
-          if ("DataServiceVersion".equals(jp.getCurrentName())) {
-            dataServices.setDataServiceVersion(jp.nextTextValue());
-          } else if ("MaxDataServiceVersion".equals(jp.getCurrentName())) {
-            dataServices.setMaxDataServiceVersion(jp.nextTextValue());
-          } else if ("Schema".equals(jp.getCurrentName())) {
-            jp.nextToken();
-            dataServices.getSchemas().add(jp.readValueAs(SchemaImpl.class));
-          }
-        }
-      }
-
-      return dataServices;
-    }
-  }
-}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/754e23ab/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/EdmxImpl.java
----------------------------------------------------------------------
diff --git a/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/EdmxImpl.java b/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/EdmxImpl.java
deleted file mode 100644
index 6eb7365..0000000
--- a/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/EdmxImpl.java
+++ /dev/null
@@ -1,95 +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.client.core.edm.xml;
-
-import java.io.IOException;
-import java.util.ArrayList;
-import java.util.List;
-
-import com.fasterxml.jackson.core.JsonParser;
-import com.fasterxml.jackson.core.JsonToken;
-import com.fasterxml.jackson.databind.DeserializationContext;
-import org.apache.olingo.client.api.edm.xml.DataServices;
-import org.apache.olingo.client.api.edm.xml.Edmx;
-import org.apache.olingo.client.api.edm.xml.Reference;
-import org.apache.olingo.commons.api.edm.provider.AbstractEdmItem;
-
-import com.fasterxml.jackson.databind.annotation.JsonDeserialize;
-
-@JsonDeserialize(using = EdmxImpl.EdmxDeserializer.class)
-public class EdmxImpl extends AbstractEdmItem implements Edmx {
-
-  private static final long serialVersionUID = -6293476719276092572L;
-
-  private final List<Reference> references = new ArrayList<Reference>();
-
-  private String version;
-
-  private DataServices dataServices;
-
-  @Override
-  public String getVersion() {
-    return version;
-  }
-
-  public void setVersion(final String version) {
-    this.version = version;
-  }
-
-  @Override
-  public DataServices getDataServices() {
-    return dataServices;
-  }
-
-  public void setDataServices(final DataServices dataServices) {
-    this.dataServices = dataServices;
-  }
-  
-  @Override
-  public List<Reference> getReferences() {
-    return references;
-  }
-
-  static class EdmxDeserializer extends AbstractEdmDeserializer<EdmxImpl> {
-
-    @Override
-    protected EdmxImpl doDeserialize(final JsonParser jp, final DeserializationContext ctxt)
-            throws IOException {
-
-      final EdmxImpl edmx = new EdmxImpl();
-
-      for (; jp.getCurrentToken() != JsonToken.END_OBJECT; jp.nextToken()) {
-        final JsonToken token = jp.getCurrentToken();
-        if (token == JsonToken.FIELD_NAME) {
-          if ("Version".equals(jp.getCurrentName())) {
-            edmx.setVersion(jp.nextTextValue());
-          } else if ("DataServices".equals(jp.getCurrentName())) {
-            jp.nextToken();
-            edmx.setDataServices(jp.readValueAs(DataServicesImpl.class));
-          } else if ("Reference".equals(jp.getCurrentName())) {
-            jp.nextToken();
-            edmx.getReferences().add(jp.readValueAs(ReferenceImpl.class));
-          }
-        }
-      }
-
-      return edmx;
-    }
-  }
-}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/754e23ab/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/EntityContainerImpl.java
----------------------------------------------------------------------
diff --git a/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/EntityContainerImpl.java b/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/EntityContainerImpl.java
deleted file mode 100644
index 4d0abe6..0000000
--- a/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/EntityContainerImpl.java
+++ /dev/null
@@ -1,72 +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.client.core.edm.xml;
-
-import com.fasterxml.jackson.core.JsonParser;
-import com.fasterxml.jackson.core.JsonToken;
-import com.fasterxml.jackson.databind.DeserializationContext;
-import org.apache.olingo.commons.api.edm.provider.EntityContainer;
-
-import com.fasterxml.jackson.databind.annotation.JsonDeserialize;
-
-import java.io.IOException;
-
-@JsonDeserialize(using = EntityContainerImpl.EntityContainerDeserializer.class)
-public class EntityContainerImpl extends EntityContainer {
-
-  private static final long serialVersionUID = 5631432527646955795L;
-
-  static class EntityContainerDeserializer extends AbstractEdmDeserializer<EntityContainerImpl> {
-
-    @Override
-    protected EntityContainerImpl doDeserialize(final JsonParser jp, final DeserializationContext ctxt)
-            throws IOException {
-
-      final EntityContainerImpl entityContainer = new EntityContainerImpl();
-
-      for (; jp.getCurrentToken() != JsonToken.END_OBJECT; jp.nextToken()) {
-        final JsonToken token = jp.getCurrentToken();
-        if (token == JsonToken.FIELD_NAME) {
-          if ("Name".equals(jp.getCurrentName())) {
-            entityContainer.setName(jp.nextTextValue());
-          } else if ("Extends".equals(jp.getCurrentName())) {
-            entityContainer.setExtendsContainer(jp.nextTextValue());
-          } else if ("EntitySet".equals(jp.getCurrentName())) {
-            jp.nextToken();
-            entityContainer.getEntitySets().add(jp.readValueAs(EntitySetImpl.class));
-          } else if ("Singleton".equals(jp.getCurrentName())) {
-            jp.nextToken();
-            entityContainer.getSingletons().add(jp.readValueAs(SingletonImpl.class));
-          } else if ("ActionImport".equals(jp.getCurrentName())) {
-            jp.nextToken();
-            entityContainer.getActionImports().add(jp.readValueAs(ActionImportImpl.class));
-          } else if ("FunctionImport".equals(jp.getCurrentName())) {
-            jp.nextToken();
-            entityContainer.getFunctionImports().add(jp.readValueAs(FunctionImportImpl.class));
-          } else if ("Annotation".equals(jp.getCurrentName())) {
-            jp.nextToken();
-            entityContainer.getAnnotations().add(jp.readValueAs(AnnotationImpl.class));
-          }
-        }
-      }
-
-      return entityContainer;
-    }
-  }
-}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/754e23ab/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/EntityKeyImpl.java
----------------------------------------------------------------------
diff --git a/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/EntityKeyImpl.java b/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/EntityKeyImpl.java
deleted file mode 100644
index 0dc07d0..0000000
--- a/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/EntityKeyImpl.java
+++ /dev/null
@@ -1,63 +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.client.core.edm.xml;
-
-import java.io.IOException;
-import java.util.ArrayList;
-import java.util.List;
-
-import com.fasterxml.jackson.core.JsonParser;
-import com.fasterxml.jackson.core.JsonToken;
-import com.fasterxml.jackson.databind.DeserializationContext;
-import org.apache.olingo.commons.api.edm.provider.AbstractEdmItem;
-import org.apache.olingo.commons.api.edm.provider.PropertyRef;
-
-import com.fasterxml.jackson.databind.annotation.JsonDeserialize;
-
-@JsonDeserialize(using = EntityKeyImpl.EntityKeyDeserializer.class)
-public class EntityKeyImpl extends AbstractEdmItem {
-
-  private static final long serialVersionUID = 520227585458843347L;
-
-  private final List<PropertyRef> propertyRefs = new ArrayList<PropertyRef>();
-
-  public List<PropertyRef> getPropertyRefs() {
-    return propertyRefs;
-  }
-
-  static class EntityKeyDeserializer extends AbstractEdmDeserializer<EntityKeyImpl> {
-    @Override
-    protected EntityKeyImpl doDeserialize(final JsonParser jp, final DeserializationContext ctxt)
-            throws IOException {
-
-      final EntityKeyImpl entityKey = new EntityKeyImpl();
-
-      for (; jp.getCurrentToken() != JsonToken.END_OBJECT; jp.nextToken()) {
-        final JsonToken token = jp.getCurrentToken();
-
-        if (token == JsonToken.FIELD_NAME && "PropertyRef".equals(jp.getCurrentName())) {
-          jp.nextToken();
-          entityKey.getPropertyRefs().add(jp.readValueAs(PropertyRefImpl.class));
-        }
-      }
-
-      return entityKey;
-    }
-  }
-}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/754e23ab/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/EntitySetImpl.java
----------------------------------------------------------------------
diff --git a/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/EntitySetImpl.java b/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/EntitySetImpl.java
deleted file mode 100644
index 0368225..0000000
--- a/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/EntitySetImpl.java
+++ /dev/null
@@ -1,65 +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.client.core.edm.xml;
-
-import com.fasterxml.jackson.core.JsonParser;
-import com.fasterxml.jackson.core.JsonToken;
-import com.fasterxml.jackson.databind.DeserializationContext;
-import org.apache.commons.lang3.BooleanUtils;
-import org.apache.olingo.commons.api.edm.provider.EntitySet;
-
-import com.fasterxml.jackson.databind.annotation.JsonDeserialize;
-
-import java.io.IOException;
-
-@JsonDeserialize(using = EntitySetImpl.EntitySetDeserializer.class)
-public class EntitySetImpl extends EntitySet {
-
-  private static final long serialVersionUID = -5553885465204370676L;
-
-  static class EntitySetDeserializer extends AbstractEdmDeserializer<EntitySet> {
-    @Override
-    protected EntitySet doDeserialize(final JsonParser jp, final DeserializationContext ctxt)
-            throws IOException {
-
-      final EntitySetImpl entitySet = new EntitySetImpl();
-
-      for (; jp.getCurrentToken() != JsonToken.END_OBJECT; jp.nextToken()) {
-        final JsonToken token = jp.getCurrentToken();
-        if (token == JsonToken.FIELD_NAME) {
-          if ("Name".equals(jp.getCurrentName())) {
-            entitySet.setName(jp.nextTextValue());
-          } else if ("EntityType".equals(jp.getCurrentName())) {
-            entitySet.setType(jp.nextTextValue());
-          } else if ("IncludeInServiceDocument".equals(jp.getCurrentName())) {
-            entitySet.setIncludeInServiceDocument(BooleanUtils.toBoolean(jp.nextTextValue()));
-          } else if ("NavigationPropertyBinding".equals(jp.getCurrentName())) {
-            jp.nextToken();
-            entitySet.getNavigationPropertyBindings().add(jp.readValueAs(NavigationPropertyBindingImpl.class));
-          } else if ("Annotation".equals(jp.getCurrentName())) {
-            jp.nextToken();
-            entitySet.getAnnotations().add(jp.readValueAs(AnnotationImpl.class));
-          }
-        }
-      }
-
-      return entitySet;
-    }
-  }
-}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/754e23ab/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/EntityTypeImpl.java
----------------------------------------------------------------------
diff --git a/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/EntityTypeImpl.java b/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/EntityTypeImpl.java
deleted file mode 100644
index f54ff27..0000000
--- a/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/EntityTypeImpl.java
+++ /dev/null
@@ -1,76 +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.client.core.edm.xml;
-
-import com.fasterxml.jackson.core.JsonParser;
-import com.fasterxml.jackson.core.JsonToken;
-import com.fasterxml.jackson.databind.DeserializationContext;
-import org.apache.commons.lang3.BooleanUtils;
-import org.apache.olingo.commons.api.edm.provider.EntityType;
-
-import com.fasterxml.jackson.databind.annotation.JsonDeserialize;
-
-import java.io.IOException;
-
-@JsonDeserialize(using = EntityTypeImpl.EntityTypeDeserializer.class)
-public class EntityTypeImpl extends EntityType {
-
-  private static final long serialVersionUID = -3986417775876689669L;
-
-  static class EntityTypeDeserializer extends AbstractEdmDeserializer<EntityType> {
-    @Override
-    protected EntityType doDeserialize(final JsonParser jp, final DeserializationContext ctxt)
-            throws IOException {
-
-      final EntityTypeImpl entityType = new EntityTypeImpl();
-
-      for (; jp.getCurrentToken() != JsonToken.END_OBJECT; jp.nextToken()) {
-        final JsonToken token = jp.getCurrentToken();
-        if (token == JsonToken.FIELD_NAME) {
-          if ("Name".equals(jp.getCurrentName())) {
-            entityType.setName(jp.nextTextValue());
-          } else if ("Abstract".equals(jp.getCurrentName())) {
-            entityType.setAbstract(BooleanUtils.toBoolean(jp.nextTextValue()));
-          } else if ("BaseType".equals(jp.getCurrentName())) {
-            entityType.setBaseType(jp.nextTextValue());
-          } else if ("OpenType".equals(jp.getCurrentName())) {
-            entityType.setOpenType(BooleanUtils.toBoolean(jp.nextTextValue()));
-          } else if ("HasStream".equals(jp.getCurrentName())) {
-            entityType.setHasStream(BooleanUtils.toBoolean(jp.nextTextValue()));
-          } else if ("Key".equals(jp.getCurrentName())) {
-            jp.nextToken();
-            EntityKeyImpl keyImpl = jp.readValueAs(EntityKeyImpl.class);
-            entityType.setKey(keyImpl.getPropertyRefs());
-          } else if ("Property".equals(jp.getCurrentName())) {
-            jp.nextToken();
-            entityType.getProperties().add(jp.readValueAs(PropertyImpl.class));
-          } else if ("NavigationProperty".equals(jp.getCurrentName())) {
-            jp.nextToken();
-            entityType.getNavigationProperties().add(jp.readValueAs(NavigationPropertyImpl.class));
-          } else if ("Annotation".equals(jp.getCurrentName())) {
-            jp.nextToken();
-            entityType.getAnnotations().add(jp.readValueAs(AnnotationImpl.class));
-          }
-        }
-      }
-
-      return entityType;
-    }
-  }
-}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/754e23ab/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/EnumMemberImpl.java
----------------------------------------------------------------------
diff --git a/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/EnumMemberImpl.java b/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/EnumMemberImpl.java
deleted file mode 100644
index 74588a1..0000000
--- a/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/EnumMemberImpl.java
+++ /dev/null
@@ -1,57 +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.client.core.edm.xml;
-
-import com.fasterxml.jackson.core.JsonParser;
-import com.fasterxml.jackson.core.JsonToken;
-import com.fasterxml.jackson.databind.DeserializationContext;
-import com.fasterxml.jackson.databind.annotation.JsonDeserialize;
-import org.apache.olingo.commons.api.edm.provider.EnumMember;
-
-import java.io.IOException;
-
-@JsonDeserialize(using = EnumMemberImpl.EnumMemberDeserializer.class)
-public class EnumMemberImpl extends EnumMember {
-
-  private static final long serialVersionUID = -6138606817225829791L;
-
-  static class EnumMemberDeserializer extends AbstractEdmDeserializer<EnumMember> {
-    @Override
-    protected EnumMember doDeserialize(final JsonParser jp, final DeserializationContext ctxt)
-            throws IOException {
-
-      final EnumMember member = new EnumMember();
-
-      for (; jp.getCurrentToken() != JsonToken.END_OBJECT; jp.nextToken()) {
-        final JsonToken token = jp.getCurrentToken();
-        if (token == JsonToken.FIELD_NAME) {
-          if ("Name".equals(jp.getCurrentName())) {
-            member.setName(jp.nextTextValue());
-          } else if ("Value".equals(jp.getCurrentName())) {
-            member.setValue(jp.nextTextValue());
-          } else if ("Annotation".equals(jp.getCurrentName())) {
-            jp.nextToken();
-            member.getAnnotations().add(jp.readValueAs(AnnotationImpl.class));
-          }
-        }
-      }
-      return member;
-    }
-  }
-}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/754e23ab/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/EnumTypeImpl.java
----------------------------------------------------------------------
diff --git a/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/EnumTypeImpl.java b/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/EnumTypeImpl.java
deleted file mode 100644
index bd05df6..0000000
--- a/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/EnumTypeImpl.java
+++ /dev/null
@@ -1,65 +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.client.core.edm.xml;
-
-import com.fasterxml.jackson.core.JsonParser;
-import com.fasterxml.jackson.core.JsonToken;
-import com.fasterxml.jackson.databind.DeserializationContext;
-import org.apache.commons.lang3.BooleanUtils;
-import org.apache.olingo.commons.api.edm.provider.EnumType;
-
-import com.fasterxml.jackson.databind.annotation.JsonDeserialize;
-
-import java.io.IOException;
-
-@JsonDeserialize(using = EnumTypeImpl.EnumTypeDeserializer.class)
-public class EnumTypeImpl extends EnumType {
-
-  private static final long serialVersionUID = 9191189755592743333L;
-
-  static class EnumTypeDeserializer extends AbstractEdmDeserializer<EnumTypeImpl> {
-    @Override
-    protected EnumTypeImpl doDeserialize(final JsonParser jp, final DeserializationContext ctxt)
-            throws IOException {
-
-      final EnumTypeImpl enumType = new EnumTypeImpl();
-
-      for (; jp.getCurrentToken() != JsonToken.END_OBJECT; jp.nextToken()) {
-        final JsonToken token = jp.getCurrentToken();
-        if (token == JsonToken.FIELD_NAME) {
-          if ("Name".equals(jp.getCurrentName())) {
-            enumType.setName(jp.nextTextValue());
-          } else if ("UnderlyingType".equals(jp.getCurrentName())) {
-            enumType.setUnderlyingType(jp.nextTextValue());
-          } else if ("IsFlags".equals(jp.getCurrentName())) {
-            enumType.setFlags(BooleanUtils.toBoolean(jp.nextTextValue()));
-          } else if ("Member".equals(jp.getCurrentName())) {
-            jp.nextToken();
-            enumType.getMembers().add(jp.readValueAs(EnumMemberImpl.class));
-          } else if ("Annotation".equals(jp.getCurrentName())) {
-            jp.nextToken();
-            enumType.getAnnotations().add(jp.readValueAs(AnnotationImpl.class));
-          }
-        }
-      }
-
-      return enumType;
-    }
-  }
-}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/754e23ab/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/FunctionImpl.java
----------------------------------------------------------------------
diff --git a/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/FunctionImpl.java b/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/FunctionImpl.java
deleted file mode 100644
index d1e1d2c..0000000
--- a/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/FunctionImpl.java
+++ /dev/null
@@ -1,69 +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.client.core.edm.xml;
-
-import com.fasterxml.jackson.core.JsonParser;
-import com.fasterxml.jackson.core.JsonToken;
-import com.fasterxml.jackson.databind.DeserializationContext;
-import org.apache.commons.lang3.BooleanUtils;
-import org.apache.olingo.commons.api.edm.provider.Function;
-
-import com.fasterxml.jackson.databind.annotation.JsonDeserialize;
-
-import java.io.IOException;
-
-@JsonDeserialize(using = FunctionImpl.FunctionDeserializer.class)
-public class FunctionImpl extends Function {
-
-  private static final long serialVersionUID = -5494898295282843362L;
-
-  static class FunctionDeserializer extends AbstractEdmDeserializer<FunctionImpl> {
-    @Override
-    protected FunctionImpl doDeserialize(final JsonParser jp, final DeserializationContext ctxt)
-            throws IOException {
-
-      final FunctionImpl functionImpl = new FunctionImpl();
-
-      for (; jp.getCurrentToken() != JsonToken.END_OBJECT; jp.nextToken()) {
-        final JsonToken token = jp.getCurrentToken();
-        if (token == JsonToken.FIELD_NAME) {
-          if ("Name".equals(jp.getCurrentName())) {
-            functionImpl.setName(jp.nextTextValue());
-          } else if ("IsBound".equals(jp.getCurrentName())) {
-            functionImpl.setBound(BooleanUtils.toBoolean(jp.nextTextValue()));
-          } else if ("IsComposable".equals(jp.getCurrentName())) {
-            functionImpl.setComposable(BooleanUtils.toBoolean(jp.nextTextValue()));
-          } else if ("EntitySetPath".equals(jp.getCurrentName())) {
-            functionImpl.setEntitySetPath(jp.nextTextValue());
-          } else if ("Parameter".equals(jp.getCurrentName())) {
-            jp.nextToken();
-            functionImpl.getParameters().add(jp.readValueAs(ParameterImpl.class));
-          } else if ("ReturnType".equals(jp.getCurrentName())) {
-            functionImpl.setReturnType(parseReturnType(jp, "Function"));
-          } else if ("Annotation".equals(jp.getCurrentName())) {
-            jp.nextToken();
-            functionImpl.getAnnotations().add(jp.readValueAs(AnnotationImpl.class));
-          }
-        }
-      }
-
-      return functionImpl;
-    }
-  }
-}


[03/50] [abbrv] olingo-odata4 git commit: [OLINGO-564] Renamed client edm classes

Posted by mi...@apache.org.
http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/754e23ab/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/FunctionImportImpl.java
----------------------------------------------------------------------
diff --git a/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/FunctionImportImpl.java b/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/FunctionImportImpl.java
deleted file mode 100644
index 3591698..0000000
--- a/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/FunctionImportImpl.java
+++ /dev/null
@@ -1,64 +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.client.core.edm.xml;
-
-import com.fasterxml.jackson.core.JsonParser;
-import com.fasterxml.jackson.core.JsonToken;
-import com.fasterxml.jackson.databind.DeserializationContext;
-import org.apache.commons.lang3.BooleanUtils;
-import org.apache.olingo.commons.api.edm.provider.FunctionImport;
-
-import com.fasterxml.jackson.databind.annotation.JsonDeserialize;
-
-import java.io.IOException;
-
-@JsonDeserialize(using = FunctionImportImpl.FunctionImportDeserializer.class)
-public class FunctionImportImpl extends FunctionImport {
-
-  private static final long serialVersionUID = -1686801084142932402L;
-
-  static class FunctionImportDeserializer extends AbstractEdmDeserializer<FunctionImportImpl> {
-    @Override
-    protected FunctionImportImpl doDeserialize(final JsonParser jp, final DeserializationContext ctxt)
-            throws IOException {
-
-      final FunctionImportImpl functImpImpl = new FunctionImportImpl();
-
-      for (; jp.getCurrentToken() != JsonToken.END_OBJECT; jp.nextToken()) {
-        final JsonToken token = jp.getCurrentToken();
-        if (token == JsonToken.FIELD_NAME) {
-          if ("Name".equals(jp.getCurrentName())) {
-            functImpImpl.setName(jp.nextTextValue());
-          } else if ("Function".equals(jp.getCurrentName())) {
-            functImpImpl.setFunction(jp.nextTextValue());
-          } else if ("EntitySet".equals(jp.getCurrentName())) {
-            functImpImpl.setEntitySet(jp.nextTextValue());
-          } else if ("IncludeInServiceDocument".equals(jp.getCurrentName())) {
-            functImpImpl.setIncludeInServiceDocument(BooleanUtils.toBoolean(jp.nextTextValue()));
-          } else if ("Annotation".equals(jp.getCurrentName())) {
-            jp.nextToken();
-            functImpImpl.getAnnotations().add(jp.readValueAs(AnnotationImpl.class));
-          }
-        }
-      }
-
-      return functImpImpl;
-    }
-  }
-}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/754e23ab/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/IncludeAnnotationsImpl.java
----------------------------------------------------------------------
diff --git a/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/IncludeAnnotationsImpl.java b/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/IncludeAnnotationsImpl.java
deleted file mode 100644
index ccea81b..0000000
--- a/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/IncludeAnnotationsImpl.java
+++ /dev/null
@@ -1,88 +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.client.core.edm.xml;
-
-import com.fasterxml.jackson.core.JsonParser;
-import com.fasterxml.jackson.core.JsonToken;
-import com.fasterxml.jackson.databind.DeserializationContext;
-import com.fasterxml.jackson.databind.annotation.JsonDeserialize;
-import org.apache.olingo.client.api.edm.xml.IncludeAnnotations;
-import org.apache.olingo.commons.api.edm.provider.AbstractEdmItem;
-
-import java.io.IOException;
-
-@JsonDeserialize(using = IncludeAnnotationsImpl.IncludeAnnotationsDeserializer.class)
-public class IncludeAnnotationsImpl extends AbstractEdmItem implements IncludeAnnotations {
-
-  private static final long serialVersionUID = -8157841387011422396L;
-
-  private String termNamespace;
-  private String qualifier;
-  private String targetNamespace;
-
-  @Override
-  public String getTermNamespace() {
-    return termNamespace;
-  }
-
-  public void setTermNamespace(final String termNamespace) {
-    this.termNamespace = termNamespace;
-  }
-
-  @Override
-  public String getQualifier() {
-    return qualifier;
-  }
-
-  public void setQualifier(final String qualifier) {
-    this.qualifier = qualifier;
-  }
-
-  @Override
-  public String getTargetNamespace() {
-    return targetNamespace;
-  }
-
-  public void setTargetNamespace(final String targetNamespace) {
-    this.targetNamespace = targetNamespace;
-  }
-
-  static class IncludeAnnotationsDeserializer extends AbstractEdmDeserializer<IncludeAnnotations> {
-    @Override
-    protected IncludeAnnotations doDeserialize(final JsonParser jp, final DeserializationContext ctxt)
-            throws IOException {
-
-      final IncludeAnnotationsImpl member = new IncludeAnnotationsImpl();
-
-      for (; jp.getCurrentToken() != JsonToken.END_OBJECT; jp.nextToken()) {
-        final JsonToken token = jp.getCurrentToken();
-        if (token == JsonToken.FIELD_NAME) {
-          if ("TermNamespace".equals(jp.getCurrentName())) {
-            member.setTermNamespace(jp.nextTextValue());
-          } else if ("Qualifier".equals(jp.getCurrentName())) {
-            member.setQualifier(jp.nextTextValue());
-          } else if ("TargetNamespace".equals(jp.getCurrentName())) {
-            member.setTargetNamespace(jp.nextTextValue());
-          }
-        }
-      }
-      return member;
-    }
-  }
-}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/754e23ab/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/IncludeImpl.java
----------------------------------------------------------------------
diff --git a/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/IncludeImpl.java b/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/IncludeImpl.java
deleted file mode 100644
index 55ac505..0000000
--- a/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/IncludeImpl.java
+++ /dev/null
@@ -1,76 +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.client.core.edm.xml;
-
-import com.fasterxml.jackson.core.JsonParser;
-import com.fasterxml.jackson.core.JsonToken;
-import com.fasterxml.jackson.databind.DeserializationContext;
-import com.fasterxml.jackson.databind.annotation.JsonDeserialize;
-import org.apache.olingo.client.api.edm.xml.Include;
-import org.apache.olingo.commons.api.edm.provider.AbstractEdmItem;
-
-import java.io.IOException;
-
-@JsonDeserialize(using = IncludeImpl.IncludeDeserializer.class)
-public class IncludeImpl extends AbstractEdmItem implements Include {
-
-  private static final long serialVersionUID = -5450008299655584221L;
-
-  private String namespace;
-  private String alias;
-
-  @Override
-  public String getNamespace() {
-    return namespace;
-  }
-
-  public void setNamespace(final String namespace) {
-    this.namespace = namespace;
-  }
-
-  @Override
-  public String getAlias() {
-    return alias;
-  }
-
-  public void setAlias(final String alias) {
-    this.alias = alias;
-  }
-
-  static class IncludeDeserializer extends AbstractEdmDeserializer<Include> {
-    @Override
-    protected Include doDeserialize(final JsonParser jp, final DeserializationContext ctxt)
-            throws IOException {
-
-      final IncludeImpl include = new IncludeImpl();
-
-      for (; jp.getCurrentToken() != JsonToken.END_OBJECT; jp.nextToken()) {
-        final JsonToken token = jp.getCurrentToken();
-        if (token == JsonToken.FIELD_NAME) {
-          if ("Namespace".equals(jp.getCurrentName())) {
-            include.setNamespace(jp.nextTextValue());
-          } else if ("Alias".equals(jp.getCurrentName())) {
-            include.setAlias(jp.nextTextValue());
-          }
-        }
-      }
-      return include;
-    }
-  }
-}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/754e23ab/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/NavigationPropertyBindingImpl.java
----------------------------------------------------------------------
diff --git a/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/NavigationPropertyBindingImpl.java b/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/NavigationPropertyBindingImpl.java
deleted file mode 100644
index c01707f..0000000
--- a/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/NavigationPropertyBindingImpl.java
+++ /dev/null
@@ -1,66 +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.client.core.edm.xml;
-
-import com.fasterxml.jackson.core.JsonParser;
-import com.fasterxml.jackson.core.JsonToken;
-import com.fasterxml.jackson.databind.DeserializationContext;
-import com.fasterxml.jackson.databind.annotation.JsonDeserialize;
-import org.apache.olingo.commons.api.edm.provider.NavigationPropertyBinding;
-
-import java.io.IOException;
-
-@JsonDeserialize(using = NavigationPropertyBindingImpl.NavigationPropertyBindingDeserializer.class)
-public class NavigationPropertyBindingImpl extends NavigationPropertyBinding {
-
-  private static final long serialVersionUID = -7056978592235483660L;
-
-  @Override
-  public NavigationPropertyBinding setPath(final String path) {
-    super.setPath(path);
-    return this;
-  }
-
-  @Override
-  public NavigationPropertyBinding setTarget(final String target) {
-    super.setTarget(target);
-    return this;
-  }
-
-  static class NavigationPropertyBindingDeserializer extends AbstractEdmDeserializer<NavigationPropertyBinding> {
-    @Override
-    protected NavigationPropertyBinding doDeserialize(final JsonParser jp, final DeserializationContext ctxt)
-            throws IOException {
-
-      final NavigationPropertyBindingImpl member = new NavigationPropertyBindingImpl();
-
-      for (; jp.getCurrentToken() != JsonToken.END_OBJECT; jp.nextToken()) {
-        final JsonToken token = jp.getCurrentToken();
-        if (token == JsonToken.FIELD_NAME) {
-          if ("Path".equals(jp.getCurrentName())) {
-            member.setPath(jp.nextTextValue());
-          } else if ("Target".equals(jp.getCurrentName())) {
-            member.setTarget(jp.nextTextValue());
-          }
-        }
-      }
-      return member;
-    }
-  }
-}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/754e23ab/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/NavigationPropertyImpl.java
----------------------------------------------------------------------
diff --git a/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/NavigationPropertyImpl.java b/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/NavigationPropertyImpl.java
deleted file mode 100644
index 904a57d..0000000
--- a/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/NavigationPropertyImpl.java
+++ /dev/null
@@ -1,80 +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.client.core.edm.xml;
-
-import com.fasterxml.jackson.core.JsonParser;
-import com.fasterxml.jackson.core.JsonToken;
-import com.fasterxml.jackson.databind.DeserializationContext;
-import org.apache.commons.lang3.BooleanUtils;
-import org.apache.olingo.commons.api.edm.provider.NavigationProperty;
-
-import com.fasterxml.jackson.databind.annotation.JsonDeserialize;
-
-import java.io.IOException;
-
-@JsonDeserialize(using = NavigationPropertyImpl.NavigationPropertyDeserializer.class)
-public class NavigationPropertyImpl extends NavigationProperty {
-
-  private static final long serialVersionUID = 6240231735592427582L;
-
-  static class NavigationPropertyDeserializer extends AbstractEdmDeserializer<NavigationProperty> {
-
-    @Override
-    protected NavigationProperty doDeserialize(final JsonParser jp, final DeserializationContext ctxt)
-            throws IOException {
-
-      final NavigationProperty property = new NavigationPropertyImpl();
-
-      for (; jp.getCurrentToken() != JsonToken.END_OBJECT; jp.nextToken()) {
-        final JsonToken token = jp.getCurrentToken();
-        if (token == JsonToken.FIELD_NAME) {
-          if ("Name".equals(jp.getCurrentName())) {
-            property.setName(jp.nextTextValue());
-          } else if ("Type".equals(jp.getCurrentName())) {
-            String metadataTypeName = jp.nextTextValue();
-            if (metadataTypeName.startsWith("Collection(")) {
-              property.setType(metadataTypeName.substring(metadataTypeName.indexOf("(") + 1,
-                      metadataTypeName.length() - 1));
-              property.setCollection(true);
-            } else {
-              property.setType(metadataTypeName);
-              property.setCollection(false);
-            }
-          } else if ("Nullable".equals(jp.getCurrentName())) {
-            property.setNullable(BooleanUtils.toBoolean(jp.nextTextValue()));
-          } else if ("Partner".equals(jp.getCurrentName())) {
-            property.setPartner(jp.nextTextValue());
-          } else if ("ContainsTarget".equals(jp.getCurrentName())) {
-            property.setContainsTarget(BooleanUtils.toBoolean(jp.nextTextValue()));
-          } else if ("ReferentialConstraint".equals(jp.getCurrentName())) {
-            jp.nextToken();
-            property.getReferentialConstraints().add(jp.readValueAs(ReferentialConstraintImpl.class));
-          } else if ("OnDelete".equals(jp.getCurrentName())) {
-            jp.nextToken();
-            property.setOnDelete(jp.readValueAs(OnDeleteImpl.class));
-          } else if ("Annotation".equals(jp.getCurrentName())) {
-            jp.nextToken();
-            property.getAnnotations().add(jp.readValueAs(AnnotationImpl.class));
-          }
-        }
-      }
-      return property;
-    }
-  }
-}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/754e23ab/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/OnDeleteImpl.java
----------------------------------------------------------------------
diff --git a/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/OnDeleteImpl.java b/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/OnDeleteImpl.java
deleted file mode 100644
index 9228c4c..0000000
--- a/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/OnDeleteImpl.java
+++ /dev/null
@@ -1,54 +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.client.core.edm.xml;
-
-import com.fasterxml.jackson.core.JsonParser;
-import com.fasterxml.jackson.core.JsonToken;
-import com.fasterxml.jackson.databind.DeserializationContext;
-import com.fasterxml.jackson.databind.annotation.JsonDeserialize;
-import org.apache.olingo.commons.api.edm.provider.OnDelete;
-import org.apache.olingo.commons.api.edm.provider.OnDeleteAction;
-
-import java.io.IOException;
-
-@JsonDeserialize(using = OnDeleteImpl.OnDeleteDeserializer.class)
-public class OnDeleteImpl extends OnDelete {
-
-  private static final long serialVersionUID = -7130889202653716784L;
-
-  static class OnDeleteDeserializer extends AbstractEdmDeserializer<OnDelete> {
-    @Override
-    protected OnDelete doDeserialize(final JsonParser jp, final DeserializationContext ctxt)
-            throws IOException {
-
-      final OnDelete ondelete = new OnDeleteImpl();
-
-      for (; jp.getCurrentToken() != JsonToken.END_OBJECT; jp.nextToken()) {
-        final JsonToken token = jp.getCurrentToken();
-        if (token == JsonToken.FIELD_NAME) {
-          if ("Action".equals(jp.getCurrentName())) {
-            OnDeleteAction action = OnDeleteAction.valueOf(jp.nextTextValue());
-            ondelete.setAction(action);
-          }
-        }
-      }
-      return ondelete;
-    }
-  }
-}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/754e23ab/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/ParameterImpl.java
----------------------------------------------------------------------
diff --git a/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/ParameterImpl.java b/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/ParameterImpl.java
deleted file mode 100644
index fb0b5f6..0000000
--- a/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/ParameterImpl.java
+++ /dev/null
@@ -1,84 +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.client.core.edm.xml;
-
-import com.fasterxml.jackson.core.JsonParser;
-import com.fasterxml.jackson.core.JsonToken;
-import com.fasterxml.jackson.databind.DeserializationContext;
-import org.apache.commons.lang3.BooleanUtils;
-import org.apache.olingo.commons.api.edm.geo.SRID;
-import org.apache.olingo.commons.api.edm.provider.Parameter;
-
-import com.fasterxml.jackson.databind.annotation.JsonDeserialize;
-
-import java.io.IOException;
-
-@JsonDeserialize(using = ParameterImpl.ParameterDeserializer.class)
-public class ParameterImpl extends Parameter {
-
-  private static final long serialVersionUID = 7119478691341167904L;
-
-  static class ParameterDeserializer extends AbstractEdmDeserializer<ParameterImpl> {
-    @Override
-    protected ParameterImpl doDeserialize(final JsonParser jp, final DeserializationContext ctxt)
-            throws IOException {
-
-      final ParameterImpl parameter = new ParameterImpl();
-
-      for (; jp.getCurrentToken() != JsonToken.END_OBJECT; jp.nextToken()) {
-        final JsonToken token = jp.getCurrentToken();
-        if (token == JsonToken.FIELD_NAME) {
-          if ("Name".equals(jp.getCurrentName())) {
-            parameter.setName(jp.nextTextValue());
-          } else if ("Type".equals(jp.getCurrentName())) {
-            String metadataTypeName = jp.nextTextValue();
-            if (metadataTypeName.startsWith("Collection(")) {
-              parameter.setType(metadataTypeName.substring(metadataTypeName.indexOf("(") + 1,
-                      metadataTypeName.length() - 1));
-              parameter.setCollection(true);
-            } else {
-              parameter.setType(metadataTypeName);
-              parameter.setCollection(false);
-            }
-          } else if ("Nullable".equals(jp.getCurrentName())) {
-            parameter.setNullable(BooleanUtils.toBoolean(jp.nextTextValue()));
-          } else if ("MaxLength".equals(jp.getCurrentName())) {
-            final String maxLenght = jp.nextTextValue();
-            parameter.setMaxLength(maxLenght.equalsIgnoreCase("max") ? Integer.MAX_VALUE : Integer.valueOf(maxLenght));
-          } else if ("Precision".equals(jp.getCurrentName())) {
-            parameter.setPrecision(Integer.valueOf(jp.nextTextValue()));
-          } else if ("Scale".equals(jp.getCurrentName())) {
-            final String scale = jp.nextTextValue();
-            parameter.setScale(scale.equalsIgnoreCase("variable") ? 0 : Integer.valueOf(scale));
-          } else if ("SRID".equals(jp.getCurrentName())) {
-            final String srid = jp.nextTextValue();
-            if (srid != null) {
-              parameter.setSrid(SRID.valueOf(srid));
-            }
-          } else if ("Annotation".equals(jp.getCurrentName())) {
-            jp.nextToken();
-            parameter.getAnnotations().add(jp.readValueAs(AnnotationImpl.class));
-          }
-        }
-      }
-
-      return parameter;
-    }
-  }
-}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/754e23ab/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/PropertyImpl.java
----------------------------------------------------------------------
diff --git a/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/PropertyImpl.java b/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/PropertyImpl.java
deleted file mode 100644
index 1cc18e9..0000000
--- a/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/PropertyImpl.java
+++ /dev/null
@@ -1,88 +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.client.core.edm.xml;
-
-import com.fasterxml.jackson.core.JsonParser;
-import com.fasterxml.jackson.core.JsonToken;
-import com.fasterxml.jackson.databind.DeserializationContext;
-import org.apache.commons.lang3.BooleanUtils;
-import org.apache.olingo.commons.api.edm.geo.SRID;
-import org.apache.olingo.commons.api.edm.provider.Property;
-
-import com.fasterxml.jackson.databind.annotation.JsonDeserialize;
-
-import java.io.IOException;
-
-@JsonDeserialize(using = PropertyImpl.PropertyDeserializer.class)
-public class PropertyImpl extends Property {
-
-  private static final long serialVersionUID = -4521766603286651372L;
-
-  static class PropertyDeserializer extends AbstractEdmDeserializer<PropertyImpl> {
-    @Override
-    protected PropertyImpl doDeserialize(final JsonParser jp, final DeserializationContext ctxt)
-            throws IOException {
-
-      final PropertyImpl property = new org.apache.olingo.client.core.edm.xml.PropertyImpl();
-
-      for (; jp.getCurrentToken() != JsonToken.END_OBJECT; jp.nextToken()) {
-        final JsonToken token = jp.getCurrentToken();
-        if (token == JsonToken.FIELD_NAME) {
-          if ("Name".equals(jp.getCurrentName())) {
-            property.setName(jp.nextTextValue());
-          } else if ("Type".equals(jp.getCurrentName())) {
-            String metadataTypeName = jp.nextTextValue();
-            if (metadataTypeName.startsWith("Collection(")) {
-              property.setType(metadataTypeName.substring(metadataTypeName.indexOf("(") + 1,
-                      metadataTypeName.length() - 1));
-              property.setCollection(true);
-            } else {
-              property.setType(metadataTypeName);
-              property.setCollection(false);
-            }
-          } else if ("Nullable".equals(jp.getCurrentName())) {
-            property.setNullable(BooleanUtils.toBoolean(jp.nextTextValue()));
-          } else if ("DefaultValue".equals(jp.getCurrentName())) {
-            property.setDefaultValue(jp.nextTextValue());
-          } else if ("MaxLength".equals(jp.getCurrentName())) {
-            final String maxLenght = jp.nextTextValue();
-            property.setMaxLength(maxLenght.equalsIgnoreCase("max") ? Integer.MAX_VALUE : Integer.valueOf(maxLenght));
-          } else if ("Precision".equals(jp.getCurrentName())) {
-            property.setPrecision(Integer.valueOf(jp.nextTextValue()));
-          } else if ("Scale".equals(jp.getCurrentName())) {
-            final String scale = jp.nextTextValue();
-            property.setScale(scale.equalsIgnoreCase("variable") ? 0 : Integer.valueOf(scale));
-          } else if ("Unicode".equals(jp.getCurrentName())) {
-            property.setUnicode(BooleanUtils.toBoolean(jp.nextTextValue()));
-          } else if ("SRID".equals(jp.getCurrentName())) {
-            final String srid = jp.nextTextValue();
-            if (srid != null) {
-              property.setSrid(SRID.valueOf(srid));
-            }
-          } else if ("Annotation".equals(jp.getCurrentName())) {
-            jp.nextToken();
-            property.getAnnotations().add(jp.readValueAs(AnnotationImpl.class));
-          }
-        }
-      }
-
-      return property;
-    }
-  }
-}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/754e23ab/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/PropertyRefImpl.java
----------------------------------------------------------------------
diff --git a/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/PropertyRefImpl.java b/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/PropertyRefImpl.java
deleted file mode 100644
index 6fc5434..0000000
--- a/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/PropertyRefImpl.java
+++ /dev/null
@@ -1,54 +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.client.core.edm.xml;
-
-import com.fasterxml.jackson.core.JsonParser;
-import com.fasterxml.jackson.core.JsonToken;
-import com.fasterxml.jackson.databind.DeserializationContext;
-import com.fasterxml.jackson.databind.annotation.JsonDeserialize;
-import org.apache.olingo.commons.api.edm.provider.PropertyRef;
-
-import java.io.IOException;
-
-@JsonDeserialize(using = PropertyRefImpl.PropertyRefDeserializer.class)
-public class PropertyRefImpl extends PropertyRef {
-
-  private static final long serialVersionUID = 1504095609268590326L;
-
-  static class PropertyRefDeserializer extends AbstractEdmDeserializer<PropertyRef> {
-    @Override
-    protected PropertyRef doDeserialize(final JsonParser jp, final DeserializationContext ctxt)
-            throws IOException {
-
-      final PropertyRef propertyRef = new PropertyRefImpl();
-
-      for (; jp.getCurrentToken() != JsonToken.END_OBJECT; jp.nextToken()) {
-        final JsonToken token = jp.getCurrentToken();
-        if (token == JsonToken.FIELD_NAME) {
-          if ("Name".equals(jp.getCurrentName())) {
-            propertyRef.setName(jp.nextTextValue());
-          } else if ("Alias".equals(jp.getCurrentName())) {
-            propertyRef.setAlias(jp.nextTextValue());
-          }
-        }
-      }
-      return propertyRef;
-    }
-  }
-}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/754e23ab/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/ReferenceImpl.java
----------------------------------------------------------------------
diff --git a/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/ReferenceImpl.java b/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/ReferenceImpl.java
deleted file mode 100644
index e4383d3..0000000
--- a/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/ReferenceImpl.java
+++ /dev/null
@@ -1,98 +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.client.core.edm.xml;
-
-import java.io.IOException;
-import java.net.URI;
-import java.util.ArrayList;
-import java.util.List;
-
-import com.fasterxml.jackson.core.JsonParser;
-import com.fasterxml.jackson.core.JsonToken;
-import com.fasterxml.jackson.databind.DeserializationContext;
-import org.apache.olingo.client.api.edm.xml.Include;
-import org.apache.olingo.client.api.edm.xml.IncludeAnnotations;
-import org.apache.olingo.client.api.edm.xml.Reference;
-import org.apache.olingo.commons.api.edm.provider.AbstractEdmItem;
-import org.apache.olingo.commons.api.edm.provider.Annotation;
-
-import com.fasterxml.jackson.databind.annotation.JsonDeserialize;
-
-@JsonDeserialize(using = ReferenceImpl.ReferenceDeserializer.class)
-public class ReferenceImpl extends AbstractEdmItem implements Reference {
-
-  private static final long serialVersionUID = 7720274712545267654L;
-
-  private URI uri;
-  private final List<Include> includes = new ArrayList<Include>();
-  private final List<IncludeAnnotations> includeAnnotations = new ArrayList<IncludeAnnotations>();
-  private final List<Annotation> annotations = new ArrayList<Annotation>();
-
-  @Override
-  public List<Annotation> getAnnotations() {
-    return annotations;
-  }
-  
-  @Override
-  public URI getUri() {
-    return uri;
-  }
-
-  public void setUri(final URI uri) {
-    this.uri = uri;
-  }
-
-  @Override
-  public List<Include> getIncludes() {
-    return includes;
-  }
-
-  @Override
-  public List<IncludeAnnotations> getIncludeAnnotations() {
-    return includeAnnotations;
-  }
-
-  static class ReferenceDeserializer extends AbstractEdmDeserializer<ReferenceImpl> {
-    @Override
-    protected ReferenceImpl doDeserialize(final JsonParser jp, final DeserializationContext ctxt)
-            throws IOException {
-      final ReferenceImpl reference = new ReferenceImpl();
-
-      for (; jp.getCurrentToken() != JsonToken.END_OBJECT; jp.nextToken()) {
-        final JsonToken token = jp.getCurrentToken();
-        if (token == JsonToken.FIELD_NAME) {
-          if ("Uri".equals(jp.getCurrentName())) {
-            reference.setUri(URI.create(jp.nextTextValue()));
-          } else if ("Include".equals(jp.getCurrentName())) {
-            jp.nextToken();
-            reference.getIncludes().add(jp.readValueAs( IncludeImpl.class));
-          } else if ("IncludeAnnotations".equals(jp.getCurrentName())) {
-            jp.nextToken();
-            reference.getIncludeAnnotations().add(jp.readValueAs( IncludeAnnotationsImpl.class));
-          } else if ("Annotation".equals(jp.getCurrentName())) {
-            jp.nextToken();
-            reference.getAnnotations().add(jp.readValueAs( AnnotationImpl.class));
-          }
-        }
-      }
-
-      return reference;
-    }
-  }
-}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/754e23ab/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/ReferentialConstraintImpl.java
----------------------------------------------------------------------
diff --git a/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/ReferentialConstraintImpl.java b/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/ReferentialConstraintImpl.java
deleted file mode 100644
index a09fc11..0000000
--- a/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/ReferentialConstraintImpl.java
+++ /dev/null
@@ -1,54 +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.client.core.edm.xml;
-
-import com.fasterxml.jackson.core.JsonParser;
-import com.fasterxml.jackson.core.JsonToken;
-import com.fasterxml.jackson.databind.DeserializationContext;
-import com.fasterxml.jackson.databind.annotation.JsonDeserialize;
-import org.apache.olingo.commons.api.edm.provider.ReferentialConstraint;
-
-import java.io.IOException;
-
-@JsonDeserialize(using = ReferentialConstraintImpl.ReferentialConstraintDeserializer.class)
-public class ReferentialConstraintImpl extends ReferentialConstraint {
-
-  private static final long serialVersionUID = -5822115908069878139L;
-
-  static class ReferentialConstraintDeserializer extends AbstractEdmDeserializer<ReferentialConstraint> {
-    @Override
-    protected ReferentialConstraint doDeserialize(final JsonParser jp, final DeserializationContext ctxt)
-            throws IOException {
-
-      final ReferentialConstraint refConst = new ReferentialConstraintImpl();
-
-      for (; jp.getCurrentToken() != JsonToken.END_OBJECT; jp.nextToken()) {
-        final JsonToken token = jp.getCurrentToken();
-        if (token == JsonToken.FIELD_NAME) {
-          if ("Property".equals(jp.getCurrentName())) {
-            refConst.setProperty(jp.nextTextValue());
-          } else if ("ReferencedProperty".equals(jp.getCurrentName())) {
-            refConst.setReferencedProperty(jp.nextTextValue());
-          }
-        }
-      }
-      return refConst;
-    }
-  }
-}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/754e23ab/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/ReturnTypeImpl.java
----------------------------------------------------------------------
diff --git a/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/ReturnTypeImpl.java b/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/ReturnTypeImpl.java
deleted file mode 100644
index 8caeca8..0000000
--- a/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/ReturnTypeImpl.java
+++ /dev/null
@@ -1,78 +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.client.core.edm.xml;
-
-import com.fasterxml.jackson.core.JsonParser;
-import com.fasterxml.jackson.core.JsonToken;
-import com.fasterxml.jackson.databind.DeserializationContext;
-import org.apache.commons.lang3.BooleanUtils;
-import org.apache.olingo.commons.api.edm.geo.SRID;
-import org.apache.olingo.commons.api.edm.provider.ReturnType;
-
-import com.fasterxml.jackson.databind.annotation.JsonDeserialize;
-
-import java.io.IOException;
-
-@JsonDeserialize(using = ReturnTypeImpl.ReturnTypeDeserializer.class)
-public class ReturnTypeImpl extends ReturnType {
-
-  private static final long serialVersionUID = 6261092793901735110L;
-
-  static class ReturnTypeDeserializer extends AbstractEdmDeserializer<ReturnTypeImpl> {
-    @Override
-    protected ReturnTypeImpl doDeserialize(final JsonParser jp, final DeserializationContext ctxt)
-            throws IOException {
-      final ReturnTypeImpl returnType = new ReturnTypeImpl();
-
-      for (; jp.getCurrentToken() != JsonToken.END_OBJECT; jp.nextToken()) {
-        final JsonToken token = jp.getCurrentToken();
-        if (token == JsonToken.FIELD_NAME) {
-          if ("Type".equals(jp.getCurrentName())) {
-            String metadataTypeName = jp.nextTextValue();
-            if (metadataTypeName.startsWith("Collection(")) {
-              returnType.setType(metadataTypeName.substring(metadataTypeName.indexOf("(") + 1,
-                      metadataTypeName.length() - 1));
-              returnType.setCollection(true);
-            } else {
-              returnType.setType(metadataTypeName);
-              returnType.setCollection(false);
-            }
-          } else if ("Nullable".equals(jp.getCurrentName())) {
-            returnType.setNullable(BooleanUtils.toBoolean(jp.nextTextValue()));
-          } else if ("MaxLength".equals(jp.getCurrentName())) {
-            final String maxLenght = jp.nextTextValue();
-            returnType.setMaxLength(maxLenght.equalsIgnoreCase("max") ? Integer.MAX_VALUE : Integer.valueOf(maxLenght));
-          } else if ("Precision".equals(jp.getCurrentName())) {
-            returnType.setPrecision(Integer.valueOf(jp.nextTextValue()));
-          } else if ("Scale".equals(jp.getCurrentName())) {
-            final String scale = jp.nextTextValue();
-            returnType.setScale(scale.equalsIgnoreCase("variable") ? 0 : Integer.valueOf(scale));
-          } else if ("SRID".equals(jp.getCurrentName())) {
-            final String srid = jp.nextTextValue();
-            if (srid != null) {
-              returnType.setSrid(SRID.valueOf(srid));
-            }
-          }
-        }
-      }
-
-      return returnType;
-    }
-  }
-}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/754e23ab/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/SchemaImpl.java
----------------------------------------------------------------------
diff --git a/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/SchemaImpl.java b/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/SchemaImpl.java
deleted file mode 100644
index da8df2e..0000000
--- a/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/SchemaImpl.java
+++ /dev/null
@@ -1,86 +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.client.core.edm.xml;
-
-import com.fasterxml.jackson.core.JsonParser;
-import com.fasterxml.jackson.core.JsonToken;
-import com.fasterxml.jackson.databind.DeserializationContext;
-import org.apache.olingo.commons.api.edm.provider.Schema;
-
-import com.fasterxml.jackson.databind.annotation.JsonDeserialize;
-
-import java.io.IOException;
-
-@JsonDeserialize(using = SchemaImpl.SchemaDeserializer.class)
-public class SchemaImpl extends Schema {
-
-  private static final long serialVersionUID = 1911087363912024939L;
-
-  static class SchemaDeserializer extends AbstractEdmDeserializer<SchemaImpl> {
-    @Override
-    protected SchemaImpl doDeserialize(final JsonParser jp, final DeserializationContext ctxt)
-            throws IOException {
-      final SchemaImpl schema = new SchemaImpl();
-
-      for (; jp.getCurrentToken() != JsonToken.END_OBJECT; jp.nextToken()) {
-        final JsonToken token = jp.getCurrentToken();
-        if (token == JsonToken.FIELD_NAME) {
-          if ("Namespace".equals(jp.getCurrentName())) {
-            schema.setNamespace(jp.nextTextValue());
-          } else if ("Alias".equals(jp.getCurrentName())) {
-            schema.setAlias(jp.nextTextValue());
-          } else if ("ComplexType".equals(jp.getCurrentName())) {
-            jp.nextToken();
-            schema.getComplexTypes().add(jp.readValueAs(ComplexTypeImpl.class));
-          } else if ("EntityType".equals(jp.getCurrentName())) {
-            jp.nextToken();
-            schema.getEntityTypes().add(jp.readValueAs(EntityTypeImpl.class));
-          } else if ("EnumType".equals(jp.getCurrentName())) {
-            jp.nextToken();
-            schema.getEnumTypes().add(jp.readValueAs(EnumTypeImpl.class));
-          } else if ("EntityContainer".equals(jp.getCurrentName())) {
-            jp.nextToken();
-            EntityContainerImpl entityContainer = jp.readValueAs(EntityContainerImpl.class);
-            schema.setEntityContainer(entityContainer);
-          } else if ("Action".equals(jp.getCurrentName())) {
-            jp.nextToken();
-            schema.getActions().add(jp.readValueAs(ActionImpl.class));
-          } else if ("Function".equals(jp.getCurrentName())) {
-            jp.nextToken();
-            schema.getFunctions().add(jp.readValueAs(FunctionImpl.class));
-          } else if ("TypeDefinition".equals(jp.getCurrentName())) {
-            jp.nextToken();
-            schema.getTypeDefinitions().add(jp.readValueAs(TypeDefinitionImpl.class));
-          }
-        } else if ("Annotations".equals(jp.getCurrentName())) {
-          jp.nextToken();
-          schema.getAnnotationGroups().add(jp.readValueAs(AnnotationsImpl.class));
-        } else if ("Annotation".equals(jp.getCurrentName())) {
-          jp.nextToken();
-          schema.getAnnotations().add(jp.readValueAs(AnnotationImpl.class));
-        } else if ("Term".equals(jp.getCurrentName())) {
-          jp.nextToken();
-          schema.getTerms().add(jp.readValueAs(TermImpl.class));
-        }
-      }
-
-      return schema;
-    }
-  }
-}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/754e23ab/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/SingletonImpl.java
----------------------------------------------------------------------
diff --git a/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/SingletonImpl.java b/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/SingletonImpl.java
deleted file mode 100644
index c0066ba..0000000
--- a/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/SingletonImpl.java
+++ /dev/null
@@ -1,62 +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.client.core.edm.xml;
-
-import com.fasterxml.jackson.core.JsonParser;
-import com.fasterxml.jackson.core.JsonToken;
-import com.fasterxml.jackson.databind.DeserializationContext;
-import org.apache.olingo.commons.api.edm.provider.Singleton;
-
-import com.fasterxml.jackson.databind.annotation.JsonDeserialize;
-
-import java.io.IOException;
-
-@JsonDeserialize(using = SingletonImpl.SingletonDeserializer.class)
-public class SingletonImpl extends Singleton {
-
-  private static final long serialVersionUID = 1656749615107151921L;
-
-  static class SingletonDeserializer extends AbstractEdmDeserializer<SingletonImpl> {
-    @Override
-    protected SingletonImpl doDeserialize(final JsonParser jp, final DeserializationContext ctxt)
-            throws IOException {
-      final SingletonImpl singleton = new SingletonImpl();
-
-      for (; jp.getCurrentToken() != JsonToken.END_OBJECT; jp.nextToken()) {
-        final JsonToken token = jp.getCurrentToken();
-        if (token == JsonToken.FIELD_NAME) {
-          if ("Name".equals(jp.getCurrentName())) {
-            singleton.setName(jp.nextTextValue());
-          } else if ("Type".equals(jp.getCurrentName())) {
-            singleton.setType(jp.nextTextValue());
-          } else if ("NavigationPropertyBinding".equals(jp.getCurrentName())) {
-            jp.nextToken();
-            singleton.getNavigationPropertyBindings().add(
-                    jp.readValueAs(NavigationPropertyBindingImpl.class));
-          } else if ("Annotation".equals(jp.getCurrentName())) {
-            jp.nextToken();
-            singleton.getAnnotations().add(jp.readValueAs(AnnotationImpl.class));
-          }
-        }
-      }
-
-      return singleton;
-    }
-  }
-}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/754e23ab/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/TermImpl.java
----------------------------------------------------------------------
diff --git a/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/TermImpl.java b/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/TermImpl.java
deleted file mode 100644
index 8dbdd9b..0000000
--- a/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/TermImpl.java
+++ /dev/null
@@ -1,83 +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.client.core.edm.xml;
-
-import com.fasterxml.jackson.core.JsonParser;
-import com.fasterxml.jackson.core.JsonToken;
-import com.fasterxml.jackson.databind.DeserializationContext;
-import org.apache.commons.lang3.BooleanUtils;
-import org.apache.commons.lang3.StringUtils;
-import org.apache.olingo.commons.api.edm.geo.SRID;
-import org.apache.olingo.commons.api.edm.provider.Term;
-
-import com.fasterxml.jackson.databind.annotation.JsonDeserialize;
-
-import java.io.IOException;
-import java.util.Arrays;
-
-@JsonDeserialize(using = TermImpl.TermDeserializer.class)
-public class TermImpl extends Term {
-
-  private static final long serialVersionUID = -8350072064720586186L;
-
-  static class TermDeserializer extends AbstractEdmDeserializer<TermImpl> {
-    @Override
-    protected TermImpl doDeserialize(final JsonParser jp, final DeserializationContext ctxt)
-            throws IOException {
-      final TermImpl term = new TermImpl();
-
-      for (; jp.getCurrentToken() != JsonToken.END_OBJECT; jp.nextToken()) {
-        final JsonToken token = jp.getCurrentToken();
-        if (token == JsonToken.FIELD_NAME) {
-          if ("Name".equals(jp.getCurrentName())) {
-            term.setName(jp.nextTextValue());
-          } else if ("Type".equals(jp.getCurrentName())) {
-            term.setType(jp.nextTextValue());
-          } else if ("BaseTerm".equals(jp.getCurrentName())) {
-            term.setBaseTerm(jp.nextTextValue());
-          } else if ("DefaultValue".equals(jp.getCurrentName())) {
-            term.setDefaultValue(jp.nextTextValue());
-          } else if ("Nullable".equals(jp.getCurrentName())) {
-            term.setNullable(BooleanUtils.toBoolean(jp.nextTextValue()));
-          } else if ("MaxLength".equals(jp.getCurrentName())) {
-            final String maxLenght = jp.nextTextValue();
-            term.setMaxLength(maxLenght.equalsIgnoreCase("max") ? Integer.MAX_VALUE : Integer.valueOf(maxLenght));
-          } else if ("Precision".equals(jp.getCurrentName())) {
-            term.setPrecision(Integer.valueOf(jp.nextTextValue()));
-          } else if ("Scale".equals(jp.getCurrentName())) {
-            final String scale = jp.nextTextValue();
-            term.setScale(scale.equalsIgnoreCase("variable") ? 0 : Integer.valueOf(scale));
-          } else if ("SRID".equals(jp.getCurrentName())) {
-            final String srid = jp.nextTextValue();
-            if (srid != null) {
-              term.setSrid(SRID.valueOf(srid));
-            }
-          } else if ("AppliesTo".equals(jp.getCurrentName())) {
-            term.getAppliesTo().addAll(Arrays.asList(StringUtils.split(jp.nextTextValue())));
-          } else if ("Annotation".equals(jp.getCurrentName())) {
-            jp.nextToken();
-            term.getAnnotations().add(jp.readValueAs(AnnotationImpl.class));
-          }
-        }
-      }
-
-      return term;
-    }
-  }
-}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/754e23ab/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/TypeDefinitionImpl.java
----------------------------------------------------------------------
diff --git a/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/TypeDefinitionImpl.java b/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/TypeDefinitionImpl.java
deleted file mode 100644
index 81013ce..0000000
--- a/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/TypeDefinitionImpl.java
+++ /dev/null
@@ -1,74 +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.client.core.edm.xml;
-
-import com.fasterxml.jackson.core.JsonParser;
-import com.fasterxml.jackson.core.JsonToken;
-import com.fasterxml.jackson.databind.DeserializationContext;
-import org.apache.commons.lang3.BooleanUtils;
-import org.apache.olingo.commons.api.edm.geo.SRID;
-import org.apache.olingo.commons.api.edm.provider.TypeDefinition;
-
-import com.fasterxml.jackson.databind.annotation.JsonDeserialize;
-
-import java.io.IOException;
-
-@JsonDeserialize(using = TypeDefinitionImpl.TypeDefinitionDeserializer.class)
-public class TypeDefinitionImpl extends TypeDefinition {
-
-  private static final long serialVersionUID = -902407149079419602L;
-
-  static class TypeDefinitionDeserializer extends AbstractEdmDeserializer<TypeDefinitionImpl> {
-    @Override
-    protected TypeDefinitionImpl doDeserialize(final JsonParser jp, final DeserializationContext ctxt)
-            throws IOException {
-      final TypeDefinitionImpl typeDefinition = new TypeDefinitionImpl();
-
-      for (; jp.getCurrentToken() != JsonToken.END_OBJECT; jp.nextToken()) {
-        final JsonToken token = jp.getCurrentToken();
-        if (token == JsonToken.FIELD_NAME) {
-          if ("Name".equals(jp.getCurrentName())) {
-            typeDefinition.setName(jp.nextTextValue());
-          } else if ("UnderlyingType".equals(jp.getCurrentName())) {
-            typeDefinition.setUnderlyingType(jp.nextTextValue());
-          } else if ("MaxLength".equals(jp.getCurrentName())) {
-            typeDefinition.setMaxLength(jp.nextIntValue(0));
-          } else if ("Unicode".equals(jp.getCurrentName())) {
-            typeDefinition.setUnicode(BooleanUtils.toBoolean(jp.nextTextValue()));
-          } else if ("Precision".equals(jp.getCurrentName())) {
-            typeDefinition.setPrecision(jp.nextIntValue(0));
-          } else if ("Scale".equals(jp.getCurrentName())) {
-            final String scale = jp.nextTextValue();
-            typeDefinition.setScale(scale.equalsIgnoreCase("variable") ? 0 : Integer.valueOf(scale));
-          } else if ("SRID".equals(jp.getCurrentName())) {
-            final String srid = jp.nextTextValue();
-            if (srid != null) {
-              typeDefinition.setSrid(SRID.valueOf(srid));
-            }
-          } else if ("Annotation".equals(jp.getCurrentName())) {
-            jp.nextToken();
-            typeDefinition.getAnnotations().add(jp.readValueAs(AnnotationImpl.class));
-          }
-        }
-      }
-
-      return typeDefinition;
-    }
-  }
-}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/754e23ab/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/XMLMetadataImpl.java
----------------------------------------------------------------------
diff --git a/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/XMLMetadataImpl.java b/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/XMLMetadataImpl.java
deleted file mode 100644
index d7a65dd..0000000
--- a/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/XMLMetadataImpl.java
+++ /dev/null
@@ -1,75 +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.client.core.edm.xml;
-
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
-
-import org.apache.commons.lang3.StringUtils;
-import org.apache.olingo.client.api.edm.xml.Edmx;
-import org.apache.olingo.client.api.edm.xml.Reference;
-import org.apache.olingo.client.api.edm.xml.XMLMetadata;
-import org.apache.olingo.commons.api.edm.provider.AbstractEdmItem;
-import org.apache.olingo.commons.api.edm.provider.Schema;
-
-/**
- * Entry point for access information about EDM metadata.
- */
-public class XMLMetadataImpl extends AbstractEdmItem implements XMLMetadata {
-
-  private static final long serialVersionUID = 6025723060298454901L;
-  protected final Edmx edmx;
-
-  public XMLMetadataImpl(final Edmx edmx) {
-    this.edmx = edmx;
-  }
-
-  @Override
-  public List<Schema> getSchemas() {
-    return this.edmx.getDataServices().getSchemas();
-  }
-
-  @Override
-  public Schema getSchema(final int index) {
-    return getSchemas().get(index);
-  }
-
-  @Override
-  public Schema getSchema(final String key) {
-    return getSchemaByNsOrAlias().get(key);
-  }
-
-  @Override
-  public Map<String, Schema> getSchemaByNsOrAlias() {
-    final Map<String, Schema> schemaByNsOrAlias = new HashMap<String, Schema>();
-    for (Schema schema : getSchemas()) {
-      schemaByNsOrAlias.put(schema.getNamespace(), schema);
-      if (StringUtils.isNotBlank(schema.getAlias())) {
-        schemaByNsOrAlias.put(schema.getAlias(), schema);
-      }
-    }
-    return schemaByNsOrAlias;
-  }
-
-  @Override
-  public List<Reference> getReferences() {
-    return this.edmx.getReferences();
-  }
-}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/754e23ab/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/annotation/AbstractAnnotatableDynamicAnnotationExpression.java
----------------------------------------------------------------------
diff --git a/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/annotation/AbstractAnnotatableDynamicAnnotationExpression.java b/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/annotation/AbstractAnnotatableDynamicAnnotationExpression.java
deleted file mode 100644
index c530fc9..0000000
--- a/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/annotation/AbstractAnnotatableDynamicAnnotationExpression.java
+++ /dev/null
@@ -1,38 +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.client.core.edm.xml.annotation;
-
-import java.util.ArrayList;
-import java.util.List;
-
-import org.apache.olingo.commons.api.edm.provider.Annotatable;
-import org.apache.olingo.commons.api.edm.provider.Annotation;
-
-abstract class AbstractAnnotatableDynamicAnnotationExpression
-        extends AbstractDynamicAnnotationExpression implements Annotatable {
-
-  private static final long serialVersionUID = -450668773857358139L;
-
-  private final List<Annotation> annotations = new ArrayList<Annotation>();
-
-  @Override
-  public List<Annotation> getAnnotations() {
-    return annotations;
-  }
-}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/754e23ab/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/annotation/AbstractAnnotationExpression.java
----------------------------------------------------------------------
diff --git a/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/annotation/AbstractAnnotationExpression.java b/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/annotation/AbstractAnnotationExpression.java
deleted file mode 100644
index 00def87..0000000
--- a/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/annotation/AbstractAnnotationExpression.java
+++ /dev/null
@@ -1,49 +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.client.core.edm.xml.annotation;
-
-import org.apache.olingo.commons.api.edm.provider.AbstractEdmItem;
-import org.apache.olingo.commons.api.edm.provider.annotation.AnnotationExpression;
-import org.apache.olingo.commons.api.edm.provider.annotation.ConstantAnnotationExpression;
-import org.apache.olingo.commons.api.edm.provider.annotation.DynamicAnnotationExpression;
-
-public abstract class AbstractAnnotationExpression extends AbstractEdmItem implements AnnotationExpression {
-
-  private static final long serialVersionUID = -4238652997159205377L;
-
-  @Override
-  public boolean isConstant() {
-    return this instanceof ConstantAnnotationExpression;
-  }
-
-  @Override
-  public ConstantAnnotationExpression asConstant() {
-    return isConstant() ? (ConstantAnnotationExpression) this : null;
-  }
-
-  @Override
-  public boolean isDynamic() {
-    return this instanceof DynamicAnnotationExpression;
-  }
-
-  @Override
-  public DynamicAnnotationExpression asDynamic() {
-    return isDynamic() ? (DynamicAnnotationExpression) this : null;
-  }
-}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/754e23ab/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/annotation/AbstractClientAnnotatableDynamicAnnotationExpression.java
----------------------------------------------------------------------
diff --git a/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/annotation/AbstractClientAnnotatableDynamicAnnotationExpression.java b/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/annotation/AbstractClientAnnotatableDynamicAnnotationExpression.java
new file mode 100644
index 0000000..2f020c7
--- /dev/null
+++ b/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/annotation/AbstractClientAnnotatableDynamicAnnotationExpression.java
@@ -0,0 +1,38 @@
+/*
+ * 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.client.core.edm.xml.annotation;
+
+import java.util.ArrayList;
+import java.util.List;
+
+import org.apache.olingo.commons.api.edm.provider.Annotatable;
+import org.apache.olingo.commons.api.edm.provider.Annotation;
+
+abstract class AbstractClientAnnotatableDynamicAnnotationExpression
+        extends AbstractClientDynamicAnnotationExpression implements Annotatable {
+
+  private static final long serialVersionUID = -450668773857358139L;
+
+  private final List<Annotation> annotations = new ArrayList<Annotation>();
+
+  @Override
+  public List<Annotation> getAnnotations() {
+    return annotations;
+  }
+}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/754e23ab/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/annotation/AbstractClientAnnotationExpression.java
----------------------------------------------------------------------
diff --git a/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/annotation/AbstractClientAnnotationExpression.java b/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/annotation/AbstractClientAnnotationExpression.java
new file mode 100644
index 0000000..18761be
--- /dev/null
+++ b/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/annotation/AbstractClientAnnotationExpression.java
@@ -0,0 +1,49 @@
+/*
+ * 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.client.core.edm.xml.annotation;
+
+import org.apache.olingo.commons.api.edm.provider.AbstractEdmItem;
+import org.apache.olingo.commons.api.edm.provider.annotation.AnnotationExpression;
+import org.apache.olingo.commons.api.edm.provider.annotation.ConstantAnnotationExpression;
+import org.apache.olingo.commons.api.edm.provider.annotation.DynamicAnnotationExpression;
+
+public abstract class AbstractClientAnnotationExpression extends AbstractEdmItem implements AnnotationExpression {
+
+  private static final long serialVersionUID = -4238652997159205377L;
+
+  @Override
+  public boolean isConstant() {
+    return this instanceof ConstantAnnotationExpression;
+  }
+
+  @Override
+  public ConstantAnnotationExpression asConstant() {
+    return isConstant() ? (ConstantAnnotationExpression) this : null;
+  }
+
+  @Override
+  public boolean isDynamic() {
+    return this instanceof DynamicAnnotationExpression;
+  }
+
+  @Override
+  public DynamicAnnotationExpression asDynamic() {
+    return isDynamic() ? (DynamicAnnotationExpression) this : null;
+  }
+}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/754e23ab/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/annotation/AbstractClientDynamicAnnotationExpression.java
----------------------------------------------------------------------
diff --git a/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/annotation/AbstractClientDynamicAnnotationExpression.java b/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/annotation/AbstractClientDynamicAnnotationExpression.java
new file mode 100644
index 0000000..82e2d9f
--- /dev/null
+++ b/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/annotation/AbstractClientDynamicAnnotationExpression.java
@@ -0,0 +1,357 @@
+/*
+ * 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.client.core.edm.xml.annotation;
+
+import com.fasterxml.jackson.core.JsonLocation;
+import com.fasterxml.jackson.core.JsonParseException;
+import com.fasterxml.jackson.core.JsonParser;
+import com.fasterxml.jackson.core.JsonToken;
+import com.fasterxml.jackson.databind.DeserializationContext;
+import org.apache.commons.lang3.ArrayUtils;
+import org.apache.commons.lang3.ClassUtils;
+import org.apache.olingo.client.core.edm.xml.AbstractClientEdmDeserializer;
+import org.apache.olingo.commons.api.edm.provider.annotation.AnnotationPath;
+import org.apache.olingo.commons.api.edm.provider.annotation.Apply;
+import org.apache.olingo.commons.api.edm.provider.annotation.Cast;
+import org.apache.olingo.commons.api.edm.provider.annotation.Collection;
+import org.apache.olingo.commons.api.edm.provider.annotation.DynamicAnnotationExpression;
+import org.apache.olingo.commons.api.edm.provider.annotation.If;
+import org.apache.olingo.commons.api.edm.provider.annotation.IsOf;
+import org.apache.olingo.commons.api.edm.provider.annotation.LabeledElement;
+import org.apache.olingo.commons.api.edm.provider.annotation.LabeledElementReference;
+import org.apache.olingo.commons.api.edm.provider.annotation.NavigationPropertyPath;
+import org.apache.olingo.commons.api.edm.provider.annotation.Not;
+import org.apache.olingo.commons.api.edm.provider.annotation.Null;
+import org.apache.olingo.commons.api.edm.provider.annotation.Path;
+import org.apache.olingo.commons.api.edm.provider.annotation.PropertyPath;
+import org.apache.olingo.commons.api.edm.provider.annotation.PropertyValue;
+import org.apache.olingo.commons.api.edm.provider.annotation.Record;
+import org.apache.olingo.commons.api.edm.provider.annotation.TwoParamsOpDynamicAnnotationExpression;
+import org.apache.olingo.commons.api.edm.provider.annotation.UrlRef;
+
+import com.fasterxml.jackson.databind.annotation.JsonDeserialize;
+
+import java.io.IOException;
+
+@JsonDeserialize(using = AbstractClientDynamicAnnotationExpression.DynamicAnnotationExpressionDeserializer.class)
+public abstract class AbstractClientDynamicAnnotationExpression
+        extends AbstractClientAnnotationExpression implements DynamicAnnotationExpression {
+
+  private static final long serialVersionUID = 1093411847477874348L;
+
+  @Override
+  public boolean isNot() {
+    return this instanceof Not;
+  }
+
+  @Override
+  public Not asNot() {
+    return isNot() ? (Not) this : null;
+
+  }
+
+  @Override
+  public boolean isTwoParamsOp() {
+    return this instanceof TwoParamsOpDynamicAnnotationExpression;
+  }
+
+  @Override
+  public TwoParamsOpDynamicAnnotationExpression asTwoParamsOp() {
+    return isTwoParamsOp() ? (TwoParamsOpDynamicAnnotationExpression) this : null;
+  }
+
+  @Override
+  public boolean isAnnotationPath() {
+    return this instanceof AnnotationPath;
+  }
+
+  @Override
+  public AnnotationPath asAnnotationPath() {
+    return isAnnotationPath() ? (AnnotationPath) this : null;
+  }
+
+  @Override
+  public boolean isApply() {
+    return this instanceof Apply;
+  }
+
+  @Override
+  public Apply asApply() {
+    return isApply() ? (Apply) this : null;
+  }
+
+  @Override
+  public boolean isCast() {
+    return this instanceof Cast;
+  }
+
+  @Override
+  public Cast asCast() {
+    return isCast() ? (Cast) this : null;
+  }
+
+  @Override
+  public boolean isCollection() {
+    return this instanceof Collection;
+  }
+
+  @Override
+  public Collection asCollection() {
+    return isCollection() ? (Collection) this : null;
+  }
+
+  @Override
+  public boolean isIf() {
+    return this instanceof If;
+  }
+
+  @Override
+  public If asIf() {
+    return isIf() ? (If) this : null;
+  }
+
+  @Override
+  public boolean isIsOf() {
+    return this instanceof IsOf;
+  }
+
+  @Override
+  public IsOf asIsOf() {
+    return isIsOf() ? (IsOf) this : null;
+  }
+
+  @Override
+  public boolean isLabeledElement() {
+    return this instanceof LabeledElement;
+  }
+
+  @Override
+  public LabeledElement asLabeledElement() {
+    return isLabeledElement() ? (LabeledElement) this : null;
+  }
+
+  @Override
+  public boolean isLabeledElementReference() {
+    return this instanceof LabeledElementReference;
+  }
+
+  @Override
+  public LabeledElementReference asLabeledElementReference() {
+    return isLabeledElementReference() ? (LabeledElementReference) this : null;
+  }
+
+  @Override
+  public boolean isNull() {
+    return this instanceof Null;
+  }
+
+  @Override
+  public Null asNull() {
+    return isNull() ? (Null) this : null;
+  }
+
+  @Override
+  public boolean isNavigationPropertyPath() {
+    return this instanceof NavigationPropertyPath;
+  }
+
+  @Override
+  public NavigationPropertyPath asNavigationPropertyPath() {
+    return isNavigationPropertyPath() ? (NavigationPropertyPath) this : null;
+  }
+
+  @Override
+  public boolean isPath() {
+    return this instanceof Path;
+  }
+
+  @Override
+  public Path asPath() {
+    return isPath() ? (Path) this : null;
+  }
+
+  @Override
+  public boolean isPropertyPath() {
+    return this instanceof PropertyPath;
+  }
+
+  @Override
+  public PropertyPath asPropertyPath() {
+    return isPropertyPath() ? (PropertyPath) this : null;
+  }
+
+  @Override
+  public boolean isPropertyValue() {
+    return this instanceof PropertyValue;
+  }
+
+  @Override
+  public PropertyValue asPropertyValue() {
+    return isPropertyValue() ? (PropertyValue) this : null;
+  }
+
+  @Override
+  public boolean isRecord() {
+    return this instanceof Record;
+  }
+
+  @Override
+  public Record asRecord() {
+    return isRecord() ? (Record) this : null;
+  }
+
+  @Override
+  public boolean isUrlRef() {
+    return this instanceof UrlRef;
+  }
+
+  @Override
+  public UrlRef asUrlRef() {
+    return isUrlRef() ? (UrlRef) this : null;
+  }
+
+  static class DynamicAnnotationExpressionDeserializer
+          extends AbstractClientEdmDeserializer<AbstractClientDynamicAnnotationExpression> {
+
+    private static final String[] EL_OR_ATTR = {
+            AnnotationPath.class.getSimpleName(), NavigationPropertyPath.class.getSimpleName(),
+            Path.class.getSimpleName(), PropertyPath.class.getSimpleName()
+    };
+
+    private static final String APPLY = Apply.class.getSimpleName();
+    private static final String CAST = Cast.class.getSimpleName();
+    private static final String COLLECTION = Collection.class.getSimpleName();
+    private static final String IF = If.class.getSimpleName();
+    private static final String IS_OF = IsOf.class.getSimpleName();
+    private static final String LABELED_ELEMENT = LabeledElement.class.getSimpleName();
+    private static final String NULL = Null.class.getSimpleName();
+    private static final String RECORD = Record.class.getSimpleName();
+    private static final String URL_REF = UrlRef.class.getSimpleName();
+
+    private AbstractClientElementOrAttributeExpression getElementOrAttributeExpression(final String simpleClassName)
+            throws JsonParseException {
+
+      try {
+        @SuppressWarnings("unchecked")
+        Class<? extends AbstractClientElementOrAttributeExpression> elOrAttrClass =
+                (Class<? extends AbstractClientElementOrAttributeExpression>) ClassUtils.getClass(
+                        getClass().getPackage().getName() + ".Client" + simpleClassName);
+        return elOrAttrClass.newInstance();
+      } catch (Exception e) {
+        throw new JsonParseException("Could not instantiate " + simpleClassName, JsonLocation.NA, e);
+      }
+    }
+
+    private AbstractClientAnnotationExpression parseConstOrEnumExpression(final JsonParser jp) throws IOException {
+      AbstractClientAnnotationExpression result;
+      if (isAnnotationConstExprConstruct(jp)) {
+        result = parseAnnotationConstExprConstruct(jp);
+      } else {
+        result = jp.readValueAs(AbstractClientDynamicAnnotationExpression.class);
+      }
+      jp.nextToken();
+
+      return result;
+    }
+
+    @Override
+    protected AbstractClientDynamicAnnotationExpression doDeserialize(final JsonParser jp,
+        final DeserializationContext ctxt) throws IOException {
+
+      AbstractClientDynamicAnnotationExpression expression = null;
+
+      if ("Not".equals(jp.getCurrentName())) {
+        final ClientNot not = new ClientNot();
+
+        jp.nextToken();
+        //Search for field name
+        while (jp.getCurrentToken() != JsonToken.FIELD_NAME) {
+          jp.nextToken();
+        }
+        not.setExpression(jp.readValueAs(AbstractClientDynamicAnnotationExpression.class));
+        //Search for end object
+        while (jp.getCurrentToken() != JsonToken.END_OBJECT || !jp.getCurrentName().equals("Not")) {
+          jp.nextToken();
+        }
+
+        expression = not;
+      } else if (TwoParamsOpDynamicAnnotationExpression.Type.fromString(jp.getCurrentName()) != null) {
+        final ClientTwoParamsOpDynamicAnnotationExpression dynExprDoubleParamOp =
+                new ClientTwoParamsOpDynamicAnnotationExpression();
+        dynExprDoubleParamOp.setType(TwoParamsOpDynamicAnnotationExpression.Type.fromString(jp.getCurrentName()));
+
+        jp.nextToken();
+        //Search for field name
+        while (jp.getCurrentToken() != JsonToken.FIELD_NAME) {
+          jp.nextToken();
+        }
+        dynExprDoubleParamOp.setLeftExpression(jp.readValueAs(AbstractClientDynamicAnnotationExpression.class));
+        dynExprDoubleParamOp.setRightExpression(jp.readValueAs(AbstractClientDynamicAnnotationExpression.class));
+        //Search for expression
+        while (jp.getCurrentToken() != JsonToken.END_OBJECT || !jp.getCurrentName().equals(dynExprDoubleParamOp
+                .getType().name())) {
+          jp.nextToken();
+        }
+
+        expression = dynExprDoubleParamOp;
+      } else if (ArrayUtils.contains(EL_OR_ATTR, jp.getCurrentName())) {
+        final AbstractClientElementOrAttributeExpression elOrAttr =
+            getElementOrAttributeExpression(jp.getCurrentName());
+        elOrAttr.setValue(jp.nextTextValue());
+        expression = elOrAttr;
+      } else if (APPLY.equals(jp.getCurrentName())) {
+        jp.nextToken();
+        expression = jp.readValueAs(ClientApply.class);
+      } else if (CAST.equals(jp.getCurrentName())) {
+        jp.nextToken();
+        expression = jp.readValueAs(ClientCast.class);
+      } else if (COLLECTION.equals(jp.getCurrentName())) {
+        jp.nextToken();
+        expression = jp.readValueAs(ClientCollection.class);
+      } else if (IF.equals(jp.getCurrentName())) {
+        jp.nextToken();
+        jp.nextToken();
+
+        final ClientIf ifImpl = new ClientIf();
+        ifImpl.setGuard(parseConstOrEnumExpression(jp));
+        ifImpl.setThen(parseConstOrEnumExpression(jp));
+        ifImpl.setElse(parseConstOrEnumExpression(jp));
+
+        expression = ifImpl;
+      } else if (IS_OF.equals(jp.getCurrentName())) {
+        jp.nextToken();
+        expression = jp.readValueAs(ClientIsOf.class);
+      } else if (LABELED_ELEMENT.equals(jp.getCurrentName())) {
+        jp.nextToken();
+        expression = jp.readValueAs(ClientLabeledElement.class);
+      } else if (NULL.equals(jp.getCurrentName())) {
+        jp.nextToken();
+        expression = jp.readValueAs(ClientNull.class);
+      } else if (RECORD.equals(jp.getCurrentName())) {
+        jp.nextToken();
+        expression = jp.readValueAs(ClientRecord.class);
+      } else if (URL_REF.equals(jp.getCurrentName())) {
+        jp.nextToken();
+        expression = jp.readValueAs(ClientUrlRef.class);
+      }
+
+      return expression;
+    }
+  }
+}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/754e23ab/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/annotation/AbstractClientElementOrAttributeExpression.java
----------------------------------------------------------------------
diff --git a/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/annotation/AbstractClientElementOrAttributeExpression.java b/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/annotation/AbstractClientElementOrAttributeExpression.java
new file mode 100644
index 0000000..34601fd
--- /dev/null
+++ b/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/annotation/AbstractClientElementOrAttributeExpression.java
@@ -0,0 +1,37 @@
+/*
+ * 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.client.core.edm.xml.annotation;
+
+/**
+ * Groups dynamic expressions that may be provided using element notation or attribute notation.
+ */
+abstract class AbstractClientElementOrAttributeExpression extends AbstractClientDynamicAnnotationExpression {
+
+  private static final long serialVersionUID = 1588336268773032932L;
+
+  private String value;
+
+  public String getValue() {
+    return value;
+  }
+
+  public void setValue(final String value) {
+    this.value = value;
+  }
+}


[27/50] [abbrv] olingo-odata4 git commit: [OLINGO-564] Renamed 'OData*' to 'Client*' classes

Posted by mi...@apache.org.
http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/c37d4da5/lib/commons-core/src/main/java/org/apache/olingo/commons/core/domain/ODataPropertyImpl.java
----------------------------------------------------------------------
diff --git a/lib/commons-core/src/main/java/org/apache/olingo/commons/core/domain/ODataPropertyImpl.java b/lib/commons-core/src/main/java/org/apache/olingo/commons/core/domain/ODataPropertyImpl.java
deleted file mode 100644
index da1bba1..0000000
--- a/lib/commons-core/src/main/java/org/apache/olingo/commons/core/domain/ODataPropertyImpl.java
+++ /dev/null
@@ -1,163 +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.commons.core.domain;
-
-import java.util.ArrayList;
-import java.util.List;
-
-import org.apache.commons.lang3.builder.EqualsBuilder;
-import org.apache.commons.lang3.builder.HashCodeBuilder;
-import org.apache.olingo.commons.api.domain.ODataAnnotatable;
-import org.apache.olingo.commons.api.domain.ODataAnnotation;
-import org.apache.olingo.commons.api.domain.ODataCollectionValue;
-import org.apache.olingo.commons.api.domain.ODataComplexValue;
-import org.apache.olingo.commons.api.domain.ODataEnumValue;
-import org.apache.olingo.commons.api.domain.ODataPrimitiveValue;
-import org.apache.olingo.commons.api.domain.ODataProperty;
-import org.apache.olingo.commons.api.domain.ODataValuable;
-import org.apache.olingo.commons.api.domain.ODataValue;
-
-public class ODataPropertyImpl implements ODataProperty, ODataAnnotatable, ODataValuable {
-
-
-  private final List<ODataAnnotation> annotations = new ArrayList<ODataAnnotation>();
-  private final String name;
-  private final ODataValue value;
-  private final ODataValuable valuable;
-
-  public ODataPropertyImpl(final String name, final ODataValue value) {
-    this.name = name;
-    this.value = value;
-    this.valuable = new ODataValuableImpl(value);
-  }
-
-  /**
-   * Returns property name.
-   *
-   * @return property name.
-   */
-  @Override
-  public String getName() {
-    return name;
-  }
-
-  /**
-   * Returns property value.
-   *
-   * @return property value.
-   */
-  @Override
-  public ODataValue getValue() {
-    return value;
-  }
-
-  /**
-   * Checks if has null value.
-   *
-   * @return 'TRUE' if has null value; 'FALSE' otherwise.
-   */
-  @Override
-  public boolean hasNullValue() {
-    return value == null || value.isPrimitive() && value.asPrimitive().toValue() == null;
-  }
-
-  /**
-   * Checks if has primitive value.
-   *
-   * @return 'TRUE' if has primitive value; 'FALSE' otherwise.
-   */
-  @Override
-  public boolean hasPrimitiveValue() {
-    return !hasNullValue() && value.isPrimitive();
-  }
-
-  /**
-   * Gets primitive value.
-   *
-   * @return primitive value if exists; null otherwise.
-   */
-  @Override
-  public ODataPrimitiveValue getPrimitiveValue() {
-    return hasPrimitiveValue() ? value.asPrimitive() : null;
-  }
-
-  /**
-   * Checks if has complex value.
-   *
-   * @return 'TRUE' if has complex value; 'FALSE' otherwise.
-   */
-  @Override
-  public boolean hasComplexValue() {
-    return !hasNullValue() && value.isComplex();
-  }
-
-  /**
-   * Checks if has collection value.
-   *
-   * @return 'TRUE' if has collection value; 'FALSE' otherwise.
-   */
-  @Override
-  public boolean hasCollectionValue() {
-    return !hasNullValue() && value.isCollection();
-  }
-
-  @Override
-  public boolean equals(final Object obj) {
-    return EqualsBuilder.reflectionEquals(this, obj);
-  }
-
-  @Override
-  public int hashCode() {
-    return HashCodeBuilder.reflectionHashCode(this);
-  }
-
-  @Override
-  public boolean hasEnumValue() {
-    return valuable.hasEnumValue();
-  }
-
-  @Override
-  public ODataEnumValue getEnumValue() {
-    return valuable.getEnumValue();
-  }
-
-  @Override
-  public ODataComplexValue getComplexValue() {
-    return valuable.getComplexValue();
-  }
-
-  @Override
-  public ODataCollectionValue<ODataValue> getCollectionValue() {
-    return valuable.getCollectionValue();
-  }
-
-  @Override
-  public List<ODataAnnotation> getAnnotations() {
-    return annotations;
-  }
-
-  @Override
-  public String toString() {
-    return "ODataPropertyImpl{"
-        + "name=" + getName()
-        + ",valuable=" + valuable
-        + ", annotations=" + annotations
-        + '}';
-  }
-}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/c37d4da5/lib/commons-core/src/main/java/org/apache/olingo/commons/core/domain/ODataValuableImpl.java
----------------------------------------------------------------------
diff --git a/lib/commons-core/src/main/java/org/apache/olingo/commons/core/domain/ODataValuableImpl.java b/lib/commons-core/src/main/java/org/apache/olingo/commons/core/domain/ODataValuableImpl.java
deleted file mode 100644
index dbb65ee..0000000
--- a/lib/commons-core/src/main/java/org/apache/olingo/commons/core/domain/ODataValuableImpl.java
+++ /dev/null
@@ -1,111 +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.commons.core.domain;
-
-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.commons.api.domain.ODataCollectionValue;
-import org.apache.olingo.commons.api.domain.ODataComplexValue;
-import org.apache.olingo.commons.api.domain.ODataEnumValue;
-import org.apache.olingo.commons.api.domain.ODataPrimitiveValue;
-import org.apache.olingo.commons.api.domain.ODataValuable;
-import org.apache.olingo.commons.api.domain.ODataValue;
-
-public class ODataValuableImpl implements ODataValuable {
-
-  private final ODataValue value;
-
-  public ODataValuableImpl(final ODataValue value) {
-    this.value = value;
-  }
-
-  @Override
-  public ODataValue getValue() {
-    return value;
-  }
-
-  @Override
-  public boolean hasNullValue() {
-    return value == null;
-  }
-
-  @Override
-  public boolean hasPrimitiveValue() {
-    return !hasNullValue() && value.isPrimitive();
-  }
-
-  @Override
-  public ODataPrimitiveValue getPrimitiveValue() {
-    return hasPrimitiveValue() ? value.asPrimitive() : null;
-  }
-
-  @Override
-  public boolean hasCollectionValue() {
-    return !hasNullValue() && value.isCollection();
-  }
-
-  @Override
-  public ODataCollectionValue<ODataValue> getCollectionValue() {
-    return hasCollectionValue()
-        ? getValue().<ODataValue> asCollection()
-        : null;
-  }
-
-  @Override
-  public boolean hasComplexValue() {
-    return !hasNullValue() && value.isComplex();
-  }
-
-  @Override
-  public ODataComplexValue getComplexValue() {
-    return hasComplexValue()
-        ? getValue().asComplex()
-        : null;
-  }
-
-  @Override
-  public boolean hasEnumValue() {
-    return !hasNullValue() && getValue().isEnum();
-  }
-
-  @Override
-  public ODataEnumValue getEnumValue() {
-    return hasEnumValue()
-        ? getValue().asEnum()
-        : null;
-  }
-
-  @Override
-  public boolean equals(final Object obj) {
-    return EqualsBuilder.reflectionEquals(this, obj);
-  }
-
-  @Override
-  public int hashCode() {
-    return HashCodeBuilder.reflectionHashCode(this);
-  }
-
-  @Override
-  public String toString() {
-    return ReflectionToStringBuilder.toString(this, ToStringStyle.MULTI_LINE_STYLE);
-  }
-
-}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/c37d4da5/lib/commons-core/src/main/java/org/apache/olingo/commons/core/edm/annotation/EdmConstantAnnotationExpressionImpl.java
----------------------------------------------------------------------
diff --git a/lib/commons-core/src/main/java/org/apache/olingo/commons/core/edm/annotation/EdmConstantAnnotationExpressionImpl.java b/lib/commons-core/src/main/java/org/apache/olingo/commons/core/edm/annotation/EdmConstantAnnotationExpressionImpl.java
index 15658ab..7adeb3e 100644
--- a/lib/commons-core/src/main/java/org/apache/olingo/commons/core/edm/annotation/EdmConstantAnnotationExpressionImpl.java
+++ b/lib/commons-core/src/main/java/org/apache/olingo/commons/core/edm/annotation/EdmConstantAnnotationExpressionImpl.java
@@ -23,38 +23,38 @@ import java.util.List;
 
 import org.apache.commons.lang3.StringUtils;
 import org.apache.olingo.commons.api.Constants;
-import org.apache.olingo.commons.api.domain.ODataEnumValue;
-import org.apache.olingo.commons.api.domain.ODataValue;
+import org.apache.olingo.commons.api.domain.ClientEnumValue;
+import org.apache.olingo.commons.api.domain.ClientValue;
 import org.apache.olingo.commons.api.edm.EdmPrimitiveType;
 import org.apache.olingo.commons.api.edm.EdmPrimitiveTypeException;
 import org.apache.olingo.commons.api.edm.EdmPrimitiveTypeKind;
 import org.apache.olingo.commons.api.edm.annotation.EdmConstantAnnotationExpression;
 import org.apache.olingo.commons.api.edm.annotation.EdmDynamicAnnotationExpression;
 import org.apache.olingo.commons.api.edm.provider.annotation.ConstantAnnotationExpression;
-import org.apache.olingo.commons.core.domain.ODataCollectionValueImpl;
-import org.apache.olingo.commons.core.domain.ODataEnumValueImpl;
-import org.apache.olingo.commons.core.domain.ODataPrimitiveValueImpl;
+import org.apache.olingo.commons.core.domain.ClientCollectionValueImpl;
+import org.apache.olingo.commons.core.domain.ClientEnumValueImpl;
+import org.apache.olingo.commons.core.domain.ClientPrimitiveValueImpl;
 import org.apache.olingo.commons.core.edm.primitivetype.EdmPrimitiveTypeFactory;
 
 public class EdmConstantAnnotationExpressionImpl implements EdmConstantAnnotationExpression {
 
-  private final ODataValue value;
+  private final ClientValue value;
 
   public EdmConstantAnnotationExpressionImpl(final ConstantAnnotationExpression constExprConstruct) {
     if (constExprConstruct.getType() == ConstantAnnotationExpression.Type.EnumMember) {
-      final List<ODataEnumValue> enumValues = new ArrayList<ODataEnumValue>();
+      final List<ClientEnumValue> enumValues = new ArrayList<ClientEnumValue>();
       String enumTypeName = null;
       for (String split : StringUtils.split(constExprConstruct.getValue(), ' ')) {
         final String[] enumSplit = StringUtils.split(split, '/');
         enumTypeName = enumSplit[0];
-        enumValues.add(new ODataEnumValueImpl(enumSplit[0], enumSplit[1]));
+        enumValues.add(new ClientEnumValueImpl(enumSplit[0], enumSplit[1]));
       }
       if (enumValues.size() == 1) {
         value = enumValues.get(0);
       } else {
-        final ODataCollectionValueImpl<ODataEnumValue> collValue 
-          = new ODataCollectionValueImpl<ODataEnumValue>(enumTypeName);
-        for (ODataValue enumValue : enumValues) {
+        final ClientCollectionValueImpl<ClientEnumValue> collValue
+          = new ClientCollectionValueImpl<ClientEnumValue>(enumTypeName);
+        for (ClientValue enumValue : enumValues) {
           collValue.add(enumValue);
         }
         value = collValue;
@@ -96,7 +96,7 @@ public class EdmConstantAnnotationExpressionImpl implements EdmConstantAnnotatio
       default:
         kind = EdmPrimitiveTypeKind.String;
       }
-      final ODataPrimitiveValueImpl.BuilderImpl primitiveValueBuilder = new ODataPrimitiveValueImpl.BuilderImpl();
+      final ClientPrimitiveValueImpl.BuilderImpl primitiveValueBuilder = new ClientPrimitiveValueImpl.BuilderImpl();
       primitiveValueBuilder.setType(kind);
       try {
         final EdmPrimitiveType primitiveType = EdmPrimitiveTypeFactory.getInstance(kind);
@@ -133,7 +133,7 @@ public class EdmConstantAnnotationExpressionImpl implements EdmConstantAnnotatio
   }
 
   @Override
-  public ODataValue getValue() {
+  public ClientValue getValue() {
     return value;
   }
 

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/c37d4da5/lib/commons-core/src/main/java/org/apache/olingo/commons/core/serialization/AtomDeserializer.java
----------------------------------------------------------------------
diff --git a/lib/commons-core/src/main/java/org/apache/olingo/commons/core/serialization/AtomDeserializer.java b/lib/commons-core/src/main/java/org/apache/olingo/commons/core/serialization/AtomDeserializer.java
index 26cafc2..460e367 100644
--- a/lib/commons-core/src/main/java/org/apache/olingo/commons/core/serialization/AtomDeserializer.java
+++ b/lib/commons-core/src/main/java/org/apache/olingo/commons/core/serialization/AtomDeserializer.java
@@ -50,9 +50,9 @@ import org.apache.olingo.commons.api.data.Property;
 import org.apache.olingo.commons.api.data.ResWrap;
 import org.apache.olingo.commons.api.data.Valuable;
 import org.apache.olingo.commons.api.data.ValueType;
-import org.apache.olingo.commons.api.domain.ODataError;
-import org.apache.olingo.commons.api.domain.ODataOperation;
-import org.apache.olingo.commons.api.domain.ODataPropertyType;
+import org.apache.olingo.commons.api.domain.ClientError;
+import org.apache.olingo.commons.api.domain.ClientOperation;
+import org.apache.olingo.commons.api.domain.ClientPropertyType;
 import org.apache.olingo.commons.api.edm.EdmPrimitiveType;
 import org.apache.olingo.commons.api.edm.EdmPrimitiveTypeException;
 import org.apache.olingo.commons.api.edm.EdmPrimitiveTypeKind;
@@ -214,7 +214,7 @@ public class AtomDeserializer extends AbstractAtomDealer implements ODataDeseria
     valuable.setValue(valueType, values);
   }
 
-  private ODataPropertyType guessPropertyType(final XMLEventReader reader, final EdmTypeInfo typeInfo)
+  private ClientPropertyType guessPropertyType(final XMLEventReader reader, final EdmTypeInfo typeInfo)
       throws XMLStreamException {
 
     XMLEvent child = null;
@@ -227,24 +227,24 @@ public class AtomDeserializer extends AbstractAtomDealer implements ODataDeseria
       }
     }
 
-    final ODataPropertyType type;
+    final ClientPropertyType type;
     if (child == null) {
-      type = typeInfo == null || typeInfo.isPrimitiveType() ? ODataPropertyType.PRIMITIVE : ODataPropertyType.ENUM;
+      type = typeInfo == null || typeInfo.isPrimitiveType() ? ClientPropertyType.PRIMITIVE : ClientPropertyType.ENUM;
     } else {
       if (child.isStartElement()) {
         if (Constants.NS_GML.equals(child.asStartElement().getName().getNamespaceURI())) {
-          type = ODataPropertyType.PRIMITIVE;
+          type = ClientPropertyType.PRIMITIVE;
         } else if (elementQName.equals(child.asStartElement().getName())) {
-          type = ODataPropertyType.COLLECTION;
+          type = ClientPropertyType.COLLECTION;
         } else {
-          type = ODataPropertyType.COMPLEX;
+          type = ClientPropertyType.COMPLEX;
         }
       } else if (child.isCharacters()) {
         type = typeInfo == null || typeInfo.isPrimitiveType()
-            ? ODataPropertyType.PRIMITIVE
-            : ODataPropertyType.ENUM;
+            ? ClientPropertyType.PRIMITIVE
+            : ClientPropertyType.ENUM;
       } else {
-        type = ODataPropertyType.EMPTY;
+        type = ClientPropertyType.EMPTY;
       }
     }
 
@@ -286,9 +286,9 @@ public class AtomDeserializer extends AbstractAtomDealer implements ODataDeseria
       valuable.setType(typeInfo.internal());
     }
 
-    final ODataPropertyType propType = typeInfo == null ? guessPropertyType(reader, typeInfo) :
-        typeInfo.isCollection() ? ODataPropertyType.COLLECTION :
-            typeInfo.isPrimitiveType() ? ODataPropertyType.PRIMITIVE : ODataPropertyType.COMPLEX;
+    final ClientPropertyType propType = typeInfo == null ? guessPropertyType(reader, typeInfo) :
+        typeInfo.isCollection() ? ClientPropertyType.COLLECTION :
+            typeInfo.isPrimitiveType() ? ClientPropertyType.PRIMITIVE : ClientPropertyType.COMPLEX;
 
     if (nullAttr == null) {
       switch (propType) {
@@ -316,10 +316,10 @@ public class AtomDeserializer extends AbstractAtomDealer implements ODataDeseria
         valuable.setValue(ValueType.PRIMITIVE, StringUtils.EMPTY);
       }
     } else {
-      valuable.setValue(propType == ODataPropertyType.PRIMITIVE ? ValueType.PRIMITIVE :
-          propType == ODataPropertyType.ENUM ? ValueType.ENUM :
-              propType == ODataPropertyType.COMPLEX ? ValueType.COMPLEX :
-                  propType == ODataPropertyType.COLLECTION ? ValueType.COLLECTION_PRIMITIVE : ValueType.PRIMITIVE,
+      valuable.setValue(propType == ClientPropertyType.PRIMITIVE ? ValueType.PRIMITIVE :
+          propType == ClientPropertyType.ENUM ? ValueType.ENUM :
+              propType == ClientPropertyType.COMPLEX ? ValueType.COMPLEX :
+                  propType == ClientPropertyType.COLLECTION ? ValueType.COLLECTION_PRIMITIVE : ValueType.PRIMITIVE,
           null);
     }
   }
@@ -649,7 +649,7 @@ public class AtomDeserializer extends AbstractAtomDealer implements ODataDeseria
               entity.getMediaEditLinks().add(link);
             }
           } else if (actionQName.equals(event.asStartElement().getName())) {
-            final ODataOperation operation = new ODataOperation();
+            final ClientOperation operation = new ClientOperation();
             final Attribute metadata =
                 event.asStartElement().getAttributeByName(QName.valueOf(Constants.ATTR_METADATA));
             if (metadata != null) {
@@ -800,8 +800,8 @@ public class AtomDeserializer extends AbstractAtomDealer implements ODataDeseria
     }
   }
 
-  private ODataError error(final XMLEventReader reader, final StartElement start) throws XMLStreamException {
-    final ODataError error = new ODataError();
+  private ClientError error(final XMLEventReader reader, final StartElement start) throws XMLStreamException {
+    final ClientError error = new ClientError();
 
     boolean setCode = false;
     boolean codeSet = false;
@@ -851,7 +851,7 @@ public class AtomDeserializer extends AbstractAtomDealer implements ODataDeseria
   }
 
   @Override
-  public ODataError toError(final InputStream input) throws ODataDeserializerException {
+  public ClientError toError(final InputStream input) throws ODataDeserializerException {
     try {
       final XMLEventReader reader = getReader(input);
       final StartElement start = skipBeforeFirstStartElement(reader);

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/c37d4da5/lib/commons-core/src/main/java/org/apache/olingo/commons/core/serialization/AtomSerializer.java
----------------------------------------------------------------------
diff --git a/lib/commons-core/src/main/java/org/apache/olingo/commons/core/serialization/AtomSerializer.java b/lib/commons-core/src/main/java/org/apache/olingo/commons/core/serialization/AtomSerializer.java
index 7543eac..52a1bd3 100644
--- a/lib/commons-core/src/main/java/org/apache/olingo/commons/core/serialization/AtomSerializer.java
+++ b/lib/commons-core/src/main/java/org/apache/olingo/commons/core/serialization/AtomSerializer.java
@@ -41,7 +41,7 @@ import org.apache.olingo.commons.api.data.Link;
 import org.apache.olingo.commons.api.data.Property;
 import org.apache.olingo.commons.api.data.ResWrap;
 import org.apache.olingo.commons.api.data.ValueType;
-import org.apache.olingo.commons.api.domain.ODataOperation;
+import org.apache.olingo.commons.api.domain.ClientOperation;
 import org.apache.olingo.commons.api.edm.EdmPrimitiveTypeException;
 import org.apache.olingo.commons.api.edm.EdmPrimitiveTypeKind;
 import org.apache.olingo.commons.api.edm.geo.Geospatial;
@@ -302,7 +302,7 @@ public class AtomSerializer extends AbstractAtomDealer implements ODataSerialize
     links(writer, entity.getMediaEditLinks());
 
     if (serverMode) {
-      for (ODataOperation operation : entity.getOperations()) {
+      for (ClientOperation operation : entity.getOperations()) {
         writer.writeStartElement(namespaceMetadata, Constants.ATOM_ELEM_ACTION);
         writer.writeAttribute(Constants.ATTR_METADATA, operation.getMetadataAnchor());
         writer.writeAttribute(Constants.ATTR_TITLE, operation.getTitle());

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/c37d4da5/lib/commons-core/src/main/java/org/apache/olingo/commons/core/serialization/JsonDeserializer.java
----------------------------------------------------------------------
diff --git a/lib/commons-core/src/main/java/org/apache/olingo/commons/core/serialization/JsonDeserializer.java b/lib/commons-core/src/main/java/org/apache/olingo/commons/core/serialization/JsonDeserializer.java
index c9c715a..9977b06 100755
--- a/lib/commons-core/src/main/java/org/apache/olingo/commons/core/serialization/JsonDeserializer.java
+++ b/lib/commons-core/src/main/java/org/apache/olingo/commons/core/serialization/JsonDeserializer.java
@@ -43,9 +43,9 @@ import org.apache.olingo.commons.api.data.Property;
 import org.apache.olingo.commons.api.data.ResWrap;
 import org.apache.olingo.commons.api.data.Valuable;
 import org.apache.olingo.commons.api.data.ValueType;
-import org.apache.olingo.commons.api.domain.ODataError;
-import org.apache.olingo.commons.api.domain.ODataLinkType;
-import org.apache.olingo.commons.api.domain.ODataPropertyType;
+import org.apache.olingo.commons.api.domain.ClientError;
+import org.apache.olingo.commons.api.domain.ClientLinkType;
+import org.apache.olingo.commons.api.domain.ClientPropertyType;
 import org.apache.olingo.commons.api.edm.EdmPrimitiveType;
 import org.apache.olingo.commons.api.edm.EdmPrimitiveTypeException;
 import org.apache.olingo.commons.api.edm.EdmPrimitiveTypeKind;
@@ -100,11 +100,11 @@ public class JsonDeserializer implements ODataDeserializer {
       JsonEntityDeserializer entityDeserializer = new JsonEntityDeserializer(serverMode);
 
       if (inline instanceof ObjectNode) {
-        link.setType(ODataLinkType.ENTITY_NAVIGATION.toString());
+        link.setType(ClientLinkType.ENTITY_NAVIGATION.toString());
         link.setInlineEntity(entityDeserializer.doDeserialize(inline.traverse(codec)).getPayload());
 
       } else if (inline instanceof ArrayNode) {
-        link.setType(ODataLinkType.ENTITY_SET_NAVIGATION.toString());
+        link.setType(ClientLinkType.ENTITY_SET_NAVIGATION.toString());
 
         final EntityCollection entitySet = new EntityCollection();
         for (final Iterator<JsonNode> entries = inline.elements(); entries.hasNext();) {
@@ -136,7 +136,7 @@ public class JsonDeserializer implements ODataDeserializer {
 
       if (field.getValue().isValueNode()) {
         link.setHref(field.getValue().textValue());
-        link.setType(ODataLinkType.ENTITY_NAVIGATION.toString());
+        link.setType(ClientLinkType.ENTITY_NAVIGATION.toString());
       }
 
       linked.getNavigationLinks().add(link);
@@ -148,7 +148,7 @@ public class JsonDeserializer implements ODataDeserializer {
       link.setTitle(getTitle(field));
       link.setRel(Constants.NS_ASSOCIATION_LINK_REL + getTitle(field));
       link.setHref(field.getValue().textValue());
-      link.setType(ODataLinkType.ASSOCIATION.toString());
+      link.setType(ClientLinkType.ASSOCIATION.toString());
       linked.getAssociationLinks().add(link);
 
       toRemove.add(field.getKey());
@@ -168,7 +168,7 @@ public class JsonDeserializer implements ODataDeserializer {
         link.setTitle(getTitle(field));
         link.setRel(Constants.NS_NAVIGATION_LINK_REL + getTitle(field));
         link.setHref(field.getValue().textValue());
-        link.setType(ODataLinkType.ENTITY_NAVIGATION.toString());
+        link.setType(ClientLinkType.ENTITY_NAVIGATION.toString());
         linked.getNavigationLinks().add(link);
 
         toRemove.add(setInline(field.getKey(), suffix, tree, codec, link));
@@ -180,7 +180,7 @@ public class JsonDeserializer implements ODataDeserializer {
           link.setTitle(getTitle(field));
           link.setRel(Constants.NS_NAVIGATION_LINK_REL + getTitle(field));
           link.setHref(node.asText());
-          link.setType(ODataLinkType.ENTITY_SET_NAVIGATION.toString());
+          link.setType(ClientLinkType.ENTITY_SET_NAVIGATION.toString());
           linked.getNavigationLinks().add(link);
           toRemove.add(setInline(field.getKey(), Constants.JSON_BIND_LINK_SUFFIX, tree, codec, link));
         }
@@ -189,32 +189,32 @@ public class JsonDeserializer implements ODataDeserializer {
     }
   }
 
-  private Map.Entry<ODataPropertyType, EdmTypeInfo> guessPropertyType(final JsonNode node) {
-    ODataPropertyType type;
+  private Map.Entry<ClientPropertyType, EdmTypeInfo> guessPropertyType(final JsonNode node) {
+    ClientPropertyType type;
     String typeExpression = null;
 
     if (node.isValueNode() || node.isNull()) {
-      type = ODataPropertyType.PRIMITIVE;
+      type = ClientPropertyType.PRIMITIVE;
       typeExpression = guessPrimitiveTypeKind(node).getFullQualifiedName().toString();
     } else if (node.isArray()) {
-      type = ODataPropertyType.COLLECTION;
+      type = ClientPropertyType.COLLECTION;
       if (node.has(0) && node.get(0).isValueNode()) {
         typeExpression = "Collection(" + guessPrimitiveTypeKind(node.get(0)) + ')';
       }
     } else if (node.isObject()) {
       if (node.has(Constants.ATTR_TYPE)) {
-        type = ODataPropertyType.PRIMITIVE;
+        type = ClientPropertyType.PRIMITIVE;
         typeExpression = "Edm.Geography" + node.get(Constants.ATTR_TYPE).asText();
       } else {
-        type = ODataPropertyType.COMPLEX;
+        type = ClientPropertyType.COMPLEX;
       }
     } else {
-      type = ODataPropertyType.EMPTY;
+      type = ClientPropertyType.EMPTY;
     }
 
     final EdmTypeInfo typeInfo = typeExpression == null ? null :
         new EdmTypeInfo.Builder().setTypeExpression(typeExpression).build();
-    return new SimpleEntry<ODataPropertyType, EdmTypeInfo>(type, typeInfo);
+    return new SimpleEntry<ClientPropertyType, EdmTypeInfo>(type, typeInfo);
   }
 
   private EdmPrimitiveTypeKind guessPrimitiveTypeKind(final JsonNode node) {
@@ -337,15 +337,15 @@ public class JsonDeserializer implements ODataDeserializer {
     EdmTypeInfo typeInfo = StringUtils.isBlank(valuable.getType()) ? null
         : new EdmTypeInfo.Builder().setTypeExpression(valuable.getType()).build();
 
-    final Map.Entry<ODataPropertyType, EdmTypeInfo> guessed = guessPropertyType(node);
+    final Map.Entry<ClientPropertyType, EdmTypeInfo> guessed = guessPropertyType(node);
     if (typeInfo == null) {
       typeInfo = guessed.getValue();
     }
 
-    final ODataPropertyType propType = typeInfo == null ? guessed.getKey()
-        : typeInfo.isCollection() ? ODataPropertyType.COLLECTION
-            : typeInfo.isPrimitiveType() ? ODataPropertyType.PRIMITIVE
-                : node.isValueNode() ? ODataPropertyType.ENUM : ODataPropertyType.COMPLEX;
+    final ClientPropertyType propType = typeInfo == null ? guessed.getKey()
+        : typeInfo.isCollection() ? ClientPropertyType.COLLECTION
+            : typeInfo.isPrimitiveType() ? ClientPropertyType.PRIMITIVE
+                : node.isValueNode() ? ClientPropertyType.ENUM : ClientPropertyType.COMPLEX;
 
     switch (propType) {
     case COLLECTION:
@@ -411,7 +411,7 @@ public class JsonDeserializer implements ODataDeserializer {
   }
 
   @Override
-  public ODataError toError(final InputStream input) throws ODataDeserializerException {
+  public ClientError toError(final InputStream input) throws ODataDeserializerException {
     try {
       parser = new JsonFactory(new ObjectMapper()).createParser(input);
       return new JsonODataErrorDeserializer(serverMode).doDeserialize(parser);

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/c37d4da5/lib/commons-core/src/main/java/org/apache/olingo/commons/core/serialization/JsonEntityDeserializer.java
----------------------------------------------------------------------
diff --git a/lib/commons-core/src/main/java/org/apache/olingo/commons/core/serialization/JsonEntityDeserializer.java b/lib/commons-core/src/main/java/org/apache/olingo/commons/core/serialization/JsonEntityDeserializer.java
index 703f6b6..47a2598 100644
--- a/lib/commons-core/src/main/java/org/apache/olingo/commons/core/serialization/JsonEntityDeserializer.java
+++ b/lib/commons-core/src/main/java/org/apache/olingo/commons/core/serialization/JsonEntityDeserializer.java
@@ -35,8 +35,8 @@ import org.apache.olingo.commons.api.data.Annotation;
 import org.apache.olingo.commons.api.data.Entity;
 import org.apache.olingo.commons.api.data.Link;
 import org.apache.olingo.commons.api.data.ResWrap;
-import org.apache.olingo.commons.api.domain.ODataLinkType;
-import org.apache.olingo.commons.api.domain.ODataOperation;
+import org.apache.olingo.commons.api.domain.ClientLinkType;
+import org.apache.olingo.commons.api.domain.ClientOperation;
 import org.apache.olingo.commons.api.edm.EdmPrimitiveTypeException;
 import org.apache.olingo.commons.core.edm.EdmTypeInfo;
 
@@ -154,7 +154,7 @@ public class JsonEntityDeserializer extends JsonDeserializer {
         link.setTitle(getTitle(field));
         link.setRel(Constants.NS_MEDIA_EDIT_LINK_REL + getTitle(field));
         link.setHref(field.getValue().textValue());
-        link.setType(ODataLinkType.MEDIA_EDIT.toString());
+        link.setType(ClientLinkType.MEDIA_EDIT.toString());
         entity.getMediaEditLinks().add(link);
 
         if (tree.has(link.getTitle() + getJSONAnnotation(Constants.JSON_MEDIA_ETAG))) {
@@ -174,7 +174,7 @@ public class JsonEntityDeserializer extends JsonDeserializer {
         }
         toRemove.add(field.getKey());
       } else if (field.getKey().charAt(0) == '#') {
-        final ODataOperation operation = new ODataOperation();
+        final ClientOperation operation = new ClientOperation();
         operation.setMetadataAnchor(field.getKey());
 
         final ObjectNode opNode = (ObjectNode) tree.get(field.getKey());

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/c37d4da5/lib/commons-core/src/main/java/org/apache/olingo/commons/core/serialization/JsonEntitySerializer.java
----------------------------------------------------------------------
diff --git a/lib/commons-core/src/main/java/org/apache/olingo/commons/core/serialization/JsonEntitySerializer.java b/lib/commons-core/src/main/java/org/apache/olingo/commons/core/serialization/JsonEntitySerializer.java
index b6a32ef..9f58664 100644
--- a/lib/commons-core/src/main/java/org/apache/olingo/commons/core/serialization/JsonEntitySerializer.java
+++ b/lib/commons-core/src/main/java/org/apache/olingo/commons/core/serialization/JsonEntitySerializer.java
@@ -27,7 +27,7 @@ import org.apache.olingo.commons.api.data.Entity;
 import org.apache.olingo.commons.api.data.Link;
 import org.apache.olingo.commons.api.data.Property;
 import org.apache.olingo.commons.api.data.ResWrap;
-import org.apache.olingo.commons.api.domain.ODataOperation;
+import org.apache.olingo.commons.api.domain.ClientOperation;
 import org.apache.olingo.commons.api.edm.EdmPrimitiveTypeException;
 import org.apache.olingo.commons.api.format.ODataFormat;
 import org.apache.olingo.commons.core.edm.EdmTypeInfo;
@@ -122,7 +122,7 @@ public class JsonEntitySerializer extends JsonSerializer {
     }
 
     if (serverMode) {
-      for (ODataOperation operation : entity.getOperations()) {
+      for (ClientOperation operation : entity.getOperations()) {
         jgen.writeObjectFieldStart("#" + StringUtils.substringAfterLast(operation.getMetadataAnchor(), "#"));
         jgen.writeStringField(Constants.ATTR_TITLE, operation.getTitle());
         jgen.writeStringField(Constants.ATTR_TARGET, operation.getTarget().toASCIIString());

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/c37d4da5/lib/commons-core/src/main/java/org/apache/olingo/commons/core/serialization/JsonODataErrorDeserializer.java
----------------------------------------------------------------------
diff --git a/lib/commons-core/src/main/java/org/apache/olingo/commons/core/serialization/JsonODataErrorDeserializer.java b/lib/commons-core/src/main/java/org/apache/olingo/commons/core/serialization/JsonODataErrorDeserializer.java
index 89252dc..9e225ad 100644
--- a/lib/commons-core/src/main/java/org/apache/olingo/commons/core/serialization/JsonODataErrorDeserializer.java
+++ b/lib/commons-core/src/main/java/org/apache/olingo/commons/core/serialization/JsonODataErrorDeserializer.java
@@ -25,8 +25,8 @@ import java.util.Iterator;
 import java.util.List;
 
 import org.apache.olingo.commons.api.Constants;
-import org.apache.olingo.commons.api.domain.ODataError;
-import org.apache.olingo.commons.api.domain.ODataErrorDetail;
+import org.apache.olingo.commons.api.domain.ClientError;
+import org.apache.olingo.commons.api.domain.ClientErrorDetail;
 
 import com.fasterxml.jackson.core.JsonParser;
 import com.fasterxml.jackson.databind.JsonNode;
@@ -38,9 +38,9 @@ public class JsonODataErrorDeserializer extends JsonDeserializer {
     super(serverMode);
   }
 
-  protected ODataError doDeserialize(final JsonParser parser) throws IOException {
+  protected ClientError doDeserialize(final JsonParser parser) throws IOException {
 
-    final ODataError error = new ODataError();
+    final ClientError error = new ClientError();
 
     final ObjectNode tree = parser.getCodec().readTree(parser);
     if (tree.has(Constants.JSON_ERROR)) {
@@ -61,7 +61,7 @@ public class JsonODataErrorDeserializer extends JsonDeserializer {
         error.setTarget(errorNode.get(Constants.ERROR_TARGET).textValue());
       }
       if (errorNode.hasNonNull(Constants.ERROR_DETAILS)) {
-        List<ODataErrorDetail> details = new ArrayList<ODataErrorDetail>();
+        List<ClientErrorDetail> details = new ArrayList<ClientErrorDetail>();
         JsonODataErrorDetailDeserializer detailDeserializer = new JsonODataErrorDetailDeserializer(serverMode);
         for (JsonNode jsonNode : errorNode.get(Constants.ERROR_DETAILS)) {
           details.add(detailDeserializer.doDeserialize(jsonNode.traverse(parser.getCodec()))

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/c37d4da5/lib/commons-core/src/main/java/org/apache/olingo/commons/core/serialization/JsonODataErrorDetailDeserializer.java
----------------------------------------------------------------------
diff --git a/lib/commons-core/src/main/java/org/apache/olingo/commons/core/serialization/JsonODataErrorDetailDeserializer.java b/lib/commons-core/src/main/java/org/apache/olingo/commons/core/serialization/JsonODataErrorDetailDeserializer.java
index 138bad3..0b5cddb 100644
--- a/lib/commons-core/src/main/java/org/apache/olingo/commons/core/serialization/JsonODataErrorDetailDeserializer.java
+++ b/lib/commons-core/src/main/java/org/apache/olingo/commons/core/serialization/JsonODataErrorDetailDeserializer.java
@@ -23,7 +23,7 @@ import java.net.URI;
 
 import org.apache.olingo.commons.api.Constants;
 import org.apache.olingo.commons.api.data.ResWrap;
-import org.apache.olingo.commons.api.domain.ODataErrorDetail;
+import org.apache.olingo.commons.api.domain.ClientErrorDetail;
 
 import com.fasterxml.jackson.core.JsonParser;
 import com.fasterxml.jackson.databind.JsonNode;
@@ -34,9 +34,9 @@ public class JsonODataErrorDetailDeserializer extends JsonDeserializer {
     super(serverMode);
   }
 
-  protected ResWrap<ODataErrorDetail> doDeserialize(final JsonParser parser) throws IOException {
+  protected ResWrap<ClientErrorDetail> doDeserialize(final JsonParser parser) throws IOException {
 
-    final ODataErrorDetail error = new ODataErrorDetail();
+    final ClientErrorDetail error = new ClientErrorDetail();
     final JsonNode errorNode = parser.getCodec().readTree(parser);
     if (errorNode.has(Constants.ERROR_CODE)) {
       error.setCode(errorNode.get(Constants.ERROR_CODE).textValue());
@@ -53,6 +53,6 @@ public class JsonODataErrorDetailDeserializer extends JsonDeserializer {
       error.setTarget(errorNode.get(Constants.ERROR_TARGET).textValue());
     }
 
-    return new ResWrap<ODataErrorDetail>((URI) null, null, error);
+    return new ResWrap<ClientErrorDetail>((URI) null, null, error);
   }
 }

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/c37d4da5/lib/commons-core/src/main/java/org/apache/olingo/commons/core/serialization/JsonSerializer.java
----------------------------------------------------------------------
diff --git a/lib/commons-core/src/main/java/org/apache/olingo/commons/core/serialization/JsonSerializer.java b/lib/commons-core/src/main/java/org/apache/olingo/commons/core/serialization/JsonSerializer.java
index 84ed5f7..2eae519 100755
--- a/lib/commons-core/src/main/java/org/apache/olingo/commons/core/serialization/JsonSerializer.java
+++ b/lib/commons-core/src/main/java/org/apache/olingo/commons/core/serialization/JsonSerializer.java
@@ -40,7 +40,7 @@ import org.apache.olingo.commons.api.data.Property;
 import org.apache.olingo.commons.api.data.ResWrap;
 import org.apache.olingo.commons.api.data.Valuable;
 import org.apache.olingo.commons.api.data.ValueType;
-import org.apache.olingo.commons.api.domain.ODataLinkType;
+import org.apache.olingo.commons.api.domain.ClientLinkType;
 import org.apache.olingo.commons.api.edm.EdmPrimitiveTypeException;
 import org.apache.olingo.commons.api.edm.EdmPrimitiveTypeKind;
 import org.apache.olingo.commons.api.edm.geo.Geospatial;
@@ -157,14 +157,14 @@ public class JsonSerializer implements ODataSerializer {
         valuable(jgen, annotation, link.getTitle() + "@" + annotation.getTerm());
       }
 
-      ODataLinkType type = null;
+      ClientLinkType type = null;
       try {
-        type = ODataLinkType.fromString(link.getRel(), link.getType());
+        type = ClientLinkType.fromString(link.getRel(), link.getType());
       } catch (IllegalArgumentException e) {
         // ignore
       }
 
-      if (type == ODataLinkType.ENTITY_SET_NAVIGATION) {
+      if (type == ClientLinkType.ENTITY_SET_NAVIGATION) {
         final List<String> uris;
         if (entitySetLinks.containsKey(link.getTitle())) {
           uris = entitySetLinks.get(link.getTitle());

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/c37d4da5/lib/server-api/src/main/java/org/apache/olingo/server/api/ClientServerError.java
----------------------------------------------------------------------
diff --git a/lib/server-api/src/main/java/org/apache/olingo/server/api/ClientServerError.java b/lib/server-api/src/main/java/org/apache/olingo/server/api/ClientServerError.java
new file mode 100644
index 0000000..f64f0d0
--- /dev/null
+++ b/lib/server-api/src/main/java/org/apache/olingo/server/api/ClientServerError.java
@@ -0,0 +1,138 @@
+/*
+ * 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.server.api;
+
+import java.util.List;
+import java.util.Locale;
+import java.util.Map;
+
+import org.apache.olingo.commons.api.domain.ClientError;
+import org.apache.olingo.commons.api.domain.ClientErrorDetail;
+
+/**
+ * Server error.
+ */
+public class ClientServerError extends ClientError {
+
+  private Exception exception;
+  private int statusCode;
+  private Locale locale;
+
+  /**
+   * Gets the locale.
+   * @return the locale for the exception message
+   */
+  public Locale getLocale() {
+    return locale;
+  }
+
+  /**
+   * Sets the locale.
+   * @return this for method chaining
+   */
+  public ClientServerError setLocale(Locale locale) {
+    this.locale = locale;
+    return this;
+  }
+
+  /**
+   * Gets the exception.
+   * @return the exception with its hierarchy
+   */
+  public Exception getException() {
+    return exception;
+  }
+
+  /**
+   * Sets the exception.
+   * @return this for method chaining
+   */
+  public ClientServerError setException(Exception exception) {
+    this.exception = exception;
+    return this;
+  }
+
+  /**
+   * Gets the status code.
+   * @return the status code which this error results in.
+   */
+  public int getStatusCode() {
+    return statusCode;
+  }
+
+  /**
+   * Sets the status code.
+   * @param statusCode the status code which this error results in
+   * @return this for method chaining
+   */
+  public ClientServerError setStatusCode(int statusCode) {
+    this.statusCode = statusCode;
+    return this;
+  }
+
+  /**
+   * The value for the code name/value pair is a language-independent string.
+   * Its value is a service-defined error code. This code serves as a sub-status
+   * for the HTTP error code specified in the response. MAY be null.
+   * @return this for method chaining
+   */
+  public ClientServerError setCode(String code) {
+    super.setCode(code);
+    return this;
+  }
+
+  /**
+   * The value for the message name/value pair MUST be a human-readable,
+   * language-dependent representation of the error. MUST not be null.
+   * @return this for method chaining
+   */
+  public ClientServerError setMessage(String message) {
+    super.setMessage(message);
+    return this;
+  }
+
+  /**
+   * The value for the target name/value pair is the target of the particular error (for example, the name of the
+   * property in error). MAY be null.
+   * @return this for method chaining
+   */
+  public ClientServerError setTarget(String target) {
+    super.setTarget(target);
+    return this;
+  }
+
+  /**
+   * Sets error details.
+   * @return this for method chaining.
+   */
+  public ClientServerError setDetails(List<ClientErrorDetail> details) {
+    super.setDetails(details);
+    return this;
+  }
+
+  /**
+   * Sets server defined key-value pairs for debug environment only.
+   * @return this for method chaining.
+   */
+  public ClientServerError setInnerError(Map<String, String> innerError) {
+    super.setInnerError(innerError);
+    return this;
+  }
+
+}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/c37d4da5/lib/server-api/src/main/java/org/apache/olingo/server/api/ODataServerError.java
----------------------------------------------------------------------
diff --git a/lib/server-api/src/main/java/org/apache/olingo/server/api/ODataServerError.java b/lib/server-api/src/main/java/org/apache/olingo/server/api/ODataServerError.java
deleted file mode 100644
index 8b184b2..0000000
--- a/lib/server-api/src/main/java/org/apache/olingo/server/api/ODataServerError.java
+++ /dev/null
@@ -1,138 +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.server.api;
-
-import java.util.List;
-import java.util.Locale;
-import java.util.Map;
-
-import org.apache.olingo.commons.api.domain.ODataError;
-import org.apache.olingo.commons.api.domain.ODataErrorDetail;
-
-/**
- * Server error.
- */
-public class ODataServerError extends ODataError {
-
-  private Exception exception;
-  private int statusCode;
-  private Locale locale;
-
-  /**
-   * Gets the locale.
-   * @return the locale for the exception message
-   */
-  public Locale getLocale() {
-    return locale;
-  }
-
-  /**
-   * Sets the locale.
-   * @return this for method chaining
-   */
-  public ODataServerError setLocale(Locale locale) {
-    this.locale = locale;
-    return this;
-  }
-
-  /**
-   * Gets the exception.
-   * @return the exception with its hierarchy
-   */
-  public Exception getException() {
-    return exception;
-  }
-
-  /**
-   * Sets the exception.
-   * @return this for method chaining
-   */
-  public ODataServerError setException(Exception exception) {
-    this.exception = exception;
-    return this;
-  }
-
-  /**
-   * Gets the status code.
-   * @return the status code which this error results in.
-   */
-  public int getStatusCode() {
-    return statusCode;
-  }
-
-  /**
-   * Sets the status code.
-   * @param statusCode the status code which this error results in
-   * @return this for method chaining
-   */
-  public ODataServerError setStatusCode(int statusCode) {
-    this.statusCode = statusCode;
-    return this;
-  }
-
-  /**
-   * The value for the code name/value pair is a language-independent string.
-   * Its value is a service-defined error code. This code serves as a sub-status
-   * for the HTTP error code specified in the response. MAY be null.
-   * @return this for method chaining
-   */
-  public ODataServerError setCode(String code) {
-    super.setCode(code);
-    return this;
-  }
-
-  /**
-   * The value for the message name/value pair MUST be a human-readable,
-   * language-dependent representation of the error. MUST not be null.
-   * @return this for method chaining
-   */
-  public ODataServerError setMessage(String message) {
-    super.setMessage(message);
-    return this;
-  }
-
-  /**
-   * The value for the target name/value pair is the target of the particular error (for example, the name of the
-   * property in error). MAY be null.
-   * @return this for method chaining
-   */
-  public ODataServerError setTarget(String target) {
-    super.setTarget(target);
-    return this;
-  }
-
-  /**
-   * Sets error details.
-   * @return this for method chaining.
-   */
-  public ODataServerError setDetails(List<ODataErrorDetail> details) {
-    super.setDetails(details);
-    return this;
-  }
-
-  /**
-   * Sets server defined key-value pairs for debug environment only.
-   * @return this for method chaining.
-   */
-  public ODataServerError setInnerError(Map<String, String> innerError) {
-    super.setInnerError(innerError);
-    return this;
-  }
-
-}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/c37d4da5/lib/server-api/src/main/java/org/apache/olingo/server/api/processor/DefaultProcessor.java
----------------------------------------------------------------------
diff --git a/lib/server-api/src/main/java/org/apache/olingo/server/api/processor/DefaultProcessor.java b/lib/server-api/src/main/java/org/apache/olingo/server/api/processor/DefaultProcessor.java
index f2da16e..fc5e37a 100644
--- a/lib/server-api/src/main/java/org/apache/olingo/server/api/processor/DefaultProcessor.java
+++ b/lib/server-api/src/main/java/org/apache/olingo/server/api/processor/DefaultProcessor.java
@@ -28,7 +28,7 @@ import org.apache.olingo.server.api.OData;
 import org.apache.olingo.server.api.ODataApplicationException;
 import org.apache.olingo.server.api.ODataRequest;
 import org.apache.olingo.server.api.ODataResponse;
-import org.apache.olingo.server.api.ODataServerError;
+import org.apache.olingo.server.api.ClientServerError;
 import org.apache.olingo.server.api.ServiceMetadata;
 import org.apache.olingo.server.api.serializer.ODataSerializer;
 import org.apache.olingo.server.api.serializer.SerializerException;
@@ -71,7 +71,7 @@ public class DefaultProcessor implements MetadataProcessor, ServiceDocumentProce
   }
 
   @Override
-  public void processError(ODataRequest request, ODataResponse response, ODataServerError serverError,
+  public void processError(ODataRequest request, ODataResponse response, ClientServerError serverError,
                            ContentType requestedContentType) {
     try {
       ODataSerializer serializer = odata.createSerializer(ODataFormat.fromContentType(requestedContentType));

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/c37d4da5/lib/server-api/src/main/java/org/apache/olingo/server/api/processor/ErrorProcessor.java
----------------------------------------------------------------------
diff --git a/lib/server-api/src/main/java/org/apache/olingo/server/api/processor/ErrorProcessor.java b/lib/server-api/src/main/java/org/apache/olingo/server/api/processor/ErrorProcessor.java
index 145fb5b..af2c116 100644
--- a/lib/server-api/src/main/java/org/apache/olingo/server/api/processor/ErrorProcessor.java
+++ b/lib/server-api/src/main/java/org/apache/olingo/server/api/processor/ErrorProcessor.java
@@ -21,7 +21,7 @@ package org.apache.olingo.server.api.processor;
 import org.apache.olingo.commons.api.format.ContentType;
 import org.apache.olingo.server.api.ODataRequest;
 import org.apache.olingo.server.api.ODataResponse;
-import org.apache.olingo.server.api.ODataServerError;
+import org.apache.olingo.server.api.ClientServerError;
 
 /**
  * Processor which is called if any error/exception occurs inside the library or another processor.
@@ -36,6 +36,6 @@ public interface ErrorProcessor extends Processor {
    * @param serverError the server error
    * @param responseFormat   requested content type after content negotiation
    */
-  public void processError(ODataRequest request, ODataResponse response, ODataServerError serverError,
+  public void processError(ODataRequest request, ODataResponse response, ClientServerError serverError,
                            ContentType responseFormat);
 }

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/c37d4da5/lib/server-api/src/main/java/org/apache/olingo/server/api/serializer/ODataSerializer.java
----------------------------------------------------------------------
diff --git a/lib/server-api/src/main/java/org/apache/olingo/server/api/serializer/ODataSerializer.java b/lib/server-api/src/main/java/org/apache/olingo/server/api/serializer/ODataSerializer.java
index c7f7bba..e822415 100644
--- a/lib/server-api/src/main/java/org/apache/olingo/server/api/serializer/ODataSerializer.java
+++ b/lib/server-api/src/main/java/org/apache/olingo/server/api/serializer/ODataSerializer.java
@@ -25,7 +25,7 @@ import org.apache.olingo.commons.api.edm.Edm;
 import org.apache.olingo.commons.api.edm.EdmComplexType;
 import org.apache.olingo.commons.api.edm.EdmEntityType;
 import org.apache.olingo.commons.api.edm.EdmPrimitiveType;
-import org.apache.olingo.server.api.ODataServerError;
+import org.apache.olingo.server.api.ClientServerError;
 import org.apache.olingo.server.api.ServiceMetadata;
 
 /** OData serializer */
@@ -52,7 +52,7 @@ public interface ODataSerializer {
    * @param error the main error
    * @return inputStream containing the OData-formatted error
    */
-  SerializerResult error(ODataServerError error) throws SerializerException;
+  SerializerResult error(ClientServerError error) throws SerializerException;
 
   /**
    * Writes entity-collection data into an InputStream.

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/c37d4da5/lib/server-core-ext/src/main/java/org/apache/olingo/server/core/ErrorHandler.java
----------------------------------------------------------------------
diff --git a/lib/server-core-ext/src/main/java/org/apache/olingo/server/core/ErrorHandler.java b/lib/server-core-ext/src/main/java/org/apache/olingo/server/core/ErrorHandler.java
index b83d383..d7fb341 100644
--- a/lib/server-core-ext/src/main/java/org/apache/olingo/server/core/ErrorHandler.java
+++ b/lib/server-core-ext/src/main/java/org/apache/olingo/server/core/ErrorHandler.java
@@ -27,7 +27,7 @@ import org.apache.olingo.commons.api.http.HttpStatusCode;
 import org.apache.olingo.server.api.OData;
 import org.apache.olingo.server.api.ODataRequest;
 import org.apache.olingo.server.api.ODataResponse;
-import org.apache.olingo.server.api.ODataServerError;
+import org.apache.olingo.server.api.ClientServerError;
 import org.apache.olingo.server.api.ServiceMetadata;
 import org.apache.olingo.server.api.batch.exception.BatchDeserializerException;
 import org.apache.olingo.server.api.deserializer.DeserializerException;
@@ -55,40 +55,40 @@ public class ErrorHandler {
 
   public void handleException(Exception e, ODataRequest request, ODataResponse response) {
     if (e instanceof UriValidationException) {
-      ODataServerError serverError = ODataExceptionHelper.createServerErrorObject((UriValidationException)e, null);
+      ClientServerError serverError = ODataExceptionHelper.createServerErrorObject((UriValidationException)e, null);
       handleServerError(request, response, serverError);
     } else if(e instanceof UriParserSemanticException) {
-      ODataServerError serverError = ODataExceptionHelper.createServerErrorObject((UriParserSemanticException)e, null);
+      ClientServerError serverError = ODataExceptionHelper.createServerErrorObject((UriParserSemanticException)e, null);
       handleServerError(request, response, serverError);
     } else if(e instanceof  UriParserSyntaxException) {
-      ODataServerError serverError = ODataExceptionHelper.createServerErrorObject((UriParserSyntaxException)e, null);
+      ClientServerError serverError = ODataExceptionHelper.createServerErrorObject((UriParserSyntaxException)e, null);
       handleServerError(request, response, serverError);
     } else if(e instanceof  UriParserException) {
-      ODataServerError serverError = ODataExceptionHelper.createServerErrorObject((UriParserException)e, null);
+      ClientServerError serverError = ODataExceptionHelper.createServerErrorObject((UriParserException)e, null);
       handleServerError(request, response, serverError);
     } else if(e instanceof ContentNegotiatorException) {
-      ODataServerError serverError = ODataExceptionHelper.createServerErrorObject((ContentNegotiatorException)e, null);
+      ClientServerError serverError = ODataExceptionHelper.createServerErrorObject((ContentNegotiatorException)e, null);
       handleServerError(request, response, serverError);
     } else if(e instanceof SerializerException) {
-      ODataServerError serverError = ODataExceptionHelper.createServerErrorObject((SerializerException)e, null);
+      ClientServerError serverError = ODataExceptionHelper.createServerErrorObject((SerializerException)e, null);
       handleServerError(request, response, serverError);
     } else if(e instanceof BatchDeserializerException) {
-      ODataServerError serverError = ODataExceptionHelper.createServerErrorObject((BatchDeserializerException)e, null);
+      ClientServerError serverError = ODataExceptionHelper.createServerErrorObject((BatchDeserializerException)e, null);
       handleServerError(request, response, serverError);
     } else if(e instanceof DeserializerException) {
-      ODataServerError serverError = ODataExceptionHelper.createServerErrorObject((DeserializerException)e, null);
+      ClientServerError serverError = ODataExceptionHelper.createServerErrorObject((DeserializerException)e, null);
       handleServerError(request, response, serverError);
     } else if(e instanceof ODataHandlerException) {
-      ODataServerError serverError = ODataExceptionHelper.createServerErrorObject((ODataHandlerException)e, null);
+      ClientServerError serverError = ODataExceptionHelper.createServerErrorObject((ODataHandlerException)e, null);
       handleServerError(request, response, serverError);
     } else {
-      ODataServerError serverError = ODataExceptionHelper.createServerErrorObject(e);
+      ClientServerError serverError = ODataExceptionHelper.createServerErrorObject(e);
       handleServerError(request, response, serverError);
     }
   }
 
   void handleServerError(final ODataRequest request, final ODataResponse response,
-      final ODataServerError serverError) {
+      final ClientServerError serverError) {
     ContentType requestedContentType;
     try {
       UriInfo uriInfo = new Parser().parseUri(request.getRawODataPath(), request.getRawQueryPath(),
@@ -103,7 +103,7 @@ public class ErrorHandler {
     processError(response, serverError, requestedContentType);
   }
 
-  void processError(ODataResponse response, ODataServerError serverError,
+  void processError(ODataResponse response, ClientServerError serverError,
       ContentType requestedContentType) {
     try {
       ODataSerializer serializer = this.odata.createSerializer(ODataFormat

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/c37d4da5/lib/server-core-ext/src/main/java/org/apache/olingo/server/core/responses/EntityResponse.java
----------------------------------------------------------------------
diff --git a/lib/server-core-ext/src/main/java/org/apache/olingo/server/core/responses/EntityResponse.java b/lib/server-core-ext/src/main/java/org/apache/olingo/server/core/responses/EntityResponse.java
index eb79c07..6bbb706 100644
--- a/lib/server-core-ext/src/main/java/org/apache/olingo/server/core/responses/EntityResponse.java
+++ b/lib/server-core-ext/src/main/java/org/apache/olingo/server/core/responses/EntityResponse.java
@@ -29,7 +29,7 @@ import org.apache.olingo.commons.api.http.HttpHeader;
 import org.apache.olingo.commons.api.http.HttpStatusCode;
 import org.apache.olingo.server.api.ODataApplicationException;
 import org.apache.olingo.server.api.ODataResponse;
-import org.apache.olingo.server.api.ODataServerError;
+import org.apache.olingo.server.api.ClientServerError;
 import org.apache.olingo.server.api.ODataTranslatedException;
 import org.apache.olingo.server.api.ServiceMetadata;
 import org.apache.olingo.server.api.serializer.EntitySerializerOptions;
@@ -150,7 +150,7 @@ public class EntityResponse extends ServiceResponse {
     }
   }
   
-  public void writeError(ODataServerError error) {
+  public void writeError(ClientServerError error) {
     try {
       writeContent(this.serializer.error(error).getContent(), error.getStatusCode(), true);
     } catch (SerializerException e) {

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/c37d4da5/lib/server-core-ext/src/main/java/org/apache/olingo/server/core/responses/EntitySetResponse.java
----------------------------------------------------------------------
diff --git a/lib/server-core-ext/src/main/java/org/apache/olingo/server/core/responses/EntitySetResponse.java b/lib/server-core-ext/src/main/java/org/apache/olingo/server/core/responses/EntitySetResponse.java
index 27675c3..e068bc5 100644
--- a/lib/server-core-ext/src/main/java/org/apache/olingo/server/core/responses/EntitySetResponse.java
+++ b/lib/server-core-ext/src/main/java/org/apache/olingo/server/core/responses/EntitySetResponse.java
@@ -26,7 +26,7 @@ import org.apache.olingo.commons.api.edm.EdmEntityType;
 import org.apache.olingo.commons.api.format.ContentType;
 import org.apache.olingo.server.api.ODataApplicationException;
 import org.apache.olingo.server.api.ODataResponse;
-import org.apache.olingo.server.api.ODataServerError;
+import org.apache.olingo.server.api.ClientServerError;
 import org.apache.olingo.server.api.ODataTranslatedException;
 import org.apache.olingo.server.api.ServiceMetadata;
 import org.apache.olingo.server.api.serializer.EntityCollectionSerializerOptions;
@@ -82,7 +82,7 @@ public class EntitySetResponse extends ServiceResponse {
     visitor.visit(this);
   }
   
-  public void writeError(ODataServerError error) {
+  public void writeError(ClientServerError error) {
     try {
       writeContent(this.serializer.error(error).getContent(), error.getStatusCode(), true);
     } catch (SerializerException e) {

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/c37d4da5/lib/server-core-ext/src/main/java/org/apache/olingo/server/core/responses/MetadataResponse.java
----------------------------------------------------------------------
diff --git a/lib/server-core-ext/src/main/java/org/apache/olingo/server/core/responses/MetadataResponse.java b/lib/server-core-ext/src/main/java/org/apache/olingo/server/core/responses/MetadataResponse.java
index a644358..4f8719a 100644
--- a/lib/server-core-ext/src/main/java/org/apache/olingo/server/core/responses/MetadataResponse.java
+++ b/lib/server-core-ext/src/main/java/org/apache/olingo/server/core/responses/MetadataResponse.java
@@ -23,7 +23,7 @@ import java.util.Map;
 import org.apache.olingo.commons.api.format.ContentType;
 import org.apache.olingo.server.api.ODataApplicationException;
 import org.apache.olingo.server.api.ODataResponse;
-import org.apache.olingo.server.api.ODataServerError;
+import org.apache.olingo.server.api.ClientServerError;
 import org.apache.olingo.server.api.ODataTranslatedException;
 import org.apache.olingo.server.api.ServiceMetadata;
 import org.apache.olingo.server.api.serializer.ODataSerializer;
@@ -61,7 +61,7 @@ public class MetadataResponse extends ServiceResponse {
     visitor.visit(this);
   }
   
-  public void writeError(ODataServerError error) {
+  public void writeError(ClientServerError error) {
     try {
       writeContent(this.serializer.error(error).getContent(), error.getStatusCode(), true);
     } catch (SerializerException e) {

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/c37d4da5/lib/server-core-ext/src/main/java/org/apache/olingo/server/core/responses/PropertyResponse.java
----------------------------------------------------------------------
diff --git a/lib/server-core-ext/src/main/java/org/apache/olingo/server/core/responses/PropertyResponse.java b/lib/server-core-ext/src/main/java/org/apache/olingo/server/core/responses/PropertyResponse.java
index 86ce46f..3326491 100644
--- a/lib/server-core-ext/src/main/java/org/apache/olingo/server/core/responses/PropertyResponse.java
+++ b/lib/server-core-ext/src/main/java/org/apache/olingo/server/core/responses/PropertyResponse.java
@@ -30,7 +30,7 @@ import org.apache.olingo.commons.api.format.ContentType;
 import org.apache.olingo.commons.api.http.HttpStatusCode;
 import org.apache.olingo.server.api.ODataApplicationException;
 import org.apache.olingo.server.api.ODataResponse;
-import org.apache.olingo.server.api.ODataServerError;
+import org.apache.olingo.server.api.ClientServerError;
 import org.apache.olingo.server.api.ODataTranslatedException;
 import org.apache.olingo.server.api.ServiceMetadata;
 import org.apache.olingo.server.api.serializer.ComplexSerializerOptions;
@@ -144,7 +144,7 @@ public class PropertyResponse extends ServiceResponse {
     writeNoContent(true);
   }
   
-  public void writeError(ODataServerError error) {
+  public void writeError(ClientServerError error) {
     try {
       writeContent(this.serializer.error(error).getContent(), error.getStatusCode(), true);
     } catch (SerializerException e) {

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/c37d4da5/lib/server-core-ext/src/main/java/org/apache/olingo/server/core/responses/ResponseUtil.java
----------------------------------------------------------------------
diff --git a/lib/server-core-ext/src/main/java/org/apache/olingo/server/core/responses/ResponseUtil.java b/lib/server-core-ext/src/main/java/org/apache/olingo/server/core/responses/ResponseUtil.java
index 257f8c7..e20299a 100644
--- a/lib/server-core-ext/src/main/java/org/apache/olingo/server/core/responses/ResponseUtil.java
+++ b/lib/server-core-ext/src/main/java/org/apache/olingo/server/core/responses/ResponseUtil.java
@@ -28,7 +28,7 @@ import org.apache.olingo.commons.api.data.EntityCollection;
 import org.apache.olingo.commons.api.data.Link;
 import org.apache.olingo.commons.api.data.Property;
 import org.apache.olingo.commons.api.data.ValueType;
-import org.apache.olingo.commons.api.domain.ODataLinkType;
+import org.apache.olingo.commons.api.domain.ClientLinkType;
 
 public class ResponseUtil {
   public static Property createPrimitive(final String name, final String type, final Object value) {
@@ -62,7 +62,7 @@ public class ResponseUtil {
     Link link = entity.getNavigationLink(navigationPropertyName);
     if (link == null) {
       link = new Link();
-      link.setType(ODataLinkType.ENTITY_NAVIGATION.toString());
+      link.setType(ClientLinkType.ENTITY_NAVIGATION.toString());
       link.setTitle(navigationPropertyName);
       entity.getNavigationLinks().add(link);
     }
@@ -73,7 +73,7 @@ public class ResponseUtil {
     Link link = entity.getNavigationLink(navigationPropertyName);
     if (link == null) {
       link = new Link();
-      link.setType(ODataLinkType.ENTITY_SET_NAVIGATION.toString());
+      link.setType(ClientLinkType.ENTITY_SET_NAVIGATION.toString());
       link.setTitle(navigationPropertyName);
       EntityCollection target = new EntityCollection();
       target.getEntities().addAll(Arrays.asList(targets));

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/c37d4da5/lib/server-core-ext/src/main/java/org/apache/olingo/server/core/responses/ServiceDocumentResponse.java
----------------------------------------------------------------------
diff --git a/lib/server-core-ext/src/main/java/org/apache/olingo/server/core/responses/ServiceDocumentResponse.java b/lib/server-core-ext/src/main/java/org/apache/olingo/server/core/responses/ServiceDocumentResponse.java
index 0f3733c..e8b7419 100644
--- a/lib/server-core-ext/src/main/java/org/apache/olingo/server/core/responses/ServiceDocumentResponse.java
+++ b/lib/server-core-ext/src/main/java/org/apache/olingo/server/core/responses/ServiceDocumentResponse.java
@@ -23,7 +23,7 @@ import java.util.Map;
 import org.apache.olingo.commons.api.format.ContentType;
 import org.apache.olingo.server.api.ODataApplicationException;
 import org.apache.olingo.server.api.ODataResponse;
-import org.apache.olingo.server.api.ODataServerError;
+import org.apache.olingo.server.api.ClientServerError;
 import org.apache.olingo.server.api.ODataTranslatedException;
 import org.apache.olingo.server.api.ServiceMetadata;
 import org.apache.olingo.server.api.serializer.ODataSerializer;
@@ -62,7 +62,7 @@ public class ServiceDocumentResponse extends ServiceResponse {
     visitor.visit(this);
   }
   
-  public void writeError(ODataServerError error) {
+  public void writeError(ClientServerError error) {
     try {
       writeContent(this.serializer.error(error).getContent(), error.getStatusCode(), true);
     } catch (SerializerException e) {

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/c37d4da5/lib/server-core/src/main/java/org/apache/olingo/server/core/ODataExceptionHelper.java
----------------------------------------------------------------------
diff --git a/lib/server-core/src/main/java/org/apache/olingo/server/core/ODataExceptionHelper.java b/lib/server-core/src/main/java/org/apache/olingo/server/core/ODataExceptionHelper.java
index e162504..e20ad2a 100644
--- a/lib/server-core/src/main/java/org/apache/olingo/server/core/ODataExceptionHelper.java
+++ b/lib/server-core/src/main/java/org/apache/olingo/server/core/ODataExceptionHelper.java
@@ -22,7 +22,7 @@ import java.util.Locale;
 
 import org.apache.olingo.commons.api.http.HttpStatusCode;
 import org.apache.olingo.server.api.ODataApplicationException;
-import org.apache.olingo.server.api.ODataServerError;
+import org.apache.olingo.server.api.ClientServerError;
 import org.apache.olingo.server.api.ODataTranslatedException;
 import org.apache.olingo.server.api.ODataTranslatedException.ODataErrorMessage;
 import org.apache.olingo.server.api.deserializer.DeserializerException;
@@ -34,14 +34,14 @@ import org.apache.olingo.server.core.uri.validator.UriValidationException;
 
 public class ODataExceptionHelper {
 
-  public static ODataServerError createServerErrorObject(UriValidationException e, Locale requestedLocale) {
-    ODataServerError serverError = basicTranslatedError(e, requestedLocale);
+  public static ClientServerError createServerErrorObject(UriValidationException e, Locale requestedLocale) {
+    ClientServerError serverError = basicTranslatedError(e, requestedLocale);
     serverError.setStatusCode(HttpStatusCode.BAD_REQUEST.getStatusCode());
     return serverError;
   }
 
-  public static ODataServerError createServerErrorObject(UriParserSemanticException e, Locale requestedLocale) {
-    ODataServerError serverError = basicTranslatedError(e, requestedLocale);
+  public static ClientServerError createServerErrorObject(UriParserSemanticException e, Locale requestedLocale) {
+    ClientServerError serverError = basicTranslatedError(e, requestedLocale);
     if (UriParserSemanticException.MessageKeys.RESOURCE_NOT_FOUND.equals(e.getMessageKey())
         || UriParserSemanticException.MessageKeys.PROPERTY_NOT_IN_TYPE.equals(e.getMessageKey())) {
       serverError.setStatusCode(HttpStatusCode.NOT_FOUND.getStatusCode());
@@ -51,8 +51,8 @@ public class ODataExceptionHelper {
     return serverError;
   }
 
-  public static ODataServerError createServerErrorObject(UriParserSyntaxException e, Locale requestedLocale) {
-    ODataServerError serverError = basicTranslatedError(e, requestedLocale);
+  public static ClientServerError createServerErrorObject(UriParserSyntaxException e, Locale requestedLocale) {
+    ClientServerError serverError = basicTranslatedError(e, requestedLocale);
     serverError.setStatusCode(
         UriParserSyntaxException.MessageKeys.WRONG_VALUE_FOR_SYSTEM_QUERY_OPTION_FORMAT.equals(e.getMessageKey()) ?
             HttpStatusCode.NOT_ACCEPTABLE.getStatusCode() :
@@ -60,20 +60,20 @@ public class ODataExceptionHelper {
     return serverError;
   }
 
-  public static ODataServerError createServerErrorObject(UriParserException e, Locale requestedLocale) {
-    ODataServerError serverError = basicTranslatedError(e, requestedLocale);
+  public static ClientServerError createServerErrorObject(UriParserException e, Locale requestedLocale) {
+    ClientServerError serverError = basicTranslatedError(e, requestedLocale);
     serverError.setStatusCode(HttpStatusCode.BAD_REQUEST.getStatusCode());
     return serverError;
   }
 
-  public static ODataServerError createServerErrorObject(ContentNegotiatorException e, Locale requestedLocale) {
-    ODataServerError serverError = basicTranslatedError(e, requestedLocale);
+  public static ClientServerError createServerErrorObject(ContentNegotiatorException e, Locale requestedLocale) {
+    ClientServerError serverError = basicTranslatedError(e, requestedLocale);
     serverError.setStatusCode(HttpStatusCode.NOT_ACCEPTABLE.getStatusCode());
     return serverError;
   }
 
-  public static ODataServerError createServerErrorObject(ODataHandlerException e, Locale requestedLocale) {
-    ODataServerError serverError = basicTranslatedError(e, requestedLocale);
+  public static ClientServerError createServerErrorObject(ODataHandlerException e, Locale requestedLocale) {
+    ClientServerError serverError = basicTranslatedError(e, requestedLocale);
     if (ODataHandlerException.MessageKeys.FUNCTIONALITY_NOT_IMPLEMENTED.equals(e.getMessageKey())
         || ODataHandlerException.MessageKeys.PROCESSOR_NOT_IMPLEMENTED.equals(e.getMessageKey())) {
       serverError.setStatusCode(HttpStatusCode.NOT_IMPLEMENTED.getStatusCode());
@@ -88,42 +88,42 @@ public class ODataExceptionHelper {
     return serverError;
   }
 
-  public static ODataServerError createServerErrorObject(SerializerException e, Locale requestedLocale) {
-    ODataServerError serverError = basicTranslatedError(e, requestedLocale);
+  public static ClientServerError createServerErrorObject(SerializerException e, Locale requestedLocale) {
+    ClientServerError serverError = basicTranslatedError(e, requestedLocale);
     serverError.setStatusCode(HttpStatusCode.BAD_REQUEST.getStatusCode());
     return serverError;
   }
 
-  public static ODataServerError createServerErrorObject(final DeserializerException e, final Locale requestedLocale) {
+  public static ClientServerError createServerErrorObject(final DeserializerException e, final Locale requestedLocale) {
     return basicTranslatedError(e, requestedLocale)
         .setStatusCode(HttpStatusCode.BAD_REQUEST.getStatusCode());
   }
 
-  public static ODataServerError createServerErrorObject(ODataTranslatedException e, Locale requestedLocale) {
+  public static ClientServerError createServerErrorObject(ODataTranslatedException e, Locale requestedLocale) {
     return basicTranslatedError(e, requestedLocale);
   }
 
-  public static ODataServerError createServerErrorObject(ODataApplicationException e) {
-    ODataServerError serverError = basicServerError(e);
+  public static ClientServerError createServerErrorObject(ODataApplicationException e) {
+    ClientServerError serverError = basicServerError(e);
     serverError.setStatusCode(e.getStatusCode());
     serverError.setLocale(e.getLocale());
     serverError.setCode(e.getODataErrorCode());
     return serverError;
   }
 
-  public static ODataServerError createServerErrorObject(Exception e) {
-    ODataServerError serverError = basicServerError(e);
+  public static ClientServerError createServerErrorObject(Exception e) {
+    ClientServerError serverError = basicServerError(e);
     serverError.setStatusCode(HttpStatusCode.INTERNAL_SERVER_ERROR.getStatusCode());
     serverError.setLocale(Locale.ENGLISH);
     return serverError;
   }
 
-  private static ODataServerError basicServerError(Exception e) {
-    return new ODataServerError().setException(e).setMessage(e.getMessage());
+  private static ClientServerError basicServerError(Exception e) {
+    return new ClientServerError().setException(e).setMessage(e.getMessage());
   }
 
-  private static ODataServerError basicTranslatedError(ODataTranslatedException e, Locale requestedLocale) {
-    ODataServerError serverError = basicServerError(e);
+  private static ClientServerError basicTranslatedError(ODataTranslatedException e, Locale requestedLocale) {
+    ClientServerError serverError = basicServerError(e);
     ODataErrorMessage translatedMessage = e.getTranslatedMessage(requestedLocale);
     serverError.setMessage(translatedMessage.getMessage());
     serverError.setLocale(translatedMessage.getLocale());

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/c37d4da5/lib/server-core/src/main/java/org/apache/olingo/server/core/ODataHandler.java
----------------------------------------------------------------------
diff --git a/lib/server-core/src/main/java/org/apache/olingo/server/core/ODataHandler.java b/lib/server-core/src/main/java/org/apache/olingo/server/core/ODataHandler.java
index ad0bba0..282504a 100644
--- a/lib/server-core/src/main/java/org/apache/olingo/server/core/ODataHandler.java
+++ b/lib/server-core/src/main/java/org/apache/olingo/server/core/ODataHandler.java
@@ -38,7 +38,7 @@ import org.apache.olingo.server.api.OData;
 import org.apache.olingo.server.api.ODataApplicationException;
 import org.apache.olingo.server.api.ODataRequest;
 import org.apache.olingo.server.api.ODataResponse;
-import org.apache.olingo.server.api.ODataServerError;
+import org.apache.olingo.server.api.ClientServerError;
 import org.apache.olingo.server.api.ServiceMetadata;
 import org.apache.olingo.server.api.deserializer.DeserializerException;
 import org.apache.olingo.server.api.processor.ActionComplexCollectionProcessor;
@@ -111,34 +111,34 @@ public class ODataHandler {
       processInternal(request, response);
 
     } catch (final UriValidationException e) {
-      ODataServerError serverError = ODataExceptionHelper.createServerErrorObject(e, null);
+      ClientServerError serverError = ODataExceptionHelper.createServerErrorObject(e, null);
       handleException(request, response, serverError);
     } catch (final UriParserSemanticException e) {
-      ODataServerError serverError = ODataExceptionHelper.createServerErrorObject(e, null);
+      ClientServerError serverError = ODataExceptionHelper.createServerErrorObject(e, null);
       handleException(request, response, serverError);
     } catch (final UriParserSyntaxException e) {
-      ODataServerError serverError = ODataExceptionHelper.createServerErrorObject(e, null);
+      ClientServerError serverError = ODataExceptionHelper.createServerErrorObject(e, null);
       handleException(request, response, serverError);
     } catch (final UriParserException e) {
-      ODataServerError serverError = ODataExceptionHelper.createServerErrorObject(e, null);
+      ClientServerError serverError = ODataExceptionHelper.createServerErrorObject(e, null);
       handleException(request, response, serverError);
     } catch (ContentNegotiatorException e) {
-      ODataServerError serverError = ODataExceptionHelper.createServerErrorObject(e, null);
+      ClientServerError serverError = ODataExceptionHelper.createServerErrorObject(e, null);
       handleException(request, response, serverError);
     } catch (SerializerException e) {
-      ODataServerError serverError = ODataExceptionHelper.createServerErrorObject(e, null);
+      ClientServerError serverError = ODataExceptionHelper.createServerErrorObject(e, null);
       handleException(request, response, serverError);
     } catch (DeserializerException e) {
-      ODataServerError serverError = ODataExceptionHelper.createServerErrorObject(e, null);
+      ClientServerError serverError = ODataExceptionHelper.createServerErrorObject(e, null);
       handleException(request, response, serverError);
     } catch (ODataHandlerException e) {
-      ODataServerError serverError = ODataExceptionHelper.createServerErrorObject(e, null);
+      ClientServerError serverError = ODataExceptionHelper.createServerErrorObject(e, null);
       handleException(request, response, serverError);
     } catch (ODataApplicationException e) {
-      ODataServerError serverError = ODataExceptionHelper.createServerErrorObject(e);
+      ClientServerError serverError = ODataExceptionHelper.createServerErrorObject(e);
       handleException(request, response, serverError);
     } catch (Exception e) {
-      ODataServerError serverError = ODataExceptionHelper.createServerErrorObject(e);
+      ClientServerError serverError = ODataExceptionHelper.createServerErrorObject(e);
       handleException(request, response, serverError);
     }
     return response;
@@ -194,7 +194,7 @@ public class ODataHandler {
   }
 
   public void handleException(final ODataRequest request, final ODataResponse response,
-      final ODataServerError serverError) {
+      final ClientServerError serverError) {
 
     ErrorProcessor exceptionProcessor;
     try {

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/c37d4da5/lib/server-core/src/main/java/org/apache/olingo/server/core/ODataHttpHandlerImpl.java
----------------------------------------------------------------------
diff --git a/lib/server-core/src/main/java/org/apache/olingo/server/core/ODataHttpHandlerImpl.java b/lib/server-core/src/main/java/org/apache/olingo/server/core/ODataHttpHandlerImpl.java
index 41750c7..f7e7ecf 100644
--- a/lib/server-core/src/main/java/org/apache/olingo/server/core/ODataHttpHandlerImpl.java
+++ b/lib/server-core/src/main/java/org/apache/olingo/server/core/ODataHttpHandlerImpl.java
@@ -37,7 +37,7 @@ import org.apache.olingo.server.api.OData;
 import org.apache.olingo.server.api.ODataHttpHandler;
 import org.apache.olingo.server.api.ODataRequest;
 import org.apache.olingo.server.api.ODataResponse;
-import org.apache.olingo.server.api.ODataServerError;
+import org.apache.olingo.server.api.ClientServerError;
 import org.apache.olingo.server.api.ODataTranslatedException;
 import org.apache.olingo.server.api.ServiceMetadata;
 import org.apache.olingo.server.api.processor.Processor;
@@ -80,7 +80,7 @@ public class ODataHttpHandlerImpl implements ODataHttpHandler {
 
   private ODataResponse handleException(ODataRequest odRequest, Exception e) {
     ODataResponse resp = new ODataResponse();
-    ODataServerError serverError;
+    ClientServerError serverError;
     if (e instanceof ODataHandlerException) {
       serverError = ODataExceptionHelper.createServerErrorObject((ODataHandlerException) e, null);
     } else if (e instanceof ODataTranslatedException) {

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/c37d4da5/lib/server-core/src/main/java/org/apache/olingo/server/core/deserializer/json/ODataJsonDeserializer.java
----------------------------------------------------------------------
diff --git a/lib/server-core/src/main/java/org/apache/olingo/server/core/deserializer/json/ODataJsonDeserializer.java b/lib/server-core/src/main/java/org/apache/olingo/server/core/deserializer/json/ODataJsonDeserializer.java
index a6c3e8d..e6ab0c9 100644
--- a/lib/server-core/src/main/java/org/apache/olingo/server/core/deserializer/json/ODataJsonDeserializer.java
+++ b/lib/server-core/src/main/java/org/apache/olingo/server/core/deserializer/json/ODataJsonDeserializer.java
@@ -37,7 +37,7 @@ import org.apache.olingo.commons.api.data.Link;
 import org.apache.olingo.commons.api.data.Parameter;
 import org.apache.olingo.commons.api.data.Property;
 import org.apache.olingo.commons.api.data.ValueType;
-import org.apache.olingo.commons.api.domain.ODataLinkType;
+import org.apache.olingo.commons.api.domain.ClientLinkType;
 import org.apache.olingo.commons.api.edm.EdmAction;
 import org.apache.olingo.commons.api.edm.EdmComplexType;
 import org.apache.olingo.commons.api.edm.EdmEntityType;
@@ -358,14 +358,14 @@ public class ODataJsonDeserializer implements ODataDeserializer {
         final ExpandTreeBuilder childExpandBuilder = (expandBuilder != null) ?
             expandBuilder.expand(edmNavigationProperty) : null;
         if (jsonNode.isArray() && edmNavigationProperty.isCollection()) {
-          link.setType(ODataLinkType.ENTITY_SET_NAVIGATION.toString());
+          link.setType(ClientLinkType.ENTITY_SET_NAVIGATION.toString());
           EntityCollection inlineEntitySet = new EntityCollection();
           inlineEntitySet.getEntities().addAll(consumeEntitySetArray(edmNavigationProperty.getType(), jsonNode,
               childExpandBuilder));
           link.setInlineEntitySet(inlineEntitySet);
         } else if (!jsonNode.isArray() && (!jsonNode.isValueNode() || jsonNode.isNull())
             && !edmNavigationProperty.isCollection()) {
-          link.setType(ODataLinkType.ENTITY_NAVIGATION.toString());
+          link.setType(ClientLinkType.ENTITY_NAVIGATION.toString());
           if (!jsonNode.isNull()) {
             Entity inlineEntity = consumeEntityNode(edmNavigationProperty.getType(), (ObjectNode) jsonNode,
                 childExpandBuilder);
@@ -409,7 +409,7 @@ public class ODataJsonDeserializer implements ODataDeserializer {
         }
         bindingLinkStrings.add(arrayValue.asText());
       }
-      bindingLink.setType(ODataLinkType.ENTITY_COLLECTION_BINDING.toString());
+      bindingLink.setType(ClientLinkType.ENTITY_COLLECTION_BINDING.toString());
       bindingLink.setBindingLinks(bindingLinkStrings);
     } else {
       assertIsNullNode(key, jsonNode);
@@ -418,7 +418,7 @@ public class ODataJsonDeserializer implements ODataDeserializer {
             DeserializerException.MessageKeys.INVALID_ANNOTATION_TYPE, key);
       }
       bindingLink.setBindingLink(jsonNode.asText());
-      bindingLink.setType(ODataLinkType.ENTITY_BINDING.toString());
+      bindingLink.setType(ClientLinkType.ENTITY_BINDING.toString());
     }
     return bindingLink;
   }

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/c37d4da5/lib/server-core/src/main/java/org/apache/olingo/server/core/serializer/json/ODataErrorSerializer.java
----------------------------------------------------------------------
diff --git a/lib/server-core/src/main/java/org/apache/olingo/server/core/serializer/json/ODataErrorSerializer.java b/lib/server-core/src/main/java/org/apache/olingo/server/core/serializer/json/ODataErrorSerializer.java
index 14381bb..354c811 100644
--- a/lib/server-core/src/main/java/org/apache/olingo/server/core/serializer/json/ODataErrorSerializer.java
+++ b/lib/server-core/src/main/java/org/apache/olingo/server/core/serializer/json/ODataErrorSerializer.java
@@ -21,15 +21,15 @@ package org.apache.olingo.server.core.serializer.json;
 import java.io.IOException;
 
 import org.apache.olingo.commons.api.Constants;
-import org.apache.olingo.commons.api.domain.ODataError;
-import org.apache.olingo.commons.api.domain.ODataErrorDetail;
+import org.apache.olingo.commons.api.domain.ClientError;
+import org.apache.olingo.commons.api.domain.ClientErrorDetail;
 import org.apache.olingo.server.api.serializer.SerializerException;
 
 import com.fasterxml.jackson.core.JsonGenerator;
 
 public class ODataErrorSerializer {
 
-  public void writeErrorDocument(JsonGenerator json, final ODataError error)
+  public void writeErrorDocument(JsonGenerator json, final ClientError error)
       throws IOException, SerializerException {
     if (error == null) {
       throw new SerializerException("ODataError object MUST NOT be null!",
@@ -43,7 +43,7 @@ public class ODataErrorSerializer {
 
     if (error.getDetails() != null) {
       json.writeArrayFieldStart(Constants.ERROR_DETAILS);
-      for (ODataErrorDetail detail : error.getDetails()) {
+      for (ClientErrorDetail detail : error.getDetails()) {
         json.writeStartObject();
         writeODataError(json, detail.getCode(), detail.getMessage(), detail.getTarget());
         json.writeEndObject();

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/c37d4da5/lib/server-core/src/main/java/org/apache/olingo/server/core/serializer/json/ODataJsonSerializer.java
----------------------------------------------------------------------
diff --git a/lib/server-core/src/main/java/org/apache/olingo/server/core/serializer/json/ODataJsonSerializer.java b/lib/server-core/src/main/java/org/apache/olingo/server/core/serializer/json/ODataJsonSerializer.java
index 1de8562..3fe4fcb 100644
--- a/lib/server-core/src/main/java/org/apache/olingo/server/core/serializer/json/ODataJsonSerializer.java
+++ b/lib/server-core/src/main/java/org/apache/olingo/server/core/serializer/json/ODataJsonSerializer.java
@@ -43,7 +43,7 @@ import org.apache.olingo.commons.api.edm.EdmStructuredType;
 import org.apache.olingo.commons.api.edm.FullQualifiedName;
 import org.apache.olingo.commons.api.format.ODataFormat;
 import org.apache.olingo.commons.core.edm.primitivetype.EdmPrimitiveTypeFactory;
-import org.apache.olingo.server.api.ODataServerError;
+import org.apache.olingo.server.api.ClientServerError;
 import org.apache.olingo.server.api.ServiceMetadata;
 import org.apache.olingo.server.api.serializer.ComplexSerializerOptions;
 import org.apache.olingo.server.api.serializer.EntityCollectionSerializerOptions;
@@ -115,7 +115,7 @@ public class ODataJsonSerializer implements ODataSerializer {
   }
 
   @Override
-  public SerializerResult error(final ODataServerError error) throws SerializerException {
+  public SerializerResult error(final ClientServerError error) throws SerializerException {
     CircleStreamBuffer buffer = new CircleStreamBuffer();
     try {
       JsonGenerator json = new JsonFactory().createGenerator(buffer.getOutputStream());


[41/50] [abbrv] olingo-odata4 git commit: [OLINGO-564] Renamed 'OData*' to 'Client*' classes

Posted by mi...@apache.org.
http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/c37d4da5/ext/client-proxy/src/main/java/org/apache/olingo/ext/proxy/utils/CoreUtils.java
----------------------------------------------------------------------
diff --git a/ext/client-proxy/src/main/java/org/apache/olingo/ext/proxy/utils/CoreUtils.java b/ext/client-proxy/src/main/java/org/apache/olingo/ext/proxy/utils/CoreUtils.java
index b21c45c..882f0f6 100644
--- a/ext/client-proxy/src/main/java/org/apache/olingo/ext/proxy/utils/CoreUtils.java
+++ b/ext/client-proxy/src/main/java/org/apache/olingo/ext/proxy/utils/CoreUtils.java
@@ -40,22 +40,22 @@ import org.apache.commons.lang3.StringUtils;
 import org.apache.olingo.client.api.EdmEnabledODataClient;
 import org.apache.olingo.client.api.uri.URIBuilder;
 import org.apache.olingo.client.core.uri.URIUtils;
-import org.apache.olingo.commons.api.domain.ODataAnnotatable;
-import org.apache.olingo.commons.api.domain.ODataAnnotation;
-import org.apache.olingo.commons.api.domain.ODataComplexValue;
-import org.apache.olingo.commons.api.domain.ODataEntity;
-import org.apache.olingo.commons.api.domain.ODataEnumValue;
-import org.apache.olingo.commons.api.domain.ODataLink;
-import org.apache.olingo.commons.api.domain.ODataPrimitiveValue;
-import org.apache.olingo.commons.api.domain.ODataProperty;
-import org.apache.olingo.commons.api.domain.ODataValue;
+import org.apache.olingo.commons.api.domain.ClientAnnotatable;
+import org.apache.olingo.commons.api.domain.ClientAnnotation;
+import org.apache.olingo.commons.api.domain.ClientComplexValue;
+import org.apache.olingo.commons.api.domain.ClientEntity;
+import org.apache.olingo.commons.api.domain.ClientEnumValue;
+import org.apache.olingo.commons.api.domain.ClientLink;
+import org.apache.olingo.commons.api.domain.ClientPrimitiveValue;
+import org.apache.olingo.commons.api.domain.ClientProperty;
+import org.apache.olingo.commons.api.domain.ClientValue;
 import org.apache.olingo.commons.api.edm.EdmElement;
 import org.apache.olingo.commons.api.edm.EdmPrimitiveTypeException;
 import org.apache.olingo.commons.api.edm.EdmPrimitiveTypeKind;
 import org.apache.olingo.commons.api.edm.EdmTerm;
 import org.apache.olingo.commons.api.edm.EdmType;
 import org.apache.olingo.commons.api.edm.FullQualifiedName;
-import org.apache.olingo.commons.core.domain.ODataAnnotationImpl;
+import org.apache.olingo.commons.core.domain.ClientAnnotationImpl;
 import org.apache.olingo.commons.core.edm.primitivetype.EdmPrimitiveTypeFactory;
 import org.apache.olingo.commons.core.edm.EdmTypeInfo;
 import org.apache.olingo.ext.proxy.AbstractService;
@@ -88,10 +88,10 @@ public final class CoreUtils {
     // Empty private constructor for static utility classes
   }
 
-  public static ODataValue getODataValue(
+  public static ClientValue getODataValue(
       final EdmEnabledODataClient client, final EdmTypeInfo type, final Object obj) {
 
-    final ODataValue value;
+    final ClientValue value;
 
     if (type.isCollection()) {
       value = client.getObjectFactory().newCollectionValue(type.getFullQualifiedName().toString());
@@ -144,7 +144,7 @@ public final class CoreUtils {
     return value;
   }
 
-  private static ODataProperty getODataEntityProperty(
+  private static ClientProperty getODataEntityProperty(
       final EdmEnabledODataClient client,
       final FullQualifiedName entity,
       final String property,
@@ -154,7 +154,7 @@ public final class CoreUtils {
     return getODataProperty(client, edmProperty, property, obj);
   }
 
-  private static ODataProperty getODataComplexProperty(
+  private static ClientProperty getODataComplexProperty(
       final EdmEnabledODataClient client,
       final FullQualifiedName complex,
       final String property,
@@ -164,7 +164,7 @@ public final class CoreUtils {
     return getODataProperty(client, edmProperty, property, obj);
   }
 
-  private static ODataProperty getODataProperty(
+  private static ClientProperty getODataProperty(
       final EdmEnabledODataClient client,
       final EdmElement edmProperty,
       final String property,
@@ -186,29 +186,29 @@ public final class CoreUtils {
     return getODataProperty(client, property, type, obj);
   }
 
-  public static ODataAnnotation getODataAnnotation(
+  public static ClientAnnotation getODataAnnotation(
       final EdmEnabledODataClient client, final String term, final EdmType type, final Object obj) {
 
-    ODataAnnotation annotation;
+    ClientAnnotation annotation;
 
     if (obj == null) {
-      annotation = new ODataAnnotationImpl(term, null);
+      annotation = new ClientAnnotationImpl(term, null);
     } else {
       final EdmTypeInfo valueType = type == null
           ? guessTypeFromObject(client, obj)
           : new EdmTypeInfo.Builder().setEdm(client.getCachedEdm()).
               setTypeExpression(type.getFullQualifiedName().toString()).build();
 
-      annotation = new ODataAnnotationImpl(term, getODataValue(client, valueType, obj));
+      annotation = new ClientAnnotationImpl(term, getODataValue(client, valueType, obj));
     }
 
     return annotation;
   }
 
-  public static ODataProperty getODataProperty(
+  public static ClientProperty getODataProperty(
       final EdmEnabledODataClient client, final String name, final EdmTypeInfo type, final Object obj) {
 
-    ODataProperty property;
+    ClientProperty property;
 
     try {
       if (obj == null) {
@@ -217,7 +217,7 @@ public final class CoreUtils {
         final EdmTypeInfo valueType = type == null
             ? guessTypeFromObject(client, obj)
             : type;
-        final ODataValue value = getODataValue(client, valueType, obj);
+        final ClientValue value = getODataValue(client, valueType, obj);
 
         if (valueType.isCollection()) {
           property = client.getObjectFactory().newCollectionProperty(name, value.asCollection());
@@ -287,7 +287,7 @@ public final class CoreUtils {
   public static void addProperties(
       final EdmEnabledODataClient client,
       final Map<String, Object> changes,
-      final ODataEntity entity) {
+      final ClientEntity entity) {
 
     for (Map.Entry<String, Object> entry : changes.entrySet()) {
       entity.getProperties()
@@ -298,7 +298,7 @@ public final class CoreUtils {
   public static void addProperties(
       final EdmEnabledODataClient client,
       final Map<String, Object> changes,
-      final ODataComplexValue entity) {
+      final ClientComplexValue entity) {
 
     for (Map.Entry<String, Object> entry : changes.entrySet()) {
       entity.add(getODataComplexProperty(
@@ -312,7 +312,7 @@ public final class CoreUtils {
   public static void addAnnotations(
       final EdmEnabledODataClient client,
       final Map<Class<? extends AbstractTerm>, Object> annotations,
-      final ODataAnnotatable annotatable) {
+      final ClientAnnotatable annotatable) {
 
     for (Map.Entry<Class<? extends AbstractTerm>, Object> entry : annotations.entrySet()) {
       final Namespace nsAnn = entry.getKey().getAnnotation(Namespace.class);
@@ -329,7 +329,7 @@ public final class CoreUtils {
   }
 
   @SuppressWarnings({ "unchecked", "rawtypes" })
-  private static Enum<?> enumValueToObject(final ODataEnumValue value, final Class<?> reference) {
+  private static Enum<?> enumValueToObject(final ClientEnumValue value, final Class<?> reference) {
     final Namespace namespace = reference.getAnnotation(Namespace.class);
     final EnumType enumType = reference.getAnnotation(EnumType.class);
     if (value.getTypeName().equals(namespace.value() + "." + enumType.name())) {
@@ -339,7 +339,7 @@ public final class CoreUtils {
     return null;
   }
 
-  private static Object primitiveValueToObject(final ODataPrimitiveValue value, final Class<?> reference) {
+  private static Object primitiveValueToObject(final ClientPrimitiveValue value, final Class<?> reference) {
     Object obj;
 
     try {
@@ -378,7 +378,7 @@ public final class CoreUtils {
   public static URIBuilder buildEditLink(
       final EdmEnabledODataClient client,
       final String entitySetURI,
-      final ODataEntity entity,
+      final ClientEntity entity,
       final Object key) {
 
     if (key == null) {
@@ -428,14 +428,14 @@ public final class CoreUtils {
       final EdmEnabledODataClient client,
       final EntityInvocationHandler typeHandler,
       final Class<?> entityTypeRef,
-      final ODataEntity entity) {
+      final ClientEntity entity) {
 
     Object res = null;
 
     if (!entity.getProperties().isEmpty()) {
       final Class<?> keyRef = ClassUtils.getCompoundKeyRef(entityTypeRef);
       if (keyRef == null) {
-        final ODataProperty property = entity.getProperty(firstValidEntityKey(entityTypeRef));
+        final ClientProperty property = entity.getProperty(firstValidEntityKey(entityTypeRef));
         if (property != null && property.hasPrimitiveValue()) {
           res = primitiveValueToObject(
               property.getPrimitiveValue(), getPropertyClass(entityTypeRef, property.getName()));
@@ -459,7 +459,7 @@ public final class CoreUtils {
       final EntityInvocationHandler typeHandler,
       final Object bean,
       final Class<? extends Annotation> getterAnn,
-      final Iterator<? extends ODataProperty> propItor) {
+      final Iterator<? extends ClientProperty> propItor) {
 
     if (bean != null) {
       final Class<?> typeRef;
@@ -484,11 +484,11 @@ public final class CoreUtils {
       final Object bean,
       final Class<?> typeRef,
       final Class<? extends Annotation> getterAnn,
-      final Iterator<? extends ODataProperty> propItor) {
+      final Iterator<? extends ClientProperty> propItor) {
 
     if (bean != null) {
       while (propItor.hasNext()) {
-        final ODataProperty property = propItor.next();
+        final ClientProperty property = propItor.next();
 
         final Method getter = ClassUtils.findGetterByAnnotatedName(typeRef, getterAnn, property.getName());
 
@@ -520,9 +520,9 @@ public final class CoreUtils {
                 setPropertyValue(bean, getter, collection);
               }
 
-              final Iterator<ODataValue> collPropItor = property.getValue().asCollection().iterator();
+              final Iterator<ClientValue> collPropItor = property.getValue().asCollection().iterator();
               while (collPropItor.hasNext()) {
-                final ODataValue value = collPropItor.next();
+                final ClientValue value = collPropItor.next();
                 if (value.isPrimitive()) {
                   collection.add(primitiveValueToObject(
                       value.asPrimitive(), getPropertyClass(typeRef, property.getName())));
@@ -546,7 +546,7 @@ public final class CoreUtils {
   }
 
   public static Object getObjectFromODataValue(
-      final ODataValue value,
+      final ClientValue value,
       final Type typeRef,
       final AbstractService<?> service)
       throws InstantiationException, IllegalAccessException {
@@ -566,7 +566,7 @@ public final class CoreUtils {
   }
 
   public static Object getObjectFromODataValue(
-      final ODataValue value,
+      final ClientValue value,
       final Class<?> ref,
       final AbstractService<?> service)
       throws InstantiationException, IllegalAccessException {
@@ -585,9 +585,9 @@ public final class CoreUtils {
     } else if (value.isCollection()) {
       final ArrayList<Object> collection = new ArrayList<Object>();
 
-      final Iterator<ODataValue> collPropItor = value.asCollection().iterator();
+      final Iterator<ClientValue> collPropItor = value.asCollection().iterator();
       while (collPropItor.hasNext()) {
-        final ODataValue itemValue = collPropItor.next();
+        final ClientValue itemValue = collPropItor.next();
         if (itemValue.isPrimitive()) {
           collection.add(CoreUtils.primitiveValueToObject(itemValue.asPrimitive(), ref));
         } else if (itemValue.isComplex()) {
@@ -602,8 +602,8 @@ public final class CoreUtils {
       }
 
       res = collection;
-    } else if (value instanceof ODataEnumValue) {
-      res = enumValueToObject((ODataEnumValue) value, ref == null ? getEnumTypeRef(service, value) : ref);
+    } else if (value instanceof ClientEnumValue) {
+      res = enumValueToObject((ClientEnumValue) value, ref == null ? getEnumTypeRef(service, value) : ref);
     } else {
       res = primitiveValueToObject(value.asPrimitive(), ref);
     }
@@ -612,11 +612,11 @@ public final class CoreUtils {
   }
 
   public static Collection<Class<? extends AbstractTerm>> getAnnotationTerms(
-      final AbstractService<?> service, final List<ODataAnnotation> annotations) {
+      final AbstractService<?> service, final List<ClientAnnotation> annotations) {
 
     final List<Class<? extends AbstractTerm>> res = new ArrayList<Class<? extends AbstractTerm>>();
 
-    for (ODataAnnotation annotation : annotations) {
+    for (ClientAnnotation annotation : annotations) {
       final Class<? extends AbstractTerm> clazz = service.getTermClass(annotation.getTerm());
       if (clazz != null) {
         res.add(clazz);
@@ -626,11 +626,11 @@ public final class CoreUtils {
     return res;
   }
 
-  private static Class<?> getEnumTypeRef(final AbstractService<?> service, final ODataValue value) {
+  private static Class<?> getEnumTypeRef(final AbstractService<?> service, final ClientValue value) {
     return service.getEnumTypeClass(value.getTypeName().replaceAll("^Collection\\(", "").replaceAll("\\)$", ""));
   }
 
-  public static Class<?> getComplexTypeRef(final AbstractService<?> service, final ODataValue value) {
+  public static Class<?> getComplexTypeRef(final AbstractService<?> service, final ClientValue value) {
     return service.getComplexTypeClass(value.getTypeName().replaceAll("^Collection\\(", "").replaceAll("\\)$", ""));
   }
 
@@ -646,8 +646,8 @@ public final class CoreUtils {
     return null;
   }
 
-  public static URI getMediaEditLink(final String name, final ODataEntity entity) {
-    final ODataLink mediaEditLink = entity.getMediaEditLink(name);
+  public static URI getMediaEditLink(final String name, final ClientEntity entity) {
+    final ClientLink mediaEditLink = entity.getMediaEditLink(name);
     return mediaEditLink == null ? URIUtils.getURI(entity.getEditLink(), name) : mediaEditLink.getLink();
   }
 

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/c37d4da5/ext/client-proxy/src/main/java/org/apache/olingo/ext/proxy/utils/ProxyUtils.java
----------------------------------------------------------------------
diff --git a/ext/client-proxy/src/main/java/org/apache/olingo/ext/proxy/utils/ProxyUtils.java b/ext/client-proxy/src/main/java/org/apache/olingo/ext/proxy/utils/ProxyUtils.java
index 4ff910f..cb17b14 100644
--- a/ext/client-proxy/src/main/java/org/apache/olingo/ext/proxy/utils/ProxyUtils.java
+++ b/ext/client-proxy/src/main/java/org/apache/olingo/ext/proxy/utils/ProxyUtils.java
@@ -22,9 +22,9 @@ import java.util.List;
 
 import org.apache.commons.lang3.StringUtils;
 import org.apache.olingo.client.api.uri.URIBuilder;
-import org.apache.olingo.commons.api.domain.ODataEntity;
-import org.apache.olingo.commons.api.domain.ODataEntitySet;
-import org.apache.olingo.commons.api.domain.ODataValue;
+import org.apache.olingo.commons.api.domain.ClientEntity;
+import org.apache.olingo.commons.api.domain.ClientEntitySet;
+import org.apache.olingo.commons.api.domain.ClientValue;
 import org.apache.olingo.ext.proxy.AbstractService;
 import org.apache.olingo.ext.proxy.commons.ComplexInvocationHandler;
 import org.apache.olingo.ext.proxy.commons.EntityCollectionInvocationHandler;
@@ -39,14 +39,14 @@ public class ProxyUtils {
           final Class<?> typeRef,
           final Class<?> typeCollectionRef,
           final URI targetEntitySetURI,
-          final ODataEntitySet entitySet,
+          final ClientEntitySet entitySet,
           final URI uri,
           final boolean checkInTheContext) {
 
     final List<Object> items = new ArrayList<Object>();
 
     if (entitySet != null) {
-      for (ODataEntity entityFromSet : entitySet.getEntities()) {
+      for (ClientEntity entityFromSet : entitySet.getEntities()) {
         items.add(getEntityProxy(service, entityFromSet, uri, typeRef, null, checkInTheContext));
       }
     }
@@ -71,7 +71,7 @@ public class ProxyUtils {
 
   public static Object getEntityProxy(
           final AbstractService<?> service,
-          final ODataEntity entity,
+          final ClientEntity entity,
           final URI entitySetURI,
           final Class<?> type,
           final String eTag,
@@ -98,7 +98,7 @@ public class ProxyUtils {
   public static Object getComplexProxy(
           final AbstractService<?> service,
           final String name,
-          final ODataValue value,
+          final ClientValue value,
           final Class<?> ref,
           final EntityInvocationHandler handler,
           final URI baseURI,

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/c37d4da5/fit/src/test/java/org/apache/olingo/fit/AbstractBaseTestITCase.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/AbstractBaseTestITCase.java b/fit/src/test/java/org/apache/olingo/fit/AbstractBaseTestITCase.java
index e915f3f..da0e742 100644
--- a/fit/src/test/java/org/apache/olingo/fit/AbstractBaseTestITCase.java
+++ b/fit/src/test/java/org/apache/olingo/fit/AbstractBaseTestITCase.java
@@ -32,9 +32,9 @@ import org.apache.commons.io.IOUtils;
 import org.apache.olingo.client.api.ODataClient;
 import org.apache.olingo.commons.api.data.Entity;
 import org.apache.olingo.commons.api.data.EntityCollection;
-import org.apache.olingo.commons.api.domain.ODataEntity;
-import org.apache.olingo.commons.api.domain.ODataProperty;
-import org.apache.olingo.commons.api.domain.ODataValue;
+import org.apache.olingo.commons.api.domain.ClientEntity;
+import org.apache.olingo.commons.api.domain.ClientProperty;
+import org.apache.olingo.commons.api.domain.ClientValue;
 import org.apache.olingo.commons.api.format.ODataFormat;
 import org.apache.olingo.commons.api.serialization.ODataSerializerException;
 import org.apache.olingo.fit.server.TomcatTestServer;
@@ -94,15 +94,15 @@ public abstract class AbstractBaseTestITCase {
     }
   }
 
-  protected void debugODataProperty(final ODataProperty property, final String message) {
+  protected void debugODataProperty(final ClientProperty property, final String message) {
     LOG.debug(message + "\n{}", property.toString());
   }
 
-  protected void debugODataValue(final ODataValue value, final String message) {
+  protected void debugODataValue(final ClientValue value, final String message) {
     LOG.debug(message + "\n{}", value.toString());
   }
 
-  protected void debugODataEntity(final ODataEntity entity, final String message) {
+  protected void debugODataEntity(final ClientEntity entity, final String message) {
     if (LOG.isDebugEnabled()) {
       StringWriter writer = new StringWriter();
       try {

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/c37d4da5/fit/src/test/java/org/apache/olingo/fit/tecsvc/client/ActionImportITCase.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/tecsvc/client/ActionImportITCase.java b/fit/src/test/java/org/apache/olingo/fit/tecsvc/client/ActionImportITCase.java
index 49502bd..9f6c183 100644
--- a/fit/src/test/java/org/apache/olingo/fit/tecsvc/client/ActionImportITCase.java
+++ b/fit/src/test/java/org/apache/olingo/fit/tecsvc/client/ActionImportITCase.java
@@ -34,12 +34,12 @@ import org.apache.olingo.client.api.ODataClient;
 import org.apache.olingo.client.api.communication.ODataClientErrorException;
 import org.apache.olingo.client.api.communication.response.ODataInvokeResponse;
 import org.apache.olingo.client.core.ODataClientFactory;
-import org.apache.olingo.commons.api.domain.ODataCollectionValue;
-import org.apache.olingo.commons.api.domain.ODataComplexValue;
-import org.apache.olingo.commons.api.domain.ODataEntity;
-import org.apache.olingo.commons.api.domain.ODataEntitySet;
-import org.apache.olingo.commons.api.domain.ODataProperty;
-import org.apache.olingo.commons.api.domain.ODataValue;
+import org.apache.olingo.commons.api.domain.ClientCollectionValue;
+import org.apache.olingo.commons.api.domain.ClientComplexValue;
+import org.apache.olingo.commons.api.domain.ClientEntity;
+import org.apache.olingo.commons.api.domain.ClientEntitySet;
+import org.apache.olingo.commons.api.domain.ClientProperty;
+import org.apache.olingo.commons.api.domain.ClientValue;
 import org.apache.olingo.commons.api.edm.EdmPrimitiveTypeKind;
 import org.apache.olingo.commons.api.format.ODataFormat;
 import org.apache.olingo.fit.AbstractBaseTestITCase;
@@ -52,20 +52,20 @@ public class ActionImportITCase extends AbstractBaseTestITCase {
   public void primitveAction() throws Exception {
     URI actionURI =
         getClient().newURIBuilder(TecSvcConst.BASE_URI).appendActionCallSegment("AIRTString").build();
-    ODataInvokeResponse<ODataProperty> response =
-        getClient().getInvokeRequestFactory().getActionInvokeRequest(actionURI, ODataProperty.class).execute();
+    ODataInvokeResponse<ClientProperty> response =
+        getClient().getInvokeRequestFactory().getActionInvokeRequest(actionURI, ClientProperty.class).execute();
     assertEquals(200, response.getStatusCode());
     assertEquals("UARTString string value", response.getBody().getPrimitiveValue().toValue());
   }
 
   @Test
   public void primitveActionInvalidParameters() throws Exception {
-    Map<String, ODataValue> parameters = new HashMap<String, ODataValue>();
+    Map<String, ClientValue> parameters = new HashMap<String, ClientValue>();
     parameters.put("Invalid", getClient().getObjectFactory().newPrimitiveValueBuilder().buildInt32(1));
     URI actionURI =
         getClient().newURIBuilder(TecSvcConst.BASE_URI).appendActionCallSegment("AIRTString").build();
     try {
-      getClient().getInvokeRequestFactory().getActionInvokeRequest(actionURI, ODataProperty.class, parameters)
+      getClient().getInvokeRequestFactory().getActionInvokeRequest(actionURI, ClientProperty.class, parameters)
           .execute();
       fail("Expected an ODataClientErrorException");
     } catch (ODataClientErrorException e) {
@@ -77,17 +77,17 @@ public class ActionImportITCase extends AbstractBaseTestITCase {
   public void primitveCollectionAction() throws Exception {
     URI actionURI =
         getClient().newURIBuilder(TecSvcConst.BASE_URI).appendActionCallSegment("AIRTCollStringTwoParam").build();
-    Map<String, ODataValue> parameters = new HashMap<String, ODataValue>();
+    Map<String, ClientValue> parameters = new HashMap<String, ClientValue>();
     parameters.put("ParameterInt16", getClient().getObjectFactory().newPrimitiveValueBuilder().buildInt16((short) 3));
     parameters.put("ParameterDuration", getClient().getObjectFactory().newPrimitiveValueBuilder().setType(
         EdmPrimitiveTypeKind.Duration).setValue(new BigDecimal(1)).build());
-    ODataInvokeResponse<ODataProperty> response =
-        getClient().getInvokeRequestFactory().getActionInvokeRequest(actionURI, ODataProperty.class, parameters)
+    ODataInvokeResponse<ClientProperty> response =
+        getClient().getInvokeRequestFactory().getActionInvokeRequest(actionURI, ClientProperty.class, parameters)
             .execute();
     assertEquals(200, response.getStatusCode());
-    ODataCollectionValue<ODataValue> valueArray = response.getBody().getCollectionValue();
+    ClientCollectionValue<ClientValue> valueArray = response.getBody().getCollectionValue();
     assertEquals(3, valueArray.size());
-    Iterator<ODataValue> iterator = valueArray.iterator();
+    Iterator<ClientValue> iterator = valueArray.iterator();
     assertEquals("PT1S", iterator.next().asPrimitive().toValue());
     assertEquals("PT2S", iterator.next().asPrimitive().toValue());
     assertEquals("PT3S", iterator.next().asPrimitive().toValue());
@@ -97,17 +97,17 @@ public class ActionImportITCase extends AbstractBaseTestITCase {
   public void complexAction() throws Exception {
     URI actionURI =
         getClient().newURIBuilder(TecSvcConst.BASE_URI).appendActionCallSegment("AIRTCTTwoPrimParam").build();
-    Map<String, ODataValue> parameters = new HashMap<String, ODataValue>();
+    Map<String, ClientValue> parameters = new HashMap<String, ClientValue>();
     parameters.put("ParameterInt16", getClient().getObjectFactory().newPrimitiveValueBuilder().buildInt16((short) 3));
-    ODataInvokeResponse<ODataProperty> response =
-        getClient().getInvokeRequestFactory().getActionInvokeRequest(actionURI, ODataProperty.class, parameters)
+    ODataInvokeResponse<ClientProperty> response =
+        getClient().getInvokeRequestFactory().getActionInvokeRequest(actionURI, ClientProperty.class, parameters)
             .execute();
     assertEquals(200, response.getStatusCode());
-    ODataComplexValue complexValue = response.getBody().getComplexValue();
-    ODataProperty propInt16 = complexValue.get("PropertyInt16");
+    ClientComplexValue complexValue = response.getBody().getComplexValue();
+    ClientProperty propInt16 = complexValue.get("PropertyInt16");
     assertNotNull(propInt16);
     assertEquals(3, propInt16.getPrimitiveValue().toValue());
-    ODataProperty propString = complexValue.get("PropertyString");
+    ClientProperty propString = complexValue.get("PropertyString");
     assertNotNull(propString);
     assertEquals("UARTCTTwoPrimParam string value", propString.getPrimitiveValue().toValue());
   }
@@ -116,13 +116,13 @@ public class ActionImportITCase extends AbstractBaseTestITCase {
   public void complexCollectionActionNoContent() throws Exception {
     URI actionURI =
         getClient().newURIBuilder(TecSvcConst.BASE_URI).appendActionCallSegment("AIRTCollCTTwoPrimParam").build();
-    Map<String, ODataValue> parameters = new HashMap<String, ODataValue>();
+    Map<String, ClientValue> parameters = new HashMap<String, ClientValue>();
     parameters.put("ParameterInt16", getClient().getObjectFactory().newPrimitiveValueBuilder().buildInt16((short) 0));
-    ODataInvokeResponse<ODataProperty> response =
-        getClient().getInvokeRequestFactory().getActionInvokeRequest(actionURI, ODataProperty.class, parameters)
+    ODataInvokeResponse<ClientProperty> response =
+        getClient().getInvokeRequestFactory().getActionInvokeRequest(actionURI, ClientProperty.class, parameters)
             .execute();
     assertEquals(200, response.getStatusCode());
-    ODataCollectionValue<ODataValue> complexValueCollection = response.getBody().getCollectionValue();
+    ClientCollectionValue<ClientValue> complexValueCollection = response.getBody().getCollectionValue();
     assertEquals(0, complexValueCollection.size());
   }
 
@@ -130,17 +130,17 @@ public class ActionImportITCase extends AbstractBaseTestITCase {
   public void complexCollectionActionSubContent() throws Exception {
     URI actionURI =
         getClient().newURIBuilder(TecSvcConst.BASE_URI).appendActionCallSegment("AIRTCollCTTwoPrimParam").build();
-    Map<String, ODataValue> parameters = new HashMap<String, ODataValue>();
+    Map<String, ClientValue> parameters = new HashMap<String, ClientValue>();
     parameters.put("ParameterInt16", getClient().getObjectFactory().newPrimitiveValueBuilder().buildInt16((short) 1));
-    ODataInvokeResponse<ODataProperty> response =
-        getClient().getInvokeRequestFactory().getActionInvokeRequest(actionURI, ODataProperty.class, parameters)
+    ODataInvokeResponse<ClientProperty> response =
+        getClient().getInvokeRequestFactory().getActionInvokeRequest(actionURI, ClientProperty.class, parameters)
             .execute();
     assertEquals(200, response.getStatusCode());
-    ODataCollectionValue<ODataValue> complexValueCollection = response.getBody().getCollectionValue();
+    ClientCollectionValue<ClientValue> complexValueCollection = response.getBody().getCollectionValue();
     assertEquals(1, complexValueCollection.size());
-    Iterator<ODataValue> iterator = complexValueCollection.iterator();
+    Iterator<ClientValue> iterator = complexValueCollection.iterator();
 
-    ODataComplexValue next = iterator.next().asComplex();
+    ClientComplexValue next = iterator.next().asComplex();
     assertEquals(16, next.get("PropertyInt16").getPrimitiveValue().toValue());
     assertEquals("Test123", next.get("PropertyString").getPrimitiveValue().toValue());
   }
@@ -149,17 +149,17 @@ public class ActionImportITCase extends AbstractBaseTestITCase {
   public void complexCollectionActionAllContent() throws Exception {
     URI actionURI =
         getClient().newURIBuilder(TecSvcConst.BASE_URI).appendActionCallSegment("AIRTCollCTTwoPrimParam").build();
-    Map<String, ODataValue> parameters = new HashMap<String, ODataValue>();
+    Map<String, ClientValue> parameters = new HashMap<String, ClientValue>();
     parameters.put("ParameterInt16", getClient().getObjectFactory().newPrimitiveValueBuilder().buildInt16((short) 3));
-    ODataInvokeResponse<ODataProperty> response =
-        getClient().getInvokeRequestFactory().getActionInvokeRequest(actionURI, ODataProperty.class, parameters)
+    ODataInvokeResponse<ClientProperty> response =
+        getClient().getInvokeRequestFactory().getActionInvokeRequest(actionURI, ClientProperty.class, parameters)
             .execute();
     assertEquals(200, response.getStatusCode());
-    ODataCollectionValue<ODataValue> complexValueCollection = response.getBody().getCollectionValue();
+    ClientCollectionValue<ClientValue> complexValueCollection = response.getBody().getCollectionValue();
     assertEquals(3, complexValueCollection.size());
-    Iterator<ODataValue> iterator = complexValueCollection.iterator();
+    Iterator<ClientValue> iterator = complexValueCollection.iterator();
 
-    ODataComplexValue next = iterator.next().asComplex();
+    ClientComplexValue next = iterator.next().asComplex();
     assertEquals(16, next.get("PropertyInt16").getPrimitiveValue().toValue());
     assertEquals("Test123", next.get("PropertyString").getPrimitiveValue().toValue());
 
@@ -176,18 +176,18 @@ public class ActionImportITCase extends AbstractBaseTestITCase {
   public void entityActionETTwoKeyTwoPrim() throws Exception {
     URI actionURI =
         getClient().newURIBuilder(TecSvcConst.BASE_URI).appendActionCallSegment("AIRTETTwoKeyTwoPrimParam").build();
-    Map<String, ODataValue> parameters = new HashMap<String, ODataValue>();
+    Map<String, ClientValue> parameters = new HashMap<String, ClientValue>();
     parameters
         .put("ParameterInt16", getClient().getObjectFactory().newPrimitiveValueBuilder().buildInt16((short) -365));
-    ODataInvokeResponse<ODataEntity> response =
-        getClient().getInvokeRequestFactory().getActionInvokeRequest(actionURI, ODataEntity.class, parameters)
+    ODataInvokeResponse<ClientEntity> response =
+        getClient().getInvokeRequestFactory().getActionInvokeRequest(actionURI, ClientEntity.class, parameters)
             .execute();
     assertEquals(200, response.getStatusCode());
-    ODataEntity entity = response.getBody();
-    ODataProperty propInt16 = entity.getProperty("PropertyInt16");
+    ClientEntity entity = response.getBody();
+    ClientProperty propInt16 = entity.getProperty("PropertyInt16");
     assertNotNull(propInt16);
     assertEquals(-365, propInt16.getPrimitiveValue().toValue());
-    ODataProperty propString = entity.getProperty("PropertyString");
+    ClientProperty propString = entity.getProperty("PropertyString");
     assertNotNull(propString);
     assertEquals("Test String2", propString.getPrimitiveValue().toValue());
   }
@@ -196,17 +196,17 @@ public class ActionImportITCase extends AbstractBaseTestITCase {
   public void entityCollectionActionETKeyNav() throws Exception {
     URI actionURI =
         getClient().newURIBuilder(TecSvcConst.BASE_URI).appendActionCallSegment("AIRTCollETKeyNavParam").build();
-    Map<String, ODataValue> parameters = new HashMap<String, ODataValue>();
+    Map<String, ClientValue> parameters = new HashMap<String, ClientValue>();
     parameters
         .put("ParameterInt16", getClient().getObjectFactory().newPrimitiveValueBuilder().buildInt16((short) 3));
-    ODataInvokeResponse<ODataEntitySet> response =
-        getClient().getInvokeRequestFactory().getActionInvokeRequest(actionURI, ODataEntitySet.class, parameters)
+    ODataInvokeResponse<ClientEntitySet> response =
+        getClient().getInvokeRequestFactory().getActionInvokeRequest(actionURI, ClientEntitySet.class, parameters)
             .execute();
     assertEquals(200, response.getStatusCode());
-    ODataEntitySet entitySet = response.getBody();
+    ClientEntitySet entitySet = response.getBody();
     assertEquals(3, entitySet.getEntities().size());
     Integer key = 1;
-    for (ODataEntity entity : entitySet.getEntities()) {
+    for (ClientEntity entity : entitySet.getEntities()) {
       assertEquals(key, entity.getProperty("PropertyInt16").getPrimitiveValue().toValue());
       key++;
     }
@@ -216,14 +216,14 @@ public class ActionImportITCase extends AbstractBaseTestITCase {
   public void entityCollectionActionETKeyNavEmptyCollection() throws Exception {
     URI actionURI =
         getClient().newURIBuilder(TecSvcConst.BASE_URI).appendActionCallSegment("AIRTCollETKeyNavParam").build();
-    Map<String, ODataValue> parameters = new HashMap<String, ODataValue>();
+    Map<String, ClientValue> parameters = new HashMap<String, ClientValue>();
     parameters
         .put("ParameterInt16", getClient().getObjectFactory().newPrimitiveValueBuilder().buildInt16((short) 0));
-    ODataInvokeResponse<ODataEntitySet> response =
-        getClient().getInvokeRequestFactory().getActionInvokeRequest(actionURI, ODataEntitySet.class, parameters)
+    ODataInvokeResponse<ClientEntitySet> response =
+        getClient().getInvokeRequestFactory().getActionInvokeRequest(actionURI, ClientEntitySet.class, parameters)
             .execute();
     assertEquals(200, response.getStatusCode());
-    ODataEntitySet entitySet = response.getBody();
+    ClientEntitySet entitySet = response.getBody();
     assertEquals(0, entitySet.getEntities().size());
   }
 
@@ -231,14 +231,14 @@ public class ActionImportITCase extends AbstractBaseTestITCase {
   public void entityCollectionActionETKeyNavNegativeParam() throws Exception {
     URI actionURI =
         getClient().newURIBuilder(TecSvcConst.BASE_URI).appendActionCallSegment("AIRTCollETKeyNavParam").build();
-    Map<String, ODataValue> parameters = new HashMap<String, ODataValue>();
+    Map<String, ClientValue> parameters = new HashMap<String, ClientValue>();
     parameters
         .put("ParameterInt16", getClient().getObjectFactory().newPrimitiveValueBuilder().buildInt16((short) -10));
-    ODataInvokeResponse<ODataEntitySet> response =
-        getClient().getInvokeRequestFactory().getActionInvokeRequest(actionURI, ODataEntitySet.class, parameters)
+    ODataInvokeResponse<ClientEntitySet> response =
+        getClient().getInvokeRequestFactory().getActionInvokeRequest(actionURI, ClientEntitySet.class, parameters)
             .execute();
     assertEquals(200, response.getStatusCode());
-    ODataEntitySet entitySet = response.getBody();
+    ClientEntitySet entitySet = response.getBody();
     assertEquals(0, entitySet.getEntities().size());
   }
 
@@ -251,18 +251,18 @@ public class ActionImportITCase extends AbstractBaseTestITCase {
     time.set(Calendar.HOUR_OF_DAY, 3);
     time.set(Calendar.MINUTE, 0);
     time.set(Calendar.SECOND, 0);
-    Map<String, ODataValue> parameters = new HashMap<String, ODataValue>();
+    Map<String, ClientValue> parameters = new HashMap<String, ClientValue>();
     parameters
         .put("ParameterTimeOfDay", getClient().getObjectFactory().newPrimitiveValueBuilder().setType(
             EdmPrimitiveTypeKind.TimeOfDay).setValue(time).build());
-    ODataInvokeResponse<ODataEntitySet> response =
-        getClient().getInvokeRequestFactory().getActionInvokeRequest(actionURI, ODataEntitySet.class, parameters)
+    ODataInvokeResponse<ClientEntitySet> response =
+        getClient().getInvokeRequestFactory().getActionInvokeRequest(actionURI, ClientEntitySet.class, parameters)
             .execute();
     assertEquals(200, response.getStatusCode());
-    ODataEntitySet entitySet = response.getBody();
+    ClientEntitySet entitySet = response.getBody();
     assertEquals(3, entitySet.getEntities().size());
     Integer key = 1;
-    for (ODataEntity entity : entitySet.getEntities()) {
+    for (ClientEntity entity : entitySet.getEntities()) {
       assertEquals(key, entity.getProperty("PropertyInt16").getPrimitiveValue().toValue());
       key++;
     }
@@ -275,12 +275,12 @@ public class ActionImportITCase extends AbstractBaseTestITCase {
     Calendar dateTime = Calendar.getInstance(TimeZone.getTimeZone("GMT"));
     dateTime.clear();
     dateTime.set(1012, 2, 0, 0, 0, 0);
-    Map<String, ODataValue> parameters = new HashMap<String, ODataValue>();
+    Map<String, ClientValue> parameters = new HashMap<String, ClientValue>();
     parameters
         .put("ParameterDate", getClient().getObjectFactory().newPrimitiveValueBuilder().setType(
             EdmPrimitiveTypeKind.Date).setValue(dateTime).build());
-    ODataInvokeResponse<ODataEntity> response =
-        getClient().getInvokeRequestFactory().getActionInvokeRequest(actionURI, ODataEntity.class, parameters)
+    ODataInvokeResponse<ClientEntity> response =
+        getClient().getInvokeRequestFactory().getActionInvokeRequest(actionURI, ClientEntity.class, parameters)
             .execute();
     // Check 201
     assertEquals(201, response.getStatusCode());

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/c37d4da5/fit/src/test/java/org/apache/olingo/fit/tecsvc/client/BasicHttpExceptionHandlingITCase.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/tecsvc/client/BasicHttpExceptionHandlingITCase.java b/fit/src/test/java/org/apache/olingo/fit/tecsvc/client/BasicHttpExceptionHandlingITCase.java
index 17eb334..c283395 100644
--- a/fit/src/test/java/org/apache/olingo/fit/tecsvc/client/BasicHttpExceptionHandlingITCase.java
+++ b/fit/src/test/java/org/apache/olingo/fit/tecsvc/client/BasicHttpExceptionHandlingITCase.java
@@ -34,7 +34,7 @@ public class BasicHttpExceptionHandlingITCase extends AbstractBaseTestITCase {
   private static final String SERVICE_URI = TecSvcConst.BASE_URI + "/";
 
   @Test
-  public void ambigiousXHTTPMethod() throws Exception{
+  public void ambigiousXHTTPMethod() throws Exception {
     URL url = new URL(SERVICE_URI + "?$format=json");
 
     HttpURLConnection connection = (HttpURLConnection) url.openConnection();


[19/50] [abbrv] olingo-odata4 git commit: [OLINGO-564] Renamed 'edm.provider.*' classes

Posted by mi...@apache.org.
[OLINGO-564] Renamed 'edm.provider.*' classes


Project: http://git-wip-us.apache.org/repos/asf/olingo-odata4/repo
Commit: http://git-wip-us.apache.org/repos/asf/olingo-odata4/commit/2318953c
Tree: http://git-wip-us.apache.org/repos/asf/olingo-odata4/tree/2318953c
Diff: http://git-wip-us.apache.org/repos/asf/olingo-odata4/diff/2318953c

Branch: refs/heads/master
Commit: 2318953c26781e40b034f91781a5d9689ea3a14a
Parents: cbbe3da
Author: Michael Bolz <mi...@sap.com>
Authored: Tue Apr 28 12:52:14 2015 +0200
Committer: Michael Bolz <mi...@sap.com>
Committed: Tue Apr 28 12:52:14 2015 +0200

----------------------------------------------------------------------
 .../olingo/client/api/edm/xml/DataServices.java |   4 +-
 .../olingo/client/api/edm/xml/Reference.java    |   4 +-
 .../olingo/client/api/edm/xml/XMLMetadata.java  |  10 +-
 .../client/api/serialization/ODataReader.java   |   4 +-
 .../retrieve/XMLMetadataRequestImpl.java        |  18 +-
 .../client/core/edm/ClientEdmProvider.java      | 123 ++---
 .../client/core/edm/ClientXMLMetadata.java      |  18 +-
 ...tAnnotatableDynamicAnnotationExpression.java |  10 +-
 .../xml/AbstractClientAnnotationExpression.java |   4 +-
 .../client/core/edm/xml/ClientAction.java       |   4 +-
 .../client/core/edm/xml/ClientActionImport.java |   4 +-
 .../client/core/edm/xml/ClientAnnotation.java   |   8 +-
 .../client/core/edm/xml/ClientAnnotations.java  |   4 +-
 .../client/core/edm/xml/ClientComplexType.java  |   8 +-
 .../client/core/edm/xml/ClientDataServices.java |  10 +-
 .../olingo/client/core/edm/xml/ClientEdmx.java  |   4 +-
 .../core/edm/xml/ClientEntityContainer.java     |   4 +-
 .../client/core/edm/xml/ClientEntityKey.java    |  10 +-
 .../client/core/edm/xml/ClientEntitySet.java    |   8 +-
 .../client/core/edm/xml/ClientEntityType.java   |   8 +-
 .../client/core/edm/xml/ClientEnumMember.java   |  10 +-
 .../client/core/edm/xml/ClientEnumType.java     |   4 +-
 .../client/core/edm/xml/ClientFunction.java     |   4 +-
 .../core/edm/xml/ClientFunctionImport.java      |   4 +-
 .../client/core/edm/xml/ClientInclude.java      |   4 +-
 .../core/edm/xml/ClientIncludeAnnotations.java  |   4 +-
 .../core/edm/xml/ClientNavigationProperty.java  |  10 +-
 .../xml/ClientNavigationPropertyBinding.java    |  13 +-
 .../client/core/edm/xml/ClientOnDelete.java     |  14 +-
 .../client/core/edm/xml/ClientParameter.java    |   4 +-
 .../client/core/edm/xml/ClientProperty.java     |   4 +-
 .../client/core/edm/xml/ClientPropertyRef.java  |  10 +-
 .../client/core/edm/xml/ClientReference.java    |  10 +-
 .../edm/xml/ClientReferentialConstraint.java    |  10 +-
 .../client/core/edm/xml/ClientReturnType.java   |   4 +-
 .../client/core/edm/xml/ClientSchema.java       |   4 +-
 .../client/core/edm/xml/ClientSingleton.java    |   4 +-
 .../olingo/client/core/edm/xml/ClientTerm.java  |   4 +-
 .../core/edm/xml/ClientTypeDefinition.java      |   4 +-
 .../core/serialization/ODataReaderImpl.java     |   4 +-
 .../olingo/client/core/uri/URIEscapeTest.java   |   4 +-
 .../client/core/uri/v4/FilterFactoryTest.java   |   4 +-
 .../olingo/client/core/v4/MetadataTest.java     |  52 +-
 .../api/edm/provider/AbstractEdmItem.java       |  64 ---
 .../api/edm/provider/AbstractEdmProvider.java   | 116 ----
 .../olingo/commons/api/edm/provider/Action.java |  56 --
 .../commons/api/edm/provider/ActionImport.java  |  59 ---
 .../commons/api/edm/provider/AliasInfo.java     |  45 --
 .../commons/api/edm/provider/Annotatable.java   |  26 -
 .../commons/api/edm/provider/Annotation.java    |  77 ---
 .../commons/api/edm/provider/Annotations.java   |  66 ---
 .../commons/api/edm/provider/BindingTarget.java |  79 ---
 .../commons/api/edm/provider/ComplexType.java   |  70 ---
 .../api/edm/provider/CsdlAbstractEdmItem.java   |  64 +++
 .../edm/provider/CsdlAbstractEdmProvider.java   | 117 +++++
 .../commons/api/edm/provider/CsdlAction.java    |  56 ++
 .../api/edm/provider/CsdlActionImport.java      |  59 +++
 .../commons/api/edm/provider/CsdlAliasInfo.java |  45 ++
 .../api/edm/provider/CsdlAnnotatable.java       |  26 +
 .../api/edm/provider/CsdlAnnotation.java        |  77 +++
 .../api/edm/provider/CsdlAnnotations.java       |  66 +++
 .../api/edm/provider/CsdlBindingTarget.java     |  81 +++
 .../api/edm/provider/CsdlComplexType.java       |  70 +++
 .../api/edm/provider/CsdlEdmProvider.java       | 179 +++++++
 .../api/edm/provider/CsdlEntityContainer.java   | 159 ++++++
 .../edm/provider/CsdlEntityContainerInfo.java   |  47 ++
 .../commons/api/edm/provider/CsdlEntitySet.java |  65 +++
 .../api/edm/provider/CsdlEntitySetPath.java     |  44 ++
 .../api/edm/provider/CsdlEntityType.java        |  92 ++++
 .../api/edm/provider/CsdlEnumMember.java        |  57 ++
 .../commons/api/edm/provider/CsdlEnumType.java  | 113 ++++
 .../api/edm/provider/CsdlExpression.java        |  23 +
 .../commons/api/edm/provider/CsdlFunction.java  |  67 +++
 .../api/edm/provider/CsdlFunctionImport.java    |  77 +++
 .../commons/api/edm/provider/CsdlMapping.java   |  50 ++
 .../commons/api/edm/provider/CsdlNamed.java     |  26 +
 .../edm/provider/CsdlNavigationProperty.java    | 138 +++++
 .../provider/CsdlNavigationPropertyBinding.java |  47 ++
 .../commons/api/edm/provider/CsdlOnDelete.java  |  38 ++
 .../api/edm/provider/CsdlOnDeleteAction.java    |  28 +
 .../commons/api/edm/provider/CsdlOperation.java |  92 ++++
 .../api/edm/provider/CsdlOperationImport.java   |  54 ++
 .../commons/api/edm/provider/CsdlParameter.java | 146 +++++
 .../commons/api/edm/provider/CsdlProperty.java  | 180 +++++++
 .../api/edm/provider/CsdlPropertyRef.java       |  46 ++
 .../edm/provider/CsdlReferentialConstraint.java |  56 ++
 .../api/edm/provider/CsdlReturnType.java        | 114 ++++
 .../commons/api/edm/provider/CsdlSchema.java    | 265 ++++++++++
 .../commons/api/edm/provider/CsdlSingleton.java |  53 ++
 .../api/edm/provider/CsdlStructuralType.java    | 122 +++++
 .../commons/api/edm/provider/CsdlTerm.java      | 162 ++++++
 .../api/edm/provider/CsdlTypeDefinition.java    | 123 +++++
 .../commons/api/edm/provider/EdmProvider.java   | 177 -------
 .../api/edm/provider/EntityContainer.java       | 159 ------
 .../api/edm/provider/EntityContainerInfo.java   |  47 --
 .../commons/api/edm/provider/EntitySet.java     |  64 ---
 .../commons/api/edm/provider/EntitySetPath.java |  44 --
 .../commons/api/edm/provider/EntityType.java    |  92 ----
 .../commons/api/edm/provider/EnumMember.java    |  57 --
 .../commons/api/edm/provider/EnumType.java      | 113 ----
 .../commons/api/edm/provider/Expression.java    |  23 -
 .../commons/api/edm/provider/Function.java      |  67 ---
 .../api/edm/provider/FunctionImport.java        |  77 ---
 .../commons/api/edm/provider/Mapping.java       |  50 --
 .../olingo/commons/api/edm/provider/Named.java  |  26 -
 .../api/edm/provider/NavigationProperty.java    | 137 -----
 .../edm/provider/NavigationPropertyBinding.java |  47 --
 .../commons/api/edm/provider/OnDelete.java      |  38 --
 .../api/edm/provider/OnDeleteAction.java        |  28 -
 .../commons/api/edm/provider/Operation.java     |  92 ----
 .../api/edm/provider/OperationImport.java       |  54 --
 .../commons/api/edm/provider/Parameter.java     | 146 -----
 .../commons/api/edm/provider/Property.java      | 180 -------
 .../commons/api/edm/provider/PropertyRef.java   |  46 --
 .../api/edm/provider/ReferentialConstraint.java |  56 --
 .../commons/api/edm/provider/ReturnType.java    | 114 ----
 .../olingo/commons/api/edm/provider/Schema.java | 265 ----------
 .../commons/api/edm/provider/Singleton.java     |  52 --
 .../api/edm/provider/StructuralType.java        | 122 -----
 .../olingo/commons/api/edm/provider/Term.java   | 162 ------
 .../api/edm/provider/TypeDefinition.java        | 123 -----
 .../api/edm/provider/annotation/Apply.java      |   4 +-
 .../api/edm/provider/annotation/Cast.java       |   4 +-
 .../commons/api/edm/provider/annotation/If.java |   4 +-
 .../api/edm/provider/annotation/IsOf.java       |   4 +-
 .../edm/provider/annotation/LabeledElement.java |   4 +-
 .../api/edm/provider/annotation/Null.java       |   4 +-
 .../edm/provider/annotation/PropertyValue.java  |   4 +-
 .../api/edm/provider/annotation/Record.java     |   4 +-
 .../core/edm/AbstractEdmAnnotatable.java        |  10 +-
 .../core/edm/AbstractEdmBindingTarget.java      |  12 +-
 .../commons/core/edm/AbstractEdmNamed.java      |   4 +-
 .../commons/core/edm/AbstractEdmOperation.java  |  16 +-
 .../core/edm/AbstractEdmOperationImport.java    |   4 +-
 .../core/edm/AbstractEdmStructuredType.java     |  18 +-
 .../olingo/commons/core/edm/EdmActionImpl.java  |   4 +-
 .../commons/core/edm/EdmActionImportImpl.java   |   6 +-
 .../commons/core/edm/EdmAnnotationImpl.java     |  12 +-
 .../commons/core/edm/EdmAnnotationsImpl.java    |  10 +-
 .../commons/core/edm/EdmComplexTypeImpl.java    |   4 +-
 .../core/edm/EdmEntityContainerImpl.java        |  54 +-
 .../commons/core/edm/EdmEntitySetImpl.java      |   6 +-
 .../commons/core/edm/EdmEntityTypeImpl.java     |  12 +-
 .../commons/core/edm/EdmEnumTypeImpl.java       |  10 +-
 .../commons/core/edm/EdmFunctionImpl.java       |   6 +-
 .../commons/core/edm/EdmFunctionImportImpl.java |   7 +-
 .../commons/core/edm/EdmKeyPropertyRefImpl.java |   6 +-
 .../olingo/commons/core/edm/EdmMemberImpl.java  |   6 +-
 .../core/edm/EdmNavigationPropertyImpl.java     |  16 +-
 .../commons/core/edm/EdmParameterImpl.java      |   6 +-
 .../commons/core/edm/EdmPropertyImpl.java       |   6 +-
 .../commons/core/edm/EdmProviderImpl.java       |  98 ++--
 .../core/edm/EdmReferentialConstraintImpl.java  |   6 +-
 .../commons/core/edm/EdmReturnTypeImpl.java     |   6 +-
 .../olingo/commons/core/edm/EdmSchemaImpl.java  |  64 +--
 .../commons/core/edm/EdmSingletonImpl.java      |   4 +-
 .../olingo/commons/core/edm/EdmTermImpl.java    |   6 +-
 .../commons/core/edm/EdmTypeDefinitionImpl.java |   6 +-
 .../olingo/commons/core/edm/EdmTypeImpl.java    |   4 +-
 .../org/apache/olingo/server/api/OData.java     |   4 +-
 .../olingo/server/core/MetadataParser.java      | 228 ++++----
 .../server/core/SchemaBasedEdmProvider.java     | 164 +++---
 .../olingo/server/core/MetadataParserTest.java  |  54 +-
 .../server/core/ServiceDispatcherTest.java      |   8 +-
 .../olingo/server/example/TripPinServlet.java   |   4 +-
 .../apache/olingo/server/core/ODataImpl.java    |   4 +-
 .../olingo/server/core/ServiceMetadataImpl.java |   4 +-
 .../core/edm/provider/AbstractEdmNamedTest.java |  10 +-
 .../core/edm/provider/EdmActionImplTest.java    |  20 +-
 .../edm/provider/EdmActionImportImplTest.java   |  10 +-
 .../edm/provider/EdmComplexTypeImplTest.java    |  38 +-
 .../provider/EdmEntityContainerImplTest.java    |  75 +--
 .../core/edm/provider/EdmEntitySetImplTest.java |  24 +-
 .../edm/provider/EdmEntityTypeImplTest.java     | 132 ++---
 .../server/core/edm/provider/EdmEnumTest.java   |  40 +-
 .../core/edm/provider/EdmFunctionImplTest.java  |   9 +-
 .../edm/provider/EdmFunctionImportImplTest.java |  24 +-
 .../edm/provider/EdmKeyPropertyRefImplTest.java |  18 +-
 .../core/edm/provider/EdmMappingTest.java       |  16 +-
 .../core/edm/provider/EdmMemberImplTest.java    |   4 +-
 .../provider/EdmNavigationPropertyImplTest.java |  56 +-
 .../core/edm/provider/EdmParameterImplTest.java |  45 +-
 .../core/edm/provider/EdmPropertyImplTest.java  |  45 +-
 .../EdmProviderImplOverloadingTest.java         |  62 +--
 .../core/edm/provider/EdmProviderImplTest.java  |  40 +-
 .../edm/provider/EdmReturnTypeImplTest.java     |  20 +-
 .../core/edm/provider/EdmSchemaImplTest.java    | 143 ++---
 .../core/edm/provider/EdmSingletonImplTest.java |  44 +-
 .../edm/provider/EdmTypeDefinitionImplTest.java |  10 +-
 .../core/edm/provider/EdmTypeImplTest.java      |  10 +-
 .../core/serializer/json/ComplexTypeHelper.java |  30 +-
 .../serializer/utils/ContextURLBuilderTest.java |  20 +-
 .../xml/MetadataDocumentXmlSerializerTest.java  | 139 ++---
 .../server/tecsvc/provider/ActionProvider.java  | 118 ++---
 .../tecsvc/provider/ComplexTypeProvider.java    |  48 +-
 .../tecsvc/provider/ContainerProvider.java      | 489 ++++++++---------
 .../server/tecsvc/provider/EdmTechProvider.java |  67 +--
 .../tecsvc/provider/EntityTypeProvider.java     | 178 +++----
 .../tecsvc/provider/EnumTypeProvider.java       |  14 +-
 .../tecsvc/provider/FunctionProvider.java       | 526 ++++++++++---------
 .../tecsvc/provider/PropertyProvider.java       | 304 +++++------
 .../server/tecsvc/provider/SchemaProvider.java  |  32 +-
 .../tecsvc/provider/TypeDefinitionProvider.java |   6 +-
 .../olingo/server/core/ODataHandlerTest.java    |   8 +-
 .../json/ODataJsonDeserializerEntityTest.java   |   4 +-
 .../core/uri/testutil/EdmTechTestProvider.java  |  36 +-
 .../sample/edmprovider/CarsEdmProvider.java     |  99 ++--
 207 files changed, 5559 insertions(+), 5481 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/2318953c/lib/client-api/src/main/java/org/apache/olingo/client/api/edm/xml/DataServices.java
----------------------------------------------------------------------
diff --git a/lib/client-api/src/main/java/org/apache/olingo/client/api/edm/xml/DataServices.java b/lib/client-api/src/main/java/org/apache/olingo/client/api/edm/xml/DataServices.java
index d542cac..99a9a70 100644
--- a/lib/client-api/src/main/java/org/apache/olingo/client/api/edm/xml/DataServices.java
+++ b/lib/client-api/src/main/java/org/apache/olingo/client/api/edm/xml/DataServices.java
@@ -20,7 +20,7 @@ package org.apache.olingo.client.api.edm.xml;
 
 import java.util.List;
 
-import org.apache.olingo.commons.api.edm.provider.Schema;
+import org.apache.olingo.commons.api.edm.provider.CsdlSchema;
 
 public interface DataServices {
 
@@ -28,5 +28,5 @@ public interface DataServices {
 
   String getMaxDataServiceVersion();
 
-  List<Schema> getSchemas();
+  List<CsdlSchema> getSchemas();
 }

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/2318953c/lib/client-api/src/main/java/org/apache/olingo/client/api/edm/xml/Reference.java
----------------------------------------------------------------------
diff --git a/lib/client-api/src/main/java/org/apache/olingo/client/api/edm/xml/Reference.java b/lib/client-api/src/main/java/org/apache/olingo/client/api/edm/xml/Reference.java
index d85fd6e..8f24a91 100644
--- a/lib/client-api/src/main/java/org/apache/olingo/client/api/edm/xml/Reference.java
+++ b/lib/client-api/src/main/java/org/apache/olingo/client/api/edm/xml/Reference.java
@@ -21,9 +21,9 @@ package org.apache.olingo.client.api.edm.xml;
 import java.net.URI;
 import java.util.List;
 
-import org.apache.olingo.commons.api.edm.provider.Annotatable;
+import org.apache.olingo.commons.api.edm.provider.CsdlAnnotatable;
 
-public interface Reference extends Annotatable {
+public interface Reference extends CsdlAnnotatable {
 
   URI getUri();
 

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/2318953c/lib/client-api/src/main/java/org/apache/olingo/client/api/edm/xml/XMLMetadata.java
----------------------------------------------------------------------
diff --git a/lib/client-api/src/main/java/org/apache/olingo/client/api/edm/xml/XMLMetadata.java b/lib/client-api/src/main/java/org/apache/olingo/client/api/edm/xml/XMLMetadata.java
index c1231a1..74191cf 100644
--- a/lib/client-api/src/main/java/org/apache/olingo/client/api/edm/xml/XMLMetadata.java
+++ b/lib/client-api/src/main/java/org/apache/olingo/client/api/edm/xml/XMLMetadata.java
@@ -21,7 +21,7 @@ package org.apache.olingo.client.api.edm.xml;
 import java.util.List;
 import java.util.Map;
 
-import org.apache.olingo.commons.api.edm.provider.Schema;
+import org.apache.olingo.commons.api.edm.provider.CsdlSchema;
 
 /**
  * Entry point for access information about EDM metadata.
@@ -34,7 +34,7 @@ public interface XMLMetadata {
    * @param index index of the Schema to return
    * @return the Schema at the specified position in the EdM metadata document
    */
-  Schema getSchema(final int index);
+  CsdlSchema getSchema(final int index);
 
   /**
    * Returns the Schema with the specified key (namespace or alias) in the EdM metadata document.
@@ -42,16 +42,16 @@ public interface XMLMetadata {
    * @param key namespace or alias
    * @return the Schema with the specified key in the EdM metadata document
    */
-  Schema getSchema(final String key);
+  CsdlSchema getSchema(final String key);
 
   /**
    * Returns all Schema objects defined in the EdM metadata document.
    *
    * @return all Schema objects defined in the EdM metadata document
    */
-  List<Schema> getSchemas();
+  List<CsdlSchema> getSchemas();
 
-  Map<String, Schema> getSchemaByNsOrAlias();
+  Map<String, CsdlSchema> getSchemaByNsOrAlias();
   
   List<Reference> getReferences();
 }

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/2318953c/lib/client-api/src/main/java/org/apache/olingo/client/api/serialization/ODataReader.java
----------------------------------------------------------------------
diff --git a/lib/client-api/src/main/java/org/apache/olingo/client/api/serialization/ODataReader.java b/lib/client-api/src/main/java/org/apache/olingo/client/api/serialization/ODataReader.java
index e895341..0634673 100644
--- a/lib/client-api/src/main/java/org/apache/olingo/client/api/serialization/ODataReader.java
+++ b/lib/client-api/src/main/java/org/apache/olingo/client/api/serialization/ODataReader.java
@@ -28,7 +28,7 @@ import org.apache.olingo.commons.api.domain.ODataError;
 import org.apache.olingo.commons.api.domain.ODataProperty;
 import org.apache.olingo.commons.api.domain.ODataServiceDocument;
 import org.apache.olingo.commons.api.edm.Edm;
-import org.apache.olingo.commons.api.edm.provider.Schema;
+import org.apache.olingo.commons.api.edm.provider.CsdlSchema;
 import org.apache.olingo.commons.api.format.ODataFormat;
 import org.apache.olingo.commons.api.serialization.ODataDeserializerException;
 
@@ -55,7 +55,7 @@ public interface ODataReader {
    * <tt>&lt;edmx:Reference/&gt;</tt>) metadata document
    * @return metadata representation.
    */
-  Edm readMetadata(Map<String, Schema> xmlSchemas);
+  Edm readMetadata(Map<String, CsdlSchema> xmlSchemas);
 
   /**
    * Parses an OData service document.

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/2318953c/lib/client-core/src/main/java/org/apache/olingo/client/core/communication/request/retrieve/XMLMetadataRequestImpl.java
----------------------------------------------------------------------
diff --git a/lib/client-core/src/main/java/org/apache/olingo/client/core/communication/request/retrieve/XMLMetadataRequestImpl.java b/lib/client-core/src/main/java/org/apache/olingo/client/core/communication/request/retrieve/XMLMetadataRequestImpl.java
index 304c1bc..ff49b7b 100644
--- a/lib/client-core/src/main/java/org/apache/olingo/client/core/communication/request/retrieve/XMLMetadataRequestImpl.java
+++ b/lib/client-core/src/main/java/org/apache/olingo/client/core/communication/request/retrieve/XMLMetadataRequestImpl.java
@@ -31,9 +31,9 @@ import org.apache.olingo.client.api.edm.xml.Include;
 import org.apache.olingo.client.api.edm.xml.IncludeAnnotations;
 import org.apache.olingo.client.api.edm.xml.Reference;
 import org.apache.olingo.client.api.edm.xml.XMLMetadata;
-import org.apache.olingo.commons.api.edm.provider.Annotation;
-import org.apache.olingo.commons.api.edm.provider.Annotations;
-import org.apache.olingo.commons.api.edm.provider.Schema;
+import org.apache.olingo.commons.api.edm.provider.CsdlAnnotation;
+import org.apache.olingo.commons.api.edm.provider.CsdlAnnotations;
+import org.apache.olingo.commons.api.edm.provider.CsdlSchema;
 import org.apache.olingo.commons.api.format.ODataFormat;
 
 public class XMLMetadataRequestImpl
@@ -62,7 +62,7 @@ public class XMLMetadataRequestImpl
 
       // edmx:Include
       for (Include include : reference.getIncludes()) {
-        final Schema includedSchema = includeMetadata.getSchema(include.getNamespace());
+        final CsdlSchema includedSchema = includeMetadata.getSchema(include.getNamespace());
         if (includedSchema != null) {
           response.getBody().getSchemas().add(includedSchema);
           if (StringUtils.isNotBlank(include.getAlias())) {
@@ -73,14 +73,14 @@ public class XMLMetadataRequestImpl
 
       // edmx:IncludeAnnotations
       for (IncludeAnnotations include : reference.getIncludeAnnotations()) {
-        for (Schema schema : includeMetadata.getSchemas()) {
+        for (CsdlSchema schema : includeMetadata.getSchemas()) {
           // create empty schema that will be fed with edm:Annotations that match the criteria in IncludeAnnotations
-          final Schema forInclusion = new Schema();
+          final CsdlSchema forInclusion = new CsdlSchema();
           forInclusion.setNamespace(schema.getNamespace());
           forInclusion.setAlias(schema.getAlias());
 
           // process all edm:Annotations in each schema of the included document
-          for (Annotations annotationGroup : schema.getAnnotationGroups()) {
+          for (CsdlAnnotations annotationGroup : schema.getAnnotationGroups()) {
             // take into account only when (TargetNamespace was either not provided or matches) and
             // (Qualifier was either not provided or matches)
             if ((StringUtils.isBlank(include.getTargetNamespace())
@@ -89,11 +89,11 @@ public class XMLMetadataRequestImpl
                 && (StringUtils.isBlank(include.getQualifier())
                 || include.getQualifier().equals(annotationGroup.getQualifier()))) {
 
-              final Annotations toBeIncluded = new Annotations();
+              final CsdlAnnotations toBeIncluded = new CsdlAnnotations();
               toBeIncluded.setTarget(annotationGroup.getTarget());
               toBeIncluded.setQualifier(annotationGroup.getQualifier());
               // only import annotations with terms matching the given TermNamespace
-              for (Annotation annotation : annotationGroup.getAnnotations()) {
+              for (CsdlAnnotation annotation : annotationGroup.getAnnotations()) {
                 if (include.getTermNamespace().equals(StringUtils.substringBeforeLast(annotation.getTerm(), "."))) {
                   toBeIncluded.getAnnotations().add(annotation);
                 }

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/2318953c/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/ClientEdmProvider.java
----------------------------------------------------------------------
diff --git a/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/ClientEdmProvider.java b/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/ClientEdmProvider.java
index b062447..6284ade 100644
--- a/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/ClientEdmProvider.java
+++ b/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/ClientEdmProvider.java
@@ -24,36 +24,36 @@ import java.util.Map;
 
 import org.apache.olingo.commons.api.ODataException;
 import org.apache.olingo.commons.api.edm.FullQualifiedName;
-import org.apache.olingo.commons.api.edm.provider.AbstractEdmProvider;
-import org.apache.olingo.commons.api.edm.provider.Action;
-import org.apache.olingo.commons.api.edm.provider.ActionImport;
-import org.apache.olingo.commons.api.edm.provider.AliasInfo;
-import org.apache.olingo.commons.api.edm.provider.Annotatable;
-import org.apache.olingo.commons.api.edm.provider.Annotations;
-import org.apache.olingo.commons.api.edm.provider.ComplexType;
-import org.apache.olingo.commons.api.edm.provider.EntityContainer;
-import org.apache.olingo.commons.api.edm.provider.EntityContainerInfo;
-import org.apache.olingo.commons.api.edm.provider.EntitySet;
-import org.apache.olingo.commons.api.edm.provider.EntityType;
-import org.apache.olingo.commons.api.edm.provider.EnumType;
-import org.apache.olingo.commons.api.edm.provider.Function;
-import org.apache.olingo.commons.api.edm.provider.FunctionImport;
-import org.apache.olingo.commons.api.edm.provider.Schema;
-import org.apache.olingo.commons.api.edm.provider.Singleton;
-import org.apache.olingo.commons.api.edm.provider.Term;
-import org.apache.olingo.commons.api.edm.provider.TypeDefinition;
-
-public class ClientEdmProvider extends AbstractEdmProvider {
-
-  private final Map<String, Schema> xmlSchemas;
-
-  public ClientEdmProvider(Map<String, Schema> xmlSchemas) {
+import org.apache.olingo.commons.api.edm.provider.CsdlAbstractEdmProvider;
+import org.apache.olingo.commons.api.edm.provider.CsdlAction;
+import org.apache.olingo.commons.api.edm.provider.CsdlActionImport;
+import org.apache.olingo.commons.api.edm.provider.CsdlAliasInfo;
+import org.apache.olingo.commons.api.edm.provider.CsdlAnnotatable;
+import org.apache.olingo.commons.api.edm.provider.CsdlAnnotations;
+import org.apache.olingo.commons.api.edm.provider.CsdlComplexType;
+import org.apache.olingo.commons.api.edm.provider.CsdlEntityContainer;
+import org.apache.olingo.commons.api.edm.provider.CsdlEntityContainerInfo;
+import org.apache.olingo.commons.api.edm.provider.CsdlEntitySet;
+import org.apache.olingo.commons.api.edm.provider.CsdlEntityType;
+import org.apache.olingo.commons.api.edm.provider.CsdlEnumType;
+import org.apache.olingo.commons.api.edm.provider.CsdlFunction;
+import org.apache.olingo.commons.api.edm.provider.CsdlFunctionImport;
+import org.apache.olingo.commons.api.edm.provider.CsdlSchema;
+import org.apache.olingo.commons.api.edm.provider.CsdlSingleton;
+import org.apache.olingo.commons.api.edm.provider.CsdlTerm;
+import org.apache.olingo.commons.api.edm.provider.CsdlTypeDefinition;
+
+public class ClientEdmProvider extends CsdlAbstractEdmProvider {
+
+  private final Map<String, CsdlSchema> xmlSchemas;
+
+  public ClientEdmProvider(Map<String, CsdlSchema> xmlSchemas) {
     this.xmlSchemas = xmlSchemas;
   }
 
   @Override
-  public EnumType getEnumType(final FullQualifiedName enumTypeName) throws ODataException {
-    Schema schema = xmlSchemas.get(enumTypeName.getNamespace());
+  public CsdlEnumType getEnumType(final FullQualifiedName enumTypeName) throws ODataException {
+    CsdlSchema schema = xmlSchemas.get(enumTypeName.getNamespace());
     if (schema != null) {
       return schema.getEnumType(enumTypeName.getName());
     }
@@ -61,8 +61,8 @@ public class ClientEdmProvider extends AbstractEdmProvider {
   }
 
   @Override
-  public TypeDefinition getTypeDefinition(final FullQualifiedName typeDefinitionName) throws ODataException {
-    Schema schema = xmlSchemas.get(typeDefinitionName.getNamespace());
+  public CsdlTypeDefinition getTypeDefinition(final FullQualifiedName typeDefinitionName) throws ODataException {
+    CsdlSchema schema = xmlSchemas.get(typeDefinitionName.getNamespace());
     if (schema != null) {
       return schema.getTypeDefinition(typeDefinitionName.getName());
     }
@@ -70,8 +70,8 @@ public class ClientEdmProvider extends AbstractEdmProvider {
   }
 
   @Override
-  public EntityType getEntityType(final FullQualifiedName entityTypeName) throws ODataException {
-    Schema schema = xmlSchemas.get(entityTypeName.getNamespace());
+  public CsdlEntityType getEntityType(final FullQualifiedName entityTypeName) throws ODataException {
+    CsdlSchema schema = xmlSchemas.get(entityTypeName.getNamespace());
     if (schema != null) {
       return schema.getEntityType(entityTypeName.getName());
     }
@@ -79,8 +79,8 @@ public class ClientEdmProvider extends AbstractEdmProvider {
   }
 
   @Override
-  public ComplexType getComplexType(final FullQualifiedName complexTypeName) throws ODataException {
-    Schema schema = xmlSchemas.get(complexTypeName.getNamespace());
+  public CsdlComplexType getComplexType(final FullQualifiedName complexTypeName) throws ODataException {
+    CsdlSchema schema = xmlSchemas.get(complexTypeName.getNamespace());
     if (schema != null) {
       return schema.getComplexType(complexTypeName.getName());
     }
@@ -88,8 +88,8 @@ public class ClientEdmProvider extends AbstractEdmProvider {
   }
 
   @Override
-  public List<Action> getActions(final FullQualifiedName actionName) throws ODataException {
-    Schema schema = xmlSchemas.get(actionName.getNamespace());
+  public List<CsdlAction> getActions(final FullQualifiedName actionName) throws ODataException {
+    CsdlSchema schema = xmlSchemas.get(actionName.getNamespace());
     if (schema != null) {
       return schema.getActions(actionName.getName());
     }
@@ -97,8 +97,8 @@ public class ClientEdmProvider extends AbstractEdmProvider {
   }
 
   @Override
-  public List<Function> getFunctions(final FullQualifiedName functionName) throws ODataException {
-    Schema schema = xmlSchemas.get(functionName.getNamespace());
+  public List<CsdlFunction> getFunctions(final FullQualifiedName functionName) throws ODataException {
+    CsdlSchema schema = xmlSchemas.get(functionName.getNamespace());
     if (schema != null) {
       return schema.getFunctions(functionName.getName());
     }
@@ -106,8 +106,8 @@ public class ClientEdmProvider extends AbstractEdmProvider {
   }
 
   @Override
-  public Term getTerm(final FullQualifiedName termName) throws ODataException {
-    Schema schema = xmlSchemas.get(termName.getNamespace());
+  public CsdlTerm getTerm(final FullQualifiedName termName) throws ODataException {
+    CsdlSchema schema = xmlSchemas.get(termName.getNamespace());
     if (schema != null) {
       return schema.getTerm(termName.getName());
     }
@@ -115,9 +115,9 @@ public class ClientEdmProvider extends AbstractEdmProvider {
   }
 
   @Override
-  public EntitySet getEntitySet(final FullQualifiedName entityContainer, final String entitySetName)
+  public CsdlEntitySet getEntitySet(final FullQualifiedName entityContainer, final String entitySetName)
       throws ODataException {
-    Schema schema = xmlSchemas.get(entityContainer.getNamespace());
+    CsdlSchema schema = xmlSchemas.get(entityContainer.getNamespace());
     if (schema != null) {
       return schema.getEntityContainer().getEntitySet(entitySetName);
     }
@@ -125,9 +125,9 @@ public class ClientEdmProvider extends AbstractEdmProvider {
   }
 
   @Override
-  public Singleton getSingleton(final FullQualifiedName entityContainer, final String singletonName)
+  public CsdlSingleton getSingleton(final FullQualifiedName entityContainer, final String singletonName)
       throws ODataException {
-    Schema schema = xmlSchemas.get(entityContainer.getNamespace());
+    CsdlSchema schema = xmlSchemas.get(entityContainer.getNamespace());
     if (schema != null) {
       return schema.getEntityContainer().getSingleton(singletonName);
     }
@@ -135,9 +135,9 @@ public class ClientEdmProvider extends AbstractEdmProvider {
   }
 
   @Override
-  public ActionImport getActionImport(final FullQualifiedName entityContainer, final String actionImportName)
+  public CsdlActionImport getActionImport(final FullQualifiedName entityContainer, final String actionImportName)
       throws ODataException {
-    Schema schema = xmlSchemas.get(entityContainer.getNamespace());
+    CsdlSchema schema = xmlSchemas.get(entityContainer.getNamespace());
     if (schema != null) {
       return schema.getEntityContainer().getActionImport(actionImportName);
     }
@@ -145,9 +145,9 @@ public class ClientEdmProvider extends AbstractEdmProvider {
   }
 
   @Override
-  public FunctionImport getFunctionImport(final FullQualifiedName entityContainer, final String functionImportName)
+  public CsdlFunctionImport getFunctionImport(final FullQualifiedName entityContainer, final String functionImportName)
       throws ODataException {
-    Schema schema = xmlSchemas.get(entityContainer.getNamespace());
+    CsdlSchema schema = xmlSchemas.get(entityContainer.getNamespace());
     if (schema != null) {
       return schema.getEntityContainer().getFunctionImport(functionImportName);
     }
@@ -155,10 +155,11 @@ public class ClientEdmProvider extends AbstractEdmProvider {
   }
 
   @Override
-  public EntityContainerInfo getEntityContainerInfo(final FullQualifiedName entityContainerName) throws ODataException {
-    for (Schema schema : xmlSchemas.values()) {
+  public CsdlEntityContainerInfo getEntityContainerInfo(final FullQualifiedName entityContainerName)
+          throws ODataException {
+    for (CsdlSchema schema : xmlSchemas.values()) {
       if (schema.getEntityContainer() != null) {
-        return new EntityContainerInfo().setContainerName(entityContainerName).setExtendsContainer(
+        return new CsdlEntityContainerInfo().setContainerName(entityContainerName).setExtendsContainer(
             schema.getEntityContainer().getExtendsContainerFQN());
       }
     }
@@ -166,24 +167,24 @@ public class ClientEdmProvider extends AbstractEdmProvider {
   }
 
   @Override
-  public List<AliasInfo> getAliasInfos() throws ODataException {
-    ArrayList<AliasInfo> aliasInfo = new ArrayList<AliasInfo>();
-    for (Schema schema : xmlSchemas.values()) {
+  public List<CsdlAliasInfo> getAliasInfos() throws ODataException {
+    ArrayList<CsdlAliasInfo> aliasInfo = new ArrayList<CsdlAliasInfo>();
+    for (CsdlSchema schema : xmlSchemas.values()) {
       if (schema.getAlias() != null) {
-        aliasInfo.add(new AliasInfo().setNamespace(schema.getNamespace()).setAlias(schema.getAlias()));
+        aliasInfo.add(new CsdlAliasInfo().setNamespace(schema.getNamespace()).setAlias(schema.getAlias()));
       }
     }
     return aliasInfo;
   }
 
   @Override
-  public List<Schema> getSchemas() throws ODataException {
-    return new ArrayList<Schema>(xmlSchemas.values());
+  public List<CsdlSchema> getSchemas() throws ODataException {
+    return new ArrayList<CsdlSchema>(xmlSchemas.values());
   }
 
   @Override
-  public EntityContainer getEntityContainer() throws ODataException {
-    for (Schema schema : xmlSchemas.values()) {
+  public CsdlEntityContainer getEntityContainer() throws ODataException {
+    for (CsdlSchema schema : xmlSchemas.values()) {
       if (schema.getEntityContainer() != null) {
         return schema.getEntityContainer();
       }
@@ -192,8 +193,8 @@ public class ClientEdmProvider extends AbstractEdmProvider {
   }
 
   @Override
-  public Annotations getAnnotationsGroup(FullQualifiedName targetName) throws ODataException {
-    Schema schema = xmlSchemas.get(targetName.getNamespace());
+  public CsdlAnnotations getAnnotationsGroup(FullQualifiedName targetName) throws ODataException {
+    CsdlSchema schema = xmlSchemas.get(targetName.getNamespace());
     if (schema != null) {
       return schema.getAnnotationGroup(targetName.getName());
     }
@@ -201,8 +202,8 @@ public class ClientEdmProvider extends AbstractEdmProvider {
   }
 
   @Override
-  public Annotatable getAnnoatatable(FullQualifiedName annotatedName) throws ODataException {
-    final Schema schema = xmlSchemas.get(annotatedName.getNamespace());
+  public CsdlAnnotatable getAnnoatatable(FullQualifiedName annotatedName) throws ODataException {
+    final CsdlSchema schema = xmlSchemas.get(annotatedName.getNamespace());
     if (schema != null) {
       return schema.getAnnotatables().get(annotatedName.getName());
     }

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/2318953c/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/ClientXMLMetadata.java
----------------------------------------------------------------------
diff --git a/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/ClientXMLMetadata.java b/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/ClientXMLMetadata.java
index 661750d..96c07c2 100644
--- a/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/ClientXMLMetadata.java
+++ b/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/ClientXMLMetadata.java
@@ -26,13 +26,13 @@ import org.apache.commons.lang3.StringUtils;
 import org.apache.olingo.client.api.edm.xml.Edmx;
 import org.apache.olingo.client.api.edm.xml.Reference;
 import org.apache.olingo.client.api.edm.xml.XMLMetadata;
-import org.apache.olingo.commons.api.edm.provider.AbstractEdmItem;
-import org.apache.olingo.commons.api.edm.provider.Schema;
+import org.apache.olingo.commons.api.edm.provider.CsdlAbstractEdmItem;
+import org.apache.olingo.commons.api.edm.provider.CsdlSchema;
 
 /**
  * Entry point for access information about EDM metadata.
  */
-public class ClientXMLMetadata extends AbstractEdmItem implements XMLMetadata {
+public class ClientXMLMetadata extends CsdlAbstractEdmItem implements XMLMetadata {
 
   private static final long serialVersionUID = 6025723060298454901L;
   protected final Edmx edmx;
@@ -42,24 +42,24 @@ public class ClientXMLMetadata extends AbstractEdmItem implements XMLMetadata {
   }
 
   @Override
-  public List<Schema> getSchemas() {
+  public List<CsdlSchema> getSchemas() {
     return this.edmx.getDataServices().getSchemas();
   }
 
   @Override
-  public Schema getSchema(final int index) {
+  public CsdlSchema getSchema(final int index) {
     return getSchemas().get(index);
   }
 
   @Override
-  public Schema getSchema(final String key) {
+  public CsdlSchema getSchema(final String key) {
     return getSchemaByNsOrAlias().get(key);
   }
 
   @Override
-  public Map<String, Schema> getSchemaByNsOrAlias() {
-    final Map<String, Schema> schemaByNsOrAlias = new HashMap<String, Schema>();
-    for (Schema schema : getSchemas()) {
+  public Map<String, CsdlSchema> getSchemaByNsOrAlias() {
+    final Map<String, CsdlSchema> schemaByNsOrAlias = new HashMap<String, CsdlSchema>();
+    for (CsdlSchema schema : getSchemas()) {
       schemaByNsOrAlias.put(schema.getNamespace(), schema);
       if (StringUtils.isNotBlank(schema.getAlias())) {
         schemaByNsOrAlias.put(schema.getAlias(), schema);

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/2318953c/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/AbstractClientAnnotatableDynamicAnnotationExpression.java
----------------------------------------------------------------------
diff --git a/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/AbstractClientAnnotatableDynamicAnnotationExpression.java b/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/AbstractClientAnnotatableDynamicAnnotationExpression.java
index 614ca1f..052c4c7 100644
--- a/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/AbstractClientAnnotatableDynamicAnnotationExpression.java
+++ b/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/AbstractClientAnnotatableDynamicAnnotationExpression.java
@@ -21,18 +21,18 @@ package org.apache.olingo.client.core.edm.xml;
 import java.util.ArrayList;
 import java.util.List;
 
-import org.apache.olingo.commons.api.edm.provider.Annotatable;
-import org.apache.olingo.commons.api.edm.provider.Annotation;
+import org.apache.olingo.commons.api.edm.provider.CsdlAnnotatable;
+import org.apache.olingo.commons.api.edm.provider.CsdlAnnotation;
 
 abstract class AbstractClientAnnotatableDynamicAnnotationExpression
-        extends AbstractClientDynamicAnnotationExpression implements Annotatable {
+        extends AbstractClientDynamicAnnotationExpression implements CsdlAnnotatable {
 
   private static final long serialVersionUID = -450668773857358139L;
 
-  private final List<Annotation> annotations = new ArrayList<Annotation>();
+  private final List<CsdlAnnotation> annotations = new ArrayList<CsdlAnnotation>();
 
   @Override
-  public List<Annotation> getAnnotations() {
+  public List<CsdlAnnotation> getAnnotations() {
     return annotations;
   }
 }

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/2318953c/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/AbstractClientAnnotationExpression.java
----------------------------------------------------------------------
diff --git a/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/AbstractClientAnnotationExpression.java b/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/AbstractClientAnnotationExpression.java
index 4bc802f..bcdaf40 100644
--- a/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/AbstractClientAnnotationExpression.java
+++ b/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/AbstractClientAnnotationExpression.java
@@ -18,12 +18,12 @@
  */
 package org.apache.olingo.client.core.edm.xml;
 
-import org.apache.olingo.commons.api.edm.provider.AbstractEdmItem;
+import org.apache.olingo.commons.api.edm.provider.CsdlAbstractEdmItem;
 import org.apache.olingo.commons.api.edm.provider.annotation.AnnotationExpression;
 import org.apache.olingo.commons.api.edm.provider.annotation.ConstantAnnotationExpression;
 import org.apache.olingo.commons.api.edm.provider.annotation.DynamicAnnotationExpression;
 
-abstract class AbstractClientAnnotationExpression extends AbstractEdmItem implements AnnotationExpression {
+abstract class AbstractClientAnnotationExpression extends CsdlAbstractEdmItem implements AnnotationExpression {
 
   private static final long serialVersionUID = -4238652997159205377L;
 

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/2318953c/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/ClientAction.java
----------------------------------------------------------------------
diff --git a/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/ClientAction.java b/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/ClientAction.java
index ceedc25..af274c5 100644
--- a/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/ClientAction.java
+++ b/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/ClientAction.java
@@ -22,14 +22,14 @@ import com.fasterxml.jackson.core.JsonParser;
 import com.fasterxml.jackson.core.JsonToken;
 import com.fasterxml.jackson.databind.DeserializationContext;
 import org.apache.commons.lang3.BooleanUtils;
-import org.apache.olingo.commons.api.edm.provider.Action;
+import org.apache.olingo.commons.api.edm.provider.CsdlAction;
 
 import com.fasterxml.jackson.databind.annotation.JsonDeserialize;
 
 import java.io.IOException;
 
 @JsonDeserialize(using = ClientAction.ActionDeserializer.class)
-class ClientAction extends  Action {
+class ClientAction extends CsdlAction {
 
   private static final long serialVersionUID = 5321541275349234088L;
 

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/2318953c/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/ClientActionImport.java
----------------------------------------------------------------------
diff --git a/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/ClientActionImport.java b/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/ClientActionImport.java
index 4be6305..2419332 100644
--- a/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/ClientActionImport.java
+++ b/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/ClientActionImport.java
@@ -22,12 +22,12 @@ import com.fasterxml.jackson.core.JsonParser;
 import com.fasterxml.jackson.core.JsonToken;
 import com.fasterxml.jackson.databind.DeserializationContext;
 import com.fasterxml.jackson.databind.annotation.JsonDeserialize;
-import org.apache.olingo.commons.api.edm.provider.ActionImport;
+import org.apache.olingo.commons.api.edm.provider.CsdlActionImport;
 
 import java.io.IOException;
 
 @JsonDeserialize(using = ClientActionImport.ActionImportDeserializer.class)
-class ClientActionImport extends ActionImport {
+class ClientActionImport extends CsdlActionImport {
 
   private static final long serialVersionUID = 2971468441177647068L;
 

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/2318953c/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/ClientAnnotation.java
----------------------------------------------------------------------
diff --git a/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/ClientAnnotation.java b/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/ClientAnnotation.java
index cb27d0b..a8a978a 100644
--- a/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/ClientAnnotation.java
+++ b/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/ClientAnnotation.java
@@ -23,19 +23,19 @@ import java.io.IOException;
 import com.fasterxml.jackson.core.JsonParser;
 import com.fasterxml.jackson.core.JsonToken;
 import com.fasterxml.jackson.databind.DeserializationContext;
-import org.apache.olingo.commons.api.edm.provider.Annotation;
+import org.apache.olingo.commons.api.edm.provider.CsdlAnnotation;
 
 import com.fasterxml.jackson.databind.annotation.JsonDeserialize;
 
 @JsonDeserialize(using = ClientAnnotation.AnnotationDeserializer.class)
-class ClientAnnotation extends Annotation {
+class ClientAnnotation extends CsdlAnnotation {
 
   private static final long serialVersionUID = 5464714417411058033L;
 
-  static class AnnotationDeserializer extends AbstractClientEdmDeserializer<Annotation> {
+  static class AnnotationDeserializer extends AbstractClientEdmDeserializer<CsdlAnnotation> {
 
     @Override
-    protected Annotation doDeserialize(final JsonParser jp, final DeserializationContext ctxt)
+    protected CsdlAnnotation doDeserialize(final JsonParser jp, final DeserializationContext ctxt)
             throws IOException {
 
       final ClientAnnotation annotation = new ClientAnnotation();

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/2318953c/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/ClientAnnotations.java
----------------------------------------------------------------------
diff --git a/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/ClientAnnotations.java b/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/ClientAnnotations.java
index 561fcfd..d395706 100644
--- a/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/ClientAnnotations.java
+++ b/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/ClientAnnotations.java
@@ -21,14 +21,14 @@ package org.apache.olingo.client.core.edm.xml;
 import com.fasterxml.jackson.core.JsonParser;
 import com.fasterxml.jackson.core.JsonToken;
 import com.fasterxml.jackson.databind.DeserializationContext;
-import org.apache.olingo.commons.api.edm.provider.Annotations;
+import org.apache.olingo.commons.api.edm.provider.CsdlAnnotations;
 
 import com.fasterxml.jackson.databind.annotation.JsonDeserialize;
 
 import java.io.IOException;
 
 @JsonDeserialize(using = ClientAnnotations.AnnotationsDeserializer.class)
-class ClientAnnotations extends Annotations {
+class ClientAnnotations extends CsdlAnnotations {
 
   private static final long serialVersionUID = -5961207981571644200L;
 

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/2318953c/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/ClientComplexType.java
----------------------------------------------------------------------
diff --git a/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/ClientComplexType.java b/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/ClientComplexType.java
index 875b56f..1f6e6de 100644
--- a/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/ClientComplexType.java
+++ b/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/ClientComplexType.java
@@ -22,21 +22,21 @@ import com.fasterxml.jackson.core.JsonParser;
 import com.fasterxml.jackson.core.JsonToken;
 import com.fasterxml.jackson.databind.DeserializationContext;
 import org.apache.commons.lang3.BooleanUtils;
-import org.apache.olingo.commons.api.edm.provider.ComplexType;
+import org.apache.olingo.commons.api.edm.provider.CsdlComplexType;
 
 import com.fasterxml.jackson.databind.annotation.JsonDeserialize;
 
 import java.io.IOException;
 
 @JsonDeserialize(using = ClientComplexType.ComplexTypeDeserializer.class)
-class ClientComplexType extends ComplexType {
+class ClientComplexType extends CsdlComplexType {
 
   private static final long serialVersionUID = 4076944306925840115L;
 
-  static class ComplexTypeDeserializer extends AbstractClientEdmDeserializer<ComplexType> {
+  static class ComplexTypeDeserializer extends AbstractClientEdmDeserializer<CsdlComplexType> {
 
     @Override
-    protected ComplexType doDeserialize(final JsonParser jp, final DeserializationContext ctxt)
+    protected CsdlComplexType doDeserialize(final JsonParser jp, final DeserializationContext ctxt)
             throws IOException {
 
       final ClientComplexType complexType = new ClientComplexType();

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/2318953c/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/ClientDataServices.java
----------------------------------------------------------------------
diff --git a/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/ClientDataServices.java b/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/ClientDataServices.java
index 3292b34..d4a4406 100644
--- a/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/ClientDataServices.java
+++ b/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/ClientDataServices.java
@@ -26,17 +26,17 @@ import com.fasterxml.jackson.core.JsonParser;
 import com.fasterxml.jackson.core.JsonToken;
 import com.fasterxml.jackson.databind.DeserializationContext;
 import org.apache.olingo.client.api.edm.xml.DataServices;
-import org.apache.olingo.commons.api.edm.provider.AbstractEdmItem;
-import org.apache.olingo.commons.api.edm.provider.Schema;
+import org.apache.olingo.commons.api.edm.provider.CsdlAbstractEdmItem;
+import org.apache.olingo.commons.api.edm.provider.CsdlSchema;
 
 import com.fasterxml.jackson.databind.annotation.JsonDeserialize;
 
 @JsonDeserialize(using = ClientDataServices.DataServicesDeserializer.class)
-class ClientDataServices extends AbstractEdmItem implements DataServices {
+class ClientDataServices extends CsdlAbstractEdmItem implements DataServices {
 
   private static final long serialVersionUID = 4200317286476885204L;
 
-  private final List<Schema> schemas = new ArrayList<Schema>();
+  private final List<CsdlSchema> schemas = new ArrayList<CsdlSchema>();
   
   private String dataServiceVersion;
 
@@ -61,7 +61,7 @@ class ClientDataServices extends AbstractEdmItem implements DataServices {
   }
 
   @Override
-  public List<Schema> getSchemas() {
+  public List<CsdlSchema> getSchemas() {
     return schemas;
   }
 

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/2318953c/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/ClientEdmx.java
----------------------------------------------------------------------
diff --git a/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/ClientEdmx.java b/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/ClientEdmx.java
index 29a399c..736030b 100644
--- a/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/ClientEdmx.java
+++ b/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/ClientEdmx.java
@@ -28,12 +28,12 @@ import com.fasterxml.jackson.databind.DeserializationContext;
 import org.apache.olingo.client.api.edm.xml.DataServices;
 import org.apache.olingo.client.api.edm.xml.Edmx;
 import org.apache.olingo.client.api.edm.xml.Reference;
-import org.apache.olingo.commons.api.edm.provider.AbstractEdmItem;
+import org.apache.olingo.commons.api.edm.provider.CsdlAbstractEdmItem;
 
 import com.fasterxml.jackson.databind.annotation.JsonDeserialize;
 
 @JsonDeserialize(using = ClientEdmx.EdmxDeserializer.class)
-public class ClientEdmx extends AbstractEdmItem implements Edmx {
+public class ClientEdmx extends CsdlAbstractEdmItem implements Edmx {
 
   private static final long serialVersionUID = -6293476719276092572L;
 

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/2318953c/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/ClientEntityContainer.java
----------------------------------------------------------------------
diff --git a/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/ClientEntityContainer.java b/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/ClientEntityContainer.java
index 6efbf34..2109cee 100644
--- a/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/ClientEntityContainer.java
+++ b/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/ClientEntityContainer.java
@@ -21,14 +21,14 @@ package org.apache.olingo.client.core.edm.xml;
 import com.fasterxml.jackson.core.JsonParser;
 import com.fasterxml.jackson.core.JsonToken;
 import com.fasterxml.jackson.databind.DeserializationContext;
-import org.apache.olingo.commons.api.edm.provider.EntityContainer;
+import org.apache.olingo.commons.api.edm.provider.CsdlEntityContainer;
 
 import com.fasterxml.jackson.databind.annotation.JsonDeserialize;
 
 import java.io.IOException;
 
 @JsonDeserialize(using = ClientEntityContainer.EntityContainerDeserializer.class)
-class ClientEntityContainer extends EntityContainer {
+class ClientEntityContainer extends CsdlEntityContainer {
 
   private static final long serialVersionUID = 5631432527646955795L;
 

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/2318953c/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/ClientEntityKey.java
----------------------------------------------------------------------
diff --git a/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/ClientEntityKey.java b/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/ClientEntityKey.java
index 6e2a137..6b9e230 100644
--- a/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/ClientEntityKey.java
+++ b/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/ClientEntityKey.java
@@ -25,19 +25,19 @@ import java.util.List;
 import com.fasterxml.jackson.core.JsonParser;
 import com.fasterxml.jackson.core.JsonToken;
 import com.fasterxml.jackson.databind.DeserializationContext;
-import org.apache.olingo.commons.api.edm.provider.AbstractEdmItem;
-import org.apache.olingo.commons.api.edm.provider.PropertyRef;
+import org.apache.olingo.commons.api.edm.provider.CsdlAbstractEdmItem;
+import org.apache.olingo.commons.api.edm.provider.CsdlPropertyRef;
 
 import com.fasterxml.jackson.databind.annotation.JsonDeserialize;
 
 @JsonDeserialize(using = ClientEntityKey.EntityKeyDeserializer.class)
-class ClientEntityKey extends AbstractEdmItem {
+class ClientEntityKey extends CsdlAbstractEdmItem {
 
   private static final long serialVersionUID = 520227585458843347L;
 
-  private final List<PropertyRef> propertyRefs = new ArrayList<PropertyRef>();
+  private final List<CsdlPropertyRef> propertyRefs = new ArrayList<CsdlPropertyRef>();
 
-  public List<PropertyRef> getPropertyRefs() {
+  public List<CsdlPropertyRef> getPropertyRefs() {
     return propertyRefs;
   }
 

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/2318953c/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/ClientEntitySet.java
----------------------------------------------------------------------
diff --git a/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/ClientEntitySet.java b/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/ClientEntitySet.java
index 11d3cde..ca358cb 100644
--- a/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/ClientEntitySet.java
+++ b/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/ClientEntitySet.java
@@ -22,20 +22,20 @@ import com.fasterxml.jackson.core.JsonParser;
 import com.fasterxml.jackson.core.JsonToken;
 import com.fasterxml.jackson.databind.DeserializationContext;
 import org.apache.commons.lang3.BooleanUtils;
-import org.apache.olingo.commons.api.edm.provider.EntitySet;
+import org.apache.olingo.commons.api.edm.provider.CsdlEntitySet;
 
 import com.fasterxml.jackson.databind.annotation.JsonDeserialize;
 
 import java.io.IOException;
 
 @JsonDeserialize(using = ClientEntitySet.EntitySetDeserializer.class)
-class ClientEntitySet extends EntitySet {
+class ClientEntitySet extends CsdlEntitySet {
 
   private static final long serialVersionUID = -5553885465204370676L;
 
-  static class EntitySetDeserializer extends AbstractClientEdmDeserializer<EntitySet> {
+  static class EntitySetDeserializer extends AbstractClientEdmDeserializer<CsdlEntitySet> {
     @Override
-    protected EntitySet doDeserialize(final JsonParser jp, final DeserializationContext ctxt)
+    protected CsdlEntitySet doDeserialize(final JsonParser jp, final DeserializationContext ctxt)
             throws IOException {
 
       final ClientEntitySet entitySet = new ClientEntitySet();

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/2318953c/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/ClientEntityType.java
----------------------------------------------------------------------
diff --git a/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/ClientEntityType.java b/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/ClientEntityType.java
index 4e1e7eb..ceef35e 100644
--- a/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/ClientEntityType.java
+++ b/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/ClientEntityType.java
@@ -22,20 +22,20 @@ import com.fasterxml.jackson.core.JsonParser;
 import com.fasterxml.jackson.core.JsonToken;
 import com.fasterxml.jackson.databind.DeserializationContext;
 import org.apache.commons.lang3.BooleanUtils;
-import org.apache.olingo.commons.api.edm.provider.EntityType;
+import org.apache.olingo.commons.api.edm.provider.CsdlEntityType;
 
 import com.fasterxml.jackson.databind.annotation.JsonDeserialize;
 
 import java.io.IOException;
 
 @JsonDeserialize(using = ClientEntityType.EntityTypeDeserializer.class)
-class ClientEntityType extends EntityType {
+class ClientEntityType extends CsdlEntityType {
 
   private static final long serialVersionUID = -3986417775876689669L;
 
-  static class EntityTypeDeserializer extends AbstractClientEdmDeserializer<EntityType> {
+  static class EntityTypeDeserializer extends AbstractClientEdmDeserializer<CsdlEntityType> {
     @Override
-    protected EntityType doDeserialize(final JsonParser jp, final DeserializationContext ctxt)
+    protected CsdlEntityType doDeserialize(final JsonParser jp, final DeserializationContext ctxt)
             throws IOException {
 
       final ClientEntityType entityType = new ClientEntityType();

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/2318953c/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/ClientEnumMember.java
----------------------------------------------------------------------
diff --git a/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/ClientEnumMember.java b/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/ClientEnumMember.java
index 603e7fe..b72e2df 100644
--- a/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/ClientEnumMember.java
+++ b/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/ClientEnumMember.java
@@ -22,21 +22,21 @@ import com.fasterxml.jackson.core.JsonParser;
 import com.fasterxml.jackson.core.JsonToken;
 import com.fasterxml.jackson.databind.DeserializationContext;
 import com.fasterxml.jackson.databind.annotation.JsonDeserialize;
-import org.apache.olingo.commons.api.edm.provider.EnumMember;
+import org.apache.olingo.commons.api.edm.provider.CsdlEnumMember;
 
 import java.io.IOException;
 
 @JsonDeserialize(using = ClientEnumMember.EnumMemberDeserializer.class)
-class ClientEnumMember extends EnumMember {
+class ClientEnumMember extends CsdlEnumMember {
 
   private static final long serialVersionUID = -6138606817225829791L;
 
-  static class EnumMemberDeserializer extends AbstractClientEdmDeserializer<EnumMember> {
+  static class EnumMemberDeserializer extends AbstractClientEdmDeserializer<CsdlEnumMember> {
     @Override
-    protected EnumMember doDeserialize(final JsonParser jp, final DeserializationContext ctxt)
+    protected CsdlEnumMember doDeserialize(final JsonParser jp, final DeserializationContext ctxt)
             throws IOException {
 
-      final EnumMember member = new EnumMember();
+      final CsdlEnumMember member = new CsdlEnumMember();
 
       for (; jp.getCurrentToken() != JsonToken.END_OBJECT; jp.nextToken()) {
         final JsonToken token = jp.getCurrentToken();

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/2318953c/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/ClientEnumType.java
----------------------------------------------------------------------
diff --git a/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/ClientEnumType.java b/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/ClientEnumType.java
index 4abaebb..e64f1c8 100644
--- a/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/ClientEnumType.java
+++ b/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/ClientEnumType.java
@@ -22,14 +22,14 @@ import com.fasterxml.jackson.core.JsonParser;
 import com.fasterxml.jackson.core.JsonToken;
 import com.fasterxml.jackson.databind.DeserializationContext;
 import org.apache.commons.lang3.BooleanUtils;
-import org.apache.olingo.commons.api.edm.provider.EnumType;
+import org.apache.olingo.commons.api.edm.provider.CsdlEnumType;
 
 import com.fasterxml.jackson.databind.annotation.JsonDeserialize;
 
 import java.io.IOException;
 
 @JsonDeserialize(using = ClientEnumType.EnumTypeDeserializer.class)
-class ClientEnumType extends EnumType {
+class ClientEnumType extends CsdlEnumType {
 
   private static final long serialVersionUID = 9191189755592743333L;
 

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/2318953c/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/ClientFunction.java
----------------------------------------------------------------------
diff --git a/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/ClientFunction.java b/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/ClientFunction.java
index 7901399..c07b37e 100644
--- a/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/ClientFunction.java
+++ b/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/ClientFunction.java
@@ -22,14 +22,14 @@ import com.fasterxml.jackson.core.JsonParser;
 import com.fasterxml.jackson.core.JsonToken;
 import com.fasterxml.jackson.databind.DeserializationContext;
 import org.apache.commons.lang3.BooleanUtils;
-import org.apache.olingo.commons.api.edm.provider.Function;
+import org.apache.olingo.commons.api.edm.provider.CsdlFunction;
 
 import com.fasterxml.jackson.databind.annotation.JsonDeserialize;
 
 import java.io.IOException;
 
 @JsonDeserialize(using = ClientFunction.FunctionDeserializer.class)
-class ClientFunction extends Function {
+class ClientFunction extends CsdlFunction {
 
   private static final long serialVersionUID = -5494898295282843362L;
 

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/2318953c/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/ClientFunctionImport.java
----------------------------------------------------------------------
diff --git a/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/ClientFunctionImport.java b/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/ClientFunctionImport.java
index 86bce9c..25c3a91 100644
--- a/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/ClientFunctionImport.java
+++ b/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/ClientFunctionImport.java
@@ -22,14 +22,14 @@ import com.fasterxml.jackson.core.JsonParser;
 import com.fasterxml.jackson.core.JsonToken;
 import com.fasterxml.jackson.databind.DeserializationContext;
 import org.apache.commons.lang3.BooleanUtils;
-import org.apache.olingo.commons.api.edm.provider.FunctionImport;
+import org.apache.olingo.commons.api.edm.provider.CsdlFunctionImport;
 
 import com.fasterxml.jackson.databind.annotation.JsonDeserialize;
 
 import java.io.IOException;
 
 @JsonDeserialize(using = ClientFunctionImport.FunctionImportDeserializer.class)
-class ClientFunctionImport extends FunctionImport {
+class ClientFunctionImport extends CsdlFunctionImport {
 
   private static final long serialVersionUID = -1686801084142932402L;
 

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/2318953c/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/ClientInclude.java
----------------------------------------------------------------------
diff --git a/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/ClientInclude.java b/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/ClientInclude.java
index 4bc8075..fafd3a4 100644
--- a/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/ClientInclude.java
+++ b/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/ClientInclude.java
@@ -23,12 +23,12 @@ import com.fasterxml.jackson.core.JsonToken;
 import com.fasterxml.jackson.databind.DeserializationContext;
 import com.fasterxml.jackson.databind.annotation.JsonDeserialize;
 import org.apache.olingo.client.api.edm.xml.Include;
-import org.apache.olingo.commons.api.edm.provider.AbstractEdmItem;
+import org.apache.olingo.commons.api.edm.provider.CsdlAbstractEdmItem;
 
 import java.io.IOException;
 
 @JsonDeserialize(using = ClientInclude.IncludeDeserializer.class)
-class ClientInclude extends AbstractEdmItem implements Include {
+class ClientInclude extends CsdlAbstractEdmItem implements Include {
 
   private static final long serialVersionUID = -5450008299655584221L;
 

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/2318953c/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/ClientIncludeAnnotations.java
----------------------------------------------------------------------
diff --git a/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/ClientIncludeAnnotations.java b/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/ClientIncludeAnnotations.java
index 30ddccc..3617c65 100644
--- a/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/ClientIncludeAnnotations.java
+++ b/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/ClientIncludeAnnotations.java
@@ -23,12 +23,12 @@ import com.fasterxml.jackson.core.JsonToken;
 import com.fasterxml.jackson.databind.DeserializationContext;
 import com.fasterxml.jackson.databind.annotation.JsonDeserialize;
 import org.apache.olingo.client.api.edm.xml.IncludeAnnotations;
-import org.apache.olingo.commons.api.edm.provider.AbstractEdmItem;
+import org.apache.olingo.commons.api.edm.provider.CsdlAbstractEdmItem;
 
 import java.io.IOException;
 
 @JsonDeserialize(using = ClientIncludeAnnotations.IncludeAnnotationsDeserializer.class)
-class ClientIncludeAnnotations extends AbstractEdmItem implements IncludeAnnotations {
+class ClientIncludeAnnotations extends CsdlAbstractEdmItem implements IncludeAnnotations {
 
   private static final long serialVersionUID = -8157841387011422396L;
 

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/2318953c/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/ClientNavigationProperty.java
----------------------------------------------------------------------
diff --git a/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/ClientNavigationProperty.java b/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/ClientNavigationProperty.java
index 2c561c7..5b0af33 100644
--- a/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/ClientNavigationProperty.java
+++ b/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/ClientNavigationProperty.java
@@ -22,24 +22,24 @@ import com.fasterxml.jackson.core.JsonParser;
 import com.fasterxml.jackson.core.JsonToken;
 import com.fasterxml.jackson.databind.DeserializationContext;
 import org.apache.commons.lang3.BooleanUtils;
-import org.apache.olingo.commons.api.edm.provider.NavigationProperty;
+import org.apache.olingo.commons.api.edm.provider.CsdlNavigationProperty;
 
 import com.fasterxml.jackson.databind.annotation.JsonDeserialize;
 
 import java.io.IOException;
 
 @JsonDeserialize(using = ClientNavigationProperty.NavigationPropertyDeserializer.class)
-class ClientNavigationProperty extends NavigationProperty {
+class ClientNavigationProperty extends CsdlNavigationProperty {
 
   private static final long serialVersionUID = 6240231735592427582L;
 
-  static class NavigationPropertyDeserializer extends AbstractClientEdmDeserializer<NavigationProperty> {
+  static class NavigationPropertyDeserializer extends AbstractClientEdmDeserializer<CsdlNavigationProperty> {
 
     @Override
-    protected NavigationProperty doDeserialize(final JsonParser jp, final DeserializationContext ctxt)
+    protected CsdlNavigationProperty doDeserialize(final JsonParser jp, final DeserializationContext ctxt)
             throws IOException {
 
-      final NavigationProperty property = new ClientNavigationProperty();
+      final CsdlNavigationProperty property = new ClientNavigationProperty();
 
       for (; jp.getCurrentToken() != JsonToken.END_OBJECT; jp.nextToken()) {
         final JsonToken token = jp.getCurrentToken();

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/2318953c/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/ClientNavigationPropertyBinding.java
----------------------------------------------------------------------
diff --git a/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/ClientNavigationPropertyBinding.java b/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/ClientNavigationPropertyBinding.java
index fffe729..250c769 100644
--- a/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/ClientNavigationPropertyBinding.java
+++ b/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/ClientNavigationPropertyBinding.java
@@ -22,30 +22,31 @@ import com.fasterxml.jackson.core.JsonParser;
 import com.fasterxml.jackson.core.JsonToken;
 import com.fasterxml.jackson.databind.DeserializationContext;
 import com.fasterxml.jackson.databind.annotation.JsonDeserialize;
-import org.apache.olingo.commons.api.edm.provider.NavigationPropertyBinding;
+import org.apache.olingo.commons.api.edm.provider.CsdlNavigationPropertyBinding;
 
 import java.io.IOException;
 
 @JsonDeserialize(using = ClientNavigationPropertyBinding.NavigationPropertyBindingDeserializer.class)
-class ClientNavigationPropertyBinding extends NavigationPropertyBinding {
+class ClientNavigationPropertyBinding extends CsdlNavigationPropertyBinding {
 
   private static final long serialVersionUID = -7056978592235483660L;
 
   @Override
-  public NavigationPropertyBinding setPath(final String path) {
+  public CsdlNavigationPropertyBinding setPath(final String path) {
     super.setPath(path);
     return this;
   }
 
   @Override
-  public NavigationPropertyBinding setTarget(final String target) {
+  public CsdlNavigationPropertyBinding setTarget(final String target) {
     super.setTarget(target);
     return this;
   }
 
-  static class NavigationPropertyBindingDeserializer extends AbstractClientEdmDeserializer<NavigationPropertyBinding> {
+  static class NavigationPropertyBindingDeserializer extends
+          AbstractClientEdmDeserializer<CsdlNavigationPropertyBinding> {
     @Override
-    protected NavigationPropertyBinding doDeserialize(final JsonParser jp, final DeserializationContext ctxt)
+    protected CsdlNavigationPropertyBinding doDeserialize(final JsonParser jp, final DeserializationContext ctxt)
             throws IOException {
 
       final ClientNavigationPropertyBinding member = new ClientNavigationPropertyBinding();

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/2318953c/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/ClientOnDelete.java
----------------------------------------------------------------------
diff --git a/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/ClientOnDelete.java b/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/ClientOnDelete.java
index bd38595..489326d 100644
--- a/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/ClientOnDelete.java
+++ b/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/ClientOnDelete.java
@@ -22,28 +22,28 @@ import com.fasterxml.jackson.core.JsonParser;
 import com.fasterxml.jackson.core.JsonToken;
 import com.fasterxml.jackson.databind.DeserializationContext;
 import com.fasterxml.jackson.databind.annotation.JsonDeserialize;
-import org.apache.olingo.commons.api.edm.provider.OnDelete;
-import org.apache.olingo.commons.api.edm.provider.OnDeleteAction;
+import org.apache.olingo.commons.api.edm.provider.CsdlOnDelete;
+import org.apache.olingo.commons.api.edm.provider.CsdlOnDeleteAction;
 
 import java.io.IOException;
 
 @JsonDeserialize(using = ClientOnDelete.OnDeleteDeserializer.class)
-class ClientOnDelete extends OnDelete {
+class ClientOnDelete extends CsdlOnDelete {
 
   private static final long serialVersionUID = -7130889202653716784L;
 
-  static class OnDeleteDeserializer extends AbstractClientEdmDeserializer<OnDelete> {
+  static class OnDeleteDeserializer extends AbstractClientEdmDeserializer<CsdlOnDelete> {
     @Override
-    protected OnDelete doDeserialize(final JsonParser jp, final DeserializationContext ctxt)
+    protected CsdlOnDelete doDeserialize(final JsonParser jp, final DeserializationContext ctxt)
             throws IOException {
 
-      final OnDelete ondelete = new ClientOnDelete();
+      final CsdlOnDelete ondelete = new ClientOnDelete();
 
       for (; jp.getCurrentToken() != JsonToken.END_OBJECT; jp.nextToken()) {
         final JsonToken token = jp.getCurrentToken();
         if (token == JsonToken.FIELD_NAME) {
           if ("Action".equals(jp.getCurrentName())) {
-            OnDeleteAction action = OnDeleteAction.valueOf(jp.nextTextValue());
+            CsdlOnDeleteAction action = CsdlOnDeleteAction.valueOf(jp.nextTextValue());
             ondelete.setAction(action);
           }
         }

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/2318953c/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/ClientParameter.java
----------------------------------------------------------------------
diff --git a/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/ClientParameter.java b/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/ClientParameter.java
index be2ecea..24e8650 100644
--- a/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/ClientParameter.java
+++ b/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/ClientParameter.java
@@ -23,14 +23,14 @@ import com.fasterxml.jackson.core.JsonToken;
 import com.fasterxml.jackson.databind.DeserializationContext;
 import org.apache.commons.lang3.BooleanUtils;
 import org.apache.olingo.commons.api.edm.geo.SRID;
-import org.apache.olingo.commons.api.edm.provider.Parameter;
+import org.apache.olingo.commons.api.edm.provider.CsdlParameter;
 
 import com.fasterxml.jackson.databind.annotation.JsonDeserialize;
 
 import java.io.IOException;
 
 @JsonDeserialize(using = ClientParameter.ParameterDeserializer.class)
-class ClientParameter extends Parameter {
+class ClientParameter extends CsdlParameter {
 
   private static final long serialVersionUID = 7119478691341167904L;
 

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/2318953c/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/ClientProperty.java
----------------------------------------------------------------------
diff --git a/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/ClientProperty.java b/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/ClientProperty.java
index 7389d67..d753fd4 100644
--- a/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/ClientProperty.java
+++ b/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/ClientProperty.java
@@ -23,14 +23,14 @@ import com.fasterxml.jackson.core.JsonToken;
 import com.fasterxml.jackson.databind.DeserializationContext;
 import org.apache.commons.lang3.BooleanUtils;
 import org.apache.olingo.commons.api.edm.geo.SRID;
-import org.apache.olingo.commons.api.edm.provider.Property;
+import org.apache.olingo.commons.api.edm.provider.CsdlProperty;
 
 import com.fasterxml.jackson.databind.annotation.JsonDeserialize;
 
 import java.io.IOException;
 
 @JsonDeserialize(using = ClientProperty.PropertyDeserializer.class)
-class ClientProperty extends Property {
+class ClientProperty extends CsdlProperty {
 
   private static final long serialVersionUID = -4521766603286651372L;
 

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/2318953c/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/ClientPropertyRef.java
----------------------------------------------------------------------
diff --git a/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/ClientPropertyRef.java b/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/ClientPropertyRef.java
index 3f1c8e3..17bdc33 100644
--- a/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/ClientPropertyRef.java
+++ b/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/ClientPropertyRef.java
@@ -22,21 +22,21 @@ import com.fasterxml.jackson.core.JsonParser;
 import com.fasterxml.jackson.core.JsonToken;
 import com.fasterxml.jackson.databind.DeserializationContext;
 import com.fasterxml.jackson.databind.annotation.JsonDeserialize;
-import org.apache.olingo.commons.api.edm.provider.PropertyRef;
+import org.apache.olingo.commons.api.edm.provider.CsdlPropertyRef;
 
 import java.io.IOException;
 
 @JsonDeserialize(using = ClientPropertyRef.PropertyRefDeserializer.class)
-class ClientPropertyRef extends PropertyRef {
+class ClientPropertyRef extends CsdlPropertyRef {
 
   private static final long serialVersionUID = 1504095609268590326L;
 
-  static class PropertyRefDeserializer extends AbstractClientEdmDeserializer<PropertyRef> {
+  static class PropertyRefDeserializer extends AbstractClientEdmDeserializer<CsdlPropertyRef> {
     @Override
-    protected PropertyRef doDeserialize(final JsonParser jp, final DeserializationContext ctxt)
+    protected CsdlPropertyRef doDeserialize(final JsonParser jp, final DeserializationContext ctxt)
             throws IOException {
 
-      final PropertyRef propertyRef = new ClientPropertyRef();
+      final CsdlPropertyRef propertyRef = new ClientPropertyRef();
 
       for (; jp.getCurrentToken() != JsonToken.END_OBJECT; jp.nextToken()) {
         final JsonToken token = jp.getCurrentToken();

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/2318953c/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/ClientReference.java
----------------------------------------------------------------------
diff --git a/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/ClientReference.java b/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/ClientReference.java
index a172405..36b43d6 100644
--- a/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/ClientReference.java
+++ b/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/ClientReference.java
@@ -29,23 +29,23 @@ import com.fasterxml.jackson.databind.DeserializationContext;
 import org.apache.olingo.client.api.edm.xml.Include;
 import org.apache.olingo.client.api.edm.xml.IncludeAnnotations;
 import org.apache.olingo.client.api.edm.xml.Reference;
-import org.apache.olingo.commons.api.edm.provider.AbstractEdmItem;
-import org.apache.olingo.commons.api.edm.provider.Annotation;
+import org.apache.olingo.commons.api.edm.provider.CsdlAbstractEdmItem;
+import org.apache.olingo.commons.api.edm.provider.CsdlAnnotation;
 
 import com.fasterxml.jackson.databind.annotation.JsonDeserialize;
 
 @JsonDeserialize(using = ClientReference.ReferenceDeserializer.class)
-class ClientReference extends AbstractEdmItem implements Reference {
+class ClientReference extends CsdlAbstractEdmItem implements Reference {
 
   private static final long serialVersionUID = 7720274712545267654L;
 
   private URI uri;
   private final List<Include> includes = new ArrayList<Include>();
   private final List<IncludeAnnotations> includeAnnotations = new ArrayList<IncludeAnnotations>();
-  private final List<Annotation> annotations = new ArrayList<Annotation>();
+  private final List<CsdlAnnotation> annotations = new ArrayList<CsdlAnnotation>();
 
   @Override
-  public List<Annotation> getAnnotations() {
+  public List<CsdlAnnotation> getAnnotations() {
     return annotations;
   }
   

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/2318953c/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/ClientReferentialConstraint.java
----------------------------------------------------------------------
diff --git a/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/ClientReferentialConstraint.java b/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/ClientReferentialConstraint.java
index 04b554d..e613563 100644
--- a/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/ClientReferentialConstraint.java
+++ b/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/ClientReferentialConstraint.java
@@ -22,21 +22,21 @@ import com.fasterxml.jackson.core.JsonParser;
 import com.fasterxml.jackson.core.JsonToken;
 import com.fasterxml.jackson.databind.DeserializationContext;
 import com.fasterxml.jackson.databind.annotation.JsonDeserialize;
-import org.apache.olingo.commons.api.edm.provider.ReferentialConstraint;
+import org.apache.olingo.commons.api.edm.provider.CsdlReferentialConstraint;
 
 import java.io.IOException;
 
 @JsonDeserialize(using = ClientReferentialConstraint.ReferentialConstraintDeserializer.class)
-class ClientReferentialConstraint extends ReferentialConstraint {
+class ClientReferentialConstraint extends CsdlReferentialConstraint {
 
   private static final long serialVersionUID = -5822115908069878139L;
 
-  static class ReferentialConstraintDeserializer extends AbstractClientEdmDeserializer<ReferentialConstraint> {
+  static class ReferentialConstraintDeserializer extends AbstractClientEdmDeserializer<CsdlReferentialConstraint> {
     @Override
-    protected ReferentialConstraint doDeserialize(final JsonParser jp, final DeserializationContext ctxt)
+    protected CsdlReferentialConstraint doDeserialize(final JsonParser jp, final DeserializationContext ctxt)
             throws IOException {
 
-      final ReferentialConstraint refConst = new ClientReferentialConstraint();
+      final CsdlReferentialConstraint refConst = new ClientReferentialConstraint();
 
       for (; jp.getCurrentToken() != JsonToken.END_OBJECT; jp.nextToken()) {
         final JsonToken token = jp.getCurrentToken();

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/2318953c/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/ClientReturnType.java
----------------------------------------------------------------------
diff --git a/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/ClientReturnType.java b/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/ClientReturnType.java
index 987d374..72db23f 100644
--- a/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/ClientReturnType.java
+++ b/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/ClientReturnType.java
@@ -23,14 +23,14 @@ import com.fasterxml.jackson.core.JsonToken;
 import com.fasterxml.jackson.databind.DeserializationContext;
 import org.apache.commons.lang3.BooleanUtils;
 import org.apache.olingo.commons.api.edm.geo.SRID;
-import org.apache.olingo.commons.api.edm.provider.ReturnType;
+import org.apache.olingo.commons.api.edm.provider.CsdlReturnType;
 
 import com.fasterxml.jackson.databind.annotation.JsonDeserialize;
 
 import java.io.IOException;
 
 @JsonDeserialize(using = ClientReturnType.ReturnTypeDeserializer.class)
-class ClientReturnType extends ReturnType {
+class ClientReturnType extends CsdlReturnType {
 
   private static final long serialVersionUID = 6261092793901735110L;
 

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/2318953c/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/ClientSchema.java
----------------------------------------------------------------------
diff --git a/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/ClientSchema.java b/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/ClientSchema.java
index 5846b36..a4a0dd7 100644
--- a/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/ClientSchema.java
+++ b/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/ClientSchema.java
@@ -21,14 +21,14 @@ package org.apache.olingo.client.core.edm.xml;
 import com.fasterxml.jackson.core.JsonParser;
 import com.fasterxml.jackson.core.JsonToken;
 import com.fasterxml.jackson.databind.DeserializationContext;
-import org.apache.olingo.commons.api.edm.provider.Schema;
+import org.apache.olingo.commons.api.edm.provider.CsdlSchema;
 
 import com.fasterxml.jackson.databind.annotation.JsonDeserialize;
 
 import java.io.IOException;
 
 @JsonDeserialize(using = ClientSchema.SchemaDeserializer.class)
-class ClientSchema extends Schema {
+class ClientSchema extends CsdlSchema {
 
   private static final long serialVersionUID = 1911087363912024939L;
 

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/2318953c/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/ClientSingleton.java
----------------------------------------------------------------------
diff --git a/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/ClientSingleton.java b/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/ClientSingleton.java
index cba4b32..a06d6e8 100644
--- a/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/ClientSingleton.java
+++ b/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/ClientSingleton.java
@@ -21,14 +21,14 @@ package org.apache.olingo.client.core.edm.xml;
 import com.fasterxml.jackson.core.JsonParser;
 import com.fasterxml.jackson.core.JsonToken;
 import com.fasterxml.jackson.databind.DeserializationContext;
-import org.apache.olingo.commons.api.edm.provider.Singleton;
+import org.apache.olingo.commons.api.edm.provider.CsdlSingleton;
 
 import com.fasterxml.jackson.databind.annotation.JsonDeserialize;
 
 import java.io.IOException;
 
 @JsonDeserialize(using = ClientSingleton.SingletonDeserializer.class)
-class ClientSingleton extends Singleton {
+class ClientSingleton extends CsdlSingleton {
 
   private static final long serialVersionUID = 1656749615107151921L;
 

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/2318953c/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/ClientTerm.java
----------------------------------------------------------------------
diff --git a/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/ClientTerm.java b/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/ClientTerm.java
index ed78e03..f0904dd 100644
--- a/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/ClientTerm.java
+++ b/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/ClientTerm.java
@@ -24,7 +24,7 @@ import com.fasterxml.jackson.databind.DeserializationContext;
 import org.apache.commons.lang3.BooleanUtils;
 import org.apache.commons.lang3.StringUtils;
 import org.apache.olingo.commons.api.edm.geo.SRID;
-import org.apache.olingo.commons.api.edm.provider.Term;
+import org.apache.olingo.commons.api.edm.provider.CsdlTerm;
 
 import com.fasterxml.jackson.databind.annotation.JsonDeserialize;
 
@@ -32,7 +32,7 @@ import java.io.IOException;
 import java.util.Arrays;
 
 @JsonDeserialize(using = ClientTerm.TermDeserializer.class)
-class ClientTerm extends Term {
+class ClientTerm extends CsdlTerm {
 
   private static final long serialVersionUID = -8350072064720586186L;
 


[50/50] [abbrv] olingo-odata4 git commit: [OLINGO-564] Clean up

Posted by mi...@apache.org.
[OLINGO-564] Clean up


Project: http://git-wip-us.apache.org/repos/asf/olingo-odata4/repo
Commit: http://git-wip-us.apache.org/repos/asf/olingo-odata4/commit/61500e68
Tree: http://git-wip-us.apache.org/repos/asf/olingo-odata4/tree/61500e68
Diff: http://git-wip-us.apache.org/repos/asf/olingo-odata4/diff/61500e68

Branch: refs/heads/master
Commit: 61500e685fca852fac301f473fcca8a2918f887e
Parents: 1715292
Author: Michael Bolz <mi...@sap.com>
Authored: Thu Apr 30 08:38:19 2015 +0200
Committer: Michael Bolz <mi...@sap.com>
Committed: Thu Apr 30 08:38:19 2015 +0200

----------------------------------------------------------------------
 .../olingo/fit/tecsvc/client/BasicITCase.java   |  34 +-
 .../olingo/fit/v4/EntitySetTestITCase.java      |   6 +-
 .../olingo/fit/v4/ErrorResponseTestITCase.java  |   4 +-
 .../olingo/fit/v4/MetadataTestITCase.java       |   6 +-
 .../ODataClientErrorException.java              |   2 +-
 .../retrieve/ODataEntitySetIteratorRequest.java |   4 +-
 .../api/domain/ClientEntitySetIterator.java     | 315 +++++++++++++++++++
 .../api/domain/ODataEntitySetIterator.java      | 315 -------------------
 .../client/api/serialization/ODataReader.java   |   2 +-
 .../header/ODataErrorResponseChecker.java       |   2 +-
 .../ODataEntitySetIteratorRequestImpl.java      |  12 +-
 .../ClientODataDeserializerImpl.java            |   2 +-
 .../core/serialization/ODataReaderImpl.java     |  10 +-
 .../apache/olingo/client/core/v4/ErrorTest.java |   2 +-
 .../olingo/client/core/v4/MetadataTest.java     |   2 +-
 .../apache/olingo/commons/api/ODataError.java   | 132 ++++++++
 .../olingo/commons/api/ODataErrorDetail.java    |  73 +++++
 .../olingo/commons/api/ODataPropertyType.java   |  44 +++
 .../olingo/commons/api/domain/ODataError.java   | 132 --------
 .../commons/api/domain/ODataErrorDetail.java    |  73 -----
 .../commons/api/domain/ODataPropertyType.java   |  44 ---
 .../EdmConstantAnnotationExpression.java        |   1 +
 .../api/serialization/ODataDeserializer.java    |   2 +-
 .../EdmConstantAnnotationExpressionImpl.java    |  24 +-
 .../core/serialization/AtomDeserializer.java    |   4 +-
 .../core/serialization/JsonDeserializer.java    |   4 +-
 .../JsonODataErrorDeserializer.java             |   4 +-
 .../JsonODataErrorDetailDeserializer.java       |   2 +-
 .../olingo/server/api/ClientServerError.java    |   4 +-
 .../serializer/json/ODataErrorSerializer.java   |   4 +-
 .../json/ClientErrorSerializerTest.java         |   2 +-
 31 files changed, 628 insertions(+), 639 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/61500e68/fit/src/test/java/org/apache/olingo/fit/tecsvc/client/BasicITCase.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/tecsvc/client/BasicITCase.java b/fit/src/test/java/org/apache/olingo/fit/tecsvc/client/BasicITCase.java
index 5463ffa..003dad4 100644
--- a/fit/src/test/java/org/apache/olingo/fit/tecsvc/client/BasicITCase.java
+++ b/fit/src/test/java/org/apache/olingo/fit/tecsvc/client/BasicITCase.java
@@ -57,7 +57,7 @@ import org.apache.olingo.client.api.domain.ClientAnnotation;
 import org.apache.olingo.client.api.domain.ClientComplexValue;
 import org.apache.olingo.client.api.domain.ClientEntity;
 import org.apache.olingo.client.api.domain.ClientEntitySet;
-import org.apache.olingo.commons.api.domain.ODataError;
+import org.apache.olingo.commons.api.ODataError;
 import org.apache.olingo.client.api.domain.ClientInlineEntity;
 import org.apache.olingo.client.api.domain.ClientInlineEntitySet;
 import org.apache.olingo.client.api.domain.ClientObjectFactory;
@@ -464,27 +464,27 @@ public class BasicITCase extends AbstractBaseTestITCase {
                 .add(
                     of.newComplexValue("CTPrimComp")
                         .add(
-                            of.newPrimitiveProperty("PropertyInt16", of.newPrimitiveValueBuilder()
-                                .buildInt16(
-                                    (short) 42)))
+                                of.newPrimitiveProperty("PropertyInt16", of.newPrimitiveValueBuilder()
+                                        .buildInt16(
+                                                (short) 42)))
                         .add(
-                            of.newComplexProperty("PropertyComp", of.newComplexValue("CTAllPrim")
-                                .add(
-                                    of.newPrimitiveProperty("PropertyString", of
-                                        .newPrimitiveValueBuilder()
-                                        .buildString("42"))))))
+                                of.newComplexProperty("PropertyComp", of.newComplexValue("CTAllPrim")
+                                        .add(
+                                                of.newPrimitiveProperty("PropertyString", of
+                                                        .newPrimitiveValueBuilder()
+                                                        .buildString("42"))))))
                 .add(
                     of.newComplexValue("CTPrimComp")
                         .add(
-                            of.newPrimitiveProperty("PropertyInt16", of.newPrimitiveValueBuilder()
-                                .buildInt16(
-                                    (short) 43)))
+                                of.newPrimitiveProperty("PropertyInt16", of.newPrimitiveValueBuilder()
+                                        .buildInt16(
+                                                (short) 43)))
                         .add(
-                            of.newComplexProperty("PropertyComp", of.newComplexValue("CTAllPrim")
-                                .add(
-                                    of.newPrimitiveProperty("PropertyString", of
-                                        .newPrimitiveValueBuilder()
-                                        .buildString("43"))))))));
+                                of.newComplexProperty("PropertyComp", of.newComplexValue("CTAllPrim")
+                                        .add(
+                                                of.newPrimitiveProperty("PropertyString", of
+                                                        .newPrimitiveValueBuilder()
+                                                        .buildString("43"))))))));
 
     final URI uri = getClient().newURIBuilder(SERVICE_URI)
         .appendEntitySetSegment("ESKeyNav")

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/61500e68/fit/src/test/java/org/apache/olingo/fit/v4/EntitySetTestITCase.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/v4/EntitySetTestITCase.java b/fit/src/test/java/org/apache/olingo/fit/v4/EntitySetTestITCase.java
index 3e001b0..9e99457 100644
--- a/fit/src/test/java/org/apache/olingo/fit/v4/EntitySetTestITCase.java
+++ b/fit/src/test/java/org/apache/olingo/fit/v4/EntitySetTestITCase.java
@@ -24,7 +24,7 @@ import org.apache.olingo.client.api.communication.request.retrieve.ODataEntitySe
 import org.apache.olingo.client.api.communication.request.retrieve.ODataRawRequest;
 import org.apache.olingo.client.api.communication.response.ODataRawResponse;
 import org.apache.olingo.client.api.communication.response.ODataRetrieveResponse;
-import org.apache.olingo.client.api.domain.ODataEntitySetIterator;
+import org.apache.olingo.client.api.domain.ClientEntitySetIterator;
 import org.apache.olingo.client.api.uri.URIBuilder;
 import org.apache.olingo.client.core.uri.URIUtils;
 import org.apache.olingo.commons.api.data.ResWrap;
@@ -108,8 +108,8 @@ public class EntitySetTestITCase extends AbstractTestITCase {
         client.getRetrieveRequestFactory().getEntitySetIteratorRequest(uriBuilder.build());
     req.setFormat(format);
 
-    final ODataRetrieveResponse<ODataEntitySetIterator<ClientEntitySet, ClientEntity>> res = req.execute();
-    final ODataEntitySetIterator<ClientEntitySet, ClientEntity> feedIterator = res.getBody();
+    final ODataRetrieveResponse<ClientEntitySetIterator<ClientEntitySet, ClientEntity>> res = req.execute();
+    final ClientEntitySetIterator<ClientEntitySet, ClientEntity> feedIterator = res.getBody();
 
     assertNotNull(feedIterator);
 

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/61500e68/fit/src/test/java/org/apache/olingo/fit/v4/ErrorResponseTestITCase.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/v4/ErrorResponseTestITCase.java b/fit/src/test/java/org/apache/olingo/fit/v4/ErrorResponseTestITCase.java
index 8cdd2db..0b47a9e 100644
--- a/fit/src/test/java/org/apache/olingo/fit/v4/ErrorResponseTestITCase.java
+++ b/fit/src/test/java/org/apache/olingo/fit/v4/ErrorResponseTestITCase.java
@@ -19,8 +19,8 @@
 package org.apache.olingo.fit.v4;
 
 import org.apache.olingo.client.api.communication.ODataClientErrorException;
-import org.apache.olingo.commons.api.domain.ODataError;
-import org.apache.olingo.commons.api.domain.ODataErrorDetail;
+import org.apache.olingo.commons.api.ODataError;
+import org.apache.olingo.commons.api.ODataErrorDetail;
 import org.apache.olingo.commons.api.format.ODataFormat;
 import org.junit.Test;
 

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/61500e68/fit/src/test/java/org/apache/olingo/fit/v4/MetadataTestITCase.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/v4/MetadataTestITCase.java b/fit/src/test/java/org/apache/olingo/fit/v4/MetadataTestITCase.java
index c591394..8ee9f20 100644
--- a/fit/src/test/java/org/apache/olingo/fit/v4/MetadataTestITCase.java
+++ b/fit/src/test/java/org/apache/olingo/fit/v4/MetadataTestITCase.java
@@ -108,8 +108,10 @@ public class MetadataTestITCase extends AbstractTestITCase {
 
     final EdmAnnotation description = core.getAnnotation(descriptionTerm);
     assertNotNull(description);
+//    assertEquals("Core terms needed to write vocabularies",
+//        description.getExpression().asConstant().getValue().asPrimitive().toString());
     assertEquals("Core terms needed to write vocabularies",
-        description.getExpression().asConstant().getValue().asPrimitive().toString());
+            description.getExpression().asConstant().getValueAsString());
 
     final EdmTerm isLanguageDependent = edm.getTerm(new FullQualifiedName("Core.IsLanguageDependent"));
     assertNotNull(isLanguageDependent);
@@ -133,7 +135,7 @@ public class MetadataTestITCase extends AbstractTestITCase {
     final EdmAnnotation requiresTypeInScale = edm.getAnnotation(
         scale.getFullQualifiedName(), edm.getTerm(new FullQualifiedName("Core.RequiresType")));
     assertNotNull(requiresTypeInScale);
-    assertEquals("Edm.Decimal", requiresTypeInScale.getExpression().asConstant().toString());
+    assertEquals("Edm.Decimal", requiresTypeInScale.getExpression().asConstant().getValueAsString());
 
     // 3. capabilities
     final EdmTerm deleteRestrictions = edm.getTerm(new FullQualifiedName("Capabilities.DeleteRestrictions"));

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/61500e68/lib/client-api/src/main/java/org/apache/olingo/client/api/communication/ODataClientErrorException.java
----------------------------------------------------------------------
diff --git a/lib/client-api/src/main/java/org/apache/olingo/client/api/communication/ODataClientErrorException.java b/lib/client-api/src/main/java/org/apache/olingo/client/api/communication/ODataClientErrorException.java
index 178241a..64faf35 100644
--- a/lib/client-api/src/main/java/org/apache/olingo/client/api/communication/ODataClientErrorException.java
+++ b/lib/client-api/src/main/java/org/apache/olingo/client/api/communication/ODataClientErrorException.java
@@ -21,7 +21,7 @@ package org.apache.olingo.client.api.communication;
 import org.apache.commons.lang3.StringUtils;
 import org.apache.http.StatusLine;
 import org.apache.olingo.commons.api.ODataRuntimeException;
-import org.apache.olingo.commons.api.domain.ODataError;
+import org.apache.olingo.commons.api.ODataError;
 
 /**
  * Represents a client error in OData.

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/61500e68/lib/client-api/src/main/java/org/apache/olingo/client/api/communication/request/retrieve/ODataEntitySetIteratorRequest.java
----------------------------------------------------------------------
diff --git a/lib/client-api/src/main/java/org/apache/olingo/client/api/communication/request/retrieve/ODataEntitySetIteratorRequest.java b/lib/client-api/src/main/java/org/apache/olingo/client/api/communication/request/retrieve/ODataEntitySetIteratorRequest.java
index 4b3f05e..d20eaca 100644
--- a/lib/client-api/src/main/java/org/apache/olingo/client/api/communication/request/retrieve/ODataEntitySetIteratorRequest.java
+++ b/lib/client-api/src/main/java/org/apache/olingo/client/api/communication/request/retrieve/ODataEntitySetIteratorRequest.java
@@ -18,7 +18,7 @@
  */
 package org.apache.olingo.client.api.communication.request.retrieve;
 
-import org.apache.olingo.client.api.domain.ODataEntitySetIterator;
+import org.apache.olingo.client.api.domain.ClientEntitySetIterator;
 import org.apache.olingo.client.api.domain.ClientEntity;
 import org.apache.olingo.client.api.domain.ClientEntitySet;
 
@@ -26,6 +26,6 @@ import org.apache.olingo.client.api.domain.ClientEntitySet;
  * This class implements an OData EntitySet query request.
  */
 public interface ODataEntitySetIteratorRequest<ES extends ClientEntitySet, E extends ClientEntity>
-        extends ODataRetrieveRequest<ODataEntitySetIterator<ES, E>> {
+        extends ODataRetrieveRequest<ClientEntitySetIterator<ES, E>> {
 //No additional methods needed for now.
 }

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/61500e68/lib/client-api/src/main/java/org/apache/olingo/client/api/domain/ClientEntitySetIterator.java
----------------------------------------------------------------------
diff --git a/lib/client-api/src/main/java/org/apache/olingo/client/api/domain/ClientEntitySetIterator.java b/lib/client-api/src/main/java/org/apache/olingo/client/api/domain/ClientEntitySetIterator.java
new file mode 100644
index 0000000..accfce6
--- /dev/null
+++ b/lib/client-api/src/main/java/org/apache/olingo/client/api/domain/ClientEntitySetIterator.java
@@ -0,0 +1,315 @@
+/*
+ * 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.client.api.domain;
+
+import java.io.ByteArrayInputStream;
+import java.io.ByteArrayOutputStream;
+import java.io.IOException;
+import java.io.InputStream;
+import java.io.OutputStream;
+import java.net.URI;
+import java.util.Iterator;
+import java.util.NoSuchElementException;
+
+import org.apache.commons.io.IOUtils;
+import org.apache.commons.lang3.StringUtils;
+import org.apache.olingo.client.api.ODataClient;
+import org.apache.olingo.commons.api.Constants;
+import org.apache.olingo.commons.api.data.Entity;
+import org.apache.olingo.commons.api.data.ResWrap;
+import org.apache.olingo.commons.api.format.ODataFormat;
+import org.apache.olingo.commons.api.serialization.ODataDeserializerException;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+/**
+ * OData entity set iterator class.
+ * <br/>
+ * <b>Please don't forget to call the <tt>close()>/</tt> method when not needed any more.</b>
+ *
+ * @param <E> concrete ODataEntity implementation
+ * @param <ES> concrete ODataEntitySet implementation
+ */
+public class ClientEntitySetIterator<ES extends ClientEntitySet, E extends ClientEntity>
+        implements Iterator<E> {
+
+  /**
+   * Logger.
+   */
+  private static final Logger LOG = LoggerFactory.getLogger(ClientEntitySetIterator.class);
+
+  protected final ODataClient odataClient;
+
+  protected ResWrap<Entity> cached;
+
+  private final InputStream stream;
+
+  private final ODataFormat format;
+
+  private ES entitySet;
+
+  private final ByteArrayOutputStream osEntitySet;
+
+  private final String namespaces;
+
+  private boolean available = true;
+
+  /**
+   * Constructor.
+   *
+   * @param odataClient client instance getting this request
+   * @param stream source stream.
+   * @param format OData format.
+   */
+  public ClientEntitySetIterator(final ODataClient odataClient, final InputStream stream,
+                                 final ODataFormat format) {
+
+    this.odataClient = odataClient;
+    this.stream = stream;
+    this.format = format;
+    this.osEntitySet = new ByteArrayOutputStream();
+
+    if (format == ODataFormat.ATOM) {
+      namespaces = getAllElementAttributes(stream, "feed", osEntitySet);
+    } else {
+      namespaces = null;
+      try {
+        if (consume(stream, "\"value\":", osEntitySet, true) >= 0) {
+          int c = 0;
+          while (c != '[' && (c = stream.read()) >= 0) {
+            osEntitySet.write(c);
+          }
+        }
+      } catch (IOException e) {
+        LOG.error("Error parsing entity set", e);
+        throw new IllegalStateException(e);
+      }
+    }
+  }
+
+  /**
+   * {@inheritDoc }
+   */
+  @Override
+  @SuppressWarnings("unchecked")
+  public boolean hasNext() {
+    if (available && cached == null) {
+      if (format == ODataFormat.ATOM) {
+        cached = nextAtomEntityFromEntitySet(stream, osEntitySet, namespaces);
+      } else {
+        cached = nextJSONEntityFromEntitySet(stream, osEntitySet);
+      }
+
+      if (cached == null) {
+        available = false;
+        try {
+          entitySet = (ES) odataClient.getReader().
+                  readEntitySet(new ByteArrayInputStream(osEntitySet.toByteArray()), format);
+        } catch (final ODataDeserializerException e) {
+          available = false;
+        }
+        close();
+      }
+    }
+
+    return available;
+  }
+
+  /**
+   * {@inheritDoc }
+   */
+  @Override
+  public E next() {
+    if (hasNext()) {
+      @SuppressWarnings("unchecked")
+      final E res = (E) odataClient.getBinder().getODataEntity(cached);
+      cached = null;
+      return res;
+    }
+
+    throw new NoSuchElementException("No entity found");
+  }
+
+  /**
+   * Unsupported operation.
+   */
+  @Override
+  public void remove() {
+    throw new UnsupportedOperationException("Operation not supported");
+  }
+
+  /**
+   * Closes the current iterator.
+   */
+  public void close() {
+    IOUtils.closeQuietly(stream);
+    IOUtils.closeQuietly(osEntitySet);
+  }
+
+  /**
+   * Gets the next link if exists.
+   *
+   * @return next link if exists; null otherwise.
+   */
+  public URI getNext() {
+    if (entitySet == null) {
+      throw new IllegalStateException("Iteration must be completed in order to retrieve the link for next page");
+    }
+    return entitySet.getNext();
+  }
+
+  private ResWrap<Entity> nextJSONEntityFromEntitySet(final InputStream input, final OutputStream osEntitySet) {
+    final ByteArrayOutputStream entity = new ByteArrayOutputStream();
+
+    ResWrap<Entity> jsonEntity = null;
+    try {
+      int c;
+
+      boolean foundNewOne = false;
+
+      do {
+        c = input.read();
+        if (c == '{') {
+          entity.write(c);
+          c = -1;
+          foundNewOne = true;
+        }
+        if (c == ']') {
+          osEntitySet.write(c);
+          c = -1;
+        }
+      } while (c >= 0);
+
+      if (foundNewOne) {
+        int count = 1;
+        c = 0;
+
+        while (count > 0 && c >= 0) {
+          c = input.read();
+          if (c == '{') {
+            count++;
+          } else if (c == '}') {
+            count--;
+          }
+          entity.write(c);
+        }
+
+        if (c >= 0) {
+          jsonEntity = odataClient.getDeserializer(ODataFormat.JSON).toEntity(
+                  new ByteArrayInputStream(entity.toByteArray()));
+        }
+      } else {
+        while ((c = input.read()) >= 0) {
+          osEntitySet.write(c);
+        }
+      }
+    } catch (Exception e) {
+      LOG.error("Error retrieving entities from EntitySet", e);
+    }
+
+    return jsonEntity;
+  }
+
+  private ResWrap<Entity> nextAtomEntityFromEntitySet(
+          final InputStream input, final OutputStream osEntitySet, final String namespaces) {
+
+    final ByteArrayOutputStream entity = new ByteArrayOutputStream();
+
+    ResWrap<Entity> atomEntity = null;
+
+    try {
+      if (consume(input, "<entry>", osEntitySet, false) >= 0) {
+        entity.write("<entry ".getBytes(Constants.UTF8));
+        entity.write(namespaces.getBytes(Constants.UTF8));
+        entity.write(">".getBytes(Constants.UTF8));
+
+        if (consume(input, "</entry>", entity, true) >= 0) {
+          atomEntity = odataClient.getDeserializer(ODataFormat.ATOM).
+                  toEntity(new ByteArrayInputStream(entity.toByteArray()));
+        }
+      }
+    } catch (Exception e) {
+      LOG.error("Error retrieving entities from EntitySet", e);
+    }
+
+    return atomEntity;
+  }
+
+  private String getAllElementAttributes(final InputStream input, final String name, final OutputStream os) {
+    final ByteArrayOutputStream attrs = new ByteArrayOutputStream();
+
+    String res;
+
+    try {
+      byte[] attrsDeclaration = null;
+
+      final String key = "<" + name + " ";
+      if (consume(input, key, os, true) >= 0 && consume(input, ">", attrs, false) >= 0) {
+        attrsDeclaration = attrs.toByteArray();
+        os.write(attrsDeclaration);
+        os.write('>');
+      }
+
+      res = attrsDeclaration == null
+              ? StringUtils.EMPTY
+              : new String(attrsDeclaration, Constants.UTF8).trim();
+    } catch (Exception e) {
+      LOG.error("Error retrieving entities from EntitySet", e);
+      res = StringUtils.EMPTY;
+    }
+
+    return res.endsWith("/") ? res.substring(0, res.length() - 1) : res;
+  }
+
+  private int consume(
+          final InputStream input, final String end, final OutputStream os, final boolean includeEndKey)
+          throws IOException {
+
+    final char[] endKey = end.toCharArray();
+    final char[] endLowerKey = end.toLowerCase().toCharArray();
+    final char[] endUpperKey = end.toUpperCase().toCharArray();
+
+    int pos = 0;
+    int c = 0;
+    while (pos < endKey.length && (c = input.read()) >= 0) {
+      if (c == endLowerKey[pos] || c == endUpperKey[pos]) {
+        pos++;
+        if (includeEndKey && os != null) {
+          os.write(c);
+        }
+      } else if (pos > 0) {
+        if (!includeEndKey && os != null) {
+          for (int i = 0; i < pos; i++) {
+            os.write(endKey[i]);
+          }
+        }
+        if (os != null) {
+          os.write(c);
+        }
+        pos = 0;
+      } else {
+        if (os != null) {
+          os.write(c);
+        }
+      }
+    }
+
+    return c;
+  }
+}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/61500e68/lib/client-api/src/main/java/org/apache/olingo/client/api/domain/ODataEntitySetIterator.java
----------------------------------------------------------------------
diff --git a/lib/client-api/src/main/java/org/apache/olingo/client/api/domain/ODataEntitySetIterator.java b/lib/client-api/src/main/java/org/apache/olingo/client/api/domain/ODataEntitySetIterator.java
deleted file mode 100644
index 64bf0f2..0000000
--- a/lib/client-api/src/main/java/org/apache/olingo/client/api/domain/ODataEntitySetIterator.java
+++ /dev/null
@@ -1,315 +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.client.api.domain;
-
-import java.io.ByteArrayInputStream;
-import java.io.ByteArrayOutputStream;
-import java.io.IOException;
-import java.io.InputStream;
-import java.io.OutputStream;
-import java.net.URI;
-import java.util.Iterator;
-import java.util.NoSuchElementException;
-
-import org.apache.commons.io.IOUtils;
-import org.apache.commons.lang3.StringUtils;
-import org.apache.olingo.client.api.ODataClient;
-import org.apache.olingo.commons.api.Constants;
-import org.apache.olingo.commons.api.data.Entity;
-import org.apache.olingo.commons.api.data.ResWrap;
-import org.apache.olingo.commons.api.format.ODataFormat;
-import org.apache.olingo.commons.api.serialization.ODataDeserializerException;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-/**
- * OData entity set iterator class.
- * <br/>
- * <b>Please don't forget to call the <tt>close()>/</tt> method when not needed any more.</b>
- *
- * @param <E> concrete ODataEntity implementation
- * @param <ES> concrete ODataEntitySet implementation
- */
-public class ODataEntitySetIterator<ES extends ClientEntitySet, E extends ClientEntity>
-        implements Iterator<E> {
-
-  /**
-   * Logger.
-   */
-  private static final Logger LOG = LoggerFactory.getLogger(ODataEntitySetIterator.class);
-
-  protected final ODataClient odataClient;
-
-  protected ResWrap<Entity> cached;
-
-  private final InputStream stream;
-
-  private final ODataFormat format;
-
-  private ES entitySet;
-
-  private final ByteArrayOutputStream osEntitySet;
-
-  private final String namespaces;
-
-  private boolean available = true;
-
-  /**
-   * Constructor.
-   *
-   * @param odataClient client instance getting this request
-   * @param stream source stream.
-   * @param format OData format.
-   */
-  public ODataEntitySetIterator(final ODataClient odataClient, final InputStream stream,
-          final ODataFormat format) {
-
-    this.odataClient = odataClient;
-    this.stream = stream;
-    this.format = format;
-    this.osEntitySet = new ByteArrayOutputStream();
-
-    if (format == ODataFormat.ATOM) {
-      namespaces = getAllElementAttributes(stream, "feed", osEntitySet);
-    } else {
-      namespaces = null;
-      try {
-        if (consume(stream, "\"value\":", osEntitySet, true) >= 0) {
-          int c = 0;
-          while (c != '[' && (c = stream.read()) >= 0) {
-            osEntitySet.write(c);
-          }
-        }
-      } catch (IOException e) {
-        LOG.error("Error parsing entity set", e);
-        throw new IllegalStateException(e);
-      }
-    }
-  }
-
-  /**
-   * {@inheritDoc }
-   */
-  @Override
-  @SuppressWarnings("unchecked")
-  public boolean hasNext() {
-    if (available && cached == null) {
-      if (format == ODataFormat.ATOM) {
-        cached = nextAtomEntityFromEntitySet(stream, osEntitySet, namespaces);
-      } else {
-        cached = nextJSONEntityFromEntitySet(stream, osEntitySet);
-      }
-
-      if (cached == null) {
-        available = false;
-        try {
-          entitySet = (ES) odataClient.getReader().
-                  readEntitySet(new ByteArrayInputStream(osEntitySet.toByteArray()), format);
-        } catch (final ODataDeserializerException e) {
-          available = false;
-        }
-        close();
-      }
-    }
-
-    return available;
-  }
-
-  /**
-   * {@inheritDoc }
-   */
-  @Override
-  public E next() {
-    if (hasNext()) {
-      @SuppressWarnings("unchecked")
-      final E res = (E) odataClient.getBinder().getODataEntity(cached);
-      cached = null;
-      return res;
-    }
-
-    throw new NoSuchElementException("No entity found");
-  }
-
-  /**
-   * Unsupported operation.
-   */
-  @Override
-  public void remove() {
-    throw new UnsupportedOperationException("Operation not supported");
-  }
-
-  /**
-   * Closes the current iterator.
-   */
-  public void close() {
-    IOUtils.closeQuietly(stream);
-    IOUtils.closeQuietly(osEntitySet);
-  }
-
-  /**
-   * Gets the next link if exists.
-   *
-   * @return next link if exists; null otherwise.
-   */
-  public URI getNext() {
-    if (entitySet == null) {
-      throw new IllegalStateException("Iteration must be completed in order to retrieve the link for next page");
-    }
-    return entitySet.getNext();
-  }
-
-  private ResWrap<Entity> nextJSONEntityFromEntitySet(final InputStream input, final OutputStream osEntitySet) {
-    final ByteArrayOutputStream entity = new ByteArrayOutputStream();
-
-    ResWrap<Entity> jsonEntity = null;
-    try {
-      int c;
-
-      boolean foundNewOne = false;
-
-      do {
-        c = input.read();
-        if (c == '{') {
-          entity.write(c);
-          c = -1;
-          foundNewOne = true;
-        }
-        if (c == ']') {
-          osEntitySet.write(c);
-          c = -1;
-        }
-      } while (c >= 0);
-
-      if (foundNewOne) {
-        int count = 1;
-        c = 0;
-
-        while (count > 0 && c >= 0) {
-          c = input.read();
-          if (c == '{') {
-            count++;
-          } else if (c == '}') {
-            count--;
-          }
-          entity.write(c);
-        }
-
-        if (c >= 0) {
-          jsonEntity = odataClient.getDeserializer(ODataFormat.JSON).toEntity(
-                  new ByteArrayInputStream(entity.toByteArray()));
-        }
-      } else {
-        while ((c = input.read()) >= 0) {
-          osEntitySet.write(c);
-        }
-      }
-    } catch (Exception e) {
-      LOG.error("Error retrieving entities from EntitySet", e);
-    }
-
-    return jsonEntity;
-  }
-
-  private ResWrap<Entity> nextAtomEntityFromEntitySet(
-          final InputStream input, final OutputStream osEntitySet, final String namespaces) {
-
-    final ByteArrayOutputStream entity = new ByteArrayOutputStream();
-
-    ResWrap<Entity> atomEntity = null;
-
-    try {
-      if (consume(input, "<entry>", osEntitySet, false) >= 0) {
-        entity.write("<entry ".getBytes(Constants.UTF8));
-        entity.write(namespaces.getBytes(Constants.UTF8));
-        entity.write(">".getBytes(Constants.UTF8));
-
-        if (consume(input, "</entry>", entity, true) >= 0) {
-          atomEntity = odataClient.getDeserializer(ODataFormat.ATOM).
-                  toEntity(new ByteArrayInputStream(entity.toByteArray()));
-        }
-      }
-    } catch (Exception e) {
-      LOG.error("Error retrieving entities from EntitySet", e);
-    }
-
-    return atomEntity;
-  }
-
-  private String getAllElementAttributes(final InputStream input, final String name, final OutputStream os) {
-    final ByteArrayOutputStream attrs = new ByteArrayOutputStream();
-
-    String res;
-
-    try {
-      byte[] attrsDeclaration = null;
-
-      final String key = "<" + name + " ";
-      if (consume(input, key, os, true) >= 0 && consume(input, ">", attrs, false) >= 0) {
-        attrsDeclaration = attrs.toByteArray();
-        os.write(attrsDeclaration);
-        os.write('>');
-      }
-
-      res = attrsDeclaration == null
-              ? StringUtils.EMPTY
-              : new String(attrsDeclaration, Constants.UTF8).trim();
-    } catch (Exception e) {
-      LOG.error("Error retrieving entities from EntitySet", e);
-      res = StringUtils.EMPTY;
-    }
-
-    return res.endsWith("/") ? res.substring(0, res.length() - 1) : res;
-  }
-
-  private int consume(
-          final InputStream input, final String end, final OutputStream os, final boolean includeEndKey)
-          throws IOException {
-
-    final char[] endKey = end.toCharArray();
-    final char[] endLowerKey = end.toLowerCase().toCharArray();
-    final char[] endUpperKey = end.toUpperCase().toCharArray();
-
-    int pos = 0;
-    int c = 0;
-    while (pos < endKey.length && (c = input.read()) >= 0) {
-      if (c == endLowerKey[pos] || c == endUpperKey[pos]) {
-        pos++;
-        if (includeEndKey && os != null) {
-          os.write(c);
-        }
-      } else if (pos > 0) {
-        if (!includeEndKey && os != null) {
-          for (int i = 0; i < pos; i++) {
-            os.write(endKey[i]);
-          }
-        }
-        if (os != null) {
-          os.write(c);
-        }
-        pos = 0;
-      } else {
-        if (os != null) {
-          os.write(c);
-        }
-      }
-    }
-
-    return c;
-  }
-}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/61500e68/lib/client-api/src/main/java/org/apache/olingo/client/api/serialization/ODataReader.java
----------------------------------------------------------------------
diff --git a/lib/client-api/src/main/java/org/apache/olingo/client/api/serialization/ODataReader.java b/lib/client-api/src/main/java/org/apache/olingo/client/api/serialization/ODataReader.java
index 8c5ccc4..7e4aa96 100644
--- a/lib/client-api/src/main/java/org/apache/olingo/client/api/serialization/ODataReader.java
+++ b/lib/client-api/src/main/java/org/apache/olingo/client/api/serialization/ODataReader.java
@@ -24,7 +24,7 @@ import java.util.Map;
 import org.apache.olingo.commons.api.data.ResWrap;
 import org.apache.olingo.client.api.domain.ClientEntity;
 import org.apache.olingo.client.api.domain.ClientEntitySet;
-import org.apache.olingo.commons.api.domain.ODataError;
+import org.apache.olingo.commons.api.ODataError;
 import org.apache.olingo.client.api.domain.ClientProperty;
 import org.apache.olingo.client.api.domain.ClientServiceDocument;
 import org.apache.olingo.commons.api.edm.Edm;

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/61500e68/lib/client-core/src/main/java/org/apache/olingo/client/core/communication/header/ODataErrorResponseChecker.java
----------------------------------------------------------------------
diff --git a/lib/client-core/src/main/java/org/apache/olingo/client/core/communication/header/ODataErrorResponseChecker.java b/lib/client-core/src/main/java/org/apache/olingo/client/core/communication/header/ODataErrorResponseChecker.java
index f1cc64a..2008149 100644
--- a/lib/client-core/src/main/java/org/apache/olingo/client/core/communication/header/ODataErrorResponseChecker.java
+++ b/lib/client-core/src/main/java/org/apache/olingo/client/core/communication/header/ODataErrorResponseChecker.java
@@ -25,7 +25,7 @@ import org.apache.olingo.client.api.ODataClient;
 import org.apache.olingo.client.api.communication.ODataClientErrorException;
 import org.apache.olingo.client.api.communication.ODataServerErrorException;
 import org.apache.olingo.commons.api.ODataRuntimeException;
-import org.apache.olingo.commons.api.domain.ODataError;
+import org.apache.olingo.commons.api.ODataError;
 import org.apache.olingo.commons.api.format.ODataFormat;
 import org.apache.olingo.commons.api.serialization.ODataDeserializerException;
 import org.slf4j.Logger;

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/61500e68/lib/client-core/src/main/java/org/apache/olingo/client/core/communication/request/retrieve/ODataEntitySetIteratorRequestImpl.java
----------------------------------------------------------------------
diff --git a/lib/client-core/src/main/java/org/apache/olingo/client/core/communication/request/retrieve/ODataEntitySetIteratorRequestImpl.java b/lib/client-core/src/main/java/org/apache/olingo/client/core/communication/request/retrieve/ODataEntitySetIteratorRequestImpl.java
index 9c47b69..dcb31e9 100644
--- a/lib/client-core/src/main/java/org/apache/olingo/client/core/communication/request/retrieve/ODataEntitySetIteratorRequestImpl.java
+++ b/lib/client-core/src/main/java/org/apache/olingo/client/core/communication/request/retrieve/ODataEntitySetIteratorRequestImpl.java
@@ -25,7 +25,7 @@ import org.apache.http.client.HttpClient;
 import org.apache.olingo.client.api.ODataClient;
 import org.apache.olingo.client.api.communication.request.retrieve.ODataEntitySetIteratorRequest;
 import org.apache.olingo.client.api.communication.response.ODataRetrieveResponse;
-import org.apache.olingo.client.api.domain.ODataEntitySetIterator;
+import org.apache.olingo.client.api.domain.ClientEntitySetIterator;
 import org.apache.olingo.client.api.domain.ClientEntity;
 import org.apache.olingo.client.api.domain.ClientEntitySet;
 import org.apache.olingo.commons.api.format.ODataFormat;
@@ -34,10 +34,10 @@ import org.apache.olingo.commons.api.format.ODataFormat;
  * This class implements an OData EntitySet query request.
  */
 public class ODataEntitySetIteratorRequestImpl<ES extends ClientEntitySet, E extends ClientEntity>
-        extends AbstractODataRetrieveRequest<ODataEntitySetIterator<ES, E>>
+        extends AbstractODataRetrieveRequest<ClientEntitySetIterator<ES, E>>
         implements ODataEntitySetIteratorRequest<ES, E> {
 
-  private ODataEntitySetIterator<ES, E> entitySetIterator = null;
+  private ClientEntitySetIterator<ES, E> entitySetIterator = null;
 
   /**
    * Private constructor.
@@ -55,7 +55,7 @@ public class ODataEntitySetIteratorRequestImpl<ES extends ClientEntitySet, E ext
   }
 
   @Override
-  public ODataRetrieveResponse<ODataEntitySetIterator<ES, E>> execute() {
+  public ODataRetrieveResponse<ClientEntitySetIterator<ES, E>> execute() {
     final HttpResponse res = doExecute();
     return new ODataEntitySetIteratorResponseImpl(odataClient, httpClient, res);
   }
@@ -72,9 +72,9 @@ public class ODataEntitySetIteratorRequestImpl<ES extends ClientEntitySet, E ext
     }
 
     @Override
-    public ODataEntitySetIterator<ES, E> getBody() {
+    public ClientEntitySetIterator<ES, E> getBody() {
       if (entitySetIterator == null) {
-        entitySetIterator = new ODataEntitySetIterator<ES, E>(
+        entitySetIterator = new ClientEntitySetIterator<ES, E>(
                 odataClient, getRawResponse(), ODataFormat.fromString(getContentType()));
       }
       return entitySetIterator;

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/61500e68/lib/client-core/src/main/java/org/apache/olingo/client/core/serialization/ClientODataDeserializerImpl.java
----------------------------------------------------------------------
diff --git a/lib/client-core/src/main/java/org/apache/olingo/client/core/serialization/ClientODataDeserializerImpl.java b/lib/client-core/src/main/java/org/apache/olingo/client/core/serialization/ClientODataDeserializerImpl.java
index a668aaf..92bd57b 100644
--- a/lib/client-core/src/main/java/org/apache/olingo/client/core/serialization/ClientODataDeserializerImpl.java
+++ b/lib/client-core/src/main/java/org/apache/olingo/client/core/serialization/ClientODataDeserializerImpl.java
@@ -35,7 +35,7 @@ import org.apache.olingo.commons.api.data.Entity;
 import org.apache.olingo.commons.api.data.EntityCollection;
 import org.apache.olingo.commons.api.data.Property;
 import org.apache.olingo.commons.api.data.ResWrap;
-import org.apache.olingo.commons.api.domain.ODataError;
+import org.apache.olingo.commons.api.ODataError;
 import org.apache.olingo.commons.api.edm.EdmPrimitiveTypeException;
 import org.apache.olingo.commons.api.format.ODataFormat;
 import org.apache.olingo.commons.api.serialization.ODataDeserializer;

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/61500e68/lib/client-core/src/main/java/org/apache/olingo/client/core/serialization/ODataReaderImpl.java
----------------------------------------------------------------------
diff --git a/lib/client-core/src/main/java/org/apache/olingo/client/core/serialization/ODataReaderImpl.java b/lib/client-core/src/main/java/org/apache/olingo/client/core/serialization/ODataReaderImpl.java
index 8f3c8be..6c97cdb 100644
--- a/lib/client-core/src/main/java/org/apache/olingo/client/core/serialization/ODataReaderImpl.java
+++ b/lib/client-core/src/main/java/org/apache/olingo/client/core/serialization/ODataReaderImpl.java
@@ -25,7 +25,7 @@ import java.util.Map;
 import org.apache.commons.io.IOUtils;
 import org.apache.olingo.client.api.ODataClient;
 import org.apache.olingo.client.api.data.ServiceDocument;
-import org.apache.olingo.client.api.domain.ODataEntitySetIterator;
+import org.apache.olingo.client.api.domain.ClientEntitySetIterator;
 import org.apache.olingo.client.api.edm.xml.XMLMetadata;
 import org.apache.olingo.client.api.serialization.ODataReader;
 import org.apache.olingo.client.core.edm.ClientCsdlEdmProvider;
@@ -35,7 +35,7 @@ import org.apache.olingo.commons.api.data.Property;
 import org.apache.olingo.commons.api.data.ResWrap;
 import org.apache.olingo.client.api.domain.ClientEntity;
 import org.apache.olingo.client.api.domain.ClientEntitySet;
-import org.apache.olingo.commons.api.domain.ODataError;
+import org.apache.olingo.commons.api.ODataError;
 import org.apache.olingo.client.api.domain.ClientProperty;
 import org.apache.olingo.client.api.domain.ClientServiceDocument;
 import org.apache.olingo.client.api.domain.ClientValue;
@@ -91,11 +91,11 @@ public class ODataReaderImpl implements ODataReader {
     ResWrap<T> res;
 
     try {
-      if (ODataEntitySetIterator.class.isAssignableFrom(reference)) {
+      if (ClientEntitySetIterator.class.isAssignableFrom(reference)) {
         res = new ResWrap<T>(
             (URI) null,
             null,
-            reference.cast(new ODataEntitySetIterator<ClientEntitySet, ClientEntity>(
+            reference.cast(new ClientEntitySetIterator<ClientEntitySet, ClientEntity>(
                 client, src, ODataFormat.fromString(format))));
       } else if (ClientEntitySet.class.isAssignableFrom(reference)) {
         final ResWrap<EntityCollection> resource = client.getDeserializer(ODataFormat.fromString(format))
@@ -149,7 +149,7 @@ public class ODataReaderImpl implements ODataReader {
       LOG.warn("Cast error", e);
       res = null;
     } finally {
-      if (!ODataEntitySetIterator.class.isAssignableFrom(reference)) {
+      if (!ClientEntitySetIterator.class.isAssignableFrom(reference)) {
         IOUtils.closeQuietly(src);
       }
     }

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/61500e68/lib/client-core/src/test/java/org/apache/olingo/client/core/v4/ErrorTest.java
----------------------------------------------------------------------
diff --git a/lib/client-core/src/test/java/org/apache/olingo/client/core/v4/ErrorTest.java b/lib/client-core/src/test/java/org/apache/olingo/client/core/v4/ErrorTest.java
index c0067bc..057c0de 100644
--- a/lib/client-core/src/test/java/org/apache/olingo/client/core/v4/ErrorTest.java
+++ b/lib/client-core/src/test/java/org/apache/olingo/client/core/v4/ErrorTest.java
@@ -20,7 +20,7 @@ package org.apache.olingo.client.core.v4;
 
 import org.apache.olingo.client.api.ODataClient;
 import org.apache.olingo.client.core.AbstractTest;
-import org.apache.olingo.commons.api.domain.ODataError;
+import org.apache.olingo.commons.api.ODataError;
 import org.apache.olingo.commons.api.format.ODataFormat;
 import org.apache.olingo.commons.api.serialization.ODataDeserializerException;
 import org.junit.Test;

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/61500e68/lib/client-core/src/test/java/org/apache/olingo/client/core/v4/MetadataTest.java
----------------------------------------------------------------------
diff --git a/lib/client-core/src/test/java/org/apache/olingo/client/core/v4/MetadataTest.java b/lib/client-core/src/test/java/org/apache/olingo/client/core/v4/MetadataTest.java
index e4778cb..562a255 100644
--- a/lib/client-core/src/test/java/org/apache/olingo/client/core/v4/MetadataTest.java
+++ b/lib/client-core/src/test/java/org/apache/olingo/client/core/v4/MetadataTest.java
@@ -273,7 +273,7 @@ public class MetadataTest extends AbstractTest {
     assertNotNull(weight);
     assertEquals(EdmInt32.getInstance(), weight.getUnderlyingType());
     assertFalse(weight.getAnnotations().isEmpty());
-    assertEquals("Kilograms", weight.getAnnotations().get(0).getExpression().asConstant().getValue().getValue());
+    assertEquals("Kilograms", weight.getAnnotations().get(0).getExpression().asConstant().getValueAsString());
   }
 
   /**

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/61500e68/lib/commons-api/src/main/java/org/apache/olingo/commons/api/ODataError.java
----------------------------------------------------------------------
diff --git a/lib/commons-api/src/main/java/org/apache/olingo/commons/api/ODataError.java b/lib/commons-api/src/main/java/org/apache/olingo/commons/api/ODataError.java
new file mode 100644
index 0000000..9ac0a80
--- /dev/null
+++ b/lib/commons-api/src/main/java/org/apache/olingo/commons/api/ODataError.java
@@ -0,0 +1,132 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ * 
+ * http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.olingo.commons.api;
+
+import java.util.List;
+import java.util.Map;
+
+/**
+ * OData error.
+ */
+public class ODataError {
+
+  private String code;
+  private String message;
+  private String target;
+  private List<ODataErrorDetail> details;
+  private Map<String, String> innerError;
+
+  /**
+   * The value for the code name/value pair is a language-independent string. Its value is a service-defined error code.
+   * This code serves as a sub-status for the HTTP error code specified in the response. MAY be null.
+   * @return the error code as a string
+   */
+  public String getCode() {
+    return code;
+  }
+
+  /**
+   * The value for the code name/value pair is a language-independent string. Its value is a service-defined error code.
+   * This code serves as a sub-status for the HTTP error code specified in the response. MAY be null.
+   * @param code
+   * @return this for method chaining
+   */
+  public ODataError setCode(String code) {
+    this.code = code;
+    return this;
+  }
+
+  /**
+   * The value for the message name/value pair MUST be a human-readable, language-dependent representation of the error.
+   * MUST not be null
+   * @return the message string
+   */
+  public String getMessage() {
+    return message;
+  }
+
+  /**
+   * The value for the message name/value pair MUST be a human-readable, language-dependent representation of the error.
+   * MUST not be null
+   * @param message
+   * @return this for method chaining
+   */
+  public ODataError setMessage(String message) {
+    this.message = message;
+    return this;
+  }
+
+  /**
+   * The value for the target name/value pair is the target of the particular error (for example, the name of the
+   * property in error). MAY be null.
+   * @return the target string
+   */
+  public String getTarget() {
+    return target;
+  }
+
+  /**
+   * The value for the target name/value pair is the target of the particular error (for example, the name of the
+   * property in error). MAY be null.
+   * @param target
+   * @return this for method chaining
+   */
+  public ODataError setTarget(String target) {
+    this.target = target;
+    return this;
+  }
+
+  /**
+   * Gets error details.
+   * 
+   * @return ODataErrorDetail list.
+   */
+  public List<ODataErrorDetail> getDetails() {
+    return details;
+  }
+
+  /**
+   * Sets error details.
+   * 
+   * @return this for method chaining.
+   */
+  public ODataError setDetails(List<ODataErrorDetail> details) {
+    this.details = details;
+    return this;
+  }
+
+  /**
+   * Gets server defined key-value pairs for debug environment only.
+   * 
+   * @return a pair representing server defined object. MAY be null.
+   */
+  public Map<String, String> getInnerError() {
+    return innerError;
+  }
+
+  /**
+   * Sets server defined key-value pairs for debug environment only.
+   * 
+   * @return this for method chaining.
+   */
+  public ODataError setInnerError(Map<String, String> innerError) {
+    this.innerError = innerError;
+    return this;
+  }
+}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/61500e68/lib/commons-api/src/main/java/org/apache/olingo/commons/api/ODataErrorDetail.java
----------------------------------------------------------------------
diff --git a/lib/commons-api/src/main/java/org/apache/olingo/commons/api/ODataErrorDetail.java b/lib/commons-api/src/main/java/org/apache/olingo/commons/api/ODataErrorDetail.java
new file mode 100644
index 0000000..f8b1fa5
--- /dev/null
+++ b/lib/commons-api/src/main/java/org/apache/olingo/commons/api/ODataErrorDetail.java
@@ -0,0 +1,73 @@
+/*
+ * 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.commons.api;
+
+/**
+ * OData details, for example <tt>{ "error": {..., "details":[
+ * {"code": "301","target": "$search" ,"message": "$search query option not supported"}
+ * ],...}}</tt>.
+ */
+public class ODataErrorDetail {
+
+  private String code;
+  private String message;
+  private String target;
+
+  /**
+   * Gets error code.
+   * 
+   * @return error code.
+   */
+  public String getCode() {
+    return code;
+  }
+
+  public ODataErrorDetail setCode(final String code) {
+    this.code = code;
+    return this;
+  }
+
+  /**
+   * Gets error message.
+   * 
+   * @return error message.
+   */
+  public String getMessage() {
+    return message;
+  }
+
+  public ODataErrorDetail setMessage(final String message) {
+    this.message = message;
+    return this;
+  }
+
+  /**
+   * Gets error target.
+   * 
+   * @return error message.
+   */
+  public String getTarget() {
+    return target;
+  }
+
+  public ODataErrorDetail setTarget(final String target) {
+    this.target = target;
+    return this;
+  }
+}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/61500e68/lib/commons-api/src/main/java/org/apache/olingo/commons/api/ODataPropertyType.java
----------------------------------------------------------------------
diff --git a/lib/commons-api/src/main/java/org/apache/olingo/commons/api/ODataPropertyType.java b/lib/commons-api/src/main/java/org/apache/olingo/commons/api/ODataPropertyType.java
new file mode 100644
index 0000000..94c9fb0
--- /dev/null
+++ b/lib/commons-api/src/main/java/org/apache/olingo/commons/api/ODataPropertyType.java
@@ -0,0 +1,44 @@
+/*
+ * 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.commons.api;
+
+public enum ODataPropertyType {
+
+  /**
+   * Primitive (including geospatial).
+   */
+  PRIMITIVE,
+  /**
+   * Enum.
+   */
+  ENUM,
+  /**
+   * Collection.
+   */
+  COLLECTION,
+  /**
+   * Complex.
+   */
+  COMPLEX,
+  /**
+   * Empty type (possibly, no type information could be retrieved).
+   */
+  EMPTY
+
+}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/61500e68/lib/commons-api/src/main/java/org/apache/olingo/commons/api/domain/ODataError.java
----------------------------------------------------------------------
diff --git a/lib/commons-api/src/main/java/org/apache/olingo/commons/api/domain/ODataError.java b/lib/commons-api/src/main/java/org/apache/olingo/commons/api/domain/ODataError.java
deleted file mode 100644
index a910f08..0000000
--- a/lib/commons-api/src/main/java/org/apache/olingo/commons/api/domain/ODataError.java
+++ /dev/null
@@ -1,132 +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.commons.api.domain;
-
-import java.util.List;
-import java.util.Map;
-
-/**
- * OData error.
- */
-public class ODataError {
-
-  private String code;
-  private String message;
-  private String target;
-  private List<ODataErrorDetail> details;
-  private Map<String, String> innerError;
-
-  /**
-   * The value for the code name/value pair is a language-independent string. Its value is a service-defined error code.
-   * This code serves as a sub-status for the HTTP error code specified in the response. MAY be null.
-   * @return the error code as a string
-   */
-  public String getCode() {
-    return code;
-  }
-
-  /**
-   * The value for the code name/value pair is a language-independent string. Its value is a service-defined error code.
-   * This code serves as a sub-status for the HTTP error code specified in the response. MAY be null.
-   * @param code
-   * @return this for method chaining
-   */
-  public ODataError setCode(String code) {
-    this.code = code;
-    return this;
-  }
-
-  /**
-   * The value for the message name/value pair MUST be a human-readable, language-dependent representation of the error.
-   * MUST not be null
-   * @return the message string
-   */
-  public String getMessage() {
-    return message;
-  }
-
-  /**
-   * The value for the message name/value pair MUST be a human-readable, language-dependent representation of the error.
-   * MUST not be null
-   * @param message
-   * @return this for method chaining
-   */
-  public ODataError setMessage(String message) {
-    this.message = message;
-    return this;
-  }
-
-  /**
-   * The value for the target name/value pair is the target of the particular error (for example, the name of the
-   * property in error). MAY be null.
-   * @return the target string
-   */
-  public String getTarget() {
-    return target;
-  }
-
-  /**
-   * The value for the target name/value pair is the target of the particular error (for example, the name of the
-   * property in error). MAY be null.
-   * @param target
-   * @return this for method chaining
-   */
-  public ODataError setTarget(String target) {
-    this.target = target;
-    return this;
-  }
-
-  /**
-   * Gets error details.
-   * 
-   * @return ODataErrorDetail list.
-   */
-  public List<ODataErrorDetail> getDetails() {
-    return details;
-  }
-
-  /**
-   * Sets error details.
-   * 
-   * @return this for method chaining.
-   */
-  public ODataError setDetails(List<ODataErrorDetail> details) {
-    this.details = details;
-    return this;
-  }
-
-  /**
-   * Gets server defined key-value pairs for debug environment only.
-   * 
-   * @return a pair representing server defined object. MAY be null.
-   */
-  public Map<String, String> getInnerError() {
-    return innerError;
-  }
-
-  /**
-   * Sets server defined key-value pairs for debug environment only.
-   * 
-   * @return this for method chaining.
-   */
-  public ODataError setInnerError(Map<String, String> innerError) {
-    this.innerError = innerError;
-    return this;
-  }
-}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/61500e68/lib/commons-api/src/main/java/org/apache/olingo/commons/api/domain/ODataErrorDetail.java
----------------------------------------------------------------------
diff --git a/lib/commons-api/src/main/java/org/apache/olingo/commons/api/domain/ODataErrorDetail.java b/lib/commons-api/src/main/java/org/apache/olingo/commons/api/domain/ODataErrorDetail.java
deleted file mode 100644
index 573525d..0000000
--- a/lib/commons-api/src/main/java/org/apache/olingo/commons/api/domain/ODataErrorDetail.java
+++ /dev/null
@@ -1,73 +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.commons.api.domain;
-
-/**
- * OData details, for example <tt>{ "error": {..., "details":[
- * {"code": "301","target": "$search" ,"message": "$search query option not supported"}
- * ],...}}</tt>.
- */
-public class ODataErrorDetail {
-
-  private String code;
-  private String message;
-  private String target;
-
-  /**
-   * Gets error code.
-   * 
-   * @return error code.
-   */
-  public String getCode() {
-    return code;
-  }
-
-  public ODataErrorDetail setCode(final String code) {
-    this.code = code;
-    return this;
-  }
-
-  /**
-   * Gets error message.
-   * 
-   * @return error message.
-   */
-  public String getMessage() {
-    return message;
-  }
-
-  public ODataErrorDetail setMessage(final String message) {
-    this.message = message;
-    return this;
-  }
-
-  /**
-   * Gets error target.
-   * 
-   * @return error message.
-   */
-  public String getTarget() {
-    return target;
-  }
-
-  public ODataErrorDetail setTarget(final String target) {
-    this.target = target;
-    return this;
-  }
-}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/61500e68/lib/commons-api/src/main/java/org/apache/olingo/commons/api/domain/ODataPropertyType.java
----------------------------------------------------------------------
diff --git a/lib/commons-api/src/main/java/org/apache/olingo/commons/api/domain/ODataPropertyType.java b/lib/commons-api/src/main/java/org/apache/olingo/commons/api/domain/ODataPropertyType.java
deleted file mode 100644
index e7b5b85..0000000
--- a/lib/commons-api/src/main/java/org/apache/olingo/commons/api/domain/ODataPropertyType.java
+++ /dev/null
@@ -1,44 +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.commons.api.domain;
-
-public enum ODataPropertyType {
-
-  /**
-   * Primitive (including geospatial).
-   */
-  PRIMITIVE,
-  /**
-   * Enum.
-   */
-  ENUM,
-  /**
-   * Collection.
-   */
-  COLLECTION,
-  /**
-   * Complex.
-   */
-  COMPLEX,
-  /**
-   * Empty type (possibly, no type information could be retrieved).
-   */
-  EMPTY
-
-}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/61500e68/lib/commons-api/src/main/java/org/apache/olingo/commons/api/edm/annotation/EdmConstantAnnotationExpression.java
----------------------------------------------------------------------
diff --git a/lib/commons-api/src/main/java/org/apache/olingo/commons/api/edm/annotation/EdmConstantAnnotationExpression.java b/lib/commons-api/src/main/java/org/apache/olingo/commons/api/edm/annotation/EdmConstantAnnotationExpression.java
index 0f0a34f..11fbe5f 100644
--- a/lib/commons-api/src/main/java/org/apache/olingo/commons/api/edm/annotation/EdmConstantAnnotationExpression.java
+++ b/lib/commons-api/src/main/java/org/apache/olingo/commons/api/edm/annotation/EdmConstantAnnotationExpression.java
@@ -24,4 +24,5 @@ public interface EdmConstantAnnotationExpression extends EdmAnnotationExpression
 
   Valuable getValue();
 
+  String getValueAsString();
 }

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/61500e68/lib/commons-api/src/main/java/org/apache/olingo/commons/api/serialization/ODataDeserializer.java
----------------------------------------------------------------------
diff --git a/lib/commons-api/src/main/java/org/apache/olingo/commons/api/serialization/ODataDeserializer.java b/lib/commons-api/src/main/java/org/apache/olingo/commons/api/serialization/ODataDeserializer.java
index 8e313b1..21bcbe5 100755
--- a/lib/commons-api/src/main/java/org/apache/olingo/commons/api/serialization/ODataDeserializer.java
+++ b/lib/commons-api/src/main/java/org/apache/olingo/commons/api/serialization/ODataDeserializer.java
@@ -22,7 +22,7 @@ import org.apache.olingo.commons.api.data.Entity;
 import org.apache.olingo.commons.api.data.EntityCollection;
 import org.apache.olingo.commons.api.data.Property;
 import org.apache.olingo.commons.api.data.ResWrap;
-import org.apache.olingo.commons.api.domain.ODataError;
+import org.apache.olingo.commons.api.ODataError;
 
 import java.io.InputStream;
 

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/61500e68/lib/commons-core/src/main/java/org/apache/olingo/commons/core/edm/annotation/EdmConstantAnnotationExpressionImpl.java
----------------------------------------------------------------------
diff --git a/lib/commons-core/src/main/java/org/apache/olingo/commons/core/edm/annotation/EdmConstantAnnotationExpressionImpl.java b/lib/commons-core/src/main/java/org/apache/olingo/commons/core/edm/annotation/EdmConstantAnnotationExpressionImpl.java
index 9763596..cc9f4fb 100644
--- a/lib/commons-core/src/main/java/org/apache/olingo/commons/core/edm/annotation/EdmConstantAnnotationExpressionImpl.java
+++ b/lib/commons-core/src/main/java/org/apache/olingo/commons/core/edm/annotation/EdmConstantAnnotationExpressionImpl.java
@@ -55,7 +55,7 @@ public class EdmConstantAnnotationExpressionImpl implements EdmConstantAnnotatio
         for (Property enumValue : enumValues) {
           collValue.add(enumValue);
         }
-        value = new Property(enumTypeName, "name", ValueType.COLLECTION_ENUM, collValue);
+        value = new Property(enumTypeName, null, ValueType.COLLECTION_ENUM, collValue);
       }
       type = null;
     } else {
@@ -95,27 +95,13 @@ public class EdmConstantAnnotationExpressionImpl implements EdmConstantAnnotatio
       default:
         kind = EdmPrimitiveTypeKind.String;
       }
-//      final ClientPrimitiveValueImpl.BuilderImpl primitiveValueBuilder = new ClientPrimitiveValueImpl.BuilderImpl();
-//      primitiveValueBuilder.setType(kind);
-//      try {
-//        final EdmPrimitiveType type = EdmPrimitiveTypeFactory.getInstance(kind);
-//        primitiveValueBuilder.setValue(
-//            type.valueOfString(constExprConstruct.getValue(),
-//                null, null, Constants.DEFAULT_PRECISION, Constants.DEFAULT_SCALE, null,
-//                type.getDefaultType()));
-//      } catch (final EdmPrimitiveTypeException e) {
-//        throw new IllegalArgumentException(e);
-//      }
-//
-//      value = primitiveValueBuilder.build();
-
       type = EdmPrimitiveTypeFactory.getInstance(kind);
       try {
-        Object test = type.valueOfString(constExprConstruct.getValue(),
+        final Object valueOfString = type.valueOfString(constExprConstruct.getValue(),
                 null, null, Constants.DEFAULT_PRECISION, Constants.DEFAULT_SCALE, null,
                 type.getDefaultType());
         value = new Property(kind.getFullQualifiedName().getFullQualifiedNameAsString(),
-                "name", ValueType.PRIMITIVE, test);
+                null, ValueType.PRIMITIVE, valueOfString);
       } catch (EdmPrimitiveTypeException e) {
         throw new IllegalArgumentException(e);
       }
@@ -147,7 +133,8 @@ public class EdmConstantAnnotationExpressionImpl implements EdmConstantAnnotatio
     return value;
   }
 
-  public String toString() {
+  @Override
+  public String getValueAsString() {
     if (value == null) {
       return "";
     } else if(value.isEnum()) {
@@ -164,5 +151,4 @@ public class EdmConstantAnnotationExpressionImpl implements EdmConstantAnnotatio
       }
     }
   }
-
 }

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/61500e68/lib/commons-core/src/main/java/org/apache/olingo/commons/core/serialization/AtomDeserializer.java
----------------------------------------------------------------------
diff --git a/lib/commons-core/src/main/java/org/apache/olingo/commons/core/serialization/AtomDeserializer.java b/lib/commons-core/src/main/java/org/apache/olingo/commons/core/serialization/AtomDeserializer.java
index 6b4b72c..f2faaa9 100644
--- a/lib/commons-core/src/main/java/org/apache/olingo/commons/core/serialization/AtomDeserializer.java
+++ b/lib/commons-core/src/main/java/org/apache/olingo/commons/core/serialization/AtomDeserializer.java
@@ -51,8 +51,8 @@ import org.apache.olingo.commons.api.data.Property;
 import org.apache.olingo.commons.api.data.ResWrap;
 import org.apache.olingo.commons.api.data.Valuable;
 import org.apache.olingo.commons.api.data.ValueType;
-import org.apache.olingo.commons.api.domain.ODataError;
-import org.apache.olingo.commons.api.domain.ODataPropertyType;
+import org.apache.olingo.commons.api.ODataError;
+import org.apache.olingo.commons.api.ODataPropertyType;
 import org.apache.olingo.commons.api.edm.EdmPrimitiveType;
 import org.apache.olingo.commons.api.edm.EdmPrimitiveTypeException;
 import org.apache.olingo.commons.api.edm.EdmPrimitiveTypeKind;

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/61500e68/lib/commons-core/src/main/java/org/apache/olingo/commons/core/serialization/JsonDeserializer.java
----------------------------------------------------------------------
diff --git a/lib/commons-core/src/main/java/org/apache/olingo/commons/core/serialization/JsonDeserializer.java b/lib/commons-core/src/main/java/org/apache/olingo/commons/core/serialization/JsonDeserializer.java
index 1047bdf..2c13d35 100755
--- a/lib/commons-core/src/main/java/org/apache/olingo/commons/core/serialization/JsonDeserializer.java
+++ b/lib/commons-core/src/main/java/org/apache/olingo/commons/core/serialization/JsonDeserializer.java
@@ -43,8 +43,8 @@ import org.apache.olingo.commons.api.data.Property;
 import org.apache.olingo.commons.api.data.ResWrap;
 import org.apache.olingo.commons.api.data.Valuable;
 import org.apache.olingo.commons.api.data.ValueType;
-import org.apache.olingo.commons.api.domain.ODataError;
-import org.apache.olingo.commons.api.domain.ODataPropertyType;
+import org.apache.olingo.commons.api.ODataError;
+import org.apache.olingo.commons.api.ODataPropertyType;
 import org.apache.olingo.commons.api.edm.EdmPrimitiveType;
 import org.apache.olingo.commons.api.edm.EdmPrimitiveTypeException;
 import org.apache.olingo.commons.api.edm.EdmPrimitiveTypeKind;

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/61500e68/lib/commons-core/src/main/java/org/apache/olingo/commons/core/serialization/JsonODataErrorDeserializer.java
----------------------------------------------------------------------
diff --git a/lib/commons-core/src/main/java/org/apache/olingo/commons/core/serialization/JsonODataErrorDeserializer.java b/lib/commons-core/src/main/java/org/apache/olingo/commons/core/serialization/JsonODataErrorDeserializer.java
index 89252dc..8679c6e 100644
--- a/lib/commons-core/src/main/java/org/apache/olingo/commons/core/serialization/JsonODataErrorDeserializer.java
+++ b/lib/commons-core/src/main/java/org/apache/olingo/commons/core/serialization/JsonODataErrorDeserializer.java
@@ -25,8 +25,8 @@ import java.util.Iterator;
 import java.util.List;
 
 import org.apache.olingo.commons.api.Constants;
-import org.apache.olingo.commons.api.domain.ODataError;
-import org.apache.olingo.commons.api.domain.ODataErrorDetail;
+import org.apache.olingo.commons.api.ODataError;
+import org.apache.olingo.commons.api.ODataErrorDetail;
 
 import com.fasterxml.jackson.core.JsonParser;
 import com.fasterxml.jackson.databind.JsonNode;

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/61500e68/lib/commons-core/src/main/java/org/apache/olingo/commons/core/serialization/JsonODataErrorDetailDeserializer.java
----------------------------------------------------------------------
diff --git a/lib/commons-core/src/main/java/org/apache/olingo/commons/core/serialization/JsonODataErrorDetailDeserializer.java b/lib/commons-core/src/main/java/org/apache/olingo/commons/core/serialization/JsonODataErrorDetailDeserializer.java
index 138bad3..a4a5ec9 100644
--- a/lib/commons-core/src/main/java/org/apache/olingo/commons/core/serialization/JsonODataErrorDetailDeserializer.java
+++ b/lib/commons-core/src/main/java/org/apache/olingo/commons/core/serialization/JsonODataErrorDetailDeserializer.java
@@ -23,7 +23,7 @@ import java.net.URI;
 
 import org.apache.olingo.commons.api.Constants;
 import org.apache.olingo.commons.api.data.ResWrap;
-import org.apache.olingo.commons.api.domain.ODataErrorDetail;
+import org.apache.olingo.commons.api.ODataErrorDetail;
 
 import com.fasterxml.jackson.core.JsonParser;
 import com.fasterxml.jackson.databind.JsonNode;

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/61500e68/lib/server-api/src/main/java/org/apache/olingo/server/api/ClientServerError.java
----------------------------------------------------------------------
diff --git a/lib/server-api/src/main/java/org/apache/olingo/server/api/ClientServerError.java b/lib/server-api/src/main/java/org/apache/olingo/server/api/ClientServerError.java
index 6bbde22..af91875 100644
--- a/lib/server-api/src/main/java/org/apache/olingo/server/api/ClientServerError.java
+++ b/lib/server-api/src/main/java/org/apache/olingo/server/api/ClientServerError.java
@@ -22,8 +22,8 @@ import java.util.List;
 import java.util.Locale;
 import java.util.Map;
 
-import org.apache.olingo.commons.api.domain.ODataError;
-import org.apache.olingo.commons.api.domain.ODataErrorDetail;
+import org.apache.olingo.commons.api.ODataError;
+import org.apache.olingo.commons.api.ODataErrorDetail;
 
 /**
  * Server error.

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/61500e68/lib/server-core/src/main/java/org/apache/olingo/server/core/serializer/json/ODataErrorSerializer.java
----------------------------------------------------------------------
diff --git a/lib/server-core/src/main/java/org/apache/olingo/server/core/serializer/json/ODataErrorSerializer.java b/lib/server-core/src/main/java/org/apache/olingo/server/core/serializer/json/ODataErrorSerializer.java
index 14381bb..70d6364 100644
--- a/lib/server-core/src/main/java/org/apache/olingo/server/core/serializer/json/ODataErrorSerializer.java
+++ b/lib/server-core/src/main/java/org/apache/olingo/server/core/serializer/json/ODataErrorSerializer.java
@@ -21,8 +21,8 @@ package org.apache.olingo.server.core.serializer.json;
 import java.io.IOException;
 
 import org.apache.olingo.commons.api.Constants;
-import org.apache.olingo.commons.api.domain.ODataError;
-import org.apache.olingo.commons.api.domain.ODataErrorDetail;
+import org.apache.olingo.commons.api.ODataError;
+import org.apache.olingo.commons.api.ODataErrorDetail;
 import org.apache.olingo.server.api.serializer.SerializerException;
 
 import com.fasterxml.jackson.core.JsonGenerator;

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/61500e68/lib/server-core/src/test/java/org/apache/olingo/server/core/serializer/json/ClientErrorSerializerTest.java
----------------------------------------------------------------------
diff --git a/lib/server-core/src/test/java/org/apache/olingo/server/core/serializer/json/ClientErrorSerializerTest.java b/lib/server-core/src/test/java/org/apache/olingo/server/core/serializer/json/ClientErrorSerializerTest.java
index adf0eb4..7c72e45 100644
--- a/lib/server-core/src/test/java/org/apache/olingo/server/core/serializer/json/ClientErrorSerializerTest.java
+++ b/lib/server-core/src/test/java/org/apache/olingo/server/core/serializer/json/ClientErrorSerializerTest.java
@@ -26,7 +26,7 @@ import java.util.ArrayList;
 import java.util.List;
 
 import org.apache.commons.io.IOUtils;
-import org.apache.olingo.commons.api.domain.ODataErrorDetail;
+import org.apache.olingo.commons.api.ODataErrorDetail;
 import org.apache.olingo.commons.api.format.ODataFormat;
 import org.apache.olingo.server.api.OData;
 import org.apache.olingo.server.api.ClientServerError;


[11/50] [abbrv] olingo-odata4 git commit: [OLINGO-564] Renamed 'edm.provider.*' classes

Posted by mi...@apache.org.
http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/2318953c/lib/server-tecsvc/src/main/java/org/apache/olingo/server/tecsvc/provider/ContainerProvider.java
----------------------------------------------------------------------
diff --git a/lib/server-tecsvc/src/main/java/org/apache/olingo/server/tecsvc/provider/ContainerProvider.java b/lib/server-tecsvc/src/main/java/org/apache/olingo/server/tecsvc/provider/ContainerProvider.java
index 9b982aa..1f5bd03 100644
--- a/lib/server-tecsvc/src/main/java/org/apache/olingo/server/tecsvc/provider/ContainerProvider.java
+++ b/lib/server-tecsvc/src/main/java/org/apache/olingo/server/tecsvc/provider/ContainerProvider.java
@@ -24,13 +24,13 @@ import java.util.List;
 
 import org.apache.olingo.commons.api.ODataException;
 import org.apache.olingo.commons.api.edm.FullQualifiedName;
-import org.apache.olingo.commons.api.edm.provider.ActionImport;
-import org.apache.olingo.commons.api.edm.provider.EntityContainer;
-import org.apache.olingo.commons.api.edm.provider.EntityContainerInfo;
-import org.apache.olingo.commons.api.edm.provider.EntitySet;
-import org.apache.olingo.commons.api.edm.provider.FunctionImport;
-import org.apache.olingo.commons.api.edm.provider.NavigationPropertyBinding;
-import org.apache.olingo.commons.api.edm.provider.Singleton;
+import org.apache.olingo.commons.api.edm.provider.CsdlActionImport;
+import org.apache.olingo.commons.api.edm.provider.CsdlEntityContainer;
+import org.apache.olingo.commons.api.edm.provider.CsdlEntityContainerInfo;
+import org.apache.olingo.commons.api.edm.provider.CsdlEntitySet;
+import org.apache.olingo.commons.api.edm.provider.CsdlFunctionImport;
+import org.apache.olingo.commons.api.edm.provider.CsdlNavigationPropertyBinding;
+import org.apache.olingo.commons.api.edm.provider.CsdlSingleton;
 
 public class ContainerProvider {
 
@@ -47,8 +47,8 @@ public class ContainerProvider {
   public static final String AIRT_PARAM = "AIRTParam";
   public static final String AIRT_TWO_PARAM = "AIRTTwoParam";
 
-  EntityContainerInfo entityContainerInfoTest1 =
-      new EntityContainerInfo().setContainerName(nameContainer);
+  CsdlEntityContainerInfo entityContainerInfoTest1 =
+      new CsdlEntityContainerInfo().setContainerName(nameContainer);
 
   private EdmTechProvider prov;
 
@@ -56,7 +56,8 @@ public class ContainerProvider {
     prov = edmTechProvider;
   }
 
-  public EntityContainerInfo getEntityContainerInfo(final FullQualifiedName entityContainerName) throws ODataException {
+  public CsdlEntityContainerInfo getEntityContainerInfo(final FullQualifiedName entityContainerName)
+      throws ODataException {
     if (entityContainerName == null) {
       return entityContainerInfoTest1;
     } else if (entityContainerName.equals(nameContainer)) {
@@ -66,12 +67,12 @@ public class ContainerProvider {
     return null;
   }
 
-  public EntityContainer getEntityContainer() throws ODataException {
-    EntityContainer container = new EntityContainer();
+  public CsdlEntityContainer getEntityContainer() throws ODataException {
+    CsdlEntityContainer container = new CsdlEntityContainer();
     container.setName(ContainerProvider.nameContainer.getName());
 
     // EntitySets
-    List<EntitySet> entitySets = new ArrayList<EntitySet>();
+    List<CsdlEntitySet> entitySets = new ArrayList<CsdlEntitySet>();
     container.setEntitySets(entitySets);
     entitySets.add(prov.getEntitySet(ContainerProvider.nameContainer, "ESAllPrim"));
     entitySets.add(prov.getEntitySet(ContainerProvider.nameContainer, "ESCollAllPrim"));
@@ -100,16 +101,16 @@ public class ContainerProvider {
     entitySets.add(prov.getEntitySet(ContainerProvider.nameContainer, "ESMixEnumDefCollComp"));
     entitySets.add(prov.getEntitySet(ContainerProvider.nameContainer, "ESTwoBaseTwoKeyNav"));
     entitySets.add(prov.getEntitySet(ContainerProvider.nameContainer, "ESKeyNavCont"));
-    
+
     // Singletons
-    List<Singleton> singletons = new ArrayList<Singleton>();
+    List<CsdlSingleton> singletons = new ArrayList<CsdlSingleton>();
     container.setSingletons(singletons);
     singletons.add(prov.getSingleton(ContainerProvider.nameContainer, "SI"));
     singletons.add(prov.getSingleton(ContainerProvider.nameContainer, "SINav"));
     singletons.add(prov.getSingleton(ContainerProvider.nameContainer, "SIMedia"));
 
     // ActionImports
-    List<ActionImport> actionImports = new ArrayList<ActionImport>();
+    List<CsdlActionImport> actionImports = new ArrayList<CsdlActionImport>();
     container.setActionImports(actionImports);
     actionImports.add(prov.getActionImport(ContainerProvider.nameContainer, AIRT_STRING));
     actionImports.add(prov.getActionImport(ContainerProvider.nameContainer, AIRT_COLL_STRING_TWO_PARAM));
@@ -124,7 +125,7 @@ public class ContainerProvider {
     actionImports.add(prov.getActionImport(ContainerProvider.nameContainer, AIRT_TWO_PARAM));
 
     // FunctionImports
-    List<FunctionImport> functionImports = new ArrayList<FunctionImport>();
+    List<CsdlFunctionImport> functionImports = new ArrayList<CsdlFunctionImport>();
     container.setFunctionImports(functionImports);
     functionImports.add(prov.getFunctionImport(ContainerProvider.nameContainer, "FINRTInt16"));
     functionImports.add(prov.getFunctionImport(ContainerProvider.nameContainer, "FINInvisibleRTInt16"));
@@ -148,291 +149,291 @@ public class ContainerProvider {
     functionImports.add(prov.getFunctionImport(ContainerProvider.nameContainer, "FICRTCollESTwoKeyNavParam"));
     functionImports.add(prov.getFunctionImport(ContainerProvider.nameContainer, "FICRTCollCTTwoPrimParam"));
     functionImports.add(prov.getFunctionImport(ContainerProvider.nameContainer, "FINRTCollCTNavFiveProp"));
-    functionImports.add(prov.getFunctionImport(ContainerProvider.nameContainer, "FICRTCollESKeyNavContParam"));  
-    
+    functionImports.add(prov.getFunctionImport(ContainerProvider.nameContainer, "FICRTCollESKeyNavContParam"));
+
     return container;
   }
 
-  public EntitySet getEntitySet(final FullQualifiedName entityContainer, final String name) throws ODataException {
+  public CsdlEntitySet getEntitySet(final FullQualifiedName entityContainer, final String name) throws ODataException {
     if (entityContainer == nameContainer) {
       if (name.equals("ESAllPrim")) {
-        return new EntitySet()
+        return new CsdlEntitySet()
             .setName("ESAllPrim")
             .setType(EntityTypeProvider.nameETAllPrim)
             .setNavigationPropertyBindings(Arrays.asList(
-                new NavigationPropertyBinding()
-                  .setPath("NavPropertyETTwoPrimOne")
-                  .setTarget("ESTwoPrim"),
-                new NavigationPropertyBinding()
-                  .setPath("NavPropertyETTwoPrimMany")
-                  .setTarget("ESTwoPrim")
-             ));
+                new CsdlNavigationPropertyBinding()
+                    .setPath("NavPropertyETTwoPrimOne")
+                    .setTarget("ESTwoPrim"),
+                new CsdlNavigationPropertyBinding()
+                    .setPath("NavPropertyETTwoPrimMany")
+                    .setTarget("ESTwoPrim")
+                ));
 
       } else if (name.equals("ESCollAllPrim")) {
-        return new EntitySet()
+        return new CsdlEntitySet()
             .setName("ESCollAllPrim")
             .setType(EntityTypeProvider.nameETCollAllPrim);
 
       } else if (name.equals("ESTwoPrim")) {
-        return new EntitySet()
+        return new CsdlEntitySet()
             .setName("ESTwoPrim")
             .setType(EntityTypeProvider.nameETTwoPrim)
             .setNavigationPropertyBindings(Arrays.asList(
-                new NavigationPropertyBinding()
-                  .setPath("NavPropertyETAllPrimOne")
-                  .setTarget("ESAllPrim"),
-                new NavigationPropertyBinding()
-                  .setPath("NavPropertyETAllPrimMany")
-                  .setTarget("ESAllPrim")
-             ));
+                new CsdlNavigationPropertyBinding()
+                    .setPath("NavPropertyETAllPrimOne")
+                    .setTarget("ESAllPrim"),
+                new CsdlNavigationPropertyBinding()
+                    .setPath("NavPropertyETAllPrimMany")
+                    .setTarget("ESAllPrim")
+                ));
 
       } else if (name.equals("ESMixPrimCollComp")) {
-        return new EntitySet()
+        return new CsdlEntitySet()
             .setName("ESMixPrimCollComp")
             .setType(EntityTypeProvider.nameETMixPrimCollComp);
 
       } else if (name.equals("ESBase")) {
-        return new EntitySet()
+        return new CsdlEntitySet()
             .setName("ESBase")
             .setType(EntityTypeProvider.nameETBase);
 
       } else if (name.equals("ESTwoBase")) {
-        return new EntitySet()
+        return new CsdlEntitySet()
             .setName("ESTwoBase")
             .setType(EntityTypeProvider.nameETTwoBase);
 
       } else if (name.equals("ESTwoKeyTwoPrim")) {
-        return new EntitySet()
+        return new CsdlEntitySet()
             .setName("ESTwoKeyTwoPrim")
             .setType(EntityTypeProvider.nameETTwoKeyTwoPrim);
 
       } else if (name.equals("ESBaseTwoKeyTwoPrim")) {
-        return new EntitySet()
+        return new CsdlEntitySet()
             .setName("ESBaseTwoKeyTwoPrim")
             .setType(EntityTypeProvider.nameETBaseTwoKeyTwoPrim);
 
       } else if (name.equals("ESTwoBaseTwoKeyTwoPrim")) {
-        return new EntitySet()
+        return new CsdlEntitySet()
             .setName("ESTwoBaseTwoKeyTwoPrim")
             .setType(EntityTypeProvider.nameETTwoBaseTwoKeyTwoPrim);
 
       } else if (name.equals("ESAllKey")) {
-        return new EntitySet()
+        return new CsdlEntitySet()
             .setName("ESAllKey")
             .setType(EntityTypeProvider.nameETAllKey);
 
       } else if (name.equals("ESCompAllPrim")) {
-        return new EntitySet()
+        return new CsdlEntitySet()
             .setName("ESCompAllPrim")
             .setType(EntityTypeProvider.nameETCompAllPrim);
 
       } else if (name.equals("ESCompCollAllPrim")) {
-        return new EntitySet()
+        return new CsdlEntitySet()
             .setName("ESCompCollAllPrim")
             .setType(EntityTypeProvider.nameETCompCollAllPrim);
 
       } else if (name.equals("ESCompComp")) {
-        return new EntitySet()
+        return new CsdlEntitySet()
             .setName("ESCompComp")
             .setType(EntityTypeProvider.nameETCompComp);
 
       } else if (name.equals("ESCompCollComp")) {
-        return new EntitySet()
+        return new CsdlEntitySet()
             .setName("ESCompCollComp")
             .setType(EntityTypeProvider.nameETCompCollComp);
 
       } else if (name.equals("ESMedia")) {
-        return new EntitySet()
+        return new CsdlEntitySet()
             .setName("ESMedia")
             .setType(EntityTypeProvider.nameETMedia)
             .setIncludeInServiceDocument(true);
 
       } else if (name.equals("ESKeyTwoKeyComp")) {
-        return new EntitySet()
+        return new CsdlEntitySet()
             .setName("ESKeyTwoKeyComp")
             .setType(EntityTypeProvider.nameETKeyTwoKeyComp);
 
       } else if (name.equals("ESInvisible")) {
-        return new EntitySet()
+        return new CsdlEntitySet()
             .setName("ESInvisible")
             .setIncludeInServiceDocument(false)
             .setType(EntityTypeProvider.nameETAllPrim);
 
       } else if (name.equals("ESServerSidePaging")) {
-        return new EntitySet()
+        return new CsdlEntitySet()
             .setName("ESServerSidePaging")
             .setType(EntityTypeProvider.nameETServerSidePaging);
 
       } else if (name.equals("ESAllNullable")) {
-        return new EntitySet()
+        return new CsdlEntitySet()
             .setName("ESAllNullable")
             .setType(EntityTypeProvider.nameETAllNullable);
 
       } else if (name.equals("ESKeyNav")) {
-        
-        return new EntitySet()
+
+        return new CsdlEntitySet()
             .setName("ESKeyNav")
             .setType(EntityTypeProvider.nameETKeyNav)
             .setNavigationPropertyBindings(Arrays.asList(
-                new NavigationPropertyBinding()
-                  .setPath("NavPropertyETKeyNavOne")
-                  .setTarget("ESKeyNav"),
-                new NavigationPropertyBinding()
-                  .setPath("NavPropertyETKeyNavMany")
-                  .setTarget("ESKeyNav"),
-                new NavigationPropertyBinding()
-                  .setPath("NavPropertyETTwoKeyNavOne")
-                  .setTarget("ESTwoKeyNav"),
-                new NavigationPropertyBinding()
-                  .setPath("NavPropertyETTwoKeyNavMany")
-                  .setTarget("ESTwoKeyNav"),
-                new NavigationPropertyBinding()
-                  .setPath("NavPropertyETMediaOne")
-                  .setTarget("ESMedia"),
-                new NavigationPropertyBinding()
-                  .setPath("NavPropertyETMediaMany")
-                  .setTarget("ESMedia"),
-                new NavigationPropertyBinding()
-                  .setPath("PropertyCompNav/NavPropertyETTwoKeyNavOne")
-                  .setTarget("ESTwoKeyNav"),
-                new NavigationPropertyBinding()
-                  .setPath("PropertyCompNav/NavPropertyETTwoKeyNavMany")
-                  .setTarget("ESTwoKeyNav"),
-                new NavigationPropertyBinding()
-                  .setPath("PropertyCompNav/NavPropertyETMediaOne")
-                  .setTarget("ESMedia"),
-                new NavigationPropertyBinding()
-                  .setPath("PropertyCompNav/NavPropertyETMediaMany")
-                  .setTarget("ESMedia"),
-                new NavigationPropertyBinding()
-                  .setPath("PropertyCompCompNav/PropertyCompNav/NavPropertyETTwoKeyNavOne")
-                  .setTarget("ESTwoKeyNav"),
-                new NavigationPropertyBinding()
-                  .setPath("PropertyCompCompNav/PropertyCompNav/NavPropertyETTwoKeyNavMany")
-                  .setTarget("ESTwoKeyNav"),
-                new NavigationPropertyBinding()
-                  .setPath("PropertyCompCompNav/PropertyCompNav/NavPropertyETMediaOne")
-                  .setTarget("ESMedia"),
-                new NavigationPropertyBinding()
-                  .setPath("PropertyCompCompNav/PropertyCompNav/NavPropertyETMediaMany")
-                  .setTarget("ESMedia"),
-                new NavigationPropertyBinding()
-                  .setPath("ETKeyNav/PropertyCompNav/NavPropertyETTwoKeyNavMany")
-                  .setTarget("ESTwoKeyNav"),
-                new NavigationPropertyBinding()
-                  .setPath("ETKeyNav/PropertyCompNav/NavPropertyETTwoKeyNavMany")
-                  .setTarget("ESTwoKeyNav"),
-                new NavigationPropertyBinding()
-                  .setPath("PropertyCompNav/com.corp.odata.test1.CTNavFiveProp/NavPropertyETTwoKeyNavMany")
-                  .setTarget("ESTwoKeyNav")
+                new CsdlNavigationPropertyBinding()
+                    .setPath("NavPropertyETKeyNavOne")
+                    .setTarget("ESKeyNav"),
+                new CsdlNavigationPropertyBinding()
+                    .setPath("NavPropertyETKeyNavMany")
+                    .setTarget("ESKeyNav"),
+                new CsdlNavigationPropertyBinding()
+                    .setPath("NavPropertyETTwoKeyNavOne")
+                    .setTarget("ESTwoKeyNav"),
+                new CsdlNavigationPropertyBinding()
+                    .setPath("NavPropertyETTwoKeyNavMany")
+                    .setTarget("ESTwoKeyNav"),
+                new CsdlNavigationPropertyBinding()
+                    .setPath("NavPropertyETMediaOne")
+                    .setTarget("ESMedia"),
+                new CsdlNavigationPropertyBinding()
+                    .setPath("NavPropertyETMediaMany")
+                    .setTarget("ESMedia"),
+                new CsdlNavigationPropertyBinding()
+                    .setPath("PropertyCompNav/NavPropertyETTwoKeyNavOne")
+                    .setTarget("ESTwoKeyNav"),
+                new CsdlNavigationPropertyBinding()
+                    .setPath("PropertyCompNav/NavPropertyETTwoKeyNavMany")
+                    .setTarget("ESTwoKeyNav"),
+                new CsdlNavigationPropertyBinding()
+                    .setPath("PropertyCompNav/NavPropertyETMediaOne")
+                    .setTarget("ESMedia"),
+                new CsdlNavigationPropertyBinding()
+                    .setPath("PropertyCompNav/NavPropertyETMediaMany")
+                    .setTarget("ESMedia"),
+                new CsdlNavigationPropertyBinding()
+                    .setPath("PropertyCompCompNav/PropertyCompNav/NavPropertyETTwoKeyNavOne")
+                    .setTarget("ESTwoKeyNav"),
+                new CsdlNavigationPropertyBinding()
+                    .setPath("PropertyCompCompNav/PropertyCompNav/NavPropertyETTwoKeyNavMany")
+                    .setTarget("ESTwoKeyNav"),
+                new CsdlNavigationPropertyBinding()
+                    .setPath("PropertyCompCompNav/PropertyCompNav/NavPropertyETMediaOne")
+                    .setTarget("ESMedia"),
+                new CsdlNavigationPropertyBinding()
+                    .setPath("PropertyCompCompNav/PropertyCompNav/NavPropertyETMediaMany")
+                    .setTarget("ESMedia"),
+                new CsdlNavigationPropertyBinding()
+                    .setPath("ETKeyNav/PropertyCompNav/NavPropertyETTwoKeyNavMany")
+                    .setTarget("ESTwoKeyNav"),
+                new CsdlNavigationPropertyBinding()
+                    .setPath("ETKeyNav/PropertyCompNav/NavPropertyETTwoKeyNavMany")
+                    .setTarget("ESTwoKeyNav"),
+                new CsdlNavigationPropertyBinding()
+                    .setPath("PropertyCompNav/com.corp.odata.test1.CTNavFiveProp/NavPropertyETTwoKeyNavMany")
+                    .setTarget("ESTwoKeyNav")
                 ));
-        
+
       } else if (name.equals("ESTwoKeyNav")) {
-        return new EntitySet()
+        return new CsdlEntitySet()
             .setName("ESTwoKeyNav")
             .setType(EntityTypeProvider.nameETTwoKeyNav)
             .setNavigationPropertyBindings(Arrays.asList(
-                new NavigationPropertyBinding()
-                  .setPath("NavPropertyETKeyNavOne")
-                  .setTarget("ESKeyNav"),
-                new NavigationPropertyBinding()
-                  .setPath("NavPropertyETKeyNavMany")
-                  .setTarget("ESKeyNav"),
-                new NavigationPropertyBinding()
-                  .setPath("NavPropertyETTwoKeyNavOne")
-                  .setTarget("ESTwoKeyNav"),
-                new NavigationPropertyBinding()
-                  .setPath("NavPropertyETTwoKeyNavMany")
-                  .setTarget("ESTwoKeyNav"),
-                new NavigationPropertyBinding()
-                  .setPath("PropertyCompNav/NavPropertyETTwoKeyNavOne")
-                  .setTarget("ESTwoKeyNav"),
-                new NavigationPropertyBinding()
-                  .setPath("PropertyCompNav/NavPropertyETTwoKeyNavMany")
-                  .setTarget("ESTwoKeyNav"),
-                new NavigationPropertyBinding()
-                  .setPath("PropertyCompNav/NavPropertyETKeyNavOne")
-                  .setTarget("ESKeyNav"),
-                new NavigationPropertyBinding()
-                  .setPath("PropertyCompNav/NavPropertyETKeyNavMany")
-                  .setTarget("ESKeyNav"),
-                new NavigationPropertyBinding()
-                  .setPath("CollPropertyCompNav/NavPropertyETTwoKeyNavOne")
-                  .setTarget("ESTwoKeyNav"),
-                new NavigationPropertyBinding()
-                  .setPath("CollPropertyCompNav/NavPropertyETTwoKeyNavMany")
-                  .setTarget("ESTwoKeyNav"),
-                new NavigationPropertyBinding()
-                  .setPath("CollPropertyCompNav/NavPropertyETMediaOne")
-                  .setTarget("ESMedia"),
-                new NavigationPropertyBinding()
-                  .setPath("CollPropertyCompNav/NavPropertyETMediaMany")
-                  .setTarget("ESMedia"),
-                new NavigationPropertyBinding()
-                  .setPath("NavPropertyETTwoBaseTwoKeyNavOne")
-                  .setTarget("ESBaseTwoKeyNav"),
-                new NavigationPropertyBinding()
-                  .setPath("ETBaseTwoKeyNav/CollPropertyCompNav/NavPropertyETTwoKeyNavMany")
-                  .setTarget("ESTwoKeyNav"),
-                new NavigationPropertyBinding()
-                  .setPath("ETBaseTwoKeyNav/NavPropertyETTwoBaseTwoKeyNavOne")
-                  .setTarget("ESBaseTwoKeyNav"),
-                new NavigationPropertyBinding()
-                .setPath("NavPropertySINav")
-                .setTarget("SINav")
-            ));
-        
-      } else if(name.equals("ESKeyNavCont")) {
-        return new EntitySet()
-          .setName("ESKeyNavCont")
-          .setType(EntityTypeProvider.nameETKeyNavCont)
-          .setNavigationPropertyBindings(Arrays.asList(
-                new NavigationPropertyBinding()
+                new CsdlNavigationPropertyBinding()
+                    .setPath("NavPropertyETKeyNavOne")
+                    .setTarget("ESKeyNav"),
+                new CsdlNavigationPropertyBinding()
+                    .setPath("NavPropertyETKeyNavMany")
+                    .setTarget("ESKeyNav"),
+                new CsdlNavigationPropertyBinding()
+                    .setPath("NavPropertyETTwoKeyNavOne")
+                    .setTarget("ESTwoKeyNav"),
+                new CsdlNavigationPropertyBinding()
+                    .setPath("NavPropertyETTwoKeyNavMany")
+                    .setTarget("ESTwoKeyNav"),
+                new CsdlNavigationPropertyBinding()
+                    .setPath("PropertyCompNav/NavPropertyETTwoKeyNavOne")
+                    .setTarget("ESTwoKeyNav"),
+                new CsdlNavigationPropertyBinding()
+                    .setPath("PropertyCompNav/NavPropertyETTwoKeyNavMany")
+                    .setTarget("ESTwoKeyNav"),
+                new CsdlNavigationPropertyBinding()
+                    .setPath("PropertyCompNav/NavPropertyETKeyNavOne")
+                    .setTarget("ESKeyNav"),
+                new CsdlNavigationPropertyBinding()
+                    .setPath("PropertyCompNav/NavPropertyETKeyNavMany")
+                    .setTarget("ESKeyNav"),
+                new CsdlNavigationPropertyBinding()
+                    .setPath("CollPropertyCompNav/NavPropertyETTwoKeyNavOne")
+                    .setTarget("ESTwoKeyNav"),
+                new CsdlNavigationPropertyBinding()
+                    .setPath("CollPropertyCompNav/NavPropertyETTwoKeyNavMany")
+                    .setTarget("ESTwoKeyNav"),
+                new CsdlNavigationPropertyBinding()
+                    .setPath("CollPropertyCompNav/NavPropertyETMediaOne")
+                    .setTarget("ESMedia"),
+                new CsdlNavigationPropertyBinding()
+                    .setPath("CollPropertyCompNav/NavPropertyETMediaMany")
+                    .setTarget("ESMedia"),
+                new CsdlNavigationPropertyBinding()
+                    .setPath("NavPropertyETTwoBaseTwoKeyNavOne")
+                    .setTarget("ESBaseTwoKeyNav"),
+                new CsdlNavigationPropertyBinding()
+                    .setPath("ETBaseTwoKeyNav/CollPropertyCompNav/NavPropertyETTwoKeyNavMany")
+                    .setTarget("ESTwoKeyNav"),
+                new CsdlNavigationPropertyBinding()
+                    .setPath("ETBaseTwoKeyNav/NavPropertyETTwoBaseTwoKeyNavOne")
+                    .setTarget("ESBaseTwoKeyNav"),
+                new CsdlNavigationPropertyBinding()
+                    .setPath("NavPropertySINav")
+                    .setTarget("SINav")
+                ));
+
+      } else if (name.equals("ESKeyNavCont")) {
+        return new CsdlEntitySet()
+            .setName("ESKeyNavCont")
+            .setType(EntityTypeProvider.nameETKeyNavCont)
+            .setNavigationPropertyBindings(Arrays.asList(
+                new CsdlNavigationPropertyBinding()
                     .setPath("NavPropertyETTwoKeyNavContOne/NavPropertyETKeyNavOne")
                     .setTarget("ESKeyNav"),
-                new NavigationPropertyBinding()
+                new CsdlNavigationPropertyBinding()
                     .setPath("NavPropertyETTwoKeyNavContMany/NavPropertyETKeyNavOne")
                     .setTarget("ESKeyNav"),
-                new NavigationPropertyBinding()
+                new CsdlNavigationPropertyBinding()
                     .setPath("PropertyCompNavCont/NavPropertyETKeyNavContMany/NavPropertyETKeyNavOne")
                     .setTarget("ESKeyNav"),
-                new NavigationPropertyBinding()
+                new CsdlNavigationPropertyBinding()
                     .setPath("PropertyCompNavCont/NavPropertyETKeyNavContOne/NavPropertyETKeyNavOne")
                     .setTarget("ESKeyNav"),
-                new NavigationPropertyBinding()
+                new CsdlNavigationPropertyBinding()
                     .setPath("PropertyCompNavCont/NavPropertyETTwoKeyNavContMany/NavPropertyETKeyNavOne")
                     .setTarget("ESKeyNav"),
-                new NavigationPropertyBinding()
+                new CsdlNavigationPropertyBinding()
                     .setPath("PropertyCompNavCont/NavPropertyETTwoKeyNavContOne/NavPropertyETKeyNavOne")
                     .setTarget("ESKeyNav")
-              ));
+                ));
 
       } else if (name.equals("ESBaseTwoKeyNav")) {
-        return new EntitySet()
+        return new CsdlEntitySet()
             .setName("ESBaseTwoKeyNav")
             .setType(EntityTypeProvider.nameETBaseTwoKeyNav)
             .setNavigationPropertyBindings(Arrays.asList(
-                new NavigationPropertyBinding()
-                        .setPath("NavPropertyETKeyNavMany")
-                        .setTarget("ESKeyNav"))
+                new CsdlNavigationPropertyBinding()
+                    .setPath("NavPropertyETKeyNavMany")
+                    .setTarget("ESKeyNav"))
             );
-      } else if(name.equals("ESTwoBaseTwoKeyNav")) {
-        return new EntitySet()
-          .setName("ESTwoBaseTwoKeyNav")
-          .setType(EntityTypeProvider.nameETTwoBaseTwoKeyNav);
-        
+      } else if (name.equals("ESTwoBaseTwoKeyNav")) {
+        return new CsdlEntitySet()
+            .setName("ESTwoBaseTwoKeyNav")
+            .setType(EntityTypeProvider.nameETTwoBaseTwoKeyNav);
+
       } else if (name.equals("ESCompMixPrimCollComp")) {
-        return new EntitySet()
+        return new CsdlEntitySet()
             .setName("ESCompMixPrimCollComp")
             .setType(EntityTypeProvider.nameETCompMixPrimCollComp);
 
       } else if (name.equals("ESFourKeyAlias")) {
-        return new EntitySet()
+        return new CsdlEntitySet()
             .setName("ESFourKeyAlias")
             .setType(EntityTypeProvider.nameETFourKeyAlias);
-        
+
       } else if (name.equals("ESMixEnumDefCollComp")) {
-        return new EntitySet().setName("ESMixEnumDefCollComp").setType(
+        return new CsdlEntitySet().setName("ESMixEnumDefCollComp").setType(
             EntityTypeProvider.nameETMixEnumDefCollComp);
       }
     }
@@ -440,63 +441,63 @@ public class ContainerProvider {
     return null;
   }
 
-  public ActionImport getActionImport(final FullQualifiedName entityContainer, final String name)
+  public CsdlActionImport getActionImport(final FullQualifiedName entityContainer, final String name)
       throws ODataException {
     if (entityContainer.equals(nameContainer)) {
       if (name.equals(AIRT_STRING)) {
-        return new ActionImport()
+        return new CsdlActionImport()
             .setName(AIRT_STRING)
             .setAction(ActionProvider.nameUARTString);
 
       } else if (name.equals(AIRT_COLL_STRING_TWO_PARAM)) {
-        return new ActionImport()
+        return new CsdlActionImport()
             .setName(AIRT_COLL_STRING_TWO_PARAM)
             .setAction(ActionProvider.nameUARTCollStringTwoParam);
 
       } else if (name.equals(AIRTCT_TWO_PRIM_PARAM)) {
-        return new ActionImport()
+        return new CsdlActionImport()
             .setName(AIRTCT_TWO_PRIM_PARAM)
             .setAction(ActionProvider.nameUARTCTTwoPrimParam);
 
       } else if (name.equals(AIRT_COLL_CT_TWO_PRIM_PARAM)) {
-        return new ActionImport()
+        return new CsdlActionImport()
             .setName(AIRT_COLL_CT_TWO_PRIM_PARAM)
             .setAction(ActionProvider.nameUARTCollCTTwoPrimParam);
 
       } else if (name.equals(AIRTET_TWO_KEY_TWO_PRIM_PARAM)) {
-        return new ActionImport()
+        return new CsdlActionImport()
             .setName(AIRTET_TWO_KEY_TWO_PRIM_PARAM)
             .setAction(ActionProvider.nameUARTETTwoKeyTwoPrimParam);
 
       } else if (name.equals(AIRT_COLL_ET_KEY_NAV_PARAM)) {
-        return new ActionImport()
+        return new CsdlActionImport()
             .setName(AIRT_COLL_ET_KEY_NAV_PARAM)
             .setAction(ActionProvider.nameUARTCollETKeyNavParam);
 
       } else if (name.equals(AIRTES_ALL_PRIM_PARAM)) {
-        return new ActionImport()
+        return new CsdlActionImport()
             .setName(AIRTES_ALL_PRIM_PARAM)
             .setEntitySet("ESAllPrim")
             .setAction(ActionProvider.nameUARTETAllPrimParam);
 
       } else if (name.equals(AIRT_COLL_ES_ALL_PRIM_PARAM)) {
-        return new ActionImport()
+        return new CsdlActionImport()
             .setName(AIRT_COLL_ES_ALL_PRIM_PARAM)
             .setEntitySet("ESAllPrim")
             .setAction(ActionProvider.nameUARTCollETAllPrimParam);
 
       } else if (name.equals(AIRT)) {
-        return new ActionImport()
+        return new CsdlActionImport()
             .setName(AIRT)
             .setAction(ActionProvider.nameUART);
 
       } else if (name.equals(AIRT_PARAM)) {
-        return new ActionImport()
+        return new CsdlActionImport()
             .setName(AIRT_PARAM)
             .setAction(ActionProvider.nameUARTParam);
 
       } else if (name.equals(AIRT_TWO_PARAM)) {
-        return new ActionImport()
+        return new CsdlActionImport()
             .setName(AIRT_TWO_PARAM)
             .setAction(ActionProvider.nameUARTTwoParam);
       }
@@ -505,179 +506,179 @@ public class ContainerProvider {
     return null;
   }
 
-  public FunctionImport getFunctionImport(final FullQualifiedName entityContainer, final String name)
+  public CsdlFunctionImport getFunctionImport(final FullQualifiedName entityContainer, final String name)
       throws ODataException {
 
     if (entityContainer.equals(nameContainer)) {
       if (name.equals("FINRTInt16")) {
-        return new FunctionImport()
+        return new CsdlFunctionImport()
             .setName(name)
             .setFunction(FunctionProvider.nameUFNRTInt16)
             .setIncludeInServiceDocument(true);
 
       } else if (name.equals("FINInvisibleRTInt16")) {
-        return new FunctionImport()
+        return new CsdlFunctionImport()
             .setName(name)
             .setFunction(FunctionProvider.nameUFNRTInt16);
 
       } else if (name.equals("FINInvisible2RTInt16")) {
-        return new FunctionImport()
+        return new CsdlFunctionImport()
             .setName(name)
             .setFunction(FunctionProvider.nameUFNRTInt16);
 
       } else if (name.equals("FICRTETKeyNav")) {
-        return new FunctionImport()
+        return new CsdlFunctionImport()
             .setName(name)
             .setFunction(FunctionProvider.nameUFCRTETKeyNav);
 
       } else if (name.equals("FICRTESTwoKeyNav")) {
-        return new FunctionImport()
+        return new CsdlFunctionImport()
             .setName(name)
             .setFunction(FunctionProvider.nameUFCRTETTwoKeyNav)
             .setEntitySet(entityContainer.getFullQualifiedNameAsString() + "/ESTwoKeyNav")
             .setIncludeInServiceDocument(true);
       } else if (name.equals("FICRTETTwoKeyNavParam")) {
-        return new FunctionImport()
+        return new CsdlFunctionImport()
             .setName(name)
             .setFunction(FunctionProvider.nameUFCRTETTwoKeyNavParam)
             .setIncludeInServiceDocument(true);
 
       } else if (name.equals("FICRTStringTwoParam")) {
-        return new FunctionImport()
+        return new CsdlFunctionImport()
             .setName(name)
             .setFunction(FunctionProvider.nameUFCRTStringTwoParam)
             .setIncludeInServiceDocument(true);
 
       } else if (name.equals("FICRTCollStringTwoParam")) {
-        return new FunctionImport()
+        return new CsdlFunctionImport()
             .setName(name)
             .setFunction(FunctionProvider.nameUFCRTCollStringTwoParam)
             .setIncludeInServiceDocument(true);
 
       } else if (name.equals("FICRTCTAllPrimTwoParam")) {
-        return new FunctionImport()
+        return new CsdlFunctionImport()
             .setName(name)
             .setFunction(FunctionProvider.nameUFCRTCTAllPrimTwoParam)
             .setIncludeInServiceDocument(true);
 
       } else if (name.equals("FICRTESMixPrimCollCompTwoParam")) {
-        return new FunctionImport()
+        return new CsdlFunctionImport()
             .setName(name)
             .setFunction(FunctionProvider.nameUFCRTESMixPrimCollCompTwoParam)
             .setIncludeInServiceDocument(true);
-        
-      } else if(name.equals("FINRTCollETMixPrimCollCompTwoParam")) {
-        return new FunctionImport()
-          .setName(name)
-          .setFunction(FunctionProvider.nameUFNRTCollETMixPrimCollCompTwoParam)
-          .setIncludeInServiceDocument(true);
-      
+
+      } else if (name.equals("FINRTCollETMixPrimCollCompTwoParam")) {
+        return new CsdlFunctionImport()
+            .setName(name)
+            .setFunction(FunctionProvider.nameUFNRTCollETMixPrimCollCompTwoParam)
+            .setIncludeInServiceDocument(true);
+
       } else if (name.equals("FICRTCollETMixPrimCollCompTwoParam")) {
-        return new FunctionImport()
+        return new CsdlFunctionImport()
             .setName(name)
             .setFunction(FunctionProvider.nameUFCRTCollETMixPrimCollCompTwoParam)
             .setIncludeInServiceDocument(true);
 
       } else if (name.equals("FICRTCollCTTwoPrim")) {
-        return new FunctionImport()
+        return new CsdlFunctionImport()
             .setName(name)
             .setFunction(FunctionProvider.nameUFCRTCollCTTwoPrim)
             .setIncludeInServiceDocument(true);
 
       } else if (name.equals("FICRTESMedia")) {
-        return new FunctionImport()
+        return new CsdlFunctionImport()
             .setName(name)
             .setFunction(FunctionProvider.nameUFCRTETMedia)
             .setEntitySet(entityContainer.getFullQualifiedNameAsString() + "/ESMedia")
             .setIncludeInServiceDocument(true);
       } else if (name.equals("FICRTCollESMedia")) {
-        return new FunctionImport()
+        return new CsdlFunctionImport()
             .setName(name)
             .setFunction(FunctionProvider.nameUFCRTCollETMedia)
             .setEntitySet(entityContainer.getFullQualifiedNameAsString() + "/ESMedia")
             .setIncludeInServiceDocument(true);
 
       } else if (name.equals("FICRTCTTwoPrimParam")) {
-        return new FunctionImport()
+        return new CsdlFunctionImport()
             .setName(name)
             .setFunction(FunctionProvider.nameUFCRTCTTwoPrimParam)
             .setIncludeInServiceDocument(true);
 
       } else if (name.equals("FICRTCTTwoPrim")) {
-        return new FunctionImport()
+        return new CsdlFunctionImport()
             .setName(name)
             .setFunction(FunctionProvider.nameUFCRTCTTwoPrim)
             .setIncludeInServiceDocument(true);
 
       } else if (name.equals("FICRTCollString")) {
-        return new FunctionImport()
+        return new CsdlFunctionImport()
             .setName(name)
             .setFunction(FunctionProvider.nameUFCRTCollString)
             .setIncludeInServiceDocument(true);
 
       } else if (name.equals("FICRTString")) {
-        return new FunctionImport()
+        return new CsdlFunctionImport()
             .setName(name)
             .setFunction(FunctionProvider.nameUFCRTString)
             .setIncludeInServiceDocument(true);
 
       } else if (name.equals("FICRTCollESTwoKeyNavParam")) {
-        return new FunctionImport()
+        return new CsdlFunctionImport()
             .setName(name)
             .setFunction(FunctionProvider.nameUFCRTCollETTwoKeyNavParam)
             .setEntitySet(entityContainer.getFullQualifiedNameAsString() + "/ESTwoKeyNav")
             .setIncludeInServiceDocument(true);
 
       } else if (name.equals("FICRTCollCTTwoPrimParam")) {
-        return new FunctionImport()
+        return new CsdlFunctionImport()
             .setName(name)
             .setFunction(FunctionProvider.nameUFCRTCollCTTwoPrimParam)
             .setIncludeInServiceDocument(true);
-        
-      } else if(name.equals("FINRTCollCTNavFiveProp")) {
-        return new FunctionImport()
-          .setName(name)
-          .setFunction(FunctionProvider.nameUFNRTCollCTNavFiveProp)
-          .setIncludeInServiceDocument(true);
-        
-      } else if(name.equals("FICRTCollESKeyNavContParam")) {
-        return new FunctionImport()
-        .setName(name)
-        .setFunction(FunctionProvider.nameUFCRTCollETKeyNavContParam)
-        .setEntitySet("ESKeyNavCont")
-        .setIncludeInServiceDocument(true);
+
+      } else if (name.equals("FINRTCollCTNavFiveProp")) {
+        return new CsdlFunctionImport()
+            .setName(name)
+            .setFunction(FunctionProvider.nameUFNRTCollCTNavFiveProp)
+            .setIncludeInServiceDocument(true);
+
+      } else if (name.equals("FICRTCollESKeyNavContParam")) {
+        return new CsdlFunctionImport()
+            .setName(name)
+            .setFunction(FunctionProvider.nameUFCRTCollETKeyNavContParam)
+            .setEntitySet("ESKeyNavCont")
+            .setIncludeInServiceDocument(true);
       }
     }
-    
+
     return null;
   }
 
-  public Singleton getSingleton(final FullQualifiedName entityContainer, final String name) throws ODataException {
+  public CsdlSingleton getSingleton(final FullQualifiedName entityContainer, final String name) throws ODataException {
     if (entityContainer.equals(nameContainer)) {
 
       if (name.equals("SI")) {
-        return new Singleton()
+        return new CsdlSingleton()
             .setName("SI")
             .setType(EntityTypeProvider.nameETTwoPrim);
 
       } else if (name.equals("SINav")) {
-        return new Singleton()
+        return new CsdlSingleton()
             .setName("SINav")
             .setType(EntityTypeProvider.nameETTwoKeyNav)
             .setNavigationPropertyBindings(Arrays.asList(
-                new NavigationPropertyBinding()
+                new CsdlNavigationPropertyBinding()
                     .setPath("NavPropertyETTwoKeyNavMany")
                     .setTarget("ESTwoKeyNav"),
-                new NavigationPropertyBinding()
+                new CsdlNavigationPropertyBinding()
                     .setPath("NavPropertyETTwoKeyNavOne")
                     .setTarget("ESTwoKeyNav"),
-                new NavigationPropertyBinding()
+                new CsdlNavigationPropertyBinding()
                     .setPath("NavPropertyETKeyNavOne")
                     .setTarget("ESKeyNav")
                 ));
 
       } else if (name.equals("SIMedia")) {
-        return new Singleton()
+        return new CsdlSingleton()
             .setName("SIMedia")
             .setType(EntityTypeProvider.nameETMedia);
       }

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/2318953c/lib/server-tecsvc/src/main/java/org/apache/olingo/server/tecsvc/provider/EdmTechProvider.java
----------------------------------------------------------------------
diff --git a/lib/server-tecsvc/src/main/java/org/apache/olingo/server/tecsvc/provider/EdmTechProvider.java b/lib/server-tecsvc/src/main/java/org/apache/olingo/server/tecsvc/provider/EdmTechProvider.java
index 410a0bc..afb23d6 100644
--- a/lib/server-tecsvc/src/main/java/org/apache/olingo/server/tecsvc/provider/EdmTechProvider.java
+++ b/lib/server-tecsvc/src/main/java/org/apache/olingo/server/tecsvc/provider/EdmTechProvider.java
@@ -24,25 +24,25 @@ import java.util.List;
 
 import org.apache.olingo.commons.api.ODataException;
 import org.apache.olingo.commons.api.edm.FullQualifiedName;
-import org.apache.olingo.commons.api.edm.provider.AbstractEdmProvider;
-import org.apache.olingo.commons.api.edm.provider.Action;
-import org.apache.olingo.commons.api.edm.provider.ActionImport;
-import org.apache.olingo.commons.api.edm.provider.AliasInfo;
-import org.apache.olingo.commons.api.edm.provider.ComplexType;
-import org.apache.olingo.commons.api.edm.provider.EntityContainer;
-import org.apache.olingo.commons.api.edm.provider.EntityContainerInfo;
-import org.apache.olingo.commons.api.edm.provider.EntitySet;
-import org.apache.olingo.commons.api.edm.provider.EntityType;
-import org.apache.olingo.commons.api.edm.provider.EnumType;
-import org.apache.olingo.commons.api.edm.provider.Function;
-import org.apache.olingo.commons.api.edm.provider.FunctionImport;
-import org.apache.olingo.commons.api.edm.provider.Schema;
-import org.apache.olingo.commons.api.edm.provider.Singleton;
-import org.apache.olingo.commons.api.edm.provider.Term;
-import org.apache.olingo.commons.api.edm.provider.TypeDefinition;
+import org.apache.olingo.commons.api.edm.provider.CsdlAbstractEdmProvider;
+import org.apache.olingo.commons.api.edm.provider.CsdlAction;
+import org.apache.olingo.commons.api.edm.provider.CsdlActionImport;
+import org.apache.olingo.commons.api.edm.provider.CsdlAliasInfo;
+import org.apache.olingo.commons.api.edm.provider.CsdlComplexType;
+import org.apache.olingo.commons.api.edm.provider.CsdlEntityContainer;
+import org.apache.olingo.commons.api.edm.provider.CsdlEntityContainerInfo;
+import org.apache.olingo.commons.api.edm.provider.CsdlEntitySet;
+import org.apache.olingo.commons.api.edm.provider.CsdlEntityType;
+import org.apache.olingo.commons.api.edm.provider.CsdlEnumType;
+import org.apache.olingo.commons.api.edm.provider.CsdlFunction;
+import org.apache.olingo.commons.api.edm.provider.CsdlFunctionImport;
+import org.apache.olingo.commons.api.edm.provider.CsdlSchema;
+import org.apache.olingo.commons.api.edm.provider.CsdlSingleton;
+import org.apache.olingo.commons.api.edm.provider.CsdlTerm;
+import org.apache.olingo.commons.api.edm.provider.CsdlTypeDefinition;
 import org.apache.olingo.server.api.edmx.EdmxReference;
 
-public class EdmTechProvider extends AbstractEdmProvider {
+public class EdmTechProvider extends CsdlAbstractEdmProvider {
 
   public static final String nameSpace = "olingo.odata.test1";
 
@@ -71,83 +71,84 @@ public class EdmTechProvider extends AbstractEdmProvider {
   }
 
   @Override
-  public List<AliasInfo> getAliasInfos() throws ODataException {
+  public List<CsdlAliasInfo> getAliasInfos() throws ODataException {
     return Arrays.asList(
-        new AliasInfo().setAlias("Namespace1_Alias").setNamespace(nameSpace)
+        new CsdlAliasInfo().setAlias("Namespace1_Alias").setNamespace(nameSpace)
         );
   }
 
   @Override
-  public EnumType getEnumType(final FullQualifiedName enumTypeName) throws ODataException {
+  public CsdlEnumType getEnumType(final FullQualifiedName enumTypeName) throws ODataException {
     return enumTypeProvider.getEnumType(enumTypeName);
   }
 
   @Override
-  public TypeDefinition getTypeDefinition(final FullQualifiedName typeDefinitionName) throws ODataException {
+  public CsdlTypeDefinition getTypeDefinition(final FullQualifiedName typeDefinitionName) throws ODataException {
     return typeDefinitionProvider.getTypeDefinition(typeDefinitionName);
   }
 
   @Override
-  public EntityType getEntityType(final FullQualifiedName entityTypeName) throws ODataException {
+  public CsdlEntityType getEntityType(final FullQualifiedName entityTypeName) throws ODataException {
     return entityTypeProvider.getEntityType(entityTypeName);
   }
 
   @Override
-  public ComplexType getComplexType(final FullQualifiedName complexTypeName) throws ODataException {
+  public CsdlComplexType getComplexType(final FullQualifiedName complexTypeName) throws ODataException {
     return complexTypeProvider.getComplexType(complexTypeName);
   }
 
   @Override
-  public List<Action> getActions(final FullQualifiedName actionName) throws ODataException {
+  public List<CsdlAction> getActions(final FullQualifiedName actionName) throws ODataException {
     return actionProvider.getActions(actionName);
   }
 
   @Override
-  public List<Function> getFunctions(final FullQualifiedName functionName) throws ODataException {
+  public List<CsdlFunction> getFunctions(final FullQualifiedName functionName) throws ODataException {
     return functionProvider.getFunctions(functionName);
   }
 
   @Override
-  public Term getTerm(final FullQualifiedName termName) throws ODataException {
+  public CsdlTerm getTerm(final FullQualifiedName termName) throws ODataException {
     return null;
   }
 
   @Override
-  public EntitySet getEntitySet(final FullQualifiedName entityContainer, final String entitySetName)
+  public CsdlEntitySet getEntitySet(final FullQualifiedName entityContainer, final String entitySetName)
       throws ODataException {
     return containerProvider.getEntitySet(entityContainer, entitySetName);
   }
 
   @Override
-  public Singleton getSingleton(final FullQualifiedName entityContainer, final String singletonName)
+  public CsdlSingleton getSingleton(final FullQualifiedName entityContainer, final String singletonName)
       throws ODataException {
     return containerProvider.getSingleton(entityContainer, singletonName);
   }
 
   @Override
-  public ActionImport getActionImport(final FullQualifiedName entityContainer, final String actionImportName)
+  public CsdlActionImport getActionImport(final FullQualifiedName entityContainer, final String actionImportName)
       throws ODataException {
     return containerProvider.getActionImport(entityContainer, actionImportName);
   }
 
   @Override
-  public FunctionImport getFunctionImport(final FullQualifiedName entityContainer, final String functionImportName)
+  public CsdlFunctionImport getFunctionImport(final FullQualifiedName entityContainer, final String functionImportName)
       throws ODataException {
     return containerProvider.getFunctionImport(entityContainer, functionImportName);
   }
 
   @Override
-  public List<Schema> getSchemas() throws ODataException {
+  public List<CsdlSchema> getSchemas() throws ODataException {
     return schemaProvider.getSchemas();
   }
 
   @Override
-  public EntityContainer getEntityContainer() throws ODataException {
+  public CsdlEntityContainer getEntityContainer() throws ODataException {
     return containerProvider.getEntityContainer();
   }
 
   @Override
-  public EntityContainerInfo getEntityContainerInfo(final FullQualifiedName entityContainerName) throws ODataException {
+  public CsdlEntityContainerInfo getEntityContainerInfo(final FullQualifiedName entityContainerName)
+          throws ODataException {
     return containerProvider.getEntityContainerInfo(entityContainerName);
   }
 }

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/2318953c/lib/server-tecsvc/src/main/java/org/apache/olingo/server/tecsvc/provider/EntityTypeProvider.java
----------------------------------------------------------------------
diff --git a/lib/server-tecsvc/src/main/java/org/apache/olingo/server/tecsvc/provider/EntityTypeProvider.java b/lib/server-tecsvc/src/main/java/org/apache/olingo/server/tecsvc/provider/EntityTypeProvider.java
index 4eb1b41..50a8004 100644
--- a/lib/server-tecsvc/src/main/java/org/apache/olingo/server/tecsvc/provider/EntityTypeProvider.java
+++ b/lib/server-tecsvc/src/main/java/org/apache/olingo/server/tecsvc/provider/EntityTypeProvider.java
@@ -20,11 +20,11 @@ package org.apache.olingo.server.tecsvc.provider;
 
 import org.apache.olingo.commons.api.ODataException;
 import org.apache.olingo.commons.api.edm.FullQualifiedName;
-import org.apache.olingo.commons.api.edm.provider.EntityType;
-import org.apache.olingo.commons.api.edm.provider.NavigationProperty;
-import org.apache.olingo.commons.api.edm.provider.Property;
-import org.apache.olingo.commons.api.edm.provider.PropertyRef;
-import org.apache.olingo.commons.api.edm.provider.ReferentialConstraint;
+import org.apache.olingo.commons.api.edm.provider.CsdlEntityType;
+import org.apache.olingo.commons.api.edm.provider.CsdlNavigationProperty;
+import org.apache.olingo.commons.api.edm.provider.CsdlProperty;
+import org.apache.olingo.commons.api.edm.provider.CsdlPropertyRef;
+import org.apache.olingo.commons.api.edm.provider.CsdlReferentialConstraint;
 
 import java.util.Arrays;
 
@@ -81,12 +81,12 @@ public class EntityTypeProvider {
   public static final FullQualifiedName nameETMixEnumDefCollComp = new FullQualifiedName(SchemaProvider.NAMESPACE,
       "ETMixEnumDefCollComp");
 
-  public EntityType getEntityType(final FullQualifiedName entityTypeName) throws ODataException {
+  public CsdlEntityType getEntityType(final FullQualifiedName entityTypeName) throws ODataException {
     if (entityTypeName.equals(nameETAllPrim)) {
-      return new EntityType()
+      return new CsdlEntityType()
           .setName("ETAllPrim")
           .setKey(Arrays.asList(
-              new PropertyRef().setName("PropertyInt16")))
+              new CsdlPropertyRef().setName("PropertyInt16")))
           .setProperties(Arrays.asList(
               PropertyProvider.propertyInt16_NotNullable, PropertyProvider.propertyString,
               PropertyProvider.propertyBoolean, PropertyProvider.propertyByte, PropertyProvider.propertySByte,
@@ -99,9 +99,9 @@ public class EntityTypeProvider {
               PropertyProvider.collectionNavPropertyETTwoPrimMany_ETTwoPrim));
 
     } else if (entityTypeName.equals(nameETCollAllPrim)) {
-      return new EntityType()
+      return new CsdlEntityType()
           .setName("ETCollAllPrim")
-          .setKey(Arrays.asList(new PropertyRef().setName("PropertyInt16")))
+          .setKey(Arrays.asList(new CsdlPropertyRef().setName("PropertyInt16")))
 
           .setProperties(
               Arrays.asList(
@@ -120,9 +120,9 @@ public class EntityTypeProvider {
                   ));
 
     } else if (entityTypeName.equals(nameETTwoPrim)) {
-      return new EntityType()
+      return new CsdlEntityType()
           .setName("ETTwoPrim")
-          .setKey(Arrays.asList(new PropertyRef().setName("PropertyInt16")))
+          .setKey(Arrays.asList(new CsdlPropertyRef().setName("PropertyInt16")))
           .setProperties(Arrays.asList(
               PropertyProvider.propertyInt16_NotNullable, PropertyProvider.propertyString))
           .setNavigationProperties(
@@ -130,66 +130,66 @@ public class EntityTypeProvider {
                   PropertyProvider.collectionNavPropertyETAllPrimMany_ETAllPrim));
 
     } else if (entityTypeName.equals(nameETMixPrimCollComp)) {
-      return new EntityType()
+      return new CsdlEntityType()
           .setName("ETMixPrimCollComp")
-          .setKey(Arrays.asList(new PropertyRef().setName("PropertyInt16")))
+          .setKey(Arrays.asList(new CsdlPropertyRef().setName("PropertyInt16")))
           .setProperties(Arrays.asList(
               PropertyProvider.propertyInt16_NotNullable, PropertyProvider.collPropertyString,
               PropertyProvider.propertyComp_CTTwoPrim, PropertyProvider.collPropertyComp_CTTwoPrim));
 
     } else if (entityTypeName.equals(nameETTwoKeyTwoPrim)) {
-      return new EntityType()
+      return new CsdlEntityType()
           .setName("ETTwoKeyTwoPrim")
           .setKey(Arrays.asList(
-              new PropertyRef().setName("PropertyInt16"),
-              new PropertyRef().setName("PropertyString")))
+              new CsdlPropertyRef().setName("PropertyInt16"),
+              new CsdlPropertyRef().setName("PropertyString")))
           .setProperties(Arrays.asList(
               PropertyProvider.propertyInt16_NotNullable, PropertyProvider.propertyString_NotNullable));
 
     } else if (entityTypeName.equals(nameETBaseTwoKeyTwoPrim)) {
-      return new EntityType()
+      return new CsdlEntityType()
           .setName("ETBaseTwoKeyTwoPrim")
           .setBaseType(nameETTwoKeyTwoPrim);
 
     } else if (entityTypeName.equals(nameETTwoBaseTwoKeyTwoPrim)) {
-      return new EntityType()
+      return new CsdlEntityType()
           .setName("ETTwoBaseTwoKeyTwoPrim")
           .setBaseType(nameETTwoKeyTwoPrim);
 
     } else if (entityTypeName.equals(nameETBase)) {
-      return new EntityType()
+      return new CsdlEntityType()
           .setName("ETBase")
           .setBaseType(nameETTwoPrim)
-          .setProperties(Arrays.asList(new Property()
+          .setProperties(Arrays.asList(new CsdlProperty()
               .setName("AdditionalPropertyString_5")
               .setType(PropertyProvider.nameString)));
 
     } else if (entityTypeName.equals(nameETTwoBase)) {
-      return new EntityType()
+      return new CsdlEntityType()
           .setName("ETTwoBase")
           .setBaseType(nameETBase)
-          .setProperties(Arrays.asList(new Property()
+          .setProperties(Arrays.asList(new CsdlProperty()
               .setName("AdditionalPropertyString_6")
               .setType(PropertyProvider.nameString))
           );
 
     } else if (entityTypeName.equals(nameETAllKey)) {
-      return new EntityType()
+      return new CsdlEntityType()
           .setName("ETAllKey")
           .setKey(Arrays.asList(
-              new PropertyRef().setName("PropertyString"),
-              new PropertyRef().setName("PropertyBoolean"),
-              new PropertyRef().setName("PropertyByte"),
-              new PropertyRef().setName("PropertySByte"),
-              new PropertyRef().setName("PropertyInt16"),
-              new PropertyRef().setName("PropertyInt32"),
-              new PropertyRef().setName("PropertyInt64"),
-              new PropertyRef().setName("PropertyDecimal"),
-              new PropertyRef().setName("PropertyDate"),
-              new PropertyRef().setName("PropertyDateTimeOffset"),
-              new PropertyRef().setName("PropertyDuration"),
-              new PropertyRef().setName("PropertyGuid"),
-              new PropertyRef().setName("PropertyTimeOfDay")))
+              new CsdlPropertyRef().setName("PropertyString"),
+              new CsdlPropertyRef().setName("PropertyBoolean"),
+              new CsdlPropertyRef().setName("PropertyByte"),
+              new CsdlPropertyRef().setName("PropertySByte"),
+              new CsdlPropertyRef().setName("PropertyInt16"),
+              new CsdlPropertyRef().setName("PropertyInt32"),
+              new CsdlPropertyRef().setName("PropertyInt64"),
+              new CsdlPropertyRef().setName("PropertyDecimal"),
+              new CsdlPropertyRef().setName("PropertyDate"),
+              new CsdlPropertyRef().setName("PropertyDateTimeOffset"),
+              new CsdlPropertyRef().setName("PropertyDuration"),
+              new CsdlPropertyRef().setName("PropertyGuid"),
+              new CsdlPropertyRef().setName("PropertyTimeOfDay")))
           .setProperties(
               Arrays.asList(
                   PropertyProvider.propertyString_NotNullable, PropertyProvider.propertyBoolean_NotNullable,
@@ -202,56 +202,56 @@ public class EntityTypeProvider {
                   PropertyProvider.propertyTimeOfDay_NotNullable));
 
     } else if (entityTypeName.equals(nameETCompAllPrim)) {
-      return new EntityType()
+      return new CsdlEntityType()
           .setName("ETCompAllPrim")
-          .setKey(Arrays.asList(new PropertyRef().setName("PropertyInt16")))
+          .setKey(Arrays.asList(new CsdlPropertyRef().setName("PropertyInt16")))
           .setProperties(
               Arrays.asList(PropertyProvider.propertyInt16_NotNullable, PropertyProvider.propertyComp_CTAllPrim));
 
     } else if (entityTypeName.equals(nameETCompCollAllPrim)) {
-      return new EntityType()
+      return new CsdlEntityType()
           .setName("ETCompCollAllPrim")
-          .setKey(Arrays.asList(new PropertyRef().setName("PropertyInt16")))
+          .setKey(Arrays.asList(new CsdlPropertyRef().setName("PropertyInt16")))
 
           .setProperties(
               Arrays.asList(PropertyProvider.propertyInt16_NotNullable,
                   PropertyProvider.propertyComp_CTCollAllPrim));
 
     } else if (entityTypeName.equals(nameETCompComp)) {
-      return new EntityType()
+      return new CsdlEntityType()
           .setName("ETCompComp")
-          .setKey(Arrays.asList(new PropertyRef().setName("PropertyInt16")))
+          .setKey(Arrays.asList(new CsdlPropertyRef().setName("PropertyInt16")))
           .setProperties(
               Arrays.asList(PropertyProvider.propertyInt16_NotNullable, PropertyProvider.propertyComp_CTCompComp));
 
     } else if (entityTypeName.equals(nameETCompCollComp)) {
-      return new EntityType()
+      return new CsdlEntityType()
           .setName("ETCompCollComp")
-          .setKey(Arrays.asList(new PropertyRef().setName("PropertyInt16")))
+          .setKey(Arrays.asList(new CsdlPropertyRef().setName("PropertyInt16")))
           .setProperties(
               Arrays
                   .asList(PropertyProvider.propertyInt16_NotNullable, PropertyProvider.propertyComp_CTCompCollComp));
 
     } else if (entityTypeName.equals(nameETMedia)) {
-      return new EntityType()
+      return new CsdlEntityType()
           .setName("ETMedia")
-          .setKey(Arrays.asList(new PropertyRef().setName("PropertyInt16")))
+          .setKey(Arrays.asList(new CsdlPropertyRef().setName("PropertyInt16")))
           .setProperties(Arrays.asList(PropertyProvider.propertyInt16_NotNullable))
           .setHasStream(true);
 
     } else if (entityTypeName.equals(nameETKeyTwoKeyComp)) {
-      return new EntityType()
+      return new CsdlEntityType()
           .setName("ETKeyTwoKeyComp")
           .setKey(Arrays.asList(
-              new PropertyRef()
+              new CsdlPropertyRef()
                   .setName("PropertyInt16"),
-              new PropertyRef()
+              new CsdlPropertyRef()
                   .setName("PropertyComp/PropertyInt16")
                   .setAlias("KeyAlias1"),
-              new PropertyRef()
+              new CsdlPropertyRef()
                   .setName("PropertyComp/PropertyString")
                   .setAlias("KeyAlias2"),
-              new PropertyRef()
+              new CsdlPropertyRef()
                   .setName("PropertyCompComp/PropertyComp/PropertyString")
                   .setAlias("KeyAlias3")))
           .setProperties(
@@ -260,19 +260,19 @@ public class EntityTypeProvider {
                   PropertyProvider.propertyCompComp_CTCompComp));
 
     } else if (entityTypeName.equals(nameETServerSidePaging)) {
-      return new EntityType()
+      return new CsdlEntityType()
           .setName(nameETServerSidePaging.getName())
-          .setKey(Arrays.asList(new PropertyRef().setName("PropertyInt16")))
+          .setKey(Arrays.asList(new CsdlPropertyRef().setName("PropertyInt16")))
           .setProperties(Arrays.asList(PropertyProvider.propertyInt16_NotNullable,
               PropertyProvider.propertyString_NotNullable));
 
     } else if (entityTypeName.equals(nameETAllNullable)) {
-      return new EntityType()
+      return new CsdlEntityType()
           .setName("ETAllNullable")
-          .setKey(Arrays.asList(new PropertyRef().setName("PropertyKey")))
+          .setKey(Arrays.asList(new CsdlPropertyRef().setName("PropertyKey")))
           .setProperties(
               Arrays.asList(
-                  new Property()
+                  new CsdlProperty()
                       .setName("PropertyKey").setType(PropertyProvider.nameInt16).setNullable(false),
                   PropertyProvider.propertyInt16_ExplicitNullable, PropertyProvider.propertyString_ExplicitNullable,
                   PropertyProvider.propertyBoolean_ExplicitNullable, PropertyProvider.propertyByte_ExplicitNullable,
@@ -301,9 +301,9 @@ public class EntityTypeProvider {
                   PropertyProvider.collPropertyTimeOfDay_ExplicitNullable));
 
     } else if (entityTypeName.equals(nameETKeyNav)) {
-      return new EntityType()
+      return new CsdlEntityType()
           .setName("ETKeyNav")
-          .setKey(Arrays.asList(new PropertyRef().setName("PropertyInt16")))
+          .setKey(Arrays.asList(new CsdlPropertyRef().setName("PropertyInt16")))
           .setProperties(
               Arrays.asList(
                   PropertyProvider.propertyInt16_NotNullable, PropertyProvider.propertyString_NotNullable,
@@ -311,7 +311,7 @@ public class EntityTypeProvider {
                   PropertyProvider.propertyCompAllPrim_CTAllPrim, PropertyProvider.propertyCompTwoPrim_CTTwoPrim,
                   PropertyProvider.collPropertyString, PropertyProvider.collPropertyInt16,
                   PropertyProvider.collPropertyComp_CTPrimComp,
-                  new Property()
+                  new CsdlProperty()
                       .setName("PropertyCompCompNav").setType(ComplexTypeProvider.nameCTCompNav)
                   ))
           .setNavigationProperties(
@@ -323,18 +323,18 @@ public class EntityTypeProvider {
                   PropertyProvider.navPropertyETMediaOne_ETMedia,
                   PropertyProvider.collectionNavPropertyETMediaMany_ETMedia));
     } else if (entityTypeName.equals(nameETKeyPrimNav)) {
-      return new EntityType()
+      return new CsdlEntityType()
           .setName("ETKeyPrimNav")
-          .setKey(Arrays.asList(new PropertyRef().setName("PropertyInt16")))
+          .setKey(Arrays.asList(new CsdlPropertyRef().setName("PropertyInt16")))
           .setProperties(Arrays.asList(
               PropertyProvider.propertyInt16_NotNullable, PropertyProvider.propertyString_ExplicitNullable))
           .setNavigationProperties(
               Arrays.asList(
                   PropertyProvider.navPropertyETKeyPrimNavOne_ETKeyPrimNav));
     } else if(entityTypeName.equals(nameETKeyNavCont)) {
-      return new EntityType()
+      return new CsdlEntityType()
         .setName("ETKeyNavCont")
-        .setKey(Arrays.asList(new PropertyRef().setName("PropertyInt16")))
+        .setKey(Arrays.asList(new CsdlPropertyRef().setName("PropertyInt16")))
         .setProperties(Arrays.asList(
             PropertyProvider.propertyInt16_NotNullable, PropertyProvider.propertyString_NotNullable, 
             PropertyProvider.propertyCompNavCont))
@@ -344,28 +344,28 @@ public class EntityTypeProvider {
             ));
 
     } else if (entityTypeName.equals(nameETTwoKeyNav)) {
-      return new EntityType()
+      return new CsdlEntityType()
           .setName("ETTwoKeyNav")
           .setKey(Arrays.asList(
-              new PropertyRef().setName("PropertyInt16"),
-              new PropertyRef().setName("PropertyString")))
+              new CsdlPropertyRef().setName("PropertyInt16"),
+              new CsdlPropertyRef().setName("PropertyString")))
           .setProperties(
               Arrays.asList(
                   PropertyProvider.propertyInt16_NotNullable, PropertyProvider.propertyString_NotNullable,
                   PropertyProvider.propertyComp_CTPrimComp_NotNullable,
-                  new Property().setName("PropertyCompNav").setType(ComplexTypeProvider.nameCTBasePrimCompNav)
+                  new CsdlProperty().setName("PropertyCompNav").setType(ComplexTypeProvider.nameCTBasePrimCompNav)
                       .setNullable(false),
                   PropertyProvider.collPropertyComp_CTPrimComp,
-                  new Property().setName("CollPropertyCompNav").setType(ComplexTypeProvider.nameCTNavFiveProp)
+                  new CsdlProperty().setName("CollPropertyCompNav").setType(ComplexTypeProvider.nameCTNavFiveProp)
                       .setCollection(true),
                   PropertyProvider.collPropertyString, PropertyProvider.propertyCompTwoPrim_CTTwoPrim
                   ))
           .setNavigationProperties(Arrays.asList(
-              new NavigationProperty()
+              new CsdlNavigationProperty()
                   .setName("NavPropertyETKeyNavOne")
                   .setType(nameETKeyNav)
                   .setReferentialConstraints(Arrays.asList(
-                      new ReferentialConstraint()
+                      new CsdlReferentialConstraint()
                           .setProperty("PropertyInt16")
                           .setReferencedProperty("PropertyInt16"))),
               PropertyProvider.collectionNavPropertyETKeyNavMany_ETKeyNav,
@@ -374,70 +374,70 @@ public class EntityTypeProvider {
               PropertyProvider.collectionNavPropertySINav));
 
     } else if (entityTypeName.equals(nameETBaseTwoKeyNav)) {
-      return new EntityType()
+      return new CsdlEntityType()
           .setName("ETBaseTwoKeyNav")
           .setBaseType(nameETTwoKeyNav)
           .setProperties(Arrays.asList(PropertyProvider.propertyDate_ExplicitNullable))
           .setNavigationProperties(Arrays.asList(
-              new NavigationProperty()
+              new CsdlNavigationProperty()
                   .setName("NavPropertyETBaseTwoKeyNavOne")
                   .setType(nameETBaseTwoKeyNav),
-              new NavigationProperty()
+              new CsdlNavigationProperty()
                   .setName("NavPropertyETTwoBaseTwoKeyNavOne")
                   .setType(nameETTwoBaseTwoKeyNav)));
 
     } else if (entityTypeName.equals(nameETTwoBaseTwoKeyNav)) {
-      return new EntityType()
+      return new CsdlEntityType()
           .setName("ETTwoBaseTwoKeyNav")
           .setBaseType(nameETBaseTwoKeyNav)
-          .setKey(Arrays.asList(new PropertyRef().setName("PropertyInt16")))
+          .setKey(Arrays.asList(new CsdlPropertyRef().setName("PropertyInt16")))
           .setProperties(Arrays.asList(PropertyProvider.propertyGuid_ExplicitNullable))
           .setNavigationProperties(Arrays.asList(
-              new NavigationProperty()
+              new CsdlNavigationProperty()
                   .setName("NavPropertyETBaseTwoKeyNavMany")
                   .setType(nameETBaseTwoKeyNav)
                   .setCollection(true)
               ));
 
     } else if (entityTypeName.equals(nameETFourKeyAlias)) {
-      return new EntityType()
+      return new CsdlEntityType()
           .setName("ETFourKeyAlias")
           .setKey(
               Arrays.asList(
-                  new PropertyRef().setName("PropertyInt16"),
-                  new PropertyRef().setName("PropertyComp/PropertyInt16").setAlias("KeyAlias1"),
-                  new PropertyRef().setName("PropertyComp/PropertyString").setAlias("KeyAlias2"),
-                  new PropertyRef().setName("PropertyCompComp/PropertyComp/PropertyString").setAlias("KeyAlias3")))
+                  new CsdlPropertyRef().setName("PropertyInt16"),
+                  new CsdlPropertyRef().setName("PropertyComp/PropertyInt16").setAlias("KeyAlias1"),
+                  new CsdlPropertyRef().setName("PropertyComp/PropertyString").setAlias("KeyAlias2"),
+                  new CsdlPropertyRef().setName("PropertyCompComp/PropertyComp/PropertyString").setAlias("KeyAlias3")))
           .setProperties(
               Arrays.asList(PropertyProvider.propertyInt16_NotNullable, 
                   PropertyProvider.propertyComp_CTTwoPrim_NotNullable, 
                   PropertyProvider.propertyCompComp_CTCompComp_NotNullable));
     } else if (entityTypeName.equals(nameETCompMixPrimCollComp)) {
-      return new EntityType()
+      return new CsdlEntityType()
           .setName("ETCompMixPrimCollComp")
           .setKey(Arrays.asList(
-              new PropertyRef()
+              new CsdlPropertyRef()
                   .setName("PropertyInt16")))
           .setProperties(
               Arrays.asList(PropertyProvider.propertyInt16_NotNullable,
                   PropertyProvider.propertyMixedPrimCollComp_CTMixPrimCollComp));
     } else if (entityTypeName.equals(nameETAbstract)) {
-      return new EntityType()
+      return new CsdlEntityType()
           .setName("ETAbstract")
           .setAbstract(true)
           .setProperties(Arrays.asList(PropertyProvider.propertyString));
 
     } else if (entityTypeName.equals(nameETAbstractBase)) {
-      return new EntityType()
+      return new CsdlEntityType()
           .setName("ETAbstractBase")
           .setBaseType(nameETAbstract)
-          .setKey(Arrays.asList(new PropertyRef().setName("PropertyInt16")))
+          .setKey(Arrays.asList(new CsdlPropertyRef().setName("PropertyInt16")))
           .setProperties(Arrays.asList(
               PropertyProvider.propertyInt16_NotNullable));
     } else if (entityTypeName.equals(nameETMixEnumDefCollComp)) {
-      return new EntityType()
+      return new CsdlEntityType()
           .setName(nameETMixEnumDefCollComp.getName())
-          .setKey(Arrays.asList(new PropertyRef().setName("PropertyInt16")))
+          .setKey(Arrays.asList(new CsdlPropertyRef().setName("PropertyInt16")))
           .setProperties(Arrays.asList(
               PropertyProvider.propertyInt16_NotNullable,
               PropertyProvider.propertyEnumString_ENString,

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/2318953c/lib/server-tecsvc/src/main/java/org/apache/olingo/server/tecsvc/provider/EnumTypeProvider.java
----------------------------------------------------------------------
diff --git a/lib/server-tecsvc/src/main/java/org/apache/olingo/server/tecsvc/provider/EnumTypeProvider.java b/lib/server-tecsvc/src/main/java/org/apache/olingo/server/tecsvc/provider/EnumTypeProvider.java
index 6b68a33..b9eb069 100644
--- a/lib/server-tecsvc/src/main/java/org/apache/olingo/server/tecsvc/provider/EnumTypeProvider.java
+++ b/lib/server-tecsvc/src/main/java/org/apache/olingo/server/tecsvc/provider/EnumTypeProvider.java
@@ -21,8 +21,8 @@ package org.apache.olingo.server.tecsvc.provider;
 import org.apache.olingo.commons.api.ODataException;
 import org.apache.olingo.commons.api.edm.EdmPrimitiveTypeKind;
 import org.apache.olingo.commons.api.edm.FullQualifiedName;
-import org.apache.olingo.commons.api.edm.provider.EnumMember;
-import org.apache.olingo.commons.api.edm.provider.EnumType;
+import org.apache.olingo.commons.api.edm.provider.CsdlEnumMember;
+import org.apache.olingo.commons.api.edm.provider.CsdlEnumType;
 
 import java.util.Arrays;
 
@@ -30,16 +30,16 @@ public class EnumTypeProvider {
 
   public static final FullQualifiedName nameENString = new FullQualifiedName(SchemaProvider.NAMESPACE, "ENString");
 
-  public EnumType getEnumType(final FullQualifiedName enumTypeName) throws ODataException {
+  public CsdlEnumType getEnumType(final FullQualifiedName enumTypeName) throws ODataException {
     if (enumTypeName.equals(nameENString)) {
-      return new EnumType()
+      return new CsdlEnumType()
           .setName("ENString")
           .setFlags(true)
           .setUnderlyingType(EdmPrimitiveTypeKind.Int16.getFullQualifiedName())
           .setMembers(Arrays.asList(
-              new EnumMember().setName("String1").setValue("1"),
-              new EnumMember().setName("String2").setValue("2"),
-              new EnumMember().setName("String3").setValue("4")));
+              new CsdlEnumMember().setName("String1").setValue("1"),
+              new CsdlEnumMember().setName("String2").setValue("2"),
+              new CsdlEnumMember().setName("String3").setValue("4")));
     }
 
     return null;


[23/50] [abbrv] olingo-odata4 git commit: [OLINGO-564] Renamed 'ClientCsdl' classes

Posted by mi...@apache.org.
http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/53b10f6b/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/ClientCsdlFunctionImport.java
----------------------------------------------------------------------
diff --git a/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/ClientCsdlFunctionImport.java b/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/ClientCsdlFunctionImport.java
new file mode 100644
index 0000000..6b6a044
--- /dev/null
+++ b/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/ClientCsdlFunctionImport.java
@@ -0,0 +1,64 @@
+/*
+ * 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.client.core.edm.xml;
+
+import com.fasterxml.jackson.core.JsonParser;
+import com.fasterxml.jackson.core.JsonToken;
+import com.fasterxml.jackson.databind.DeserializationContext;
+import org.apache.commons.lang3.BooleanUtils;
+import org.apache.olingo.commons.api.edm.provider.CsdlFunctionImport;
+
+import com.fasterxml.jackson.databind.annotation.JsonDeserialize;
+
+import java.io.IOException;
+
+@JsonDeserialize(using = ClientCsdlFunctionImport.FunctionImportDeserializer.class)
+class ClientCsdlFunctionImport extends CsdlFunctionImport {
+
+  private static final long serialVersionUID = -1686801084142932402L;
+
+  static class FunctionImportDeserializer extends AbstractClientCsdlEdmDeserializer<ClientCsdlFunctionImport> {
+    @Override
+    protected ClientCsdlFunctionImport doDeserialize(final JsonParser jp, final DeserializationContext ctxt)
+            throws IOException {
+
+      final ClientCsdlFunctionImport functImpImpl = new ClientCsdlFunctionImport();
+
+      for (; jp.getCurrentToken() != JsonToken.END_OBJECT; jp.nextToken()) {
+        final JsonToken token = jp.getCurrentToken();
+        if (token == JsonToken.FIELD_NAME) {
+          if ("Name".equals(jp.getCurrentName())) {
+            functImpImpl.setName(jp.nextTextValue());
+          } else if ("Function".equals(jp.getCurrentName())) {
+            functImpImpl.setFunction(jp.nextTextValue());
+          } else if ("EntitySet".equals(jp.getCurrentName())) {
+            functImpImpl.setEntitySet(jp.nextTextValue());
+          } else if ("IncludeInServiceDocument".equals(jp.getCurrentName())) {
+            functImpImpl.setIncludeInServiceDocument(BooleanUtils.toBoolean(jp.nextTextValue()));
+          } else if ("Annotation".equals(jp.getCurrentName())) {
+            jp.nextToken();
+            functImpImpl.getAnnotations().add(jp.readValueAs(ClientCsdlAnnotation.class));
+          }
+        }
+      }
+
+      return functImpImpl;
+    }
+  }
+}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/53b10f6b/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/ClientCsdlIf.java
----------------------------------------------------------------------
diff --git a/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/ClientCsdlIf.java b/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/ClientCsdlIf.java
new file mode 100644
index 0000000..1289637
--- /dev/null
+++ b/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/ClientCsdlIf.java
@@ -0,0 +1,61 @@
+/*
+ * 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.client.core.edm.xml;
+
+import org.apache.olingo.commons.api.edm.provider.annotation.AnnotationExpression;
+import org.apache.olingo.commons.api.edm.provider.annotation.If;
+
+class ClientCsdlIf extends AbstractClientCsdlAnnotatableDynamicAnnotationExpression implements If {
+
+  private static final long serialVersionUID = -8571383625077590656L;
+
+  private AnnotationExpression guard;
+
+  private AnnotationExpression _then;
+
+  private AnnotationExpression _else;
+
+  @Override
+  public AnnotationExpression getGuard() {
+    return guard;
+  }
+
+  public void setGuard(final AnnotationExpression guard) {
+    this.guard = guard;
+  }
+
+  @Override
+  public AnnotationExpression getThen() {
+    return _then;
+  }
+
+  public void setThen(final AnnotationExpression _then) {
+    this._then = _then;
+  }
+
+  @Override
+  public AnnotationExpression getElse() {
+    return _else;
+  }
+
+  public void setElse(final AnnotationExpression _else) {
+    this._else = _else;
+  }
+
+}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/53b10f6b/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/ClientCsdlInclude.java
----------------------------------------------------------------------
diff --git a/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/ClientCsdlInclude.java b/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/ClientCsdlInclude.java
new file mode 100644
index 0000000..541f037
--- /dev/null
+++ b/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/ClientCsdlInclude.java
@@ -0,0 +1,76 @@
+/*
+ * 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.client.core.edm.xml;
+
+import com.fasterxml.jackson.core.JsonParser;
+import com.fasterxml.jackson.core.JsonToken;
+import com.fasterxml.jackson.databind.DeserializationContext;
+import com.fasterxml.jackson.databind.annotation.JsonDeserialize;
+import org.apache.olingo.client.api.edm.xml.Include;
+import org.apache.olingo.commons.api.edm.provider.CsdlAbstractEdmItem;
+
+import java.io.IOException;
+
+@JsonDeserialize(using = ClientCsdlInclude.IncludeDeserializer.class)
+class ClientCsdlInclude extends CsdlAbstractEdmItem implements Include {
+
+  private static final long serialVersionUID = -5450008299655584221L;
+
+  private String namespace;
+  private String alias;
+
+  @Override
+  public String getNamespace() {
+    return namespace;
+  }
+
+  public void setNamespace(final String namespace) {
+    this.namespace = namespace;
+  }
+
+  @Override
+  public String getAlias() {
+    return alias;
+  }
+
+  public void setAlias(final String alias) {
+    this.alias = alias;
+  }
+
+  static class IncludeDeserializer extends AbstractClientCsdlEdmDeserializer<Include> {
+    @Override
+    protected Include doDeserialize(final JsonParser jp, final DeserializationContext ctxt)
+            throws IOException {
+
+      final ClientCsdlInclude include = new ClientCsdlInclude();
+
+      for (; jp.getCurrentToken() != JsonToken.END_OBJECT; jp.nextToken()) {
+        final JsonToken token = jp.getCurrentToken();
+        if (token == JsonToken.FIELD_NAME) {
+          if ("Namespace".equals(jp.getCurrentName())) {
+            include.setNamespace(jp.nextTextValue());
+          } else if ("Alias".equals(jp.getCurrentName())) {
+            include.setAlias(jp.nextTextValue());
+          }
+        }
+      }
+      return include;
+    }
+  }
+}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/53b10f6b/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/ClientCsdlIncludeAnnotations.java
----------------------------------------------------------------------
diff --git a/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/ClientCsdlIncludeAnnotations.java b/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/ClientCsdlIncludeAnnotations.java
new file mode 100644
index 0000000..87150ea
--- /dev/null
+++ b/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/ClientCsdlIncludeAnnotations.java
@@ -0,0 +1,88 @@
+/*
+ * 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.client.core.edm.xml;
+
+import com.fasterxml.jackson.core.JsonParser;
+import com.fasterxml.jackson.core.JsonToken;
+import com.fasterxml.jackson.databind.DeserializationContext;
+import com.fasterxml.jackson.databind.annotation.JsonDeserialize;
+import org.apache.olingo.client.api.edm.xml.IncludeAnnotations;
+import org.apache.olingo.commons.api.edm.provider.CsdlAbstractEdmItem;
+
+import java.io.IOException;
+
+@JsonDeserialize(using = ClientCsdlIncludeAnnotations.IncludeAnnotationsDeserializer.class)
+class ClientCsdlIncludeAnnotations extends CsdlAbstractEdmItem implements IncludeAnnotations {
+
+  private static final long serialVersionUID = -8157841387011422396L;
+
+  private String termNamespace;
+  private String qualifier;
+  private String targetNamespace;
+
+  @Override
+  public String getTermNamespace() {
+    return termNamespace;
+  }
+
+  public void setTermNamespace(final String termNamespace) {
+    this.termNamespace = termNamespace;
+  }
+
+  @Override
+  public String getQualifier() {
+    return qualifier;
+  }
+
+  public void setQualifier(final String qualifier) {
+    this.qualifier = qualifier;
+  }
+
+  @Override
+  public String getTargetNamespace() {
+    return targetNamespace;
+  }
+
+  public void setTargetNamespace(final String targetNamespace) {
+    this.targetNamespace = targetNamespace;
+  }
+
+  static class IncludeAnnotationsDeserializer extends AbstractClientCsdlEdmDeserializer<IncludeAnnotations> {
+    @Override
+    protected IncludeAnnotations doDeserialize(final JsonParser jp, final DeserializationContext ctxt)
+            throws IOException {
+
+      final ClientCsdlIncludeAnnotations member = new ClientCsdlIncludeAnnotations();
+
+      for (; jp.getCurrentToken() != JsonToken.END_OBJECT; jp.nextToken()) {
+        final JsonToken token = jp.getCurrentToken();
+        if (token == JsonToken.FIELD_NAME) {
+          if ("TermNamespace".equals(jp.getCurrentName())) {
+            member.setTermNamespace(jp.nextTextValue());
+          } else if ("Qualifier".equals(jp.getCurrentName())) {
+            member.setQualifier(jp.nextTextValue());
+          } else if ("TargetNamespace".equals(jp.getCurrentName())) {
+            member.setTargetNamespace(jp.nextTextValue());
+          }
+        }
+      }
+      return member;
+    }
+  }
+}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/53b10f6b/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/ClientCsdlIsOf.java
----------------------------------------------------------------------
diff --git a/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/ClientCsdlIsOf.java b/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/ClientCsdlIsOf.java
new file mode 100644
index 0000000..58b34e0
--- /dev/null
+++ b/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/ClientCsdlIsOf.java
@@ -0,0 +1,136 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.olingo.client.core.edm.xml;
+
+import com.fasterxml.jackson.core.JsonParser;
+import com.fasterxml.jackson.core.JsonToken;
+import com.fasterxml.jackson.databind.DeserializationContext;
+import org.apache.olingo.commons.api.edm.geo.SRID;
+import org.apache.olingo.commons.api.edm.provider.annotation.DynamicAnnotationExpression;
+import org.apache.olingo.commons.api.edm.provider.annotation.IsOf;
+
+import com.fasterxml.jackson.databind.annotation.JsonDeserialize;
+
+import java.io.IOException;
+
+@JsonDeserialize(using = ClientCsdlIsOf.IsOfDeserializer.class)
+class ClientCsdlIsOf extends AbstractClientCsdlAnnotatableDynamicAnnotationExpression implements IsOf {
+
+  private static final long serialVersionUID = -893355856129761174L;
+
+  private String type;
+
+  private Integer maxLength;
+
+  private Integer precision;
+
+  private Integer scale;
+
+  private SRID srid;
+
+  private DynamicAnnotationExpression value;
+
+  @Override
+  public String getType() {
+    return type;
+  }
+
+  public void setType(final String type) {
+    this.type = type;
+  }
+
+  @Override
+  public Integer getMaxLength() {
+    return maxLength;
+  }
+
+  public void setMaxLength(final Integer maxLength) {
+    this.maxLength = maxLength;
+  }
+
+  @Override
+  public Integer getPrecision() {
+    return precision;
+  }
+
+  public void setPrecision(final Integer precision) {
+    this.precision = precision;
+  }
+
+  @Override
+  public Integer getScale() {
+    return scale;
+  }
+
+  public void setScale(final Integer scale) {
+    this.scale = scale;
+  }
+
+  @Override
+  public SRID getSrid() {
+    return srid;
+  }
+
+  public void setSrid(final SRID srid) {
+    this.srid = srid;
+  }
+
+  @Override
+  public DynamicAnnotationExpression getValue() {
+    return value;
+  }
+
+  public void setValue(final DynamicAnnotationExpression value) {
+    this.value = value;
+  }
+
+  static class IsOfDeserializer extends AbstractClientCsdlEdmDeserializer<ClientCsdlIsOf> {
+    @Override
+    protected ClientCsdlIsOf doDeserialize(final JsonParser jp, final DeserializationContext ctxt)
+            throws IOException {
+      final ClientCsdlIsOf isof = new ClientCsdlIsOf();
+      for (; jp.getCurrentToken() != JsonToken.END_OBJECT; jp.nextToken()) {
+        final JsonToken token = jp.getCurrentToken();
+        if (token == JsonToken.FIELD_NAME) {
+          if ("Type".equals(jp.getCurrentName())) {
+            isof.setType(jp.nextTextValue());
+          } else if ("Annotation".equals(jp.getCurrentName())) {
+            isof.getAnnotations().add(jp.readValueAs(ClientCsdlAnnotation.class));
+          } else if ("MaxLength".equals(jp.getCurrentName())) {
+            final String maxLenght = jp.nextTextValue();
+            isof.setMaxLength(maxLenght.equalsIgnoreCase("max") ? Integer.MAX_VALUE : Integer.valueOf(maxLenght));
+          } else if ("Precision".equals(jp.getCurrentName())) {
+            isof.setPrecision(Integer.valueOf(jp.nextTextValue()));
+          } else if ("Scale".equals(jp.getCurrentName())) {
+            final String scale = jp.nextTextValue();
+            isof.setScale(scale.equalsIgnoreCase("variable") ? 0 : Integer.valueOf(scale));
+          } else if ("SRID".equals(jp.getCurrentName())) {
+            final String srid = jp.nextTextValue();
+            if (srid != null) {
+              isof.setSrid(SRID.valueOf(srid));
+            }
+          } else {
+            isof.setValue(jp.readValueAs(AbstractClientCsdlDynamicAnnotationExpression.class));
+          }
+        }
+      }
+      return isof;
+    }
+  }
+}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/53b10f6b/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/ClientCsdlLabeledElement.java
----------------------------------------------------------------------
diff --git a/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/ClientCsdlLabeledElement.java b/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/ClientCsdlLabeledElement.java
new file mode 100644
index 0000000..db1a734
--- /dev/null
+++ b/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/ClientCsdlLabeledElement.java
@@ -0,0 +1,79 @@
+/*
+ * 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.client.core.edm.xml;
+
+import com.fasterxml.jackson.core.JsonParser;
+import com.fasterxml.jackson.core.JsonToken;
+import com.fasterxml.jackson.databind.DeserializationContext;
+import org.apache.olingo.commons.api.edm.provider.annotation.DynamicAnnotationExpression;
+import org.apache.olingo.commons.api.edm.provider.annotation.LabeledElement;
+
+import com.fasterxml.jackson.databind.annotation.JsonDeserialize;
+
+import java.io.IOException;
+
+@JsonDeserialize(using = ClientCsdlLabeledElement.LabeledElementDeserializer.class)
+class ClientCsdlLabeledElement
+        extends AbstractClientCsdlAnnotatableDynamicAnnotationExpression implements LabeledElement {
+
+  private static final long serialVersionUID = 4909387630253341824L;
+
+  private String name;
+
+  private DynamicAnnotationExpression value;
+
+  @Override
+  public String getName() {
+    return name;
+  }
+
+  public void setName(final String name) {
+    this.name = name;
+  }
+
+  @Override
+  public DynamicAnnotationExpression getValue() {
+    return value;
+  }
+
+  public void setValue(final DynamicAnnotationExpression value) {
+    this.value = value;
+  }
+
+  static class LabeledElementDeserializer extends AbstractClientCsdlEdmDeserializer<ClientCsdlLabeledElement> {
+    @Override
+    protected ClientCsdlLabeledElement doDeserialize(final JsonParser jp, final DeserializationContext ctxt)
+            throws IOException {
+      final ClientCsdlLabeledElement element = new ClientCsdlLabeledElement();
+      for (; jp.getCurrentToken() != JsonToken.END_OBJECT; jp.nextToken()) {
+        final JsonToken token = jp.getCurrentToken();
+        if (token == JsonToken.FIELD_NAME) {
+          if ("Name".equals(jp.getCurrentName())) {
+            element.setName(jp.nextTextValue());
+          } else if ("Annotation".equals(jp.getCurrentName())) {
+            element.getAnnotations().add(jp.readValueAs(ClientCsdlAnnotation.class));
+          } else {
+            element.setValue(jp.readValueAs(AbstractClientCsdlDynamicAnnotationExpression.class));
+          }
+        }
+      }
+      return element;
+    }
+  }
+}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/53b10f6b/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/ClientCsdlLabeledElementReference.java
----------------------------------------------------------------------
diff --git a/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/ClientCsdlLabeledElementReference.java b/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/ClientCsdlLabeledElementReference.java
new file mode 100644
index 0000000..b3f1e5a
--- /dev/null
+++ b/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/ClientCsdlLabeledElementReference.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.client.core.edm.xml;
+
+import org.apache.olingo.commons.api.edm.provider.annotation.LabeledElementReference;
+
+class ClientCsdlLabeledElementReference
+        extends AbstractClientCsdlElementOrAttributeExpression implements LabeledElementReference {
+
+  private static final long serialVersionUID = 7560525604021670529L;
+
+}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/53b10f6b/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/ClientCsdlNavigationProperty.java
----------------------------------------------------------------------
diff --git a/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/ClientCsdlNavigationProperty.java b/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/ClientCsdlNavigationProperty.java
new file mode 100644
index 0000000..2fca830
--- /dev/null
+++ b/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/ClientCsdlNavigationProperty.java
@@ -0,0 +1,80 @@
+/*
+ * 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.client.core.edm.xml;
+
+import com.fasterxml.jackson.core.JsonParser;
+import com.fasterxml.jackson.core.JsonToken;
+import com.fasterxml.jackson.databind.DeserializationContext;
+import org.apache.commons.lang3.BooleanUtils;
+import org.apache.olingo.commons.api.edm.provider.CsdlNavigationProperty;
+
+import com.fasterxml.jackson.databind.annotation.JsonDeserialize;
+
+import java.io.IOException;
+
+@JsonDeserialize(using = ClientCsdlNavigationProperty.NavigationPropertyDeserializer.class)
+class ClientCsdlNavigationProperty extends CsdlNavigationProperty {
+
+  private static final long serialVersionUID = 6240231735592427582L;
+
+  static class NavigationPropertyDeserializer extends AbstractClientCsdlEdmDeserializer<CsdlNavigationProperty> {
+
+    @Override
+    protected CsdlNavigationProperty doDeserialize(final JsonParser jp, final DeserializationContext ctxt)
+            throws IOException {
+
+      final CsdlNavigationProperty property = new ClientCsdlNavigationProperty();
+
+      for (; jp.getCurrentToken() != JsonToken.END_OBJECT; jp.nextToken()) {
+        final JsonToken token = jp.getCurrentToken();
+        if (token == JsonToken.FIELD_NAME) {
+          if ("Name".equals(jp.getCurrentName())) {
+            property.setName(jp.nextTextValue());
+          } else if ("Type".equals(jp.getCurrentName())) {
+            String metadataTypeName = jp.nextTextValue();
+            if (metadataTypeName.startsWith("Collection(")) {
+              property.setType(metadataTypeName.substring(metadataTypeName.indexOf("(") + 1,
+                      metadataTypeName.length() - 1));
+              property.setCollection(true);
+            } else {
+              property.setType(metadataTypeName);
+              property.setCollection(false);
+            }
+          } else if ("Nullable".equals(jp.getCurrentName())) {
+            property.setNullable(BooleanUtils.toBoolean(jp.nextTextValue()));
+          } else if ("Partner".equals(jp.getCurrentName())) {
+            property.setPartner(jp.nextTextValue());
+          } else if ("ContainsTarget".equals(jp.getCurrentName())) {
+            property.setContainsTarget(BooleanUtils.toBoolean(jp.nextTextValue()));
+          } else if ("ReferentialConstraint".equals(jp.getCurrentName())) {
+            jp.nextToken();
+            property.getReferentialConstraints().add(jp.readValueAs(ClientCsdlReferentialConstraint.class));
+          } else if ("OnDelete".equals(jp.getCurrentName())) {
+            jp.nextToken();
+            property.setOnDelete(jp.readValueAs(ClientCsdlOnDelete.class));
+          } else if ("Annotation".equals(jp.getCurrentName())) {
+            jp.nextToken();
+            property.getAnnotations().add(jp.readValueAs(ClientCsdlAnnotation.class));
+          }
+        }
+      }
+      return property;
+    }
+  }
+}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/53b10f6b/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/ClientCsdlNavigationPropertyBinding.java
----------------------------------------------------------------------
diff --git a/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/ClientCsdlNavigationPropertyBinding.java b/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/ClientCsdlNavigationPropertyBinding.java
new file mode 100644
index 0000000..d9da5b0
--- /dev/null
+++ b/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/ClientCsdlNavigationPropertyBinding.java
@@ -0,0 +1,67 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ * 
+ * http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.olingo.client.core.edm.xml;
+
+import com.fasterxml.jackson.core.JsonParser;
+import com.fasterxml.jackson.core.JsonToken;
+import com.fasterxml.jackson.databind.DeserializationContext;
+import com.fasterxml.jackson.databind.annotation.JsonDeserialize;
+import org.apache.olingo.commons.api.edm.provider.CsdlNavigationPropertyBinding;
+
+import java.io.IOException;
+
+@JsonDeserialize(using = ClientCsdlNavigationPropertyBinding.NavigationPropertyBindingDeserializer.class)
+class ClientCsdlNavigationPropertyBinding extends CsdlNavigationPropertyBinding {
+
+  private static final long serialVersionUID = -7056978592235483660L;
+
+  @Override
+  public CsdlNavigationPropertyBinding setPath(final String path) {
+    super.setPath(path);
+    return this;
+  }
+
+  @Override
+  public CsdlNavigationPropertyBinding setTarget(final String target) {
+    super.setTarget(target);
+    return this;
+  }
+
+  static class NavigationPropertyBindingDeserializer extends
+          AbstractClientCsdlEdmDeserializer<CsdlNavigationPropertyBinding> {
+    @Override
+    protected CsdlNavigationPropertyBinding doDeserialize(final JsonParser jp, final DeserializationContext ctxt)
+            throws IOException {
+
+      final ClientCsdlNavigationPropertyBinding member = new ClientCsdlNavigationPropertyBinding();
+
+      for (; jp.getCurrentToken() != JsonToken.END_OBJECT; jp.nextToken()) {
+        final JsonToken token = jp.getCurrentToken();
+        if (token == JsonToken.FIELD_NAME) {
+          if ("Path".equals(jp.getCurrentName())) {
+            member.setPath(jp.nextTextValue());
+          } else if ("Target".equals(jp.getCurrentName())) {
+            member.setTarget(jp.nextTextValue());
+          }
+        }
+      }
+      return member;
+    }
+  }
+}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/53b10f6b/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/ClientCsdlNavigationPropertyPath.java
----------------------------------------------------------------------
diff --git a/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/ClientCsdlNavigationPropertyPath.java b/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/ClientCsdlNavigationPropertyPath.java
new file mode 100644
index 0000000..039af20
--- /dev/null
+++ b/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/ClientCsdlNavigationPropertyPath.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.client.core.edm.xml;
+
+import org.apache.olingo.commons.api.edm.provider.annotation.NavigationPropertyPath;
+
+class ClientCsdlNavigationPropertyPath extends AbstractClientCsdlElementOrAttributeExpression
+    implements NavigationPropertyPath {
+
+  private static final long serialVersionUID = 879840502446301312L;
+
+}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/53b10f6b/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/ClientCsdlNot.java
----------------------------------------------------------------------
diff --git a/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/ClientCsdlNot.java b/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/ClientCsdlNot.java
new file mode 100644
index 0000000..b417341
--- /dev/null
+++ b/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/ClientCsdlNot.java
@@ -0,0 +1,39 @@
+/*
+ * 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.client.core.edm.xml;
+
+import org.apache.olingo.commons.api.edm.provider.annotation.DynamicAnnotationExpression;
+import org.apache.olingo.commons.api.edm.provider.annotation.Not;
+
+class ClientCsdlNot extends AbstractClientCsdlDynamicAnnotationExpression implements Not {
+
+  private static final long serialVersionUID = -437788415922966812L;
+
+  private DynamicAnnotationExpression expression;
+
+  @Override
+  public DynamicAnnotationExpression getExpression() {
+    return expression;
+  }
+
+  public void setExpression(final DynamicAnnotationExpression expression) {
+    this.expression = expression;
+  }
+
+}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/53b10f6b/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/ClientCsdlNull.java
----------------------------------------------------------------------
diff --git a/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/ClientCsdlNull.java b/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/ClientCsdlNull.java
new file mode 100644
index 0000000..5181c0f
--- /dev/null
+++ b/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/ClientCsdlNull.java
@@ -0,0 +1,51 @@
+/*
+ * 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.client.core.edm.xml;
+
+import com.fasterxml.jackson.core.JsonParser;
+import com.fasterxml.jackson.core.JsonToken;
+import com.fasterxml.jackson.databind.DeserializationContext;
+import org.apache.olingo.commons.api.edm.provider.annotation.Null;
+
+import com.fasterxml.jackson.databind.annotation.JsonDeserialize;
+
+import java.io.IOException;
+
+@JsonDeserialize(using = ClientCsdlNull.NullDeserializer.class)
+class ClientCsdlNull extends AbstractClientCsdlAnnotatableDynamicAnnotationExpression implements Null {
+
+  private static final long serialVersionUID = -3148516847180393142L;
+
+  static class NullDeserializer extends AbstractClientCsdlEdmDeserializer<ClientCsdlNull> {
+    @Override
+    protected ClientCsdlNull doDeserialize(final JsonParser jp, final DeserializationContext ctxt)
+            throws IOException {
+      final ClientCsdlNull _null = new ClientCsdlNull();
+      for (; jp.getCurrentToken() != JsonToken.END_OBJECT; jp.nextToken()) {
+        final JsonToken token = jp.getCurrentToken();
+        if (token == JsonToken.FIELD_NAME) {
+          if ("Annotation".equals(jp.getCurrentName())) {
+            _null.getAnnotations().add(jp.readValueAs(ClientCsdlAnnotation.class));
+          }
+        }
+      }
+      return _null;
+    }
+  }
+}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/53b10f6b/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/ClientCsdlOnDelete.java
----------------------------------------------------------------------
diff --git a/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/ClientCsdlOnDelete.java b/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/ClientCsdlOnDelete.java
new file mode 100644
index 0000000..6fa992f
--- /dev/null
+++ b/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/ClientCsdlOnDelete.java
@@ -0,0 +1,54 @@
+/*
+ * 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.client.core.edm.xml;
+
+import com.fasterxml.jackson.core.JsonParser;
+import com.fasterxml.jackson.core.JsonToken;
+import com.fasterxml.jackson.databind.DeserializationContext;
+import com.fasterxml.jackson.databind.annotation.JsonDeserialize;
+import org.apache.olingo.commons.api.edm.provider.CsdlOnDelete;
+import org.apache.olingo.commons.api.edm.provider.CsdlOnDeleteAction;
+
+import java.io.IOException;
+
+@JsonDeserialize(using = ClientCsdlOnDelete.OnDeleteDeserializer.class)
+class ClientCsdlOnDelete extends CsdlOnDelete {
+
+  private static final long serialVersionUID = -7130889202653716784L;
+
+  static class OnDeleteDeserializer extends AbstractClientCsdlEdmDeserializer<CsdlOnDelete> {
+    @Override
+    protected CsdlOnDelete doDeserialize(final JsonParser jp, final DeserializationContext ctxt)
+            throws IOException {
+
+      final CsdlOnDelete ondelete = new ClientCsdlOnDelete();
+
+      for (; jp.getCurrentToken() != JsonToken.END_OBJECT; jp.nextToken()) {
+        final JsonToken token = jp.getCurrentToken();
+        if (token == JsonToken.FIELD_NAME) {
+          if ("Action".equals(jp.getCurrentName())) {
+            CsdlOnDeleteAction action = CsdlOnDeleteAction.valueOf(jp.nextTextValue());
+            ondelete.setAction(action);
+          }
+        }
+      }
+      return ondelete;
+    }
+  }
+}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/53b10f6b/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/ClientCsdlParameter.java
----------------------------------------------------------------------
diff --git a/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/ClientCsdlParameter.java b/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/ClientCsdlParameter.java
new file mode 100644
index 0000000..4df4377
--- /dev/null
+++ b/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/ClientCsdlParameter.java
@@ -0,0 +1,84 @@
+/*
+ * 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.client.core.edm.xml;
+
+import com.fasterxml.jackson.core.JsonParser;
+import com.fasterxml.jackson.core.JsonToken;
+import com.fasterxml.jackson.databind.DeserializationContext;
+import org.apache.commons.lang3.BooleanUtils;
+import org.apache.olingo.commons.api.edm.geo.SRID;
+import org.apache.olingo.commons.api.edm.provider.CsdlParameter;
+
+import com.fasterxml.jackson.databind.annotation.JsonDeserialize;
+
+import java.io.IOException;
+
+@JsonDeserialize(using = ClientCsdlParameter.ParameterDeserializer.class)
+class ClientCsdlParameter extends CsdlParameter {
+
+  private static final long serialVersionUID = 7119478691341167904L;
+
+  static class ParameterDeserializer extends AbstractClientCsdlEdmDeserializer<ClientCsdlParameter> {
+    @Override
+    protected ClientCsdlParameter doDeserialize(final JsonParser jp, final DeserializationContext ctxt)
+            throws IOException {
+
+      final ClientCsdlParameter parameter = new ClientCsdlParameter();
+
+      for (; jp.getCurrentToken() != JsonToken.END_OBJECT; jp.nextToken()) {
+        final JsonToken token = jp.getCurrentToken();
+        if (token == JsonToken.FIELD_NAME) {
+          if ("Name".equals(jp.getCurrentName())) {
+            parameter.setName(jp.nextTextValue());
+          } else if ("Type".equals(jp.getCurrentName())) {
+            String metadataTypeName = jp.nextTextValue();
+            if (metadataTypeName.startsWith("Collection(")) {
+              parameter.setType(metadataTypeName.substring(metadataTypeName.indexOf("(") + 1,
+                      metadataTypeName.length() - 1));
+              parameter.setCollection(true);
+            } else {
+              parameter.setType(metadataTypeName);
+              parameter.setCollection(false);
+            }
+          } else if ("Nullable".equals(jp.getCurrentName())) {
+            parameter.setNullable(BooleanUtils.toBoolean(jp.nextTextValue()));
+          } else if ("MaxLength".equals(jp.getCurrentName())) {
+            final String maxLenght = jp.nextTextValue();
+            parameter.setMaxLength(maxLenght.equalsIgnoreCase("max") ? Integer.MAX_VALUE : Integer.valueOf(maxLenght));
+          } else if ("Precision".equals(jp.getCurrentName())) {
+            parameter.setPrecision(Integer.valueOf(jp.nextTextValue()));
+          } else if ("Scale".equals(jp.getCurrentName())) {
+            final String scale = jp.nextTextValue();
+            parameter.setScale(scale.equalsIgnoreCase("variable") ? 0 : Integer.valueOf(scale));
+          } else if ("SRID".equals(jp.getCurrentName())) {
+            final String srid = jp.nextTextValue();
+            if (srid != null) {
+              parameter.setSrid(SRID.valueOf(srid));
+            }
+          } else if ("Annotation".equals(jp.getCurrentName())) {
+            jp.nextToken();
+            parameter.getAnnotations().add(jp.readValueAs(ClientCsdlAnnotation.class));
+          }
+        }
+      }
+
+      return parameter;
+    }
+  }
+}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/53b10f6b/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/ClientCsdlPath.java
----------------------------------------------------------------------
diff --git a/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/ClientCsdlPath.java b/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/ClientCsdlPath.java
new file mode 100644
index 0000000..ed4d2bc
--- /dev/null
+++ b/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/ClientCsdlPath.java
@@ -0,0 +1,27 @@
+/*
+ * 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.client.core.edm.xml;
+
+import org.apache.olingo.commons.api.edm.provider.annotation.Path;
+
+class ClientCsdlPath extends AbstractClientCsdlElementOrAttributeExpression implements Path {
+
+  private static final long serialVersionUID = 6020168217561402545L;
+
+}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/53b10f6b/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/ClientCsdlProperty.java
----------------------------------------------------------------------
diff --git a/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/ClientCsdlProperty.java b/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/ClientCsdlProperty.java
new file mode 100644
index 0000000..647f386
--- /dev/null
+++ b/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/ClientCsdlProperty.java
@@ -0,0 +1,88 @@
+/*
+ * 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.client.core.edm.xml;
+
+import com.fasterxml.jackson.core.JsonParser;
+import com.fasterxml.jackson.core.JsonToken;
+import com.fasterxml.jackson.databind.DeserializationContext;
+import org.apache.commons.lang3.BooleanUtils;
+import org.apache.olingo.commons.api.edm.geo.SRID;
+import org.apache.olingo.commons.api.edm.provider.CsdlProperty;
+
+import com.fasterxml.jackson.databind.annotation.JsonDeserialize;
+
+import java.io.IOException;
+
+@JsonDeserialize(using = ClientCsdlProperty.PropertyDeserializer.class)
+class ClientCsdlProperty extends CsdlProperty {
+
+  private static final long serialVersionUID = -4521766603286651372L;
+
+  static class PropertyDeserializer extends AbstractClientCsdlEdmDeserializer<ClientCsdlProperty> {
+    @Override
+    protected ClientCsdlProperty doDeserialize(final JsonParser jp, final DeserializationContext ctxt)
+            throws IOException {
+
+      final ClientCsdlProperty property = new ClientCsdlProperty();
+
+      for (; jp.getCurrentToken() != JsonToken.END_OBJECT; jp.nextToken()) {
+        final JsonToken token = jp.getCurrentToken();
+        if (token == JsonToken.FIELD_NAME) {
+          if ("Name".equals(jp.getCurrentName())) {
+            property.setName(jp.nextTextValue());
+          } else if ("Type".equals(jp.getCurrentName())) {
+            String metadataTypeName = jp.nextTextValue();
+            if (metadataTypeName.startsWith("Collection(")) {
+              property.setType(metadataTypeName.substring(metadataTypeName.indexOf("(") + 1,
+                      metadataTypeName.length() - 1));
+              property.setCollection(true);
+            } else {
+              property.setType(metadataTypeName);
+              property.setCollection(false);
+            }
+          } else if ("Nullable".equals(jp.getCurrentName())) {
+            property.setNullable(BooleanUtils.toBoolean(jp.nextTextValue()));
+          } else if ("DefaultValue".equals(jp.getCurrentName())) {
+            property.setDefaultValue(jp.nextTextValue());
+          } else if ("MaxLength".equals(jp.getCurrentName())) {
+            final String maxLenght = jp.nextTextValue();
+            property.setMaxLength(maxLenght.equalsIgnoreCase("max") ? Integer.MAX_VALUE : Integer.valueOf(maxLenght));
+          } else if ("Precision".equals(jp.getCurrentName())) {
+            property.setPrecision(Integer.valueOf(jp.nextTextValue()));
+          } else if ("Scale".equals(jp.getCurrentName())) {
+            final String scale = jp.nextTextValue();
+            property.setScale(scale.equalsIgnoreCase("variable") ? 0 : Integer.valueOf(scale));
+          } else if ("Unicode".equals(jp.getCurrentName())) {
+            property.setUnicode(BooleanUtils.toBoolean(jp.nextTextValue()));
+          } else if ("SRID".equals(jp.getCurrentName())) {
+            final String srid = jp.nextTextValue();
+            if (srid != null) {
+              property.setSrid(SRID.valueOf(srid));
+            }
+          } else if ("Annotation".equals(jp.getCurrentName())) {
+            jp.nextToken();
+            property.getAnnotations().add(jp.readValueAs(ClientCsdlAnnotation.class));
+          }
+        }
+      }
+
+      return property;
+    }
+  }
+}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/53b10f6b/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/ClientCsdlPropertyPath.java
----------------------------------------------------------------------
diff --git a/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/ClientCsdlPropertyPath.java b/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/ClientCsdlPropertyPath.java
new file mode 100644
index 0000000..45b66dc
--- /dev/null
+++ b/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/ClientCsdlPropertyPath.java
@@ -0,0 +1,27 @@
+/*
+ * 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.client.core.edm.xml;
+
+import org.apache.olingo.commons.api.edm.provider.annotation.PropertyPath;
+
+class ClientCsdlPropertyPath extends AbstractClientCsdlElementOrAttributeExpression implements PropertyPath {
+
+  private static final long serialVersionUID = -9133862135834738470L;
+
+}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/53b10f6b/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/ClientCsdlPropertyRef.java
----------------------------------------------------------------------
diff --git a/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/ClientCsdlPropertyRef.java b/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/ClientCsdlPropertyRef.java
new file mode 100644
index 0000000..6e32473
--- /dev/null
+++ b/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/ClientCsdlPropertyRef.java
@@ -0,0 +1,54 @@
+/*
+ * 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.client.core.edm.xml;
+
+import com.fasterxml.jackson.core.JsonParser;
+import com.fasterxml.jackson.core.JsonToken;
+import com.fasterxml.jackson.databind.DeserializationContext;
+import com.fasterxml.jackson.databind.annotation.JsonDeserialize;
+import org.apache.olingo.commons.api.edm.provider.CsdlPropertyRef;
+
+import java.io.IOException;
+
+@JsonDeserialize(using = ClientCsdlPropertyRef.PropertyRefDeserializer.class)
+class ClientCsdlPropertyRef extends CsdlPropertyRef {
+
+  private static final long serialVersionUID = 1504095609268590326L;
+
+  static class PropertyRefDeserializer extends AbstractClientCsdlEdmDeserializer<CsdlPropertyRef> {
+    @Override
+    protected CsdlPropertyRef doDeserialize(final JsonParser jp, final DeserializationContext ctxt)
+            throws IOException {
+
+      final CsdlPropertyRef propertyRef = new ClientCsdlPropertyRef();
+
+      for (; jp.getCurrentToken() != JsonToken.END_OBJECT; jp.nextToken()) {
+        final JsonToken token = jp.getCurrentToken();
+        if (token == JsonToken.FIELD_NAME) {
+          if ("Name".equals(jp.getCurrentName())) {
+            propertyRef.setName(jp.nextTextValue());
+          } else if ("Alias".equals(jp.getCurrentName())) {
+            propertyRef.setAlias(jp.nextTextValue());
+          }
+        }
+      }
+      return propertyRef;
+    }
+  }
+}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/53b10f6b/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/ClientCsdlPropertyValue.java
----------------------------------------------------------------------
diff --git a/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/ClientCsdlPropertyValue.java b/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/ClientCsdlPropertyValue.java
new file mode 100644
index 0000000..d1cec62
--- /dev/null
+++ b/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/ClientCsdlPropertyValue.java
@@ -0,0 +1,81 @@
+/*
+ * 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.client.core.edm.xml;
+
+import com.fasterxml.jackson.core.JsonParser;
+import com.fasterxml.jackson.core.JsonToken;
+import com.fasterxml.jackson.databind.DeserializationContext;
+import org.apache.olingo.commons.api.edm.provider.annotation.AnnotationExpression;
+import org.apache.olingo.commons.api.edm.provider.annotation.PropertyValue;
+
+import com.fasterxml.jackson.databind.annotation.JsonDeserialize;
+
+import java.io.IOException;
+
+@JsonDeserialize(using = ClientCsdlPropertyValue.PropertyValueDeserializer.class)
+class ClientCsdlPropertyValue extends AbstractClientCsdlAnnotatableDynamicAnnotationExpression
+        implements PropertyValue {
+
+  private static final long serialVersionUID = -8437649215282645228L;
+
+  private String property;
+
+  private AnnotationExpression value;
+
+  @Override
+  public String getProperty() {
+    return property;
+  }
+
+  public void setProperty(final String property) {
+    this.property = property;
+  }
+
+  @Override
+  public AnnotationExpression getValue() {
+    return value;
+  }
+
+  public void setValue(final AnnotationExpression value) {
+    this.value = value;
+  }
+
+  static class PropertyValueDeserializer extends AbstractClientCsdlEdmDeserializer<ClientCsdlPropertyValue> {
+    @Override
+    protected ClientCsdlPropertyValue doDeserialize(final JsonParser jp, final DeserializationContext ctxt)
+            throws IOException {
+      final ClientCsdlPropertyValue propValue = new ClientCsdlPropertyValue();
+      for (; jp.getCurrentToken() != JsonToken.END_OBJECT; jp.nextToken()) {
+        final JsonToken token = jp.getCurrentToken();
+        if (token == JsonToken.FIELD_NAME) {
+          if ("Property".equals(jp.getCurrentName())) {
+            propValue.setProperty(jp.nextTextValue());
+          } else if ("Annotation".equals(jp.getCurrentName())) {
+            propValue.getAnnotations().add(jp.readValueAs(ClientCsdlAnnotation.class));
+          } else if (isAnnotationConstExprConstruct(jp)) {
+            propValue.setValue(parseAnnotationConstExprConstruct(jp));
+          } else {
+            propValue.setValue(jp.readValueAs(AbstractClientCsdlDynamicAnnotationExpression.class));
+          }
+        }
+      }
+      return propValue;
+    }
+  }
+}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/53b10f6b/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/ClientCsdlRecord.java
----------------------------------------------------------------------
diff --git a/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/ClientCsdlRecord.java b/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/ClientCsdlRecord.java
new file mode 100644
index 0000000..f1176c9
--- /dev/null
+++ b/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/ClientCsdlRecord.java
@@ -0,0 +1,76 @@
+/*
+ * 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.client.core.edm.xml;
+
+import java.io.IOException;
+import java.util.ArrayList;
+import java.util.List;
+
+import com.fasterxml.jackson.core.JsonParser;
+import com.fasterxml.jackson.core.JsonToken;
+import com.fasterxml.jackson.databind.DeserializationContext;
+import org.apache.olingo.commons.api.edm.provider.annotation.PropertyValue;
+import org.apache.olingo.commons.api.edm.provider.annotation.Record;
+
+import com.fasterxml.jackson.databind.annotation.JsonDeserialize;
+
+@JsonDeserialize(using = ClientCsdlRecord.RecordDeserializer.class)
+class ClientCsdlRecord extends AbstractClientCsdlAnnotatableDynamicAnnotationExpression implements Record {
+
+  private static final long serialVersionUID = 4275271751615410709L;
+
+  private String type;
+
+  private final List<PropertyValue> propertyValues = new ArrayList<PropertyValue>();
+
+  @Override
+  public String getType() {
+    return type;
+  }
+
+  public void setType(final String type) {
+    this.type = type;
+  }
+
+  @Override
+  public List<PropertyValue> getPropertyValues() {
+    return propertyValues;
+  }
+
+  static class RecordDeserializer extends AbstractClientCsdlEdmDeserializer<ClientCsdlRecord> {
+    @Override
+    protected ClientCsdlRecord doDeserialize(final JsonParser jp, final DeserializationContext ctxt)
+            throws IOException {
+      final ClientCsdlRecord record = new ClientCsdlRecord();
+      for (; jp.getCurrentToken() != JsonToken.END_OBJECT; jp.nextToken()) {
+        final JsonToken token = jp.getCurrentToken();
+        if (token == JsonToken.FIELD_NAME) {
+          if ("Type".equals(jp.getCurrentName())) {
+            record.setType(jp.nextTextValue());
+          } else if ("Annotation".equals(jp.getCurrentName())) {
+            record.getAnnotations().add(jp.readValueAs(ClientCsdlAnnotation.class));
+          } else {
+            record.getPropertyValues().add(jp.readValueAs(ClientCsdlPropertyValue.class));
+          }
+        }
+      }
+      return record;
+    }
+  }
+}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/53b10f6b/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/ClientCsdlReference.java
----------------------------------------------------------------------
diff --git a/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/ClientCsdlReference.java b/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/ClientCsdlReference.java
new file mode 100644
index 0000000..b0b71e7
--- /dev/null
+++ b/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/ClientCsdlReference.java
@@ -0,0 +1,98 @@
+/*
+ * 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.client.core.edm.xml;
+
+import java.io.IOException;
+import java.net.URI;
+import java.util.ArrayList;
+import java.util.List;
+
+import com.fasterxml.jackson.core.JsonParser;
+import com.fasterxml.jackson.core.JsonToken;
+import com.fasterxml.jackson.databind.DeserializationContext;
+import org.apache.olingo.client.api.edm.xml.Include;
+import org.apache.olingo.client.api.edm.xml.IncludeAnnotations;
+import org.apache.olingo.client.api.edm.xml.Reference;
+import org.apache.olingo.commons.api.edm.provider.CsdlAbstractEdmItem;
+import org.apache.olingo.commons.api.edm.provider.CsdlAnnotation;
+
+import com.fasterxml.jackson.databind.annotation.JsonDeserialize;
+
+@JsonDeserialize(using = ClientCsdlReference.ReferenceDeserializer.class)
+class ClientCsdlReference extends CsdlAbstractEdmItem implements Reference {
+
+  private static final long serialVersionUID = 7720274712545267654L;
+
+  private URI uri;
+  private final List<Include> includes = new ArrayList<Include>();
+  private final List<IncludeAnnotations> includeAnnotations = new ArrayList<IncludeAnnotations>();
+  private final List<CsdlAnnotation> annotations = new ArrayList<CsdlAnnotation>();
+
+  @Override
+  public List<CsdlAnnotation> getAnnotations() {
+    return annotations;
+  }
+  
+  @Override
+  public URI getUri() {
+    return uri;
+  }
+
+  public void setUri(final URI uri) {
+    this.uri = uri;
+  }
+
+  @Override
+  public List<Include> getIncludes() {
+    return includes;
+  }
+
+  @Override
+  public List<IncludeAnnotations> getIncludeAnnotations() {
+    return includeAnnotations;
+  }
+
+  static class ReferenceDeserializer extends AbstractClientCsdlEdmDeserializer<ClientCsdlReference> {
+    @Override
+    protected ClientCsdlReference doDeserialize(final JsonParser jp, final DeserializationContext ctxt)
+            throws IOException {
+      final ClientCsdlReference reference = new ClientCsdlReference();
+
+      for (; jp.getCurrentToken() != JsonToken.END_OBJECT; jp.nextToken()) {
+        final JsonToken token = jp.getCurrentToken();
+        if (token == JsonToken.FIELD_NAME) {
+          if ("Uri".equals(jp.getCurrentName())) {
+            reference.setUri(URI.create(jp.nextTextValue()));
+          } else if ("Include".equals(jp.getCurrentName())) {
+            jp.nextToken();
+            reference.getIncludes().add(jp.readValueAs( ClientCsdlInclude.class));
+          } else if ("IncludeAnnotations".equals(jp.getCurrentName())) {
+            jp.nextToken();
+            reference.getIncludeAnnotations().add(jp.readValueAs( ClientCsdlIncludeAnnotations.class));
+          } else if ("Annotation".equals(jp.getCurrentName())) {
+            jp.nextToken();
+            reference.getAnnotations().add(jp.readValueAs( ClientCsdlAnnotation.class));
+          }
+        }
+      }
+
+      return reference;
+    }
+  }
+}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/53b10f6b/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/ClientCsdlReferentialConstraint.java
----------------------------------------------------------------------
diff --git a/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/ClientCsdlReferentialConstraint.java b/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/ClientCsdlReferentialConstraint.java
new file mode 100644
index 0000000..1327766
--- /dev/null
+++ b/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/ClientCsdlReferentialConstraint.java
@@ -0,0 +1,54 @@
+/*
+ * 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.client.core.edm.xml;
+
+import com.fasterxml.jackson.core.JsonParser;
+import com.fasterxml.jackson.core.JsonToken;
+import com.fasterxml.jackson.databind.DeserializationContext;
+import com.fasterxml.jackson.databind.annotation.JsonDeserialize;
+import org.apache.olingo.commons.api.edm.provider.CsdlReferentialConstraint;
+
+import java.io.IOException;
+
+@JsonDeserialize(using = ClientCsdlReferentialConstraint.ReferentialConstraintDeserializer.class)
+class ClientCsdlReferentialConstraint extends CsdlReferentialConstraint {
+
+  private static final long serialVersionUID = -5822115908069878139L;
+
+  static class ReferentialConstraintDeserializer extends AbstractClientCsdlEdmDeserializer<CsdlReferentialConstraint> {
+    @Override
+    protected CsdlReferentialConstraint doDeserialize(final JsonParser jp, final DeserializationContext ctxt)
+            throws IOException {
+
+      final CsdlReferentialConstraint refConst = new ClientCsdlReferentialConstraint();
+
+      for (; jp.getCurrentToken() != JsonToken.END_OBJECT; jp.nextToken()) {
+        final JsonToken token = jp.getCurrentToken();
+        if (token == JsonToken.FIELD_NAME) {
+          if ("Property".equals(jp.getCurrentName())) {
+            refConst.setProperty(jp.nextTextValue());
+          } else if ("ReferencedProperty".equals(jp.getCurrentName())) {
+            refConst.setReferencedProperty(jp.nextTextValue());
+          }
+        }
+      }
+      return refConst;
+    }
+  }
+}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/53b10f6b/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/ClientCsdlReturnType.java
----------------------------------------------------------------------
diff --git a/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/ClientCsdlReturnType.java b/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/ClientCsdlReturnType.java
new file mode 100644
index 0000000..302bd9f
--- /dev/null
+++ b/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/ClientCsdlReturnType.java
@@ -0,0 +1,78 @@
+/*
+ * 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.client.core.edm.xml;
+
+import com.fasterxml.jackson.core.JsonParser;
+import com.fasterxml.jackson.core.JsonToken;
+import com.fasterxml.jackson.databind.DeserializationContext;
+import org.apache.commons.lang3.BooleanUtils;
+import org.apache.olingo.commons.api.edm.geo.SRID;
+import org.apache.olingo.commons.api.edm.provider.CsdlReturnType;
+
+import com.fasterxml.jackson.databind.annotation.JsonDeserialize;
+
+import java.io.IOException;
+
+@JsonDeserialize(using = ClientCsdlReturnType.ReturnTypeDeserializer.class)
+class ClientCsdlReturnType extends CsdlReturnType {
+
+  private static final long serialVersionUID = 6261092793901735110L;
+
+  static class ReturnTypeDeserializer extends AbstractClientCsdlEdmDeserializer<ClientCsdlReturnType> {
+    @Override
+    protected ClientCsdlReturnType doDeserialize(final JsonParser jp, final DeserializationContext ctxt)
+            throws IOException {
+      final ClientCsdlReturnType returnType = new ClientCsdlReturnType();
+
+      for (; jp.getCurrentToken() != JsonToken.END_OBJECT; jp.nextToken()) {
+        final JsonToken token = jp.getCurrentToken();
+        if (token == JsonToken.FIELD_NAME) {
+          if ("Type".equals(jp.getCurrentName())) {
+            String metadataTypeName = jp.nextTextValue();
+            if (metadataTypeName.startsWith("Collection(")) {
+              returnType.setType(metadataTypeName.substring(metadataTypeName.indexOf("(") + 1,
+                      metadataTypeName.length() - 1));
+              returnType.setCollection(true);
+            } else {
+              returnType.setType(metadataTypeName);
+              returnType.setCollection(false);
+            }
+          } else if ("Nullable".equals(jp.getCurrentName())) {
+            returnType.setNullable(BooleanUtils.toBoolean(jp.nextTextValue()));
+          } else if ("MaxLength".equals(jp.getCurrentName())) {
+            final String maxLenght = jp.nextTextValue();
+            returnType.setMaxLength(maxLenght.equalsIgnoreCase("max") ? Integer.MAX_VALUE : Integer.valueOf(maxLenght));
+          } else if ("Precision".equals(jp.getCurrentName())) {
+            returnType.setPrecision(Integer.valueOf(jp.nextTextValue()));
+          } else if ("Scale".equals(jp.getCurrentName())) {
+            final String scale = jp.nextTextValue();
+            returnType.setScale(scale.equalsIgnoreCase("variable") ? 0 : Integer.valueOf(scale));
+          } else if ("SRID".equals(jp.getCurrentName())) {
+            final String srid = jp.nextTextValue();
+            if (srid != null) {
+              returnType.setSrid(SRID.valueOf(srid));
+            }
+          }
+        }
+      }
+
+      return returnType;
+    }
+  }
+}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/53b10f6b/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/ClientCsdlSchema.java
----------------------------------------------------------------------
diff --git a/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/ClientCsdlSchema.java b/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/ClientCsdlSchema.java
new file mode 100644
index 0000000..bc141c5
--- /dev/null
+++ b/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/ClientCsdlSchema.java
@@ -0,0 +1,86 @@
+/*
+ * 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.client.core.edm.xml;
+
+import com.fasterxml.jackson.core.JsonParser;
+import com.fasterxml.jackson.core.JsonToken;
+import com.fasterxml.jackson.databind.DeserializationContext;
+import org.apache.olingo.commons.api.edm.provider.CsdlSchema;
+
+import com.fasterxml.jackson.databind.annotation.JsonDeserialize;
+
+import java.io.IOException;
+
+@JsonDeserialize(using = ClientCsdlSchema.SchemaDeserializer.class)
+class ClientCsdlSchema extends CsdlSchema {
+
+  private static final long serialVersionUID = 1911087363912024939L;
+
+  static class SchemaDeserializer extends AbstractClientCsdlEdmDeserializer<ClientCsdlSchema> {
+    @Override
+    protected ClientCsdlSchema doDeserialize(final JsonParser jp, final DeserializationContext ctxt)
+            throws IOException {
+      final ClientCsdlSchema schema = new ClientCsdlSchema();
+
+      for (; jp.getCurrentToken() != JsonToken.END_OBJECT; jp.nextToken()) {
+        final JsonToken token = jp.getCurrentToken();
+        if (token == JsonToken.FIELD_NAME) {
+          if ("Namespace".equals(jp.getCurrentName())) {
+            schema.setNamespace(jp.nextTextValue());
+          } else if ("Alias".equals(jp.getCurrentName())) {
+            schema.setAlias(jp.nextTextValue());
+          } else if ("ComplexType".equals(jp.getCurrentName())) {
+            jp.nextToken();
+            schema.getComplexTypes().add(jp.readValueAs(ClientCsdlComplexType.class));
+          } else if ("EntityType".equals(jp.getCurrentName())) {
+            jp.nextToken();
+            schema.getEntityTypes().add(jp.readValueAs(ClientCsdlEntityType.class));
+          } else if ("EnumType".equals(jp.getCurrentName())) {
+            jp.nextToken();
+            schema.getEnumTypes().add(jp.readValueAs(ClientCsdlEnumType.class));
+          } else if ("EntityContainer".equals(jp.getCurrentName())) {
+            jp.nextToken();
+            ClientCsdlEntityContainer entityContainer = jp.readValueAs(ClientCsdlEntityContainer.class);
+            schema.setEntityContainer(entityContainer);
+          } else if ("Action".equals(jp.getCurrentName())) {
+            jp.nextToken();
+            schema.getActions().add(jp.readValueAs(ClientCsdlAction.class));
+          } else if ("Function".equals(jp.getCurrentName())) {
+            jp.nextToken();
+            schema.getFunctions().add(jp.readValueAs(ClientCsdlFunction.class));
+          } else if ("TypeDefinition".equals(jp.getCurrentName())) {
+            jp.nextToken();
+            schema.getTypeDefinitions().add(jp.readValueAs(ClientCsdlTypeDefinition.class));
+          }
+        } else if ("Annotations".equals(jp.getCurrentName())) {
+          jp.nextToken();
+          schema.getAnnotationGroups().add(jp.readValueAs(ClientCsdlAnnotations.class));
+        } else if ("Annotation".equals(jp.getCurrentName())) {
+          jp.nextToken();
+          schema.getAnnotations().add(jp.readValueAs(ClientCsdlAnnotation.class));
+        } else if ("Term".equals(jp.getCurrentName())) {
+          jp.nextToken();
+          schema.getTerms().add(jp.readValueAs(ClientCsdlTerm.class));
+        }
+      }
+
+      return schema;
+    }
+  }
+}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/53b10f6b/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/ClientCsdlSingleton.java
----------------------------------------------------------------------
diff --git a/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/ClientCsdlSingleton.java b/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/ClientCsdlSingleton.java
new file mode 100644
index 0000000..7a2d097
--- /dev/null
+++ b/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/ClientCsdlSingleton.java
@@ -0,0 +1,62 @@
+/*
+ * 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.client.core.edm.xml;
+
+import com.fasterxml.jackson.core.JsonParser;
+import com.fasterxml.jackson.core.JsonToken;
+import com.fasterxml.jackson.databind.DeserializationContext;
+import org.apache.olingo.commons.api.edm.provider.CsdlSingleton;
+
+import com.fasterxml.jackson.databind.annotation.JsonDeserialize;
+
+import java.io.IOException;
+
+@JsonDeserialize(using = ClientCsdlSingleton.SingletonDeserializer.class)
+class ClientCsdlSingleton extends CsdlSingleton {
+
+  private static final long serialVersionUID = 1656749615107151921L;
+
+  static class SingletonDeserializer extends AbstractClientCsdlEdmDeserializer<ClientCsdlSingleton> {
+    @Override
+    protected ClientCsdlSingleton doDeserialize(final JsonParser jp, final DeserializationContext ctxt)
+            throws IOException {
+      final ClientCsdlSingleton singleton = new ClientCsdlSingleton();
+
+      for (; jp.getCurrentToken() != JsonToken.END_OBJECT; jp.nextToken()) {
+        final JsonToken token = jp.getCurrentToken();
+        if (token == JsonToken.FIELD_NAME) {
+          if ("Name".equals(jp.getCurrentName())) {
+            singleton.setName(jp.nextTextValue());
+          } else if ("Type".equals(jp.getCurrentName())) {
+            singleton.setType(jp.nextTextValue());
+          } else if ("NavigationPropertyBinding".equals(jp.getCurrentName())) {
+            jp.nextToken();
+            singleton.getNavigationPropertyBindings().add(
+                    jp.readValueAs(ClientCsdlNavigationPropertyBinding.class));
+          } else if ("Annotation".equals(jp.getCurrentName())) {
+            jp.nextToken();
+            singleton.getAnnotations().add(jp.readValueAs(ClientCsdlAnnotation.class));
+          }
+        }
+      }
+
+      return singleton;
+    }
+  }
+}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/53b10f6b/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/ClientCsdlTerm.java
----------------------------------------------------------------------
diff --git a/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/ClientCsdlTerm.java b/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/ClientCsdlTerm.java
new file mode 100644
index 0000000..b2cef22
--- /dev/null
+++ b/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/ClientCsdlTerm.java
@@ -0,0 +1,83 @@
+/*
+ * 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.client.core.edm.xml;
+
+import com.fasterxml.jackson.core.JsonParser;
+import com.fasterxml.jackson.core.JsonToken;
+import com.fasterxml.jackson.databind.DeserializationContext;
+import org.apache.commons.lang3.BooleanUtils;
+import org.apache.commons.lang3.StringUtils;
+import org.apache.olingo.commons.api.edm.geo.SRID;
+import org.apache.olingo.commons.api.edm.provider.CsdlTerm;
+
+import com.fasterxml.jackson.databind.annotation.JsonDeserialize;
+
+import java.io.IOException;
+import java.util.Arrays;
+
+@JsonDeserialize(using = ClientCsdlTerm.TermDeserializer.class)
+class ClientCsdlTerm extends CsdlTerm {
+
+  private static final long serialVersionUID = -8350072064720586186L;
+
+  static class TermDeserializer extends AbstractClientCsdlEdmDeserializer<ClientCsdlTerm> {
+    @Override
+    protected ClientCsdlTerm doDeserialize(final JsonParser jp, final DeserializationContext ctxt)
+            throws IOException {
+      final ClientCsdlTerm term = new ClientCsdlTerm();
+
+      for (; jp.getCurrentToken() != JsonToken.END_OBJECT; jp.nextToken()) {
+        final JsonToken token = jp.getCurrentToken();
+        if (token == JsonToken.FIELD_NAME) {
+          if ("Name".equals(jp.getCurrentName())) {
+            term.setName(jp.nextTextValue());
+          } else if ("Type".equals(jp.getCurrentName())) {
+            term.setType(jp.nextTextValue());
+          } else if ("BaseTerm".equals(jp.getCurrentName())) {
+            term.setBaseTerm(jp.nextTextValue());
+          } else if ("DefaultValue".equals(jp.getCurrentName())) {
+            term.setDefaultValue(jp.nextTextValue());
+          } else if ("Nullable".equals(jp.getCurrentName())) {
+            term.setNullable(BooleanUtils.toBoolean(jp.nextTextValue()));
+          } else if ("MaxLength".equals(jp.getCurrentName())) {
+            final String maxLenght = jp.nextTextValue();
+            term.setMaxLength(maxLenght.equalsIgnoreCase("max") ? Integer.MAX_VALUE : Integer.valueOf(maxLenght));
+          } else if ("Precision".equals(jp.getCurrentName())) {
+            term.setPrecision(Integer.valueOf(jp.nextTextValue()));
+          } else if ("Scale".equals(jp.getCurrentName())) {
+            final String scale = jp.nextTextValue();
+            term.setScale(scale.equalsIgnoreCase("variable") ? 0 : Integer.valueOf(scale));
+          } else if ("SRID".equals(jp.getCurrentName())) {
+            final String srid = jp.nextTextValue();
+            if (srid != null) {
+              term.setSrid(SRID.valueOf(srid));
+            }
+          } else if ("AppliesTo".equals(jp.getCurrentName())) {
+            term.getAppliesTo().addAll(Arrays.asList(StringUtils.split(jp.nextTextValue())));
+          } else if ("Annotation".equals(jp.getCurrentName())) {
+            jp.nextToken();
+            term.getAnnotations().add(jp.readValueAs(ClientCsdlAnnotation.class));
+          }
+        }
+      }
+
+      return term;
+    }
+  }
+}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/53b10f6b/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/ClientCsdlTwoParamsOpDynamicAnnotationExpression.java
----------------------------------------------------------------------
diff --git a/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/ClientCsdlTwoParamsOpDynamicAnnotationExpression.java b/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/ClientCsdlTwoParamsOpDynamicAnnotationExpression.java
new file mode 100644
index 0000000..b4d3732
--- /dev/null
+++ b/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/ClientCsdlTwoParamsOpDynamicAnnotationExpression.java
@@ -0,0 +1,62 @@
+/*
+ * 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.client.core.edm.xml;
+
+import org.apache.olingo.commons.api.edm.provider.annotation.DynamicAnnotationExpression;
+import org.apache.olingo.commons.api.edm.provider.annotation.TwoParamsOpDynamicAnnotationExpression;
+
+class ClientCsdlTwoParamsOpDynamicAnnotationExpression
+        extends AbstractClientCsdlDynamicAnnotationExpression implements TwoParamsOpDynamicAnnotationExpression {
+
+  private static final long serialVersionUID = 6241842185452451946L;
+
+  private Type type;
+
+  private DynamicAnnotationExpression left;
+
+  private DynamicAnnotationExpression right;
+
+  @Override
+  public Type getType() {
+    return type;
+  }
+
+  public void setType(final Type type) {
+    this.type = type;
+  }
+
+  @Override
+  public DynamicAnnotationExpression getLeftExpression() {
+    return left;
+  }
+
+  public void setLeftExpression(final DynamicAnnotationExpression left) {
+    this.left = left;
+  }
+
+  @Override
+  public DynamicAnnotationExpression getRightExpression() {
+    return right;
+  }
+
+  public void setRightExpression(final DynamicAnnotationExpression right) {
+    this.right = right;
+  }
+
+}


[02/50] [abbrv] olingo-odata4 git commit: [OLINGO-564] Renamed client edm classes

Posted by mi...@apache.org.
http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/754e23ab/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/annotation/AbstractDynamicAnnotationExpression.java
----------------------------------------------------------------------
diff --git a/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/annotation/AbstractDynamicAnnotationExpression.java b/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/annotation/AbstractDynamicAnnotationExpression.java
deleted file mode 100644
index 18ffb34..0000000
--- a/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/annotation/AbstractDynamicAnnotationExpression.java
+++ /dev/null
@@ -1,356 +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.client.core.edm.xml.annotation;
-
-import com.fasterxml.jackson.core.JsonLocation;
-import com.fasterxml.jackson.core.JsonParseException;
-import com.fasterxml.jackson.core.JsonParser;
-import com.fasterxml.jackson.core.JsonToken;
-import com.fasterxml.jackson.databind.DeserializationContext;
-import org.apache.commons.lang3.ArrayUtils;
-import org.apache.commons.lang3.ClassUtils;
-import org.apache.olingo.client.core.edm.xml.AbstractEdmDeserializer;
-import org.apache.olingo.commons.api.edm.provider.annotation.AnnotationPath;
-import org.apache.olingo.commons.api.edm.provider.annotation.Apply;
-import org.apache.olingo.commons.api.edm.provider.annotation.Cast;
-import org.apache.olingo.commons.api.edm.provider.annotation.Collection;
-import org.apache.olingo.commons.api.edm.provider.annotation.DynamicAnnotationExpression;
-import org.apache.olingo.commons.api.edm.provider.annotation.If;
-import org.apache.olingo.commons.api.edm.provider.annotation.IsOf;
-import org.apache.olingo.commons.api.edm.provider.annotation.LabeledElement;
-import org.apache.olingo.commons.api.edm.provider.annotation.LabeledElementReference;
-import org.apache.olingo.commons.api.edm.provider.annotation.NavigationPropertyPath;
-import org.apache.olingo.commons.api.edm.provider.annotation.Not;
-import org.apache.olingo.commons.api.edm.provider.annotation.Null;
-import org.apache.olingo.commons.api.edm.provider.annotation.Path;
-import org.apache.olingo.commons.api.edm.provider.annotation.PropertyPath;
-import org.apache.olingo.commons.api.edm.provider.annotation.PropertyValue;
-import org.apache.olingo.commons.api.edm.provider.annotation.Record;
-import org.apache.olingo.commons.api.edm.provider.annotation.TwoParamsOpDynamicAnnotationExpression;
-import org.apache.olingo.commons.api.edm.provider.annotation.UrlRef;
-
-import com.fasterxml.jackson.databind.annotation.JsonDeserialize;
-
-import java.io.IOException;
-
-@JsonDeserialize(using = AbstractDynamicAnnotationExpression.DynamicAnnotationExpressionDeserializer.class)
-public abstract class AbstractDynamicAnnotationExpression
-        extends AbstractAnnotationExpression implements DynamicAnnotationExpression {
-
-  private static final long serialVersionUID = 1093411847477874348L;
-
-  @Override
-  public boolean isNot() {
-    return this instanceof Not;
-  }
-
-  @Override
-  public Not asNot() {
-    return isNot() ? (Not) this : null;
-
-  }
-
-  @Override
-  public boolean isTwoParamsOp() {
-    return this instanceof TwoParamsOpDynamicAnnotationExpression;
-  }
-
-  @Override
-  public TwoParamsOpDynamicAnnotationExpression asTwoParamsOp() {
-    return isTwoParamsOp() ? (TwoParamsOpDynamicAnnotationExpression) this : null;
-  }
-
-  @Override
-  public boolean isAnnotationPath() {
-    return this instanceof AnnotationPath;
-  }
-
-  @Override
-  public AnnotationPath asAnnotationPath() {
-    return isAnnotationPath() ? (AnnotationPath) this : null;
-  }
-
-  @Override
-  public boolean isApply() {
-    return this instanceof Apply;
-  }
-
-  @Override
-  public Apply asApply() {
-    return isApply() ? (Apply) this : null;
-  }
-
-  @Override
-  public boolean isCast() {
-    return this instanceof Cast;
-  }
-
-  @Override
-  public Cast asCast() {
-    return isCast() ? (Cast) this : null;
-  }
-
-  @Override
-  public boolean isCollection() {
-    return this instanceof Collection;
-  }
-
-  @Override
-  public Collection asCollection() {
-    return isCollection() ? (Collection) this : null;
-  }
-
-  @Override
-  public boolean isIf() {
-    return this instanceof If;
-  }
-
-  @Override
-  public If asIf() {
-    return isIf() ? (If) this : null;
-  }
-
-  @Override
-  public boolean isIsOf() {
-    return this instanceof IsOf;
-  }
-
-  @Override
-  public IsOf asIsOf() {
-    return isIsOf() ? (IsOf) this : null;
-  }
-
-  @Override
-  public boolean isLabeledElement() {
-    return this instanceof LabeledElement;
-  }
-
-  @Override
-  public LabeledElement asLabeledElement() {
-    return isLabeledElement() ? (LabeledElement) this : null;
-  }
-
-  @Override
-  public boolean isLabeledElementReference() {
-    return this instanceof LabeledElementReference;
-  }
-
-  @Override
-  public LabeledElementReference asLabeledElementReference() {
-    return isLabeledElementReference() ? (LabeledElementReference) this : null;
-  }
-
-  @Override
-  public boolean isNull() {
-    return this instanceof Null;
-  }
-
-  @Override
-  public Null asNull() {
-    return isNull() ? (Null) this : null;
-  }
-
-  @Override
-  public boolean isNavigationPropertyPath() {
-    return this instanceof NavigationPropertyPath;
-  }
-
-  @Override
-  public NavigationPropertyPath asNavigationPropertyPath() {
-    return isNavigationPropertyPath() ? (NavigationPropertyPath) this : null;
-  }
-
-  @Override
-  public boolean isPath() {
-    return this instanceof Path;
-  }
-
-  @Override
-  public Path asPath() {
-    return isPath() ? (Path) this : null;
-  }
-
-  @Override
-  public boolean isPropertyPath() {
-    return this instanceof PropertyPath;
-  }
-
-  @Override
-  public PropertyPath asPropertyPath() {
-    return isPropertyPath() ? (PropertyPath) this : null;
-  }
-
-  @Override
-  public boolean isPropertyValue() {
-    return this instanceof PropertyValue;
-  }
-
-  @Override
-  public PropertyValue asPropertyValue() {
-    return isPropertyValue() ? (PropertyValue) this : null;
-  }
-
-  @Override
-  public boolean isRecord() {
-    return this instanceof Record;
-  }
-
-  @Override
-  public Record asRecord() {
-    return isRecord() ? (Record) this : null;
-  }
-
-  @Override
-  public boolean isUrlRef() {
-    return this instanceof UrlRef;
-  }
-
-  @Override
-  public UrlRef asUrlRef() {
-    return isUrlRef() ? (UrlRef) this : null;
-  }
-
-  static class DynamicAnnotationExpressionDeserializer
-          extends AbstractEdmDeserializer<AbstractDynamicAnnotationExpression> {
-
-    private static final String[] EL_OR_ATTR = {
-            AnnotationPath.class.getSimpleName(), NavigationPropertyPath.class.getSimpleName(),
-            Path.class.getSimpleName(), PropertyPath.class.getSimpleName()
-    };
-
-    private static final String APPLY = Apply.class.getSimpleName();
-    private static final String CAST = Cast.class.getSimpleName();
-    private static final String COLLECTION = Collection.class.getSimpleName();
-    private static final String IF = If.class.getSimpleName();
-    private static final String IS_OF = IsOf.class.getSimpleName();
-    private static final String LABELED_ELEMENT = LabeledElement.class.getSimpleName();
-    private static final String NULL = Null.class.getSimpleName();
-    private static final String RECORD = Record.class.getSimpleName();
-    private static final String URL_REF = UrlRef.class.getSimpleName();
-
-    private AbstractElementOrAttributeExpression getElementOrAttributeExpression(final String simpleClassName)
-            throws JsonParseException {
-
-      try {
-        @SuppressWarnings("unchecked")
-        Class<? extends AbstractElementOrAttributeExpression> elOrAttrClass =
-                (Class<? extends AbstractElementOrAttributeExpression>) ClassUtils.getClass(
-                        getClass().getPackage().getName() + "." + simpleClassName + "Impl");
-        return elOrAttrClass.newInstance();
-      } catch (Exception e) {
-        throw new JsonParseException("Could not instantiate " + simpleClassName, JsonLocation.NA, e);
-      }
-    }
-
-    private AbstractAnnotationExpression parseConstOrEnumExpression(final JsonParser jp) throws IOException {
-      AbstractAnnotationExpression result;
-      if (isAnnotationConstExprConstruct(jp)) {
-        result = parseAnnotationConstExprConstruct(jp);
-      } else {
-        result = jp.readValueAs(AbstractDynamicAnnotationExpression.class);
-      }
-      jp.nextToken();
-
-      return result;
-    }
-
-    @Override
-    protected AbstractDynamicAnnotationExpression doDeserialize(final JsonParser jp, final DeserializationContext ctxt)
-            throws IOException {
-
-      AbstractDynamicAnnotationExpression expression = null;
-
-      if ("Not".equals(jp.getCurrentName())) {
-        final NotImpl not = new NotImpl();
-
-        jp.nextToken();
-        //Search for field name
-        while (jp.getCurrentToken() != JsonToken.FIELD_NAME) {
-          jp.nextToken();
-        }
-        not.setExpression(jp.readValueAs(AbstractDynamicAnnotationExpression.class));
-        //Search for end object
-        while (jp.getCurrentToken() != JsonToken.END_OBJECT || !jp.getCurrentName().equals("Not")) {
-          jp.nextToken();
-        }
-
-        expression = not;
-      } else if (TwoParamsOpDynamicAnnotationExpression.Type.fromString(jp.getCurrentName()) != null) {
-        final TwoParamsOpDynamicAnnotationExpressionImpl dynExprDoubleParamOp =
-                new TwoParamsOpDynamicAnnotationExpressionImpl();
-        dynExprDoubleParamOp.setType(TwoParamsOpDynamicAnnotationExpression.Type.fromString(jp.getCurrentName()));
-
-        jp.nextToken();
-        //Search for field name
-        while (jp.getCurrentToken() != JsonToken.FIELD_NAME) {
-          jp.nextToken();
-        }
-        dynExprDoubleParamOp.setLeftExpression(jp.readValueAs(AbstractDynamicAnnotationExpression.class));
-        dynExprDoubleParamOp.setRightExpression(jp.readValueAs(AbstractDynamicAnnotationExpression.class));
-        //Search for expression
-        while (jp.getCurrentToken() != JsonToken.END_OBJECT || !jp.getCurrentName().equals(dynExprDoubleParamOp
-                .getType().name())) {
-          jp.nextToken();
-        }
-
-        expression = dynExprDoubleParamOp;
-      } else if (ArrayUtils.contains(EL_OR_ATTR, jp.getCurrentName())) {
-        final AbstractElementOrAttributeExpression elOrAttr = getElementOrAttributeExpression(jp.getCurrentName());
-        elOrAttr.setValue(jp.nextTextValue());
-        expression = elOrAttr;
-      } else if (APPLY.equals(jp.getCurrentName())) {
-        jp.nextToken();
-        expression = jp.readValueAs(ApplyImpl.class);
-      } else if (CAST.equals(jp.getCurrentName())) {
-        jp.nextToken();
-        expression = jp.readValueAs(CastImpl.class);
-      } else if (COLLECTION.equals(jp.getCurrentName())) {
-        jp.nextToken();
-        expression = jp.readValueAs(CollectionImpl.class);
-      } else if (IF.equals(jp.getCurrentName())) {
-        jp.nextToken();
-        jp.nextToken();
-
-        final IfImpl ifImpl = new IfImpl();
-        ifImpl.setGuard(parseConstOrEnumExpression(jp));
-        ifImpl.setThen(parseConstOrEnumExpression(jp));
-        ifImpl.setElse(parseConstOrEnumExpression(jp));
-
-        expression = ifImpl;
-      } else if (IS_OF.equals(jp.getCurrentName())) {
-        jp.nextToken();
-        expression = jp.readValueAs(IsOfImpl.class);
-      } else if (LABELED_ELEMENT.equals(jp.getCurrentName())) {
-        jp.nextToken();
-        expression = jp.readValueAs(LabeledElementImpl.class);
-      } else if (NULL.equals(jp.getCurrentName())) {
-        jp.nextToken();
-        expression = jp.readValueAs(NullImpl.class);
-      } else if (RECORD.equals(jp.getCurrentName())) {
-        jp.nextToken();
-        expression = jp.readValueAs(RecordImpl.class);
-      } else if (URL_REF.equals(jp.getCurrentName())) {
-        jp.nextToken();
-        expression = jp.readValueAs(UrlRefImpl.class);
-      }
-
-      return expression;
-    }
-  }
-}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/754e23ab/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/annotation/AbstractElementOrAttributeExpression.java
----------------------------------------------------------------------
diff --git a/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/annotation/AbstractElementOrAttributeExpression.java b/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/annotation/AbstractElementOrAttributeExpression.java
deleted file mode 100644
index 8237fca..0000000
--- a/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/annotation/AbstractElementOrAttributeExpression.java
+++ /dev/null
@@ -1,37 +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.client.core.edm.xml.annotation;
-
-/**
- * Groups dynamic expressions that may be provided using element notation or attribute notation.
- */
-abstract class AbstractElementOrAttributeExpression extends AbstractDynamicAnnotationExpression {
-
-  private static final long serialVersionUID = 1588336268773032932L;
-
-  private String value;
-
-  public String getValue() {
-    return value;
-  }
-
-  public void setValue(final String value) {
-    this.value = value;
-  }
-}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/754e23ab/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/annotation/AnnotationPathImpl.java
----------------------------------------------------------------------
diff --git a/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/annotation/AnnotationPathImpl.java b/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/annotation/AnnotationPathImpl.java
deleted file mode 100644
index 86a7503..0000000
--- a/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/annotation/AnnotationPathImpl.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.client.core.edm.xml.annotation;
-
-import org.apache.olingo.commons.api.edm.provider.annotation.AnnotationPath;
-
-public class AnnotationPathImpl extends AbstractElementOrAttributeExpression implements AnnotationPath {
-
-  private static final long serialVersionUID = 5360735207353494466L;
-
-}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/754e23ab/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/annotation/ApplyImpl.java
----------------------------------------------------------------------
diff --git a/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/annotation/ApplyImpl.java b/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/annotation/ApplyImpl.java
deleted file mode 100644
index a2733cc..0000000
--- a/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/annotation/ApplyImpl.java
+++ /dev/null
@@ -1,82 +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.client.core.edm.xml.annotation;
-
-import java.io.IOException;
-import java.util.ArrayList;
-import java.util.List;
-
-import com.fasterxml.jackson.core.JsonParser;
-import com.fasterxml.jackson.core.JsonToken;
-import com.fasterxml.jackson.databind.DeserializationContext;
-import org.apache.olingo.client.core.edm.xml.AbstractEdmDeserializer;
-import org.apache.olingo.client.core.edm.xml.AnnotationImpl;
-import org.apache.olingo.commons.api.edm.provider.annotation.AnnotationExpression;
-import org.apache.olingo.commons.api.edm.provider.annotation.Apply;
-
-import com.fasterxml.jackson.databind.annotation.JsonDeserialize;
-
-@JsonDeserialize(using = ApplyImpl.ApplyDeserializer.class)
-public class ApplyImpl extends AbstractAnnotatableDynamicAnnotationExpression implements Apply {
-
-  private static final long serialVersionUID = 4358398303405059879L;
-
-  private String function;
-
-  private final List<AnnotationExpression> parameters = new ArrayList<AnnotationExpression>();
-
-  @Override
-  public String getFunction() {
-    return function;
-  }
-
-  public void setFunction(final String function) {
-    this.function = function;
-  }
-
-  @Override
-  public List<AnnotationExpression> getParameters() {
-    return parameters;
-  }
-
-  static class ApplyDeserializer extends AbstractEdmDeserializer<ApplyImpl> {
-
-    @Override
-    protected ApplyImpl doDeserialize(final JsonParser jp, final DeserializationContext ctxt)
-            throws IOException {
-      final ApplyImpl apply = new ApplyImpl();
-      for (; jp.getCurrentToken() != JsonToken.END_OBJECT; jp.nextToken()) {
-        final JsonToken token = jp.getCurrentToken();
-        if (token == JsonToken.FIELD_NAME) {
-          if ("Function".equals(jp.getCurrentName())) {
-            apply.setFunction(jp.nextTextValue());
-          } else if ("Annotation".equals(jp.getCurrentName())) {
-            apply.getAnnotations().add(jp.readValueAs(AnnotationImpl.class));
-          } else if (isAnnotationConstExprConstruct(jp)) {
-            apply.getParameters().add(parseAnnotationConstExprConstruct(jp));
-          } else {
-            apply.getParameters().add(jp.readValueAs(AbstractDynamicAnnotationExpression.class));
-          }
-        }
-      }
-
-      return apply;
-    }
-  }
-}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/754e23ab/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/annotation/CastImpl.java
----------------------------------------------------------------------
diff --git a/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/annotation/CastImpl.java b/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/annotation/CastImpl.java
deleted file mode 100644
index 8e8f6e3..0000000
--- a/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/annotation/CastImpl.java
+++ /dev/null
@@ -1,139 +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.client.core.edm.xml.annotation;
-
-import com.fasterxml.jackson.core.JsonParser;
-import com.fasterxml.jackson.core.JsonToken;
-import com.fasterxml.jackson.databind.DeserializationContext;
-import org.apache.olingo.client.core.edm.xml.AbstractEdmDeserializer;
-import org.apache.olingo.client.core.edm.xml.AnnotationImpl;
-import org.apache.olingo.commons.api.edm.geo.SRID;
-import org.apache.olingo.commons.api.edm.provider.annotation.Cast;
-import org.apache.olingo.commons.api.edm.provider.annotation.DynamicAnnotationExpression;
-
-import com.fasterxml.jackson.databind.annotation.JsonDeserialize;
-
-import java.io.IOException;
-
-@JsonDeserialize(using = CastImpl.CastDeserializer.class)
-public class CastImpl extends AbstractAnnotatableDynamicAnnotationExpression implements Cast {
-
-  private static final long serialVersionUID = 3312415984116005313L;
-
-  private String type;
-
-  private Integer maxLength;
-
-  private Integer precision;
-
-  private Integer scale;
-
-  private SRID srid;
-
-  private DynamicAnnotationExpression value;
-
-  @Override
-  public String getType() {
-    return type;
-  }
-
-  public void setType(final String type) {
-    this.type = type;
-  }
-
-  @Override
-  public Integer getMaxLength() {
-    return maxLength;
-  }
-
-  public void setMaxLength(final Integer maxLength) {
-    this.maxLength = maxLength;
-  }
-
-  @Override
-  public Integer getPrecision() {
-    return precision;
-  }
-
-  public void setPrecision(final Integer precision) {
-    this.precision = precision;
-  }
-
-  @Override
-  public Integer getScale() {
-    return scale;
-  }
-
-  public void setScale(final Integer scale) {
-    this.scale = scale;
-  }
-
-  @Override
-  public SRID getSrid() {
-    return srid;
-  }
-
-  public void setSrid(final SRID srid) {
-    this.srid = srid;
-  }
-
-  @Override
-  public DynamicAnnotationExpression getValue() {
-    return value;
-  }
-
-  public void setValue(final DynamicAnnotationExpression value) {
-    this.value = value;
-  }
-
-  static class CastDeserializer extends AbstractEdmDeserializer<CastImpl> {
-
-    @Override
-    protected CastImpl doDeserialize(final JsonParser jp, final DeserializationContext ctxt)
-            throws IOException {
-      final CastImpl cast = new CastImpl();
-      for (; jp.getCurrentToken() != JsonToken.END_OBJECT; jp.nextToken()) {
-        final JsonToken token = jp.getCurrentToken();
-        if (token == JsonToken.FIELD_NAME) {
-          if ("Type".equals(jp.getCurrentName())) {
-            cast.setType(jp.nextTextValue());
-          } else if ("Annotation".equals(jp.getCurrentName())) {
-            cast.getAnnotations().add(jp.readValueAs(AnnotationImpl.class));
-          } else if ("MaxLength".equals(jp.getCurrentName())) {
-            final String maxLenght = jp.nextTextValue();
-            cast.setMaxLength(maxLenght.equalsIgnoreCase("max") ? Integer.MAX_VALUE : Integer.valueOf(maxLenght));
-          } else if ("Precision".equals(jp.getCurrentName())) {
-            cast.setPrecision(Integer.valueOf(jp.nextTextValue()));
-          } else if ("Scale".equals(jp.getCurrentName())) {
-            final String scale = jp.nextTextValue();
-            cast.setScale(scale.equalsIgnoreCase("variable") ? 0 : Integer.valueOf(scale));
-          } else if ("SRID".equals(jp.getCurrentName())) {
-            final String srid = jp.nextTextValue();
-            if (srid != null) {
-              cast.setSrid(SRID.valueOf(srid));
-            }
-          } else {
-            cast.setValue(jp.readValueAs(AbstractDynamicAnnotationExpression.class));
-          }
-        }
-      }
-      return cast;
-    }
-  }
-}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/754e23ab/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/annotation/ClientAnnotationPath.java
----------------------------------------------------------------------
diff --git a/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/annotation/ClientAnnotationPath.java b/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/annotation/ClientAnnotationPath.java
new file mode 100644
index 0000000..1787708
--- /dev/null
+++ b/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/annotation/ClientAnnotationPath.java
@@ -0,0 +1,27 @@
+/*
+ * 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.client.core.edm.xml.annotation;
+
+import org.apache.olingo.commons.api.edm.provider.annotation.AnnotationPath;
+
+public class ClientAnnotationPath extends AbstractClientElementOrAttributeExpression implements AnnotationPath {
+
+  private static final long serialVersionUID = 5360735207353494466L;
+
+}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/754e23ab/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/annotation/ClientApply.java
----------------------------------------------------------------------
diff --git a/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/annotation/ClientApply.java b/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/annotation/ClientApply.java
new file mode 100644
index 0000000..c731036
--- /dev/null
+++ b/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/annotation/ClientApply.java
@@ -0,0 +1,82 @@
+/*
+ * 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.client.core.edm.xml.annotation;
+
+import java.io.IOException;
+import java.util.ArrayList;
+import java.util.List;
+
+import com.fasterxml.jackson.core.JsonParser;
+import com.fasterxml.jackson.core.JsonToken;
+import com.fasterxml.jackson.databind.DeserializationContext;
+import org.apache.olingo.client.core.edm.xml.AbstractClientEdmDeserializer;
+import org.apache.olingo.client.core.edm.xml.ClientAnnotation;
+import org.apache.olingo.commons.api.edm.provider.annotation.AnnotationExpression;
+import org.apache.olingo.commons.api.edm.provider.annotation.Apply;
+
+import com.fasterxml.jackson.databind.annotation.JsonDeserialize;
+
+@JsonDeserialize(using = ClientApply.ApplyDeserializer.class)
+public class ClientApply extends AbstractClientAnnotatableDynamicAnnotationExpression implements Apply {
+
+  private static final long serialVersionUID = 4358398303405059879L;
+
+  private String function;
+
+  private final List<AnnotationExpression> parameters = new ArrayList<AnnotationExpression>();
+
+  @Override
+  public String getFunction() {
+    return function;
+  }
+
+  public void setFunction(final String function) {
+    this.function = function;
+  }
+
+  @Override
+  public List<AnnotationExpression> getParameters() {
+    return parameters;
+  }
+
+  static class ApplyDeserializer extends AbstractClientEdmDeserializer<ClientApply> {
+
+    @Override
+    protected ClientApply doDeserialize(final JsonParser jp, final DeserializationContext ctxt)
+            throws IOException {
+      final ClientApply apply = new ClientApply();
+      for (; jp.getCurrentToken() != JsonToken.END_OBJECT; jp.nextToken()) {
+        final JsonToken token = jp.getCurrentToken();
+        if (token == JsonToken.FIELD_NAME) {
+          if ("Function".equals(jp.getCurrentName())) {
+            apply.setFunction(jp.nextTextValue());
+          } else if ("Annotation".equals(jp.getCurrentName())) {
+            apply.getAnnotations().add(jp.readValueAs(ClientAnnotation.class));
+          } else if (isAnnotationConstExprConstruct(jp)) {
+            apply.getParameters().add(parseAnnotationConstExprConstruct(jp));
+          } else {
+            apply.getParameters().add(jp.readValueAs(AbstractClientDynamicAnnotationExpression.class));
+          }
+        }
+      }
+
+      return apply;
+    }
+  }
+}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/754e23ab/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/annotation/ClientCast.java
----------------------------------------------------------------------
diff --git a/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/annotation/ClientCast.java b/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/annotation/ClientCast.java
new file mode 100644
index 0000000..f8eb827
--- /dev/null
+++ b/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/annotation/ClientCast.java
@@ -0,0 +1,139 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.olingo.client.core.edm.xml.annotation;
+
+import com.fasterxml.jackson.core.JsonParser;
+import com.fasterxml.jackson.core.JsonToken;
+import com.fasterxml.jackson.databind.DeserializationContext;
+import org.apache.olingo.client.core.edm.xml.AbstractClientEdmDeserializer;
+import org.apache.olingo.client.core.edm.xml.ClientAnnotation;
+import org.apache.olingo.commons.api.edm.geo.SRID;
+import org.apache.olingo.commons.api.edm.provider.annotation.Cast;
+import org.apache.olingo.commons.api.edm.provider.annotation.DynamicAnnotationExpression;
+
+import com.fasterxml.jackson.databind.annotation.JsonDeserialize;
+
+import java.io.IOException;
+
+@JsonDeserialize(using = ClientCast.CastDeserializer.class)
+public class ClientCast extends AbstractClientAnnotatableDynamicAnnotationExpression implements Cast {
+
+  private static final long serialVersionUID = 3312415984116005313L;
+
+  private String type;
+
+  private Integer maxLength;
+
+  private Integer precision;
+
+  private Integer scale;
+
+  private SRID srid;
+
+  private DynamicAnnotationExpression value;
+
+  @Override
+  public String getType() {
+    return type;
+  }
+
+  public void setType(final String type) {
+    this.type = type;
+  }
+
+  @Override
+  public Integer getMaxLength() {
+    return maxLength;
+  }
+
+  public void setMaxLength(final Integer maxLength) {
+    this.maxLength = maxLength;
+  }
+
+  @Override
+  public Integer getPrecision() {
+    return precision;
+  }
+
+  public void setPrecision(final Integer precision) {
+    this.precision = precision;
+  }
+
+  @Override
+  public Integer getScale() {
+    return scale;
+  }
+
+  public void setScale(final Integer scale) {
+    this.scale = scale;
+  }
+
+  @Override
+  public SRID getSrid() {
+    return srid;
+  }
+
+  public void setSrid(final SRID srid) {
+    this.srid = srid;
+  }
+
+  @Override
+  public DynamicAnnotationExpression getValue() {
+    return value;
+  }
+
+  public void setValue(final DynamicAnnotationExpression value) {
+    this.value = value;
+  }
+
+  static class CastDeserializer extends AbstractClientEdmDeserializer<ClientCast> {
+
+    @Override
+    protected ClientCast doDeserialize(final JsonParser jp, final DeserializationContext ctxt)
+            throws IOException {
+      final ClientCast cast = new ClientCast();
+      for (; jp.getCurrentToken() != JsonToken.END_OBJECT; jp.nextToken()) {
+        final JsonToken token = jp.getCurrentToken();
+        if (token == JsonToken.FIELD_NAME) {
+          if ("Type".equals(jp.getCurrentName())) {
+            cast.setType(jp.nextTextValue());
+          } else if ("Annotation".equals(jp.getCurrentName())) {
+            cast.getAnnotations().add(jp.readValueAs(ClientAnnotation.class));
+          } else if ("MaxLength".equals(jp.getCurrentName())) {
+            final String maxLenght = jp.nextTextValue();
+            cast.setMaxLength(maxLenght.equalsIgnoreCase("max") ? Integer.MAX_VALUE : Integer.valueOf(maxLenght));
+          } else if ("Precision".equals(jp.getCurrentName())) {
+            cast.setPrecision(Integer.valueOf(jp.nextTextValue()));
+          } else if ("Scale".equals(jp.getCurrentName())) {
+            final String scale = jp.nextTextValue();
+            cast.setScale(scale.equalsIgnoreCase("variable") ? 0 : Integer.valueOf(scale));
+          } else if ("SRID".equals(jp.getCurrentName())) {
+            final String srid = jp.nextTextValue();
+            if (srid != null) {
+              cast.setSrid(SRID.valueOf(srid));
+            }
+          } else {
+            cast.setValue(jp.readValueAs(AbstractClientDynamicAnnotationExpression.class));
+          }
+        }
+      }
+      return cast;
+    }
+  }
+}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/754e23ab/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/annotation/ClientCollection.java
----------------------------------------------------------------------
diff --git a/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/annotation/ClientCollection.java b/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/annotation/ClientCollection.java
new file mode 100644
index 0000000..83419a3
--- /dev/null
+++ b/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/annotation/ClientCollection.java
@@ -0,0 +1,65 @@
+/*
+ * 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.client.core.edm.xml.annotation;
+
+import java.io.IOException;
+import java.util.ArrayList;
+import java.util.List;
+
+import com.fasterxml.jackson.core.JsonParser;
+import com.fasterxml.jackson.core.JsonToken;
+import com.fasterxml.jackson.databind.DeserializationContext;
+import org.apache.olingo.client.core.edm.xml.AbstractClientEdmDeserializer;
+import org.apache.olingo.commons.api.edm.provider.annotation.AnnotationExpression;
+import org.apache.olingo.commons.api.edm.provider.annotation.Collection;
+
+import com.fasterxml.jackson.databind.annotation.JsonDeserialize;
+
+@JsonDeserialize(using = ClientCollection.CollectionDeserializer.class)
+public class ClientCollection extends AbstractClientDynamicAnnotationExpression implements Collection {
+
+  private static final long serialVersionUID = -724749123749715643L;
+
+  private final List<AnnotationExpression> items = new ArrayList<AnnotationExpression>();
+
+  @Override
+  public List<AnnotationExpression> getItems() {
+    return items;
+  }
+
+  static class CollectionDeserializer extends AbstractClientEdmDeserializer<ClientCollection> {
+    @Override
+    protected ClientCollection doDeserialize(final JsonParser jp, final DeserializationContext ctxt)
+            throws IOException {
+      final ClientCollection collection = new ClientCollection();
+      for (; jp.getCurrentToken() != JsonToken.END_OBJECT; jp.nextToken()) {
+        final JsonToken token = jp.getCurrentToken();
+        if (token == JsonToken.FIELD_NAME) {
+          if (isAnnotationConstExprConstruct(jp)) {
+            collection.getItems().add(parseAnnotationConstExprConstruct(jp));
+          } else {
+            collection.getItems().add(jp.readValueAs(AbstractClientDynamicAnnotationExpression.class));
+          }
+        }
+      }
+
+      return collection;
+    }
+  }
+}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/754e23ab/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/annotation/ClientConstantAnnotationExpression.java
----------------------------------------------------------------------
diff --git a/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/annotation/ClientConstantAnnotationExpression.java b/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/annotation/ClientConstantAnnotationExpression.java
new file mode 100644
index 0000000..13d9e72
--- /dev/null
+++ b/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/annotation/ClientConstantAnnotationExpression.java
@@ -0,0 +1,52 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.olingo.client.core.edm.xml.annotation;
+
+import org.apache.olingo.commons.api.edm.provider.annotation.ConstantAnnotationExpression;
+
+public class ClientConstantAnnotationExpression
+        extends AbstractClientAnnotationExpression implements ConstantAnnotationExpression {
+
+  private static final long serialVersionUID = 5618680702707972904L;
+
+  private Type type;
+
+  private String value;
+
+  @Override
+  public Type getType() {
+    return type;
+  }
+
+  @Override
+  public void setType(final Type type) {
+    this.type = type;
+  }
+
+  @Override
+  public String getValue() {
+    return value;
+  }
+
+  @Override
+  public void setValue(final String value) {
+    this.value = value;
+  }
+
+}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/754e23ab/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/annotation/ClientIf.java
----------------------------------------------------------------------
diff --git a/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/annotation/ClientIf.java b/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/annotation/ClientIf.java
new file mode 100644
index 0000000..4795f14
--- /dev/null
+++ b/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/annotation/ClientIf.java
@@ -0,0 +1,61 @@
+/*
+ * 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.client.core.edm.xml.annotation;
+
+import org.apache.olingo.commons.api.edm.provider.annotation.AnnotationExpression;
+import org.apache.olingo.commons.api.edm.provider.annotation.If;
+
+public class ClientIf extends AbstractClientAnnotatableDynamicAnnotationExpression implements If {
+
+  private static final long serialVersionUID = -8571383625077590656L;
+
+  private AnnotationExpression guard;
+
+  private AnnotationExpression _then;
+
+  private AnnotationExpression _else;
+
+  @Override
+  public AnnotationExpression getGuard() {
+    return guard;
+  }
+
+  public void setGuard(final AnnotationExpression guard) {
+    this.guard = guard;
+  }
+
+  @Override
+  public AnnotationExpression getThen() {
+    return _then;
+  }
+
+  public void setThen(final AnnotationExpression _then) {
+    this._then = _then;
+  }
+
+  @Override
+  public AnnotationExpression getElse() {
+    return _else;
+  }
+
+  public void setElse(final AnnotationExpression _else) {
+    this._else = _else;
+  }
+
+}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/754e23ab/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/annotation/ClientIsOf.java
----------------------------------------------------------------------
diff --git a/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/annotation/ClientIsOf.java b/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/annotation/ClientIsOf.java
new file mode 100644
index 0000000..ed13dbc
--- /dev/null
+++ b/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/annotation/ClientIsOf.java
@@ -0,0 +1,138 @@
+/*
+ * 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.client.core.edm.xml.annotation;
+
+import com.fasterxml.jackson.core.JsonParser;
+import com.fasterxml.jackson.core.JsonToken;
+import com.fasterxml.jackson.databind.DeserializationContext;
+import org.apache.olingo.client.core.edm.xml.AbstractClientEdmDeserializer;
+import org.apache.olingo.client.core.edm.xml.ClientAnnotation;
+import org.apache.olingo.commons.api.edm.geo.SRID;
+import org.apache.olingo.commons.api.edm.provider.annotation.DynamicAnnotationExpression;
+import org.apache.olingo.commons.api.edm.provider.annotation.IsOf;
+
+import com.fasterxml.jackson.databind.annotation.JsonDeserialize;
+
+import java.io.IOException;
+
+@JsonDeserialize(using = ClientIsOf.IsOfDeserializer.class)
+public class ClientIsOf extends AbstractClientAnnotatableDynamicAnnotationExpression implements IsOf {
+
+  private static final long serialVersionUID = -893355856129761174L;
+
+  private String type;
+
+  private Integer maxLength;
+
+  private Integer precision;
+
+  private Integer scale;
+
+  private SRID srid;
+
+  private DynamicAnnotationExpression value;
+
+  @Override
+  public String getType() {
+    return type;
+  }
+
+  public void setType(final String type) {
+    this.type = type;
+  }
+
+  @Override
+  public Integer getMaxLength() {
+    return maxLength;
+  }
+
+  public void setMaxLength(final Integer maxLength) {
+    this.maxLength = maxLength;
+  }
+
+  @Override
+  public Integer getPrecision() {
+    return precision;
+  }
+
+  public void setPrecision(final Integer precision) {
+    this.precision = precision;
+  }
+
+  @Override
+  public Integer getScale() {
+    return scale;
+  }
+
+  public void setScale(final Integer scale) {
+    this.scale = scale;
+  }
+
+  @Override
+  public SRID getSrid() {
+    return srid;
+  }
+
+  public void setSrid(final SRID srid) {
+    this.srid = srid;
+  }
+
+  @Override
+  public DynamicAnnotationExpression getValue() {
+    return value;
+  }
+
+  public void setValue(final DynamicAnnotationExpression value) {
+    this.value = value;
+  }
+
+  static class IsOfDeserializer extends AbstractClientEdmDeserializer<ClientIsOf> {
+    @Override
+    protected ClientIsOf doDeserialize(final JsonParser jp, final DeserializationContext ctxt)
+            throws IOException {
+      final ClientIsOf isof = new ClientIsOf();
+      for (; jp.getCurrentToken() != JsonToken.END_OBJECT; jp.nextToken()) {
+        final JsonToken token = jp.getCurrentToken();
+        if (token == JsonToken.FIELD_NAME) {
+          if ("Type".equals(jp.getCurrentName())) {
+            isof.setType(jp.nextTextValue());
+          } else if ("Annotation".equals(jp.getCurrentName())) {
+            isof.getAnnotations().add(jp.readValueAs(ClientAnnotation.class));
+          } else if ("MaxLength".equals(jp.getCurrentName())) {
+            final String maxLenght = jp.nextTextValue();
+            isof.setMaxLength(maxLenght.equalsIgnoreCase("max") ? Integer.MAX_VALUE : Integer.valueOf(maxLenght));
+          } else if ("Precision".equals(jp.getCurrentName())) {
+            isof.setPrecision(Integer.valueOf(jp.nextTextValue()));
+          } else if ("Scale".equals(jp.getCurrentName())) {
+            final String scale = jp.nextTextValue();
+            isof.setScale(scale.equalsIgnoreCase("variable") ? 0 : Integer.valueOf(scale));
+          } else if ("SRID".equals(jp.getCurrentName())) {
+            final String srid = jp.nextTextValue();
+            if (srid != null) {
+              isof.setSrid(SRID.valueOf(srid));
+            }
+          } else {
+            isof.setValue(jp.readValueAs(AbstractClientDynamicAnnotationExpression.class));
+          }
+        }
+      }
+      return isof;
+    }
+  }
+}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/754e23ab/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/annotation/ClientLabeledElement.java
----------------------------------------------------------------------
diff --git a/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/annotation/ClientLabeledElement.java b/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/annotation/ClientLabeledElement.java
new file mode 100644
index 0000000..3273585
--- /dev/null
+++ b/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/annotation/ClientLabeledElement.java
@@ -0,0 +1,81 @@
+/*
+ * 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.client.core.edm.xml.annotation;
+
+import com.fasterxml.jackson.core.JsonParser;
+import com.fasterxml.jackson.core.JsonToken;
+import com.fasterxml.jackson.databind.DeserializationContext;
+import org.apache.olingo.client.core.edm.xml.AbstractClientEdmDeserializer;
+import org.apache.olingo.client.core.edm.xml.ClientAnnotation;
+import org.apache.olingo.commons.api.edm.provider.annotation.DynamicAnnotationExpression;
+import org.apache.olingo.commons.api.edm.provider.annotation.LabeledElement;
+
+import com.fasterxml.jackson.databind.annotation.JsonDeserialize;
+
+import java.io.IOException;
+
+@JsonDeserialize(using = ClientLabeledElement.LabeledElementDeserializer.class)
+public class ClientLabeledElement
+        extends AbstractClientAnnotatableDynamicAnnotationExpression implements LabeledElement {
+
+  private static final long serialVersionUID = 4909387630253341824L;
+
+  private String name;
+
+  private DynamicAnnotationExpression value;
+
+  @Override
+  public String getName() {
+    return name;
+  }
+
+  public void setName(final String name) {
+    this.name = name;
+  }
+
+  @Override
+  public DynamicAnnotationExpression getValue() {
+    return value;
+  }
+
+  public void setValue(final DynamicAnnotationExpression value) {
+    this.value = value;
+  }
+
+  static class LabeledElementDeserializer extends AbstractClientEdmDeserializer<ClientLabeledElement> {
+    @Override
+    protected ClientLabeledElement doDeserialize(final JsonParser jp, final DeserializationContext ctxt)
+            throws IOException {
+      final ClientLabeledElement element = new ClientLabeledElement();
+      for (; jp.getCurrentToken() != JsonToken.END_OBJECT; jp.nextToken()) {
+        final JsonToken token = jp.getCurrentToken();
+        if (token == JsonToken.FIELD_NAME) {
+          if ("Name".equals(jp.getCurrentName())) {
+            element.setName(jp.nextTextValue());
+          } else if ("Annotation".equals(jp.getCurrentName())) {
+            element.getAnnotations().add(jp.readValueAs(ClientAnnotation.class));
+          } else {
+            element.setValue(jp.readValueAs(AbstractClientDynamicAnnotationExpression.class));
+          }
+        }
+      }
+      return element;
+    }
+  }
+}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/754e23ab/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/annotation/ClientLabeledElementReference.java
----------------------------------------------------------------------
diff --git a/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/annotation/ClientLabeledElementReference.java b/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/annotation/ClientLabeledElementReference.java
new file mode 100644
index 0000000..fd19270
--- /dev/null
+++ b/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/annotation/ClientLabeledElementReference.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.client.core.edm.xml.annotation;
+
+import org.apache.olingo.commons.api.edm.provider.annotation.LabeledElementReference;
+
+public class ClientLabeledElementReference
+        extends AbstractClientElementOrAttributeExpression implements LabeledElementReference {
+
+  private static final long serialVersionUID = 7560525604021670529L;
+
+}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/754e23ab/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/annotation/ClientNavigationPropertyPath.java
----------------------------------------------------------------------
diff --git a/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/annotation/ClientNavigationPropertyPath.java b/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/annotation/ClientNavigationPropertyPath.java
new file mode 100644
index 0000000..b7be32e
--- /dev/null
+++ b/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/annotation/ClientNavigationPropertyPath.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.client.core.edm.xml.annotation;
+
+import org.apache.olingo.commons.api.edm.provider.annotation.NavigationPropertyPath;
+
+public class ClientNavigationPropertyPath extends AbstractClientElementOrAttributeExpression
+    implements NavigationPropertyPath {
+
+  private static final long serialVersionUID = 879840502446301312L;
+
+}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/754e23ab/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/annotation/ClientNot.java
----------------------------------------------------------------------
diff --git a/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/annotation/ClientNot.java b/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/annotation/ClientNot.java
new file mode 100644
index 0000000..a85c052
--- /dev/null
+++ b/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/annotation/ClientNot.java
@@ -0,0 +1,39 @@
+/*
+ * 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.client.core.edm.xml.annotation;
+
+import org.apache.olingo.commons.api.edm.provider.annotation.DynamicAnnotationExpression;
+import org.apache.olingo.commons.api.edm.provider.annotation.Not;
+
+public class ClientNot extends AbstractClientDynamicAnnotationExpression implements Not {
+
+  private static final long serialVersionUID = -437788415922966812L;
+
+  private DynamicAnnotationExpression expression;
+
+  @Override
+  public DynamicAnnotationExpression getExpression() {
+    return expression;
+  }
+
+  public void setExpression(final DynamicAnnotationExpression expression) {
+    this.expression = expression;
+  }
+
+}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/754e23ab/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/annotation/ClientNull.java
----------------------------------------------------------------------
diff --git a/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/annotation/ClientNull.java b/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/annotation/ClientNull.java
new file mode 100644
index 0000000..d8d5de1
--- /dev/null
+++ b/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/annotation/ClientNull.java
@@ -0,0 +1,53 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.olingo.client.core.edm.xml.annotation;
+
+import com.fasterxml.jackson.core.JsonParser;
+import com.fasterxml.jackson.core.JsonToken;
+import com.fasterxml.jackson.databind.DeserializationContext;
+import org.apache.olingo.client.core.edm.xml.AbstractClientEdmDeserializer;
+import org.apache.olingo.client.core.edm.xml.ClientAnnotation;
+import org.apache.olingo.commons.api.edm.provider.annotation.Null;
+
+import com.fasterxml.jackson.databind.annotation.JsonDeserialize;
+
+import java.io.IOException;
+
+@JsonDeserialize(using = ClientNull.NullDeserializer.class)
+public class ClientNull extends AbstractClientAnnotatableDynamicAnnotationExpression implements Null {
+
+  private static final long serialVersionUID = -3148516847180393142L;
+
+  static class NullDeserializer extends AbstractClientEdmDeserializer<ClientNull> {
+    @Override
+    protected ClientNull doDeserialize(final JsonParser jp, final DeserializationContext ctxt)
+            throws IOException {
+      final ClientNull _null = new ClientNull();
+      for (; jp.getCurrentToken() != JsonToken.END_OBJECT; jp.nextToken()) {
+        final JsonToken token = jp.getCurrentToken();
+        if (token == JsonToken.FIELD_NAME) {
+          if ("Annotation".equals(jp.getCurrentName())) {
+            _null.getAnnotations().add(jp.readValueAs(ClientAnnotation.class));
+          }
+        }
+      }
+      return _null;
+    }
+  }
+}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/754e23ab/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/annotation/ClientPath.java
----------------------------------------------------------------------
diff --git a/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/annotation/ClientPath.java b/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/annotation/ClientPath.java
new file mode 100644
index 0000000..6dd5518
--- /dev/null
+++ b/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/annotation/ClientPath.java
@@ -0,0 +1,27 @@
+/*
+ * 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.client.core.edm.xml.annotation;
+
+import org.apache.olingo.commons.api.edm.provider.annotation.Path;
+
+public class ClientPath extends AbstractClientElementOrAttributeExpression implements Path {
+
+  private static final long serialVersionUID = 6020168217561402545L;
+
+}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/754e23ab/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/annotation/ClientPropertyPath.java
----------------------------------------------------------------------
diff --git a/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/annotation/ClientPropertyPath.java b/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/annotation/ClientPropertyPath.java
new file mode 100644
index 0000000..e4804fe
--- /dev/null
+++ b/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/annotation/ClientPropertyPath.java
@@ -0,0 +1,27 @@
+/*
+ * 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.client.core.edm.xml.annotation;
+
+import org.apache.olingo.commons.api.edm.provider.annotation.PropertyPath;
+
+public class ClientPropertyPath extends AbstractClientElementOrAttributeExpression implements PropertyPath {
+
+  private static final long serialVersionUID = -9133862135834738470L;
+
+}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/754e23ab/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/annotation/ClientPropertyValue.java
----------------------------------------------------------------------
diff --git a/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/annotation/ClientPropertyValue.java b/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/annotation/ClientPropertyValue.java
new file mode 100644
index 0000000..97ff40a
--- /dev/null
+++ b/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/annotation/ClientPropertyValue.java
@@ -0,0 +1,82 @@
+/*
+ * 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.client.core.edm.xml.annotation;
+
+import com.fasterxml.jackson.core.JsonParser;
+import com.fasterxml.jackson.core.JsonToken;
+import com.fasterxml.jackson.databind.DeserializationContext;
+import org.apache.olingo.client.core.edm.xml.AbstractClientEdmDeserializer;
+import org.apache.olingo.client.core.edm.xml.ClientAnnotation;
+import org.apache.olingo.commons.api.edm.provider.annotation.AnnotationExpression;
+import org.apache.olingo.commons.api.edm.provider.annotation.PropertyValue;
+
+import com.fasterxml.jackson.databind.annotation.JsonDeserialize;
+
+import java.io.IOException;
+
+@JsonDeserialize(using = ClientPropertyValue.PropertyValueDeserializer.class)
+public class ClientPropertyValue extends AbstractClientAnnotatableDynamicAnnotationExpression implements PropertyValue {
+
+  private static final long serialVersionUID = -8437649215282645228L;
+
+  private String property;
+
+  private AnnotationExpression value;
+
+  @Override
+  public String getProperty() {
+    return property;
+  }
+
+  public void setProperty(final String property) {
+    this.property = property;
+  }
+
+  @Override
+  public AnnotationExpression getValue() {
+    return value;
+  }
+
+  public void setValue(final AnnotationExpression value) {
+    this.value = value;
+  }
+
+  static class PropertyValueDeserializer extends AbstractClientEdmDeserializer<ClientPropertyValue> {
+    @Override
+    protected ClientPropertyValue doDeserialize(final JsonParser jp, final DeserializationContext ctxt)
+            throws IOException {
+      final ClientPropertyValue propValue = new ClientPropertyValue();
+      for (; jp.getCurrentToken() != JsonToken.END_OBJECT; jp.nextToken()) {
+        final JsonToken token = jp.getCurrentToken();
+        if (token == JsonToken.FIELD_NAME) {
+          if ("Property".equals(jp.getCurrentName())) {
+            propValue.setProperty(jp.nextTextValue());
+          } else if ("Annotation".equals(jp.getCurrentName())) {
+            propValue.getAnnotations().add(jp.readValueAs(ClientAnnotation.class));
+          } else if (isAnnotationConstExprConstruct(jp)) {
+            propValue.setValue(parseAnnotationConstExprConstruct(jp));
+          } else {
+            propValue.setValue(jp.readValueAs(AbstractClientDynamicAnnotationExpression.class));
+          }
+        }
+      }
+      return propValue;
+    }
+  }
+}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/754e23ab/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/annotation/ClientRecord.java
----------------------------------------------------------------------
diff --git a/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/annotation/ClientRecord.java b/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/annotation/ClientRecord.java
new file mode 100644
index 0000000..744e061
--- /dev/null
+++ b/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/annotation/ClientRecord.java
@@ -0,0 +1,78 @@
+/*
+ * 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.client.core.edm.xml.annotation;
+
+import java.io.IOException;
+import java.util.ArrayList;
+import java.util.List;
+
+import com.fasterxml.jackson.core.JsonParser;
+import com.fasterxml.jackson.core.JsonToken;
+import com.fasterxml.jackson.databind.DeserializationContext;
+import org.apache.olingo.client.core.edm.xml.AbstractClientEdmDeserializer;
+import org.apache.olingo.client.core.edm.xml.ClientAnnotation;
+import org.apache.olingo.commons.api.edm.provider.annotation.PropertyValue;
+import org.apache.olingo.commons.api.edm.provider.annotation.Record;
+
+import com.fasterxml.jackson.databind.annotation.JsonDeserialize;
+
+@JsonDeserialize(using = ClientRecord.RecordDeserializer.class)
+public class ClientRecord extends AbstractClientAnnotatableDynamicAnnotationExpression implements Record {
+
+  private static final long serialVersionUID = 4275271751615410709L;
+
+  private String type;
+
+  private final List<PropertyValue> propertyValues = new ArrayList<PropertyValue>();
+
+  @Override
+  public String getType() {
+    return type;
+  }
+
+  public void setType(final String type) {
+    this.type = type;
+  }
+
+  @Override
+  public List<PropertyValue> getPropertyValues() {
+    return propertyValues;
+  }
+
+  static class RecordDeserializer extends AbstractClientEdmDeserializer<ClientRecord> {
+    @Override
+    protected ClientRecord doDeserialize(final JsonParser jp, final DeserializationContext ctxt)
+            throws IOException {
+      final ClientRecord record = new ClientRecord();
+      for (; jp.getCurrentToken() != JsonToken.END_OBJECT; jp.nextToken()) {
+        final JsonToken token = jp.getCurrentToken();
+        if (token == JsonToken.FIELD_NAME) {
+          if ("Type".equals(jp.getCurrentName())) {
+            record.setType(jp.nextTextValue());
+          } else if ("Annotation".equals(jp.getCurrentName())) {
+            record.getAnnotations().add(jp.readValueAs(ClientAnnotation.class));
+          } else {
+            record.getPropertyValues().add(jp.readValueAs(ClientPropertyValue.class));
+          }
+        }
+      }
+      return record;
+    }
+  }
+}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/754e23ab/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/annotation/ClientTwoParamsOpDynamicAnnotationExpression.java
----------------------------------------------------------------------
diff --git a/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/annotation/ClientTwoParamsOpDynamicAnnotationExpression.java b/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/annotation/ClientTwoParamsOpDynamicAnnotationExpression.java
new file mode 100644
index 0000000..2c371b6
--- /dev/null
+++ b/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/annotation/ClientTwoParamsOpDynamicAnnotationExpression.java
@@ -0,0 +1,62 @@
+/*
+ * 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.client.core.edm.xml.annotation;
+
+import org.apache.olingo.commons.api.edm.provider.annotation.DynamicAnnotationExpression;
+import org.apache.olingo.commons.api.edm.provider.annotation.TwoParamsOpDynamicAnnotationExpression;
+
+public class ClientTwoParamsOpDynamicAnnotationExpression
+        extends AbstractClientDynamicAnnotationExpression implements TwoParamsOpDynamicAnnotationExpression {
+
+  private static final long serialVersionUID = 6241842185452451946L;
+
+  private Type type;
+
+  private DynamicAnnotationExpression left;
+
+  private DynamicAnnotationExpression right;
+
+  @Override
+  public Type getType() {
+    return type;
+  }
+
+  public void setType(final Type type) {
+    this.type = type;
+  }
+
+  @Override
+  public DynamicAnnotationExpression getLeftExpression() {
+    return left;
+  }
+
+  public void setLeftExpression(final DynamicAnnotationExpression left) {
+    this.left = left;
+  }
+
+  @Override
+  public DynamicAnnotationExpression getRightExpression() {
+    return right;
+  }
+
+  public void setRightExpression(final DynamicAnnotationExpression right) {
+    this.right = right;
+  }
+
+}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/754e23ab/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/annotation/ClientUrlRef.java
----------------------------------------------------------------------
diff --git a/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/annotation/ClientUrlRef.java b/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/annotation/ClientUrlRef.java
new file mode 100644
index 0000000..82d6d38
--- /dev/null
+++ b/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/annotation/ClientUrlRef.java
@@ -0,0 +1,66 @@
+/*
+ * 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.client.core.edm.xml.annotation;
+
+import com.fasterxml.jackson.core.JsonParser;
+import com.fasterxml.jackson.core.JsonToken;
+import com.fasterxml.jackson.databind.DeserializationContext;
+import org.apache.olingo.client.core.edm.xml.AbstractClientEdmDeserializer;
+import org.apache.olingo.commons.api.edm.provider.annotation.AnnotationExpression;
+import org.apache.olingo.commons.api.edm.provider.annotation.UrlRef;
+
+import com.fasterxml.jackson.databind.annotation.JsonDeserialize;
+
+import java.io.IOException;
+
+@JsonDeserialize(using = ClientUrlRef.UrlRefDeserializer.class)
+public class ClientUrlRef extends AbstractClientDynamicAnnotationExpression implements UrlRef {
+
+  private static final long serialVersionUID = -7693224811739000440L;
+
+  private AnnotationExpression value;
+
+  @Override
+  public AnnotationExpression getValue() {
+    return value;
+  }
+
+  public void setValue(final AnnotationExpression value) {
+    this.value = value;
+  }
+
+  static class UrlRefDeserializer extends AbstractClientEdmDeserializer<ClientUrlRef> {
+    @Override
+    protected ClientUrlRef doDeserialize(final JsonParser jp, final DeserializationContext ctxt)
+            throws IOException {
+      final ClientUrlRef urlref = new ClientUrlRef();
+      for (; jp.getCurrentToken() != JsonToken.END_OBJECT; jp.nextToken()) {
+        final JsonToken token = jp.getCurrentToken();
+        if (token == JsonToken.FIELD_NAME) {
+          if (isAnnotationConstExprConstruct(jp)) {
+            urlref.setValue(parseAnnotationConstExprConstruct(jp));
+          } else {
+            urlref.setValue(jp.readValueAs(AbstractClientDynamicAnnotationExpression.class));
+          }
+        }
+      }
+      return urlref;
+    }
+  }
+}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/754e23ab/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/annotation/CollectionImpl.java
----------------------------------------------------------------------
diff --git a/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/annotation/CollectionImpl.java b/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/annotation/CollectionImpl.java
deleted file mode 100644
index 243d0a3..0000000
--- a/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/annotation/CollectionImpl.java
+++ /dev/null
@@ -1,65 +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.client.core.edm.xml.annotation;
-
-import java.io.IOException;
-import java.util.ArrayList;
-import java.util.List;
-
-import com.fasterxml.jackson.core.JsonParser;
-import com.fasterxml.jackson.core.JsonToken;
-import com.fasterxml.jackson.databind.DeserializationContext;
-import org.apache.olingo.client.core.edm.xml.AbstractEdmDeserializer;
-import org.apache.olingo.commons.api.edm.provider.annotation.AnnotationExpression;
-import org.apache.olingo.commons.api.edm.provider.annotation.Collection;
-
-import com.fasterxml.jackson.databind.annotation.JsonDeserialize;
-
-@JsonDeserialize(using = CollectionImpl.CollectionDeserializer.class)
-public class CollectionImpl extends AbstractDynamicAnnotationExpression implements Collection {
-
-  private static final long serialVersionUID = -724749123749715643L;
-
-  private final List<AnnotationExpression> items = new ArrayList<AnnotationExpression>();
-
-  @Override
-  public List<AnnotationExpression> getItems() {
-    return items;
-  }
-
-  static class CollectionDeserializer extends AbstractEdmDeserializer<CollectionImpl> {
-    @Override
-    protected CollectionImpl doDeserialize(final JsonParser jp, final DeserializationContext ctxt)
-            throws IOException {
-      final CollectionImpl collection = new CollectionImpl();
-      for (; jp.getCurrentToken() != JsonToken.END_OBJECT; jp.nextToken()) {
-        final JsonToken token = jp.getCurrentToken();
-        if (token == JsonToken.FIELD_NAME) {
-          if (isAnnotationConstExprConstruct(jp)) {
-            collection.getItems().add(parseAnnotationConstExprConstruct(jp));
-          } else {
-            collection.getItems().add(jp.readValueAs(AbstractDynamicAnnotationExpression.class));
-          }
-        }
-      }
-
-      return collection;
-    }
-  }
-}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/754e23ab/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/annotation/ConstantAnnotationExpressionImpl.java
----------------------------------------------------------------------
diff --git a/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/annotation/ConstantAnnotationExpressionImpl.java b/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/annotation/ConstantAnnotationExpressionImpl.java
deleted file mode 100644
index 5e1cc93..0000000
--- a/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/annotation/ConstantAnnotationExpressionImpl.java
+++ /dev/null
@@ -1,52 +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.client.core.edm.xml.annotation;
-
-import org.apache.olingo.commons.api.edm.provider.annotation.ConstantAnnotationExpression;
-
-public class ConstantAnnotationExpressionImpl
-        extends AbstractAnnotationExpression implements ConstantAnnotationExpression {
-
-  private static final long serialVersionUID = 5618680702707972904L;
-
-  private Type type;
-
-  private String value;
-
-  @Override
-  public Type getType() {
-    return type;
-  }
-
-  @Override
-  public void setType(final Type type) {
-    this.type = type;
-  }
-
-  @Override
-  public String getValue() {
-    return value;
-  }
-
-  @Override
-  public void setValue(final String value) {
-    this.value = value;
-  }
-
-}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/754e23ab/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/annotation/IfImpl.java
----------------------------------------------------------------------
diff --git a/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/annotation/IfImpl.java b/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/annotation/IfImpl.java
deleted file mode 100644
index e6dd688..0000000
--- a/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/annotation/IfImpl.java
+++ /dev/null
@@ -1,61 +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.client.core.edm.xml.annotation;
-
-import org.apache.olingo.commons.api.edm.provider.annotation.AnnotationExpression;
-import org.apache.olingo.commons.api.edm.provider.annotation.If;
-
-public class IfImpl extends AbstractAnnotatableDynamicAnnotationExpression implements If {
-
-  private static final long serialVersionUID = -8571383625077590656L;
-
-  private AnnotationExpression guard;
-
-  private AnnotationExpression _then;
-
-  private AnnotationExpression _else;
-
-  @Override
-  public AnnotationExpression getGuard() {
-    return guard;
-  }
-
-  public void setGuard(final AnnotationExpression guard) {
-    this.guard = guard;
-  }
-
-  @Override
-  public AnnotationExpression getThen() {
-    return _then;
-  }
-
-  public void setThen(final AnnotationExpression _then) {
-    this._then = _then;
-  }
-
-  @Override
-  public AnnotationExpression getElse() {
-    return _else;
-  }
-
-  public void setElse(final AnnotationExpression _else) {
-    this._else = _else;
-  }
-
-}


[31/50] [abbrv] olingo-odata4 git commit: [OLINGO-564] Renamed 'OData*' to 'Client*' classes

Posted by mi...@apache.org.
http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/c37d4da5/lib/client-core/src/main/java/org/apache/olingo/client/core/serialization/ODataBinderImpl.java
----------------------------------------------------------------------
diff --git a/lib/client-core/src/main/java/org/apache/olingo/client/core/serialization/ODataBinderImpl.java b/lib/client-core/src/main/java/org/apache/olingo/client/core/serialization/ODataBinderImpl.java
index 25b405a..f38d795 100644
--- a/lib/client-core/src/main/java/org/apache/olingo/client/core/serialization/ODataBinderImpl.java
+++ b/lib/client-core/src/main/java/org/apache/olingo/client/core/serialization/ODataBinderImpl.java
@@ -48,25 +48,25 @@ import org.apache.olingo.commons.api.data.Property;
 import org.apache.olingo.commons.api.data.ResWrap;
 import org.apache.olingo.commons.api.data.Valuable;
 import org.apache.olingo.commons.api.data.ValueType;
-import org.apache.olingo.commons.api.domain.ODataAnnotatable;
-import org.apache.olingo.commons.api.domain.ODataAnnotation;
-import org.apache.olingo.commons.api.domain.ODataCollectionValue;
-import org.apache.olingo.commons.api.domain.ODataComplexValue;
-import org.apache.olingo.commons.api.domain.ODataDeletedEntity.Reason;
-import org.apache.olingo.commons.api.domain.ODataDelta;
-import org.apache.olingo.commons.api.domain.ODataDeltaLink;
-import org.apache.olingo.commons.api.domain.ODataEntity;
-import org.apache.olingo.commons.api.domain.ODataEntitySet;
-import org.apache.olingo.commons.api.domain.ODataInlineEntity;
-import org.apache.olingo.commons.api.domain.ODataInlineEntitySet;
-import org.apache.olingo.commons.api.domain.ODataLink;
-import org.apache.olingo.commons.api.domain.ODataLinkType;
-import org.apache.olingo.commons.api.domain.ODataLinked;
-import org.apache.olingo.commons.api.domain.ODataOperation;
-import org.apache.olingo.commons.api.domain.ODataProperty;
-import org.apache.olingo.commons.api.domain.ODataServiceDocument;
-import org.apache.olingo.commons.api.domain.ODataValuable;
-import org.apache.olingo.commons.api.domain.ODataValue;
+import org.apache.olingo.commons.api.domain.ClientAnnotatable;
+import org.apache.olingo.commons.api.domain.ClientAnnotation;
+import org.apache.olingo.commons.api.domain.ClientCollectionValue;
+import org.apache.olingo.commons.api.domain.ClientComplexValue;
+import org.apache.olingo.commons.api.domain.ClientDeletedEntity.Reason;
+import org.apache.olingo.commons.api.domain.ClientDelta;
+import org.apache.olingo.commons.api.domain.ClientDeltaLink;
+import org.apache.olingo.commons.api.domain.ClientEntity;
+import org.apache.olingo.commons.api.domain.ClientEntitySet;
+import org.apache.olingo.commons.api.domain.ClientInlineEntity;
+import org.apache.olingo.commons.api.domain.ClientInlineEntitySet;
+import org.apache.olingo.commons.api.domain.ClientLink;
+import org.apache.olingo.commons.api.domain.ClientLinkType;
+import org.apache.olingo.commons.api.domain.ClientLinked;
+import org.apache.olingo.commons.api.domain.ClientOperation;
+import org.apache.olingo.commons.api.domain.ClientProperty;
+import org.apache.olingo.commons.api.domain.ClientServiceDocument;
+import org.apache.olingo.commons.api.domain.ClientValuable;
+import org.apache.olingo.commons.api.domain.ClientValue;
 import org.apache.olingo.commons.api.edm.Edm;
 import org.apache.olingo.commons.api.edm.EdmBindingTarget;
 import org.apache.olingo.commons.api.edm.EdmComplexType;
@@ -87,10 +87,10 @@ import org.apache.olingo.commons.api.edm.FullQualifiedName;
 import org.apache.olingo.commons.api.edm.geo.Geospatial;
 import org.apache.olingo.commons.api.format.ODataFormat;
 import org.apache.olingo.commons.api.serialization.ODataSerializerException;
-import org.apache.olingo.commons.core.domain.ODataAnnotationImpl;
-import org.apache.olingo.commons.core.domain.ODataDeletedEntityImpl;
-import org.apache.olingo.commons.core.domain.ODataDeltaLinkImpl;
-import org.apache.olingo.commons.core.domain.ODataPropertyImpl;
+import org.apache.olingo.commons.core.domain.ClientAnnotationImpl;
+import org.apache.olingo.commons.core.domain.ClientDeletedEntityImpl;
+import org.apache.olingo.commons.core.domain.ClientDeltaLinkImpl;
+import org.apache.olingo.commons.core.domain.ClientPropertyImpl;
 import org.apache.olingo.commons.core.edm.primitivetype.EdmPrimitiveTypeFactory;
 import org.apache.olingo.commons.core.edm.EdmTypeInfo;
 import org.apache.olingo.commons.core.serialization.ContextURLParser;
@@ -111,17 +111,17 @@ public class ODataBinderImpl implements ODataBinder {
   }
 
   @Override
-  public boolean add(final ODataEntity entity, final ODataProperty property) {
+  public boolean add(final ClientEntity entity, final ClientProperty property) {
     return entity.getProperties().add(property);
   }
 
-  protected boolean add(final ODataEntitySet entitySet, final ODataEntity entity) {
+  protected boolean add(final ClientEntitySet entitySet, final ClientEntity entity) {
     return entitySet.getEntities().add(entity);
   }
 
   @Override
-  public ODataServiceDocument getODataServiceDocument(final ServiceDocument resource) {
-    final ODataServiceDocument serviceDocument = new ODataServiceDocument();
+  public ClientServiceDocument getODataServiceDocument(final ServiceDocument resource) {
+    final ClientServiceDocument serviceDocument = new ClientServiceDocument();
 
     for (ServiceDocumentItem entitySet : resource.getEntitySets()) {
       serviceDocument.getEntitySets().
@@ -146,7 +146,7 @@ public class ODataBinderImpl implements ODataBinder {
     return serviceDocument;
   }
 
-  private void updateValuable(final Valuable propertyResource, final ODataValuable odataValuable) {
+  private void updateValuable(final Valuable propertyResource, final ClientValuable odataValuable) {
     final Object propertyValue = getValue(odataValuable.getValue());
     if (odataValuable.hasPrimitiveValue()) {
       propertyResource.setType(odataValuable.getPrimitiveValue().getTypeName());
@@ -160,10 +160,10 @@ public class ODataBinderImpl implements ODataBinder {
       propertyResource.setType(odataValuable.getComplexValue().getTypeName());
       propertyResource.setValue(ValueType.COMPLEX, propertyValue);
     } else if (odataValuable.hasCollectionValue()) {
-      final ODataCollectionValue<ODataValue> collectionValue =
+      final ClientCollectionValue<ClientValue> collectionValue =
           odataValuable.getCollectionValue();
       propertyResource.setType(collectionValue.getTypeName());
-      final ODataValue value = collectionValue.iterator().hasNext() ? collectionValue.iterator().next() : null;
+      final ClientValue value = collectionValue.iterator().hasNext() ? collectionValue.iterator().next() : null;
       ValueType valueType = ValueType.COLLECTION_PRIMITIVE;
       if (value == null) {
         valueType = ValueType.COLLECTION_PRIMITIVE;
@@ -179,8 +179,8 @@ public class ODataBinderImpl implements ODataBinder {
     }
   }
 
-  private void annotations(final ODataAnnotatable odataAnnotatable, final Annotatable annotatable) {
-    for (ODataAnnotation odataAnnotation : odataAnnotatable.getAnnotations()) {
+  private void annotations(final ClientAnnotatable odataAnnotatable, final Annotatable annotatable) {
+    for (ClientAnnotation odataAnnotation : odataAnnotatable.getAnnotations()) {
       final Annotation annotation = new Annotation();
 
       annotation.setTerm(odataAnnotation.getTerm());
@@ -192,7 +192,7 @@ public class ODataBinderImpl implements ODataBinder {
   }
 
   @Override
-  public EntityCollection getEntitySet(final ODataEntitySet odataEntitySet) {
+  public EntityCollection getEntitySet(final ClientEntitySet odataEntitySet) {
     final EntityCollection entitySet = new EntityCollection();
 
     entitySet.setCount(odataEntitySet.getCount());
@@ -202,7 +202,7 @@ public class ODataBinderImpl implements ODataBinder {
       entitySet.setNext(next);
     }
 
-    for (ODataEntity entity : odataEntitySet.getEntities()) {
+    for (ClientEntity entity : odataEntitySet.getEntities()) {
       entitySet.getEntities().add(getEntity(entity));
     }
 
@@ -211,12 +211,12 @@ public class ODataBinderImpl implements ODataBinder {
     return entitySet;
   }
 
-  protected void links(final ODataLinked odataLinked, final Linked linked) {
+  protected void links(final ClientLinked odataLinked, final Linked linked) {
     // -------------------------------------------------------------
     // Append navigation links (handling inline entity / entity set as well)
     // -------------------------------------------------------------
     // handle navigation links
-    for (ODataLink link : odataLinked.getNavigationLinks()) {
+    for (ClientLink link : odataLinked.getNavigationLinks()) {
       // append link
       LOG.debug("Append navigation link\n{}", link);
       linked.getNavigationLinks().add(getLink(link));
@@ -226,22 +226,22 @@ public class ODataBinderImpl implements ODataBinder {
     // -------------------------------------------------------------
     // Append association links
     // -------------------------------------------------------------
-    for (ODataLink link : odataLinked.getAssociationLinks()) {
+    for (ClientLink link : odataLinked.getAssociationLinks()) {
       LOG.debug("Append association link\n{}", link);
       linked.getAssociationLinks().add(getLink(link));
     }
     // -------------------------------------------------------------
 
     for (Link link : linked.getNavigationLinks()) {
-      final ODataLink odataLink = odataLinked.getNavigationLink(link.getTitle());
-      if (!(odataLink instanceof ODataInlineEntity) && !(odataLink instanceof ODataInlineEntitySet)) {
+      final ClientLink odataLink = odataLinked.getNavigationLink(link.getTitle());
+      if (!(odataLink instanceof ClientInlineEntity) && !(odataLink instanceof ClientInlineEntitySet)) {
         annotations(odataLink, link);
       }
     }
   }
 
   @Override
-  public Entity getEntity(final ODataEntity odataEntity) {
+  public Entity getEntity(final ClientEntity odataEntity) {
     final Entity entity = new Entity();
 
     entity.setType(odataEntity.getTypeName() == null ? null : odataEntity.getTypeName().toString());
@@ -272,7 +272,7 @@ public class ODataBinderImpl implements ODataBinder {
     // -------------------------------------------------------------
     // Append edit-media links
     // -------------------------------------------------------------
-    for (ODataLink link : odataEntity.getMediaEditLinks()) {
+    for (ClientLink link : odataEntity.getMediaEditLinks()) {
       LOG.debug("Append edit-media link\n{}", link);
       entity.getMediaEditLinks().add(getLink(link));
     }
@@ -284,7 +284,7 @@ public class ODataBinderImpl implements ODataBinder {
       entity.setMediaETag(odataEntity.getMediaETag());
     }
 
-    for (ODataProperty property : odataEntity.getProperties()) {
+    for (ClientProperty property : odataEntity.getProperties()) {
       entity.getProperties().add(getProperty(property));
     }
 
@@ -294,7 +294,7 @@ public class ODataBinderImpl implements ODataBinder {
   }
 
   @Override
-  public Link getLink(final ODataLink link) {
+  public Link getLink(final ClientLink link) {
     final Link linkResource = new Link();
     linkResource.setRel(link.getRel());
     linkResource.setTitle(link.getName());
@@ -302,15 +302,15 @@ public class ODataBinderImpl implements ODataBinder {
     linkResource.setType(link.getType().toString());
     linkResource.setMediaETag(link.getMediaETag());
 
-    if (link instanceof ODataInlineEntity) {
+    if (link instanceof ClientInlineEntity) {
       // append inline entity
-      final ODataEntity inlineEntity = ((ODataInlineEntity) link).getEntity();
+      final ClientEntity inlineEntity = ((ClientInlineEntity) link).getEntity();
       LOG.debug("Append in-line entity\n{}", inlineEntity);
 
       linkResource.setInlineEntity(getEntity(inlineEntity));
-    } else if (link instanceof ODataInlineEntitySet) {
+    } else if (link instanceof ClientInlineEntitySet) {
       // append inline entity set
-      final ODataEntitySet InlineEntitySet = ((ODataInlineEntitySet) link).getEntitySet();
+      final ClientEntitySet InlineEntitySet = ((ClientInlineEntitySet) link).getEntitySet();
       LOG.debug("Append in-line entity set\n{}", InlineEntitySet);
 
       linkResource.setInlineEntitySet(getEntitySet(InlineEntitySet));
@@ -320,7 +320,7 @@ public class ODataBinderImpl implements ODataBinder {
   }
 
   @Override
-  public Property getProperty(final ODataProperty property) {
+  public Property getProperty(final ClientProperty property) {
 
     final Property propertyResource = new Property();
     propertyResource.setName(property.getName());
@@ -330,7 +330,7 @@ public class ODataBinderImpl implements ODataBinder {
     return propertyResource;
   }
 
-  protected Object getValue(final ODataValue value) {
+  protected Object getValue(final ClientValue value) {
     Object valueResource = null;
     if (value == null) {
       return null;
@@ -341,7 +341,7 @@ public class ODataBinderImpl implements ODataBinder {
       valueResource = value.asPrimitive().toValue();
     } else if (value.isComplex()) {
       List<Property> complexProperties = new ArrayList<Property>();
-      for (final ODataProperty propertyValue : value.asComplex()) {
+      for (final ClientProperty propertyValue : value.asComplex()) {
         complexProperties.add(getProperty(propertyValue));
       }
       final ComplexValue lcValueResource = new ComplexValue();
@@ -351,10 +351,10 @@ public class ODataBinderImpl implements ODataBinder {
       valueResource = lcValueResource;
 
     } else if (value.isCollection()) {
-      final ODataCollectionValue<? extends ODataValue> _value = value.asCollection();
+      final ClientCollectionValue<? extends ClientValue> _value = value.asCollection();
       ArrayList<Object> lcValueResource = new ArrayList<Object>();
 
-      for (final ODataValue collectionValue : _value) {
+      for (final ClientValue collectionValue : _value) {
         lcValueResource.add(getValue(collectionValue));
       }
       valueResource = lcValueResource;
@@ -362,7 +362,7 @@ public class ODataBinderImpl implements ODataBinder {
     return valueResource;
   }
 
-  private void odataAnnotations(final Annotatable annotatable, final ODataAnnotatable odataAnnotatable) {
+  private void odataAnnotations(final Annotatable annotatable, final ClientAnnotatable odataAnnotatable) {
     for (Annotation annotation : annotatable.getAnnotations()) {
       FullQualifiedName fqn = null;
       if (client instanceof EdmEnabledODataClient) {
@@ -380,14 +380,14 @@ public class ODataBinderImpl implements ODataBinder {
         }
       }
 
-      final ODataAnnotation odataAnnotation =
-          new ODataAnnotationImpl(annotation.getTerm(), getODataValue(fqn, annotation, null, null));
+      final ClientAnnotation odataAnnotation =
+          new ClientAnnotationImpl(annotation.getTerm(), getODataValue(fqn, annotation, null, null));
       odataAnnotatable.getAnnotations().add(odataAnnotation);
     }
   }
 
   @Override
-  public ODataEntitySet getODataEntitySet(final ResWrap<EntityCollection> resource) {
+  public ClientEntitySet getODataEntitySet(final ResWrap<EntityCollection> resource) {
     if (LOG.isDebugEnabled()) {
       final StringWriter writer = new StringWriter();
       try {
@@ -405,7 +405,7 @@ public class ODataBinderImpl implements ODataBinder {
 
     final URI next = resource.getPayload().getNext();
 
-    final ODataEntitySet entitySet = next == null
+    final ClientEntitySet entitySet = next == null
         ? client.getObjectFactory().newEntitySet()
         : client.getObjectFactory().newEntitySet(URIUtils.getURI(base, next.toASCIIString()));
 
@@ -427,29 +427,29 @@ public class ODataBinderImpl implements ODataBinder {
   }
 
   protected void odataNavigationLinks(final EdmType edmType,
-      final Linked linked, final ODataLinked odataLinked, final String metadataETag, final URI base) {
+      final Linked linked, final ClientLinked odataLinked, final String metadataETag, final URI base) {
     for (Link link : linked.getNavigationLinks()) {
       final String href = link.getHref();
       final String title = link.getTitle();
       final Entity inlineEntity = link.getInlineEntity();
       final EntityCollection inlineEntitySet = link.getInlineEntitySet();
       if (inlineEntity == null && inlineEntitySet == null) {
-        ODataLinkType linkType = null;
+        ClientLinkType linkType = null;
         if (edmType instanceof EdmStructuredType) {
           final EdmNavigationProperty navProp = ((EdmStructuredType) edmType).getNavigationProperty(title);
           if (navProp != null) {
             linkType = navProp.isCollection() ?
-                ODataLinkType.ENTITY_SET_NAVIGATION :
-                ODataLinkType.ENTITY_NAVIGATION;
+                ClientLinkType.ENTITY_SET_NAVIGATION :
+                ClientLinkType.ENTITY_NAVIGATION;
           }
         }
         if (linkType == null) {
           linkType = link.getType() == null ?
-              ODataLinkType.ENTITY_NAVIGATION :
-              ODataLinkType.fromString(link.getRel(), link.getType());
+              ClientLinkType.ENTITY_NAVIGATION :
+              ClientLinkType.fromString(link.getRel(), link.getType());
         }
 
-        odataLinked.addLink(linkType == ODataLinkType.ENTITY_NAVIGATION ?
+        odataLinked.addLink(linkType == ClientLinkType.ENTITY_NAVIGATION ?
             client.getObjectFactory().newEntityNavigationLink(title, URIUtils.getURI(base, href)) :
             client.getObjectFactory().newEntitySetNavigationLink(title, URIUtils.getURI(base, href)));
       } else if (inlineEntity != null) {
@@ -461,24 +461,24 @@ public class ODataBinderImpl implements ODataBinder {
       }
     }
 
-    for (ODataLink link : odataLinked.getNavigationLinks()) {
-      if (!(link instanceof ODataInlineEntity) && !(link instanceof ODataInlineEntitySet)) {
+    for (ClientLink link : odataLinked.getNavigationLinks()) {
+      if (!(link instanceof ClientInlineEntity) && !(link instanceof ClientInlineEntitySet)) {
         odataAnnotations(linked.getNavigationLink(link.getName()), link);
       }
     }
   }
 
-  private ODataInlineEntity createODataInlineEntity(final Entity inlineEntity,
+  private ClientInlineEntity createODataInlineEntity(final Entity inlineEntity,
       final URI uri, final String title, final String metadataETag) {
-    return new ODataInlineEntity(uri, ODataLinkType.ENTITY_NAVIGATION, title,
+    return new ClientInlineEntity(uri, ClientLinkType.ENTITY_NAVIGATION, title,
         getODataEntity(new ResWrap<Entity>(
             inlineEntity.getBaseURI() == null ? null : inlineEntity.getBaseURI(), metadataETag,
             inlineEntity)));
   }
 
-  private ODataInlineEntitySet createODataInlineEntitySet(final EntityCollection inlineEntitySet,
+  private ClientInlineEntitySet createODataInlineEntitySet(final EntityCollection inlineEntitySet,
       final URI uri, final String title, final String metadataETag) {
-    return new ODataInlineEntitySet(uri, ODataLinkType.ENTITY_SET_NAVIGATION, title,
+    return new ClientInlineEntitySet(uri, ClientLinkType.ENTITY_SET_NAVIGATION, title,
         getODataEntitySet(new ResWrap<EntityCollection>(
             inlineEntitySet.getBaseURI() == null ? null : inlineEntitySet.getBaseURI(), metadataETag,
             inlineEntitySet)));
@@ -565,7 +565,7 @@ public class ODataBinderImpl implements ODataBinder {
     return type;
   }
 
-  private ODataLink createLinkFromNavigationProperty(final Property property, final String propertyTypeName) {
+  private ClientLink createLinkFromNavigationProperty(final Property property, final String propertyTypeName) {
     if (property.isCollection()) {
       EntityCollection inlineEntitySet = new EntityCollection();
       for (final Object inlined : property.asCollection()) {
@@ -584,7 +584,7 @@ public class ODataBinderImpl implements ODataBinder {
   }
 
   @Override
-  public ODataEntity getODataEntity(final ResWrap<Entity> resource) {
+  public ClientEntity getODataEntity(final ResWrap<Entity> resource) {
     if (LOG.isDebugEnabled()) {
       final StringWriter writer = new StringWriter();
       try {
@@ -610,7 +610,7 @@ public class ODataBinderImpl implements ODataBinder {
       typeName = new FullQualifiedName(resource.getPayload().getType());
     }
 
-    final ODataEntity entity = resource.getPayload().getSelfLink() == null
+    final ClientEntity entity = resource.getPayload().getSelfLink() == null
         ? client.getObjectFactory().newEntity(typeName)
         : client.getObjectFactory().newEntity(typeName,
             URIUtils.getURI(base, resource.getPayload().getSelfLink().getHref()));
@@ -635,7 +635,7 @@ public class ODataBinderImpl implements ODataBinder {
           newMediaEditLink(link.getTitle(), URIUtils.getURI(base, link.getHref())));
     }
 
-    for (ODataOperation operation : resource.getPayload().getOperations()) {
+    for (ClientOperation operation : resource.getPayload().getOperations()) {
       operation.setTarget(URIUtils.getURI(base, operation.getTarget()));
       entity.getOperations().add(operation);
     }
@@ -670,12 +670,12 @@ public class ODataBinderImpl implements ODataBinder {
   }
 
   @Override
-  public ODataProperty getODataProperty(final ResWrap<Property> resource) {
+  public ClientProperty getODataProperty(final ResWrap<Property> resource) {
     final Property payload = resource.getPayload();
     final EdmTypeInfo typeInfo = buildTypeInfo(ContextURLParser.parse(resource.getContextURL()),
         resource.getMetadataETag(), payload.getName(), payload.getType());
 
-    final ODataProperty property = new ODataPropertyImpl(payload.getName(),
+    final ClientProperty property = new ClientPropertyImpl(payload.getName(),
         getODataValue(typeInfo == null ? null : typeInfo.getFullQualifiedName(),
             payload, resource.getContextURL(), resource.getMetadataETag()));
     odataAnnotations(payload, property);
@@ -717,10 +717,10 @@ public class ODataBinderImpl implements ODataBinder {
     return typeInfo;
   }
 
-  protected ODataProperty getODataProperty(final EdmType type, final Property resource) {
+  protected ClientProperty getODataProperty(final EdmType type, final Property resource) {
     final EdmTypeInfo typeInfo = buildTypeInfo(type == null ? null : type.getFullQualifiedName(), resource.getType());
 
-    final ODataProperty property = new ODataPropertyImpl(resource.getName(),
+    final ClientProperty property = new ClientPropertyImpl(resource.getName(),
         getODataValue(typeInfo == null ? null : typeInfo.getFullQualifiedName(),
             resource, null, null));
     odataAnnotations(resource, property);
@@ -728,7 +728,7 @@ public class ODataBinderImpl implements ODataBinder {
     return property;
   }
 
-  protected ODataValue getODataValue(final FullQualifiedName type,
+  protected ClientValue getODataValue(final FullQualifiedName type,
       final Valuable valuable, final URI contextURL, final String metadataETag) {
 
     // fixes enum values treated as primitive when no type information is available
@@ -739,7 +739,7 @@ public class ODataBinderImpl implements ODataBinder {
       }
     }
 
-    ODataValue value = null;
+    ClientValue value = null;
 
     if (valuable.isCollection()) {
       value = client.getObjectFactory().newCollectionValue(type == null ? null : "Collection(" + type.toString() + ")");
@@ -753,7 +753,7 @@ public class ODataBinderImpl implements ODataBinder {
       value = client.getObjectFactory().newEnumValue(type == null ? null : type.toString(),
           valuable.asEnum().toString());
     } else if (valuable.isComplex()) {
-      final ODataComplexValue lcValue =
+      final ClientComplexValue lcValue =
           client.getObjectFactory().newComplexValue(type == null ? null : type.toString());
 
       EdmComplexType edmType = null;
@@ -813,7 +813,7 @@ public class ODataBinderImpl implements ODataBinder {
                 : EdmPrimitiveTypeKind.valueOfFQN(type.toString())).
             build();
       } else if (valuable.isComplex()) {
-        final ODataComplexValue cValue =
+        final ClientComplexValue cValue =
             client.getObjectFactory().newComplexValue(type == null ? null : type.toString());
 
         if (!valuable.isNull()) {
@@ -843,14 +843,14 @@ public class ODataBinderImpl implements ODataBinder {
   }
 
   @Override
-  public ODataDelta getODataDelta(final ResWrap<Delta> resource) {
+  public ClientDelta getODataDelta(final ResWrap<Delta> resource) {
     final URI base = resource.getContextURL() == null
         ? resource.getPayload().getBaseURI()
         : ContextURLParser.parse(resource.getContextURL()).getServiceRoot();
 
     final URI next = resource.getPayload().getNext();
 
-    final ODataDelta delta = next == null
+    final ClientDelta delta = next == null
         ? client.getObjectFactory().newDelta()
         : client.getObjectFactory().newDelta(URIUtils.getURI(base, next.toASCIIString()));
 
@@ -867,7 +867,7 @@ public class ODataBinderImpl implements ODataBinder {
           new ResWrap<Entity>(resource.getContextURL(), resource.getMetadataETag(), entityResource)));
     }
     for (DeletedEntity deletedEntity : resource.getPayload().getDeletedEntities()) {
-      final ODataDeletedEntityImpl impl = new ODataDeletedEntityImpl();
+      final ClientDeletedEntityImpl impl = new ClientDeletedEntityImpl();
       impl.setId(URIUtils.getURI(base, deletedEntity.getId()));
       impl.setReason(Reason.valueOf(deletedEntity.getReason().name()));
 
@@ -877,7 +877,7 @@ public class ODataBinderImpl implements ODataBinder {
     odataAnnotations(resource.getPayload(), delta);
 
     for (DeltaLink link : resource.getPayload().getAddedLinks()) {
-      final ODataDeltaLink impl = new ODataDeltaLinkImpl();
+      final ClientDeltaLink impl = new ClientDeltaLinkImpl();
       impl.setRelationship(link.getRelationship());
       impl.setSource(URIUtils.getURI(base, link.getSource()));
       impl.setTarget(URIUtils.getURI(base, link.getTarget()));
@@ -887,7 +887,7 @@ public class ODataBinderImpl implements ODataBinder {
       delta.getAddedLinks().add(impl);
     }
     for (DeltaLink link : resource.getPayload().getDeletedLinks()) {
-      final ODataDeltaLink impl = new ODataDeltaLinkImpl();
+      final ClientDeltaLink impl = new ClientDeltaLinkImpl();
       impl.setRelationship(link.getRelationship());
       impl.setSource(URIUtils.getURI(base, link.getSource()));
       impl.setTarget(URIUtils.getURI(base, link.getTarget()));

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/c37d4da5/lib/client-core/src/main/java/org/apache/olingo/client/core/serialization/ODataReaderImpl.java
----------------------------------------------------------------------
diff --git a/lib/client-core/src/main/java/org/apache/olingo/client/core/serialization/ODataReaderImpl.java b/lib/client-core/src/main/java/org/apache/olingo/client/core/serialization/ODataReaderImpl.java
index c0af3af..80972be 100644
--- a/lib/client-core/src/main/java/org/apache/olingo/client/core/serialization/ODataReaderImpl.java
+++ b/lib/client-core/src/main/java/org/apache/olingo/client/core/serialization/ODataReaderImpl.java
@@ -33,12 +33,12 @@ import org.apache.olingo.commons.api.data.Entity;
 import org.apache.olingo.commons.api.data.EntityCollection;
 import org.apache.olingo.commons.api.data.Property;
 import org.apache.olingo.commons.api.data.ResWrap;
-import org.apache.olingo.commons.api.domain.ODataEntity;
-import org.apache.olingo.commons.api.domain.ODataEntitySet;
-import org.apache.olingo.commons.api.domain.ODataError;
-import org.apache.olingo.commons.api.domain.ODataProperty;
-import org.apache.olingo.commons.api.domain.ODataServiceDocument;
-import org.apache.olingo.commons.api.domain.ODataValue;
+import org.apache.olingo.commons.api.domain.ClientEntity;
+import org.apache.olingo.commons.api.domain.ClientEntitySet;
+import org.apache.olingo.commons.api.domain.ClientError;
+import org.apache.olingo.commons.api.domain.ClientProperty;
+import org.apache.olingo.commons.api.domain.ClientServiceDocument;
+import org.apache.olingo.commons.api.domain.ClientValue;
 import org.apache.olingo.commons.api.edm.Edm;
 import org.apache.olingo.commons.api.edm.EdmPrimitiveTypeKind;
 import org.apache.olingo.commons.api.edm.provider.CsdlSchema;
@@ -73,14 +73,14 @@ public class ODataReaderImpl implements ODataReader {
   }
 
   @Override
-  public ODataServiceDocument readServiceDocument(final InputStream input, final ODataFormat format)
+  public ClientServiceDocument readServiceDocument(final InputStream input, final ODataFormat format)
       throws ODataDeserializerException {
     return client.getBinder().getODataServiceDocument(
         client.getDeserializer(format).toServiceDocument(input).getPayload());
   }
 
   @Override
-  public ODataError readError(final InputStream inputStream, final ODataFormat format)
+  public ClientError readError(final InputStream inputStream, final ODataFormat format)
       throws ODataDeserializerException {
     return client.getDeserializer(format).toError(inputStream);
   }
@@ -95,28 +95,28 @@ public class ODataReaderImpl implements ODataReader {
         res = new ResWrap<T>(
             (URI) null,
             null,
-            reference.cast(new ODataEntitySetIterator<ODataEntitySet, ODataEntity>(
+            reference.cast(new ODataEntitySetIterator<ClientEntitySet, ClientEntity>(
                 client, src, ODataFormat.fromString(format))));
-      } else if (ODataEntitySet.class.isAssignableFrom(reference)) {
+      } else if (ClientEntitySet.class.isAssignableFrom(reference)) {
         final ResWrap<EntityCollection> resource = client.getDeserializer(ODataFormat.fromString(format))
             .toEntitySet(src);
         res = new ResWrap<T>(
             resource.getContextURL(),
             resource.getMetadataETag(),
             reference.cast(client.getBinder().getODataEntitySet(resource)));
-      } else if (ODataEntity.class.isAssignableFrom(reference)) {
+      } else if (ClientEntity.class.isAssignableFrom(reference)) {
         final ResWrap<Entity> container = client.getDeserializer(ODataFormat.fromString(format)).toEntity(src);
         res = new ResWrap<T>(
             container.getContextURL(),
             container.getMetadataETag(),
             reference.cast(client.getBinder().getODataEntity(container)));
-      } else if (ODataProperty.class.isAssignableFrom(reference)) {
+      } else if (ClientProperty.class.isAssignableFrom(reference)) {
         final ResWrap<Property> container = client.getDeserializer(ODataFormat.fromString(format)).toProperty(src);
         res = new ResWrap<T>(
             container.getContextURL(),
             container.getMetadataETag(),
             reference.cast(client.getBinder().getODataProperty(container)));
-      } else if (ODataValue.class.isAssignableFrom(reference)) {
+      } else if (ClientValue.class.isAssignableFrom(reference)) {
         res = new ResWrap<T>(
             (URI) null,
             null,
@@ -130,14 +130,14 @@ public class ODataReaderImpl implements ODataReader {
             (URI) null,
             null,
             reference.cast(readMetadata(src)));
-      } else if (ODataServiceDocument.class.isAssignableFrom(reference)) {
+      } else if (ClientServiceDocument.class.isAssignableFrom(reference)) {
         final ResWrap<ServiceDocument> resource =
             client.getDeserializer(ODataFormat.fromString(format)).toServiceDocument(src);
         res = new ResWrap<T>(
             resource.getContextURL(),
             resource.getMetadataETag(),
             reference.cast(client.getBinder().getODataServiceDocument(resource.getPayload())));
-      } else if (ODataError.class.isAssignableFrom(reference)) {
+      } else if (ClientError.class.isAssignableFrom(reference)) {
         res = new ResWrap<T>(
             (URI) null,
             null,
@@ -158,19 +158,19 @@ public class ODataReaderImpl implements ODataReader {
   }
 
   @Override
-  public ODataEntitySet readEntitySet(final InputStream input, final ODataFormat format)
+  public ClientEntitySet readEntitySet(final InputStream input, final ODataFormat format)
       throws ODataDeserializerException {
     return client.getBinder().getODataEntitySet(client.getDeserializer(format).toEntitySet(input));
   }
 
   @Override
-  public ODataEntity readEntity(final InputStream input, final ODataFormat format)
+  public ClientEntity readEntity(final InputStream input, final ODataFormat format)
       throws ODataDeserializerException {
     return client.getBinder().getODataEntity(client.getDeserializer(format).toEntity(input));
   }
 
   @Override
-  public ODataProperty readProperty(final InputStream input, final ODataFormat format)
+  public ClientProperty readProperty(final InputStream input, final ODataFormat format)
       throws ODataDeserializerException {
     return client.getBinder().getODataProperty(client.getDeserializer(format).toProperty(input));
   }

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/c37d4da5/lib/client-core/src/main/java/org/apache/olingo/client/core/serialization/ODataWriterImpl.java
----------------------------------------------------------------------
diff --git a/lib/client-core/src/main/java/org/apache/olingo/client/core/serialization/ODataWriterImpl.java b/lib/client-core/src/main/java/org/apache/olingo/client/core/serialization/ODataWriterImpl.java
index b28b692..8191886 100644
--- a/lib/client-core/src/main/java/org/apache/olingo/client/core/serialization/ODataWriterImpl.java
+++ b/lib/client-core/src/main/java/org/apache/olingo/client/core/serialization/ODataWriterImpl.java
@@ -32,9 +32,9 @@ import org.apache.olingo.client.api.ODataClient;
 import org.apache.olingo.client.api.serialization.ODataWriter;
 import org.apache.olingo.commons.api.Constants;
 import org.apache.olingo.commons.api.data.ResWrap;
-import org.apache.olingo.commons.api.domain.ODataEntity;
-import org.apache.olingo.commons.api.domain.ODataLink;
-import org.apache.olingo.commons.api.domain.ODataProperty;
+import org.apache.olingo.commons.api.domain.ClientEntity;
+import org.apache.olingo.commons.api.domain.ClientLink;
+import org.apache.olingo.commons.api.domain.ClientProperty;
 import org.apache.olingo.commons.api.format.ODataFormat;
 import org.apache.olingo.commons.api.serialization.ODataSerializerException;
 
@@ -47,7 +47,7 @@ public class ODataWriterImpl implements ODataWriter {
   }
 
   @Override
-  public InputStream writeEntities(final Collection<ODataEntity> entities, final ODataFormat format)
+  public InputStream writeEntities(final Collection<ClientEntity> entities, final ODataFormat format)
       throws ODataSerializerException {
     ByteArrayOutputStream output = new ByteArrayOutputStream();
     OutputStreamWriter writer;
@@ -57,7 +57,7 @@ public class ODataWriterImpl implements ODataWriter {
       writer = null;
     }
     try {
-      for (ODataEntity entity : entities) {
+      for (ClientEntity entity : entities) {
         client.getSerializer(format).write(writer, client.getBinder().getEntity(entity));
       }
 
@@ -68,13 +68,13 @@ public class ODataWriterImpl implements ODataWriter {
   }
 
   @Override
-  public InputStream writeEntity(final ODataEntity entity, final ODataFormat format)
+  public InputStream writeEntity(final ClientEntity entity, final ODataFormat format)
       throws ODataSerializerException {
-    return writeEntities(Collections.<ODataEntity>singleton(entity), format);
+    return writeEntities(Collections.<ClientEntity>singleton(entity), format);
   }
 
   @Override
-  public InputStream writeProperty(final ODataProperty property, final ODataFormat format)
+  public InputStream writeProperty(final ClientProperty property, final ODataFormat format)
       throws ODataSerializerException {
     final ByteArrayOutputStream output = new ByteArrayOutputStream();
     OutputStreamWriter writer;
@@ -93,7 +93,7 @@ public class ODataWriterImpl implements ODataWriter {
   }
 
   @Override
-  public InputStream writeLink(final ODataLink link, final ODataFormat format) throws ODataSerializerException {
+  public InputStream writeLink(final ClientLink link, final ODataFormat format) throws ODataSerializerException {
     final ByteArrayOutputStream output = new ByteArrayOutputStream();
     OutputStreamWriter writer;
     try {

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/c37d4da5/lib/client-core/src/main/java/org/apache/olingo/client/core/uri/URIUtils.java
----------------------------------------------------------------------
diff --git a/lib/client-core/src/main/java/org/apache/olingo/client/core/uri/URIUtils.java b/lib/client-core/src/main/java/org/apache/olingo/client/core/uri/URIUtils.java
index 608dc3a..e1ac9c1 100644
--- a/lib/client-core/src/main/java/org/apache/olingo/client/core/uri/URIUtils.java
+++ b/lib/client-core/src/main/java/org/apache/olingo/client/core/uri/URIUtils.java
@@ -50,7 +50,7 @@ import org.apache.olingo.client.api.http.WrappingHttpClientFactory;
 import org.apache.olingo.client.api.uri.SegmentType;
 import org.apache.olingo.client.core.http.BasicAuthHttpClientFactory;
 import org.apache.olingo.commons.api.Constants;
-import org.apache.olingo.commons.api.domain.ODataValue;
+import org.apache.olingo.commons.api.domain.ClientValue;
 import org.apache.olingo.commons.api.edm.EdmPrimitiveTypeException;
 import org.apache.olingo.commons.api.edm.geo.Geospatial;
 import org.apache.olingo.commons.core.edm.primitivetype.EdmBinary;
@@ -331,7 +331,7 @@ public final class URIUtils {
     return res;
   }
 
-  public static URI buildFunctionInvokeURI(final URI uri, final Map<String, ODataValue> parameters) {
+  public static URI buildFunctionInvokeURI(final URI uri, final Map<String, ClientValue> parameters) {
     final String rawQuery = uri.getRawQuery();
     String baseURI = StringUtils.substringBefore(uri.toASCIIString(), "?" + rawQuery);
     if (baseURI.endsWith("()")) {
@@ -339,7 +339,7 @@ public final class URIUtils {
     }
 
     final StringBuilder inlineParams = new StringBuilder();
-    for (Map.Entry<String, ODataValue> param : parameters.entrySet()) {
+    for (Map.Entry<String, ClientValue> param : parameters.entrySet()) {
       inlineParams.append(param.getKey()).append("=");
 
       Object value = null;

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/c37d4da5/lib/client-core/src/test/java/org/apache/olingo/client/core/v4/EntitySetTest.java
----------------------------------------------------------------------
diff --git a/lib/client-core/src/test/java/org/apache/olingo/client/core/v4/EntitySetTest.java b/lib/client-core/src/test/java/org/apache/olingo/client/core/v4/EntitySetTest.java
index 5d5671a..873b946 100644
--- a/lib/client-core/src/test/java/org/apache/olingo/client/core/v4/EntitySetTest.java
+++ b/lib/client-core/src/test/java/org/apache/olingo/client/core/v4/EntitySetTest.java
@@ -22,8 +22,8 @@ import org.apache.olingo.client.api.ODataClient;
 import org.apache.olingo.client.core.AbstractTest;
 import org.apache.olingo.commons.api.data.EntityCollection;
 import org.apache.olingo.commons.api.data.ResWrap;
-import org.apache.olingo.commons.api.domain.ODataEntity;
-import org.apache.olingo.commons.api.domain.ODataEntitySet;
+import org.apache.olingo.commons.api.domain.ClientEntity;
+import org.apache.olingo.commons.api.domain.ClientEntitySet;
 import org.apache.olingo.commons.api.format.ODataFormat;
 import org.apache.olingo.commons.api.serialization.ODataDeserializerException;
 import org.junit.Test;
@@ -45,14 +45,14 @@ public class EntitySetTest extends AbstractTest {
 
   private void read(final ODataFormat format) throws IOException, ODataDeserializerException {
     final InputStream input = getClass().getResourceAsStream("Customers." + getSuffix(format));
-    final ODataEntitySet entitySet = getClient().getBinder().getODataEntitySet(
+    final ClientEntitySet entitySet = getClient().getBinder().getODataEntitySet(
         getClient().getDeserializer(format).toEntitySet(input));
     assertNotNull(entitySet);
 
     assertEquals(2, entitySet.getEntities().size());
     assertNull(entitySet.getNext());
 
-    final ODataEntitySet written =
+    final ClientEntitySet written =
         getClient().getBinder().getODataEntitySet(new ResWrap<EntityCollection>((URI) null, null,
             getClient().getBinder().getEntitySet(entitySet)));
     assertEquals(entitySet, written);
@@ -70,16 +70,16 @@ public class EntitySetTest extends AbstractTest {
 
   private void ref(final ODataFormat format) throws ODataDeserializerException {
     final InputStream input = getClass().getResourceAsStream("collectionOfEntityReferences." + getSuffix(format));
-    final ODataEntitySet entitySet = getClient().getBinder().getODataEntitySet(
+    final ClientEntitySet entitySet = getClient().getBinder().getODataEntitySet(
         getClient().getDeserializer(format).toEntitySet(input));
     assertNotNull(entitySet);
 
-    for (ODataEntity entity : entitySet.getEntities()) {
+    for (ClientEntity entity : entitySet.getEntities()) {
       assertNotNull(entity.getId());
     }
     entitySet.setCount(entitySet.getEntities().size());
 
-    final ODataEntitySet written =
+    final ClientEntitySet written =
         getClient().getBinder().getODataEntitySet(new ResWrap<EntityCollection>((URI) null, null,
             getClient().getBinder().getEntitySet(entitySet)));
     assertEquals(entitySet, written);

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/c37d4da5/lib/client-core/src/test/java/org/apache/olingo/client/core/v4/EntityTest.java
----------------------------------------------------------------------
diff --git a/lib/client-core/src/test/java/org/apache/olingo/client/core/v4/EntityTest.java b/lib/client-core/src/test/java/org/apache/olingo/client/core/v4/EntityTest.java
index 9935870..de35c02 100644
--- a/lib/client-core/src/test/java/org/apache/olingo/client/core/v4/EntityTest.java
+++ b/lib/client-core/src/test/java/org/apache/olingo/client/core/v4/EntityTest.java
@@ -33,15 +33,15 @@ import org.apache.olingo.client.core.AbstractTest;
 import org.apache.olingo.client.core.EdmEnabledODataClientImpl;
 import org.apache.olingo.commons.api.data.Entity;
 import org.apache.olingo.commons.api.data.ResWrap;
-import org.apache.olingo.commons.api.domain.ODataAnnotation;
-import org.apache.olingo.commons.api.domain.ODataComplexValue;
-import org.apache.olingo.commons.api.domain.ODataEntity;
-import org.apache.olingo.commons.api.domain.ODataInlineEntitySet;
-import org.apache.olingo.commons.api.domain.ODataLink;
-import org.apache.olingo.commons.api.domain.ODataLinkType;
-import org.apache.olingo.commons.api.domain.ODataProperty;
-import org.apache.olingo.commons.api.domain.ODataValuable;
-import org.apache.olingo.commons.api.domain.ODataValue;
+import org.apache.olingo.commons.api.domain.ClientAnnotation;
+import org.apache.olingo.commons.api.domain.ClientComplexValue;
+import org.apache.olingo.commons.api.domain.ClientEntity;
+import org.apache.olingo.commons.api.domain.ClientInlineEntitySet;
+import org.apache.olingo.commons.api.domain.ClientLink;
+import org.apache.olingo.commons.api.domain.ClientLinkType;
+import org.apache.olingo.commons.api.domain.ClientProperty;
+import org.apache.olingo.commons.api.domain.ClientValuable;
+import org.apache.olingo.commons.api.domain.ClientValue;
 import org.apache.olingo.commons.api.edm.Edm;
 import org.apache.olingo.commons.api.edm.EdmPrimitiveTypeException;
 import org.apache.olingo.commons.api.format.ODataFormat;
@@ -80,35 +80,35 @@ public class EntityTest extends AbstractTest {
 
   private void singleton(final ODataFormat format) throws Exception {
     final InputStream input = getClass().getResourceAsStream("VipCustomer." + getSuffix(format));
-    final ODataEntity entity = getClient().getBinder().getODataEntity(
+    final ClientEntity entity = getClient().getBinder().getODataEntity(
         getClient().getDeserializer(format).toEntity(input));
     assertNotNull(entity);
 
     assertEquals("Microsoft.Test.OData.Services.ODataWCFService.Customer", entity.getTypeName().toString());
 
-    final ODataProperty birthday = entity.getProperty("Birthday");
+    final ClientProperty birthday = entity.getProperty("Birthday");
     assertTrue(birthday.hasPrimitiveValue());
     assertEquals(EdmDateTimeOffset.getInstance(), birthday.getPrimitiveValue().getType());
 
-    final ODataProperty timeBetweenLastTwoOrders = entity.getProperty("TimeBetweenLastTwoOrders");
+    final ClientProperty timeBetweenLastTwoOrders = entity.getProperty("TimeBetweenLastTwoOrders");
     assertTrue(timeBetweenLastTwoOrders.hasPrimitiveValue());
     assertEquals(EdmDuration.getInstance(), timeBetweenLastTwoOrders.getPrimitiveValue().getType());
 
     int checked = 0;
-    for (ODataLink link : entity.getNavigationLinks()) {
+    for (ClientLink link : entity.getNavigationLinks()) {
       if ("Parent".equals(link.getName())) {
         checked++;
-        assertEquals(ODataLinkType.ENTITY_NAVIGATION, link.getType());
+        assertEquals(ClientLinkType.ENTITY_NAVIGATION, link.getType());
       }
       if ("Orders".equals(link.getName())) {
         checked++;
         if (format == ODataFormat.ATOM) {
-          assertEquals(ODataLinkType.ENTITY_SET_NAVIGATION, link.getType());
+          assertEquals(ClientLinkType.ENTITY_SET_NAVIGATION, link.getType());
         }
       }
       if ("Company".equals(link.getName())) {
         checked++;
-        assertEquals(ODataLinkType.ENTITY_NAVIGATION, link.getType());
+        assertEquals(ClientLinkType.ENTITY_NAVIGATION, link.getType());
       }
     }
     assertEquals(3, checked);
@@ -121,7 +121,7 @@ public class EntityTest extends AbstractTest {
 
     // operations won't get serialized
     entity.getOperations().clear();
-    final ODataEntity written = getClient().getBinder().getODataEntity(
+    final ClientEntity written = getClient().getBinder().getODataEntity(
         new ResWrap<Entity>((URI) null, null, getClient().getBinder().getEntity(entity)));
     assertEquals(entity, written);
     input.close();
@@ -139,25 +139,25 @@ public class EntityTest extends AbstractTest {
 
   private void withEnums(final ODataFormat format) throws Exception {
     final InputStream input = getClass().getResourceAsStream("Products_5." + getSuffix(format));
-    final ODataEntity entity = getClient().getBinder().getODataEntity(
+    final ClientEntity entity = getClient().getBinder().getODataEntity(
         getClient().getDeserializer(format).toEntity(input));
     assertNotNull(entity);
 
-    final ODataProperty skinColor = entity.getProperty("SkinColor");
+    final ClientProperty skinColor = entity.getProperty("SkinColor");
     assertTrue(skinColor.hasEnumValue());
     assertEquals("Microsoft.Test.OData.Services.ODataWCFService.Color", skinColor.getEnumValue().getTypeName());
     assertEquals("Red", skinColor.getEnumValue().getValue());
 
-    final ODataProperty coverColors = entity.getProperty("CoverColors");
+    final ClientProperty coverColors = entity.getProperty("CoverColors");
     assertTrue(coverColors.hasCollectionValue());
-    for (final Iterator<ODataValue> itor = coverColors.getCollectionValue().iterator(); itor.hasNext();) {
-      final ODataValue item = itor.next();
+    for (final Iterator<ClientValue> itor = coverColors.getCollectionValue().iterator(); itor.hasNext();) {
+      final ClientValue item = itor.next();
       assertTrue(item.isEnum());
     }
 
     // operations won't get serialized
     entity.getOperations().clear();
-    final ODataEntity written = getClient().getBinder().getODataEntity(
+    final ClientEntity written = getClient().getBinder().getODataEntity(
         new ResWrap<Entity>((URI) null, null, getClient().getBinder().getEntity(entity)));
     assertEquals(entity, written);
     input.close();
@@ -176,15 +176,15 @@ public class EntityTest extends AbstractTest {
   private void withInlineEntitySet(final ODataFormat format) throws Exception {
     final InputStream input = getClass().getResourceAsStream(
         "Accounts_101_expand_MyPaymentInstruments." + getSuffix(format));
-    final ODataEntity entity = getClient().getBinder().getODataEntity(
+    final ClientEntity entity = getClient().getBinder().getODataEntity(
         getClient().getDeserializer(format).toEntity(input));
     assertNotNull(entity);
 
-    final ODataLink instruments = entity.getNavigationLink("MyPaymentInstruments");
+    final ClientLink instruments = entity.getNavigationLink("MyPaymentInstruments");
     assertNotNull(instruments);
-    assertEquals(ODataLinkType.ENTITY_SET_NAVIGATION, instruments.getType());
+    assertEquals(ClientLinkType.ENTITY_SET_NAVIGATION, instruments.getType());
 
-    final ODataInlineEntitySet inline = instruments.asInlineEntitySet();
+    final ClientInlineEntitySet inline = instruments.asInlineEntitySet();
     assertNotNull(inline);
     assertEquals(3, inline.getEntitySet().getEntities().size());
 
@@ -192,7 +192,7 @@ public class EntityTest extends AbstractTest {
     inline.getEntitySet().setCount(3);
     // operations won't get serialized
     entity.getOperations().clear();
-    final ODataEntity written = getClient().getBinder().getODataEntity(
+    final ClientEntity written = getClient().getBinder().getODataEntity(
         new ResWrap<Entity>((URI) null, null, getClient().getBinder().getEntity(entity)));
     assertEquals(entity, written);
     input.close();
@@ -211,7 +211,7 @@ public class EntityTest extends AbstractTest {
   private void mediaEntity(final ODataFormat format) throws Exception {
     final InputStream input = getClass().getResourceAsStream(
         "Advertisements_f89dee73-af9f-4cd4-b330-db93c25ff3c7." + getSuffix(format));
-    final ODataEntity entity = getClient().getBinder().getODataEntity(
+    final ClientEntity entity = getClient().getBinder().getODataEntity(
         getClient().getDeserializer(format).toEntity(input));
     assertNotNull(entity);
 
@@ -219,7 +219,7 @@ public class EntityTest extends AbstractTest {
     assertNotNull(entity.getMediaContentSource());
     assertEquals("\"8zOOKKvgOtptr4gt8IrnapX3jds=\"", entity.getMediaETag());
 
-    final ODataEntity written = getClient().getBinder().getODataEntity(
+    final ClientEntity written = getClient().getBinder().getODataEntity(
         new ResWrap<Entity>((URI) null, null, getClient().getBinder().getEntity(entity)));
     assertEquals(entity, written);
     input.close();
@@ -237,16 +237,16 @@ public class EntityTest extends AbstractTest {
 
   private void withStream(final ODataFormat format) throws Exception {
     final InputStream input = getClass().getResourceAsStream("PersonDetails_1." + getSuffix(format));
-    final ODataEntity entity = getClient().getBinder().getODataEntity(
+    final ClientEntity entity = getClient().getBinder().getODataEntity(
         getClient().getDeserializer(format).toEntity(input));
     assertNotNull(entity);
 
     assertFalse(entity.isMediaEntity());
 
-    final ODataLink editMedia = entity.getMediaEditLink("Photo");
+    final ClientLink editMedia = entity.getMediaEditLink("Photo");
     assertNotNull(editMedia);
 
-    final ODataEntity written = getClient().getBinder().getODataEntity(
+    final ClientEntity written = getClient().getBinder().getODataEntity(
         new ResWrap<Entity>((URI) null, null, getClient().getBinder().getEntity(entity)));
     assertEquals(entity, written);
     input.close();
@@ -264,13 +264,13 @@ public class EntityTest extends AbstractTest {
 
   private void ref(final ODataFormat format) throws Exception {
     final InputStream input = getClass().getResourceAsStream("entityReference." + getSuffix(format));
-    final ODataEntity entity = getClient().getBinder().getODataEntity(
+    final ClientEntity entity = getClient().getBinder().getODataEntity(
         getClient().getDeserializer(format).toEntity(input));
     assertNotNull(entity);
 
     assertNotNull(entity.getId());
 
-    final ODataEntity written = getClient().getBinder().getODataEntity(
+    final ClientEntity written = getClient().getBinder().getODataEntity(
         new ResWrap<Entity>((URI) null, null, getClient().getBinder().getEntity(entity)));
     assertEquals(entity, written);
     input.close();
@@ -288,17 +288,17 @@ public class EntityTest extends AbstractTest {
 
   private void complexNavigationProperties(final ODataFormat format) throws Exception {
     final InputStream input = getClass().getResourceAsStream("entity.withcomplexnavigation." + getSuffix(format));
-    final ODataEntity entity = getClient().getBinder().getODataEntity(
+    final ClientEntity entity = getClient().getBinder().getODataEntity(
         getClient().getDeserializer(format).toEntity(input));
     assertNotNull(entity);
 
-    final ODataComplexValue addressValue = entity.getProperty("Address").getComplexValue();
+    final ClientComplexValue addressValue = entity.getProperty("Address").getComplexValue();
     assertNotNull(addressValue);
     assertNotNull(addressValue.getNavigationLink("Country"));
 
     // ETag is not serialized
     entity.setETag(null);
-    final ODataEntity written = getClient().getBinder().getODataEntity(
+    final ClientEntity written = getClient().getBinder().getODataEntity(
         new ResWrap<Entity>((URI) null, null, getClient().getBinder().getEntity(entity)));
     assertEquals(entity, written);
     input.close();
@@ -316,13 +316,13 @@ public class EntityTest extends AbstractTest {
 
   private void annotated(final ODataFormat format) throws EdmPrimitiveTypeException, Exception {
     final InputStream input = getClass().getResourceAsStream("annotated." + getSuffix(format));
-    final ODataEntity entity = getClient().getBinder().getODataEntity(
+    final ClientEntity entity = getClient().getBinder().getODataEntity(
         getClient().getDeserializer(format).toEntity(input));
     assertNotNull(entity);
 
     assertFalse(entity.getAnnotations().isEmpty());
 
-    ODataAnnotation annotation = entity.getAnnotations().get(0);
+    ClientAnnotation annotation = entity.getAnnotations().get(0);
     assertEquals("com.contoso.display.highlight", annotation.getTerm());
     assertEquals(true, annotation.getPrimitiveValue().toCastValue(Boolean.class));
 
@@ -334,7 +334,7 @@ public class EntityTest extends AbstractTest {
     assertEquals("com.contoso.display.style", annotation.getTerm());
     assertTrue(annotation.hasComplexValue());
 
-    final ODataLink orders = entity.getNavigationLink("Orders");
+    final ClientLink orders = entity.getNavigationLink("Orders");
     assertFalse(orders.getAnnotations().isEmpty());
 
     annotation = orders.getAnnotations().get(0);
@@ -344,7 +344,7 @@ public class EntityTest extends AbstractTest {
     assertEquals(2,
         annotation.getValue().asComplex().get("order").getPrimitiveValue().toCastValue(Integer.class), 0);
 
-    final ODataEntity written = getClient().getBinder().getODataEntity(
+    final ClientEntity written = getClient().getBinder().getODataEntity(
         new ResWrap<Entity>((URI) null, null, getClient().getBinder().getEntity(entity)));
     assertEquals(entity, written);
     input.close();
@@ -364,12 +364,12 @@ public class EntityTest extends AbstractTest {
 
   private void derived(final ODataClient client, final ODataFormat format) throws Exception {
     final InputStream input = getClass().getResourceAsStream("Customer." + getSuffix(format));
-    final ODataEntity entity = client.getBinder().getODataEntity(client.getDeserializer(format).toEntity(input));
+    final ClientEntity entity = client.getBinder().getODataEntity(client.getDeserializer(format).toEntity(input));
     assertNotNull(entity);
 
     assertEquals("Microsoft.Test.OData.Services.ODataWCFService.Customer", entity.getTypeName().toString());
     assertEquals("Microsoft.Test.OData.Services.ODataWCFService.CompanyAddress",
-        ((ODataValuable) entity.getProperty("HomeAddress")).getValue().getTypeName());
+        ((ClientValuable) entity.getProperty("HomeAddress")).getValue().getTypeName());
     input.close();
   }
 

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/c37d4da5/lib/client-core/src/test/java/org/apache/olingo/client/core/v4/ErrorTest.java
----------------------------------------------------------------------
diff --git a/lib/client-core/src/test/java/org/apache/olingo/client/core/v4/ErrorTest.java b/lib/client-core/src/test/java/org/apache/olingo/client/core/v4/ErrorTest.java
index c0067bc..21b1f82 100644
--- a/lib/client-core/src/test/java/org/apache/olingo/client/core/v4/ErrorTest.java
+++ b/lib/client-core/src/test/java/org/apache/olingo/client/core/v4/ErrorTest.java
@@ -20,7 +20,7 @@ package org.apache.olingo.client.core.v4;
 
 import org.apache.olingo.client.api.ODataClient;
 import org.apache.olingo.client.core.AbstractTest;
-import org.apache.olingo.commons.api.domain.ODataError;
+import org.apache.olingo.commons.api.domain.ClientError;
 import org.apache.olingo.commons.api.format.ODataFormat;
 import org.apache.olingo.commons.api.serialization.ODataDeserializerException;
 import org.junit.Test;
@@ -35,15 +35,15 @@ public class ErrorTest extends AbstractTest {
     return v4Client;
   }
 
-  private ODataError error(final String name, final ODataFormat format) throws ODataDeserializerException {
-    final ODataError error = getClient().getDeserializer(format).toError(
+  private ClientError error(final String name, final ODataFormat format) throws ODataDeserializerException {
+    final ClientError error = getClient().getDeserializer(format).toError(
             getClass().getResourceAsStream(name + "." + getSuffix(format)));
     assertNotNull(error);
     return error;
   }
 
   private void simple(final ODataFormat format) throws ODataDeserializerException {
-    final ODataError error = error("error", format);
+    final ClientError error = error("error", format);
     assertEquals("501", error.getCode());
     assertEquals("Unsupported functionality", error.getMessage());
     assertEquals("query", error.getTarget());

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/c37d4da5/lib/client-core/src/test/java/org/apache/olingo/client/core/v4/JSONTest.java
----------------------------------------------------------------------
diff --git a/lib/client-core/src/test/java/org/apache/olingo/client/core/v4/JSONTest.java b/lib/client-core/src/test/java/org/apache/olingo/client/core/v4/JSONTest.java
index 0f6cb19..49c7c38 100644
--- a/lib/client-core/src/test/java/org/apache/olingo/client/core/v4/JSONTest.java
+++ b/lib/client-core/src/test/java/org/apache/olingo/client/core/v4/JSONTest.java
@@ -35,10 +35,10 @@ import org.apache.olingo.client.core.AbstractTest;
 import org.apache.olingo.commons.api.Constants;
 import org.apache.olingo.commons.api.data.Delta;
 import org.apache.olingo.commons.api.data.Property;
-import org.apache.olingo.commons.api.domain.ODataCollectionValue;
-import org.apache.olingo.commons.api.domain.ODataComplexValue;
-import org.apache.olingo.commons.api.domain.ODataEntity;
-import org.apache.olingo.commons.api.domain.ODataValue;
+import org.apache.olingo.commons.api.domain.ClientCollectionValue;
+import org.apache.olingo.commons.api.domain.ClientComplexValue;
+import org.apache.olingo.commons.api.domain.ClientEntity;
+import org.apache.olingo.commons.api.domain.ClientValue;
 import org.apache.olingo.commons.api.edm.FullQualifiedName;
 import org.apache.olingo.commons.api.format.ODataFormat;
 import org.junit.Test;
@@ -225,21 +225,21 @@ public class JSONTest extends AbstractTest {
 
   @Test
   public void issueOLINGO390() throws Exception {
-    final ODataEntity message = getClient().getObjectFactory().
+    final ClientEntity message = getClient().getObjectFactory().
         newEntity(new FullQualifiedName("Microsoft.Exchange.Services.OData.Model.Message"));
 
-    final ODataComplexValue toRecipient = getClient().getObjectFactory().
+    final ClientComplexValue toRecipient = getClient().getObjectFactory().
         newComplexValue("Microsoft.Exchange.Services.OData.Model.Recipient");
     toRecipient.add(getClient().getObjectFactory().newPrimitiveProperty("Name",
         getClient().getObjectFactory().newPrimitiveValueBuilder().buildString("challen_olingo_client")));
     toRecipient.add(getClient().getObjectFactory().newPrimitiveProperty("Address",
         getClient().getObjectFactory().newPrimitiveValueBuilder().buildString("challenh@microsoft.com")));
-    final ODataCollectionValue<ODataValue> toRecipients = getClient().getObjectFactory().
+    final ClientCollectionValue<ClientValue> toRecipients = getClient().getObjectFactory().
         newCollectionValue("Microsoft.Exchange.Services.OData.Model.Recipient");
     toRecipients.add(toRecipient);
     message.getProperties().add(getClient().getObjectFactory().newCollectionProperty("ToRecipients", toRecipients));
 
-    final ODataComplexValue body =
+    final ClientComplexValue body =
         getClient().getObjectFactory().newComplexValue("Microsoft.Exchange.Services.OData.Model.ItemBody");
     body.add(getClient().getObjectFactory().newPrimitiveProperty("Content",
         getClient().getObjectFactory().newPrimitiveValueBuilder().

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/c37d4da5/lib/client-core/src/test/java/org/apache/olingo/client/core/v4/PrimitiveValueTest.java
----------------------------------------------------------------------
diff --git a/lib/client-core/src/test/java/org/apache/olingo/client/core/v4/PrimitiveValueTest.java b/lib/client-core/src/test/java/org/apache/olingo/client/core/v4/PrimitiveValueTest.java
index 5728812..760e8ca 100644
--- a/lib/client-core/src/test/java/org/apache/olingo/client/core/v4/PrimitiveValueTest.java
+++ b/lib/client-core/src/test/java/org/apache/olingo/client/core/v4/PrimitiveValueTest.java
@@ -20,7 +20,7 @@ package org.apache.olingo.client.core.v4;
 
 import org.apache.olingo.client.api.ODataClient;
 import org.apache.olingo.client.core.AbstractTest;
-import org.apache.olingo.commons.api.domain.ODataValue;
+import org.apache.olingo.commons.api.domain.ClientValue;
 import org.apache.olingo.commons.api.edm.EdmPrimitiveTypeException;
 import org.apache.olingo.commons.api.edm.EdmPrimitiveTypeKind;
 import org.junit.Test;
@@ -42,7 +42,7 @@ public class PrimitiveValueTest extends AbstractTest {
     expected.clear();
     expected.set(2013, 0, 10, 21, 45, 17);
 
-    final ODataValue value = getClient().getObjectFactory().newPrimitiveValueBuilder().
+    final ClientValue value = getClient().getObjectFactory().newPrimitiveValueBuilder().
             setType(EdmPrimitiveTypeKind.TimeOfDay).setValue(expected).build();
     assertEquals(EdmPrimitiveTypeKind.TimeOfDay, value.asPrimitive().getTypeKind());
 
@@ -60,7 +60,7 @@ public class PrimitiveValueTest extends AbstractTest {
     expected.clear();
     expected.set(2013, 0, 10);
 
-    final ODataValue value = getClient().getObjectFactory().newPrimitiveValueBuilder().
+    final ClientValue value = getClient().getObjectFactory().newPrimitiveValueBuilder().
             setType(EdmPrimitiveTypeKind.Date).setValue(expected).build();
     assertEquals(EdmPrimitiveTypeKind.Date, value.asPrimitive().getTypeKind());
 

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/c37d4da5/lib/client-core/src/test/java/org/apache/olingo/client/core/v4/PropertyTest.java
----------------------------------------------------------------------
diff --git a/lib/client-core/src/test/java/org/apache/olingo/client/core/v4/PropertyTest.java b/lib/client-core/src/test/java/org/apache/olingo/client/core/v4/PropertyTest.java
index 642f37b..e8daeb8 100644
--- a/lib/client-core/src/test/java/org/apache/olingo/client/core/v4/PropertyTest.java
+++ b/lib/client-core/src/test/java/org/apache/olingo/client/core/v4/PropertyTest.java
@@ -20,10 +20,10 @@ package org.apache.olingo.client.core.v4;
 
 import org.apache.olingo.client.api.ODataClient;
 import org.apache.olingo.client.core.AbstractTest;
-import org.apache.olingo.commons.api.domain.ODataCollectionValue;
-import org.apache.olingo.commons.api.domain.ODataComplexValue;
-import org.apache.olingo.commons.api.domain.ODataProperty;
-import org.apache.olingo.commons.api.domain.ODataValue;
+import org.apache.olingo.commons.api.domain.ClientCollectionValue;
+import org.apache.olingo.commons.api.domain.ClientComplexValue;
+import org.apache.olingo.commons.api.domain.ClientProperty;
+import org.apache.olingo.commons.api.domain.ClientValue;
 import org.apache.olingo.commons.api.format.ODataFormat;
 import org.apache.olingo.commons.api.serialization.ODataDeserializerException;
 import org.apache.olingo.commons.api.serialization.ODataSerializerException;
@@ -45,15 +45,15 @@ public class PropertyTest extends AbstractTest {
 
   private void _enum(final ODataFormat format) throws ODataDeserializerException, ODataSerializerException {
     final InputStream input = getClass().getResourceAsStream("Products_5_SkinColor." + getSuffix(format));
-    final ODataProperty property = getClient().getReader().readProperty(input, format);
+    final ClientProperty property = getClient().getReader().readProperty(input, format);
     assertNotNull(property);
     assertTrue(property.hasEnumValue());
 
-    final ODataProperty written = getClient().getReader().readProperty(
+    final ClientProperty written = getClient().getReader().readProperty(
             getClient().getWriter().writeProperty(property, format), format);
     // This is needed because type information gets lost with serialization
     if (format == ODataFormat.XML) {
-      final ODataProperty comparable = getClient().getObjectFactory().newEnumProperty(property.getName(),
+      final ClientProperty comparable = getClient().getObjectFactory().newEnumProperty(property.getName(),
               getClient().getObjectFactory().
               newEnumValue(property.getEnumValue().getTypeName(), written.getEnumValue().getValue()));
 
@@ -73,21 +73,21 @@ public class PropertyTest extends AbstractTest {
 
   private void complex(final ODataFormat format) throws ODataDeserializerException, ODataSerializerException {
     final InputStream input = getClass().getResourceAsStream("Employees_3_HomeAddress." + getSuffix(format));
-    final ODataProperty property = getClient().getReader().readProperty(input, format);
+    final ClientProperty property = getClient().getReader().readProperty(input, format);
     assertNotNull(property);
     assertTrue(property.hasComplexValue());
     assertEquals(3, property.getComplexValue().size());
 
-    final ODataProperty written = getClient().getReader().readProperty(
+    final ClientProperty written = getClient().getReader().readProperty(
             getClient().getWriter().writeProperty(property, format), format);
     // This is needed because type information gets lost with JSON serialization
-    final ODataComplexValue typedValue = getClient().getObjectFactory().
+    final ClientComplexValue typedValue = getClient().getObjectFactory().
             newComplexValue(property.getComplexValue().getTypeName());
-    for (final Iterator<ODataProperty> itor = written.getComplexValue().iterator(); itor.hasNext();) {
-      final ODataProperty prop = itor.next();
+    for (final Iterator<ClientProperty> itor = written.getComplexValue().iterator(); itor.hasNext();) {
+      final ClientProperty prop = itor.next();
       typedValue.add(prop);
     }
-    final ODataProperty comparable = getClient().getObjectFactory().
+    final ClientProperty comparable = getClient().getObjectFactory().
             newComplexProperty(property.getName(), typedValue);
 
     assertEquals(property, comparable);
@@ -105,22 +105,22 @@ public class PropertyTest extends AbstractTest {
 
   private void collection(final ODataFormat format) throws ODataDeserializerException, ODataSerializerException {
     final InputStream input = getClass().getResourceAsStream("Products_5_CoverColors." + getSuffix(format));
-    final ODataProperty property = getClient().getReader().readProperty(input, format);
+    final ClientProperty property = getClient().getReader().readProperty(input, format);
     assertNotNull(property);
     assertTrue(property.hasCollectionValue());
     assertEquals(3, property.getCollectionValue().size());
 
-    final ODataProperty written = getClient().getReader().readProperty(
+    final ClientProperty written = getClient().getReader().readProperty(
             getClient().getWriter().writeProperty(property, format), format);
     // This is needed because type information gets lost with JSON serialization
     if (format == ODataFormat.XML) {
-      final ODataCollectionValue<ODataValue> typedValue = getClient().getObjectFactory().
+      final ClientCollectionValue<ClientValue> typedValue = getClient().getObjectFactory().
               newCollectionValue(property.getCollectionValue().getTypeName());
-      for (final Iterator<ODataValue> itor = written.getCollectionValue().iterator(); itor.hasNext();) {
-        final ODataValue value = itor.next();
+      for (final Iterator<ClientValue> itor = written.getCollectionValue().iterator(); itor.hasNext();) {
+        final ClientValue value = itor.next();
         typedValue.add(value);
       }
-      final ODataProperty comparable = getClient().getObjectFactory().
+      final ClientProperty comparable = getClient().getObjectFactory().
               newCollectionProperty(property.getName(), typedValue);
 
       assertEquals(property, comparable);

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/c37d4da5/lib/client-core/src/test/java/org/apache/olingo/client/core/v4/ServiceDocumentTest.java
----------------------------------------------------------------------
diff --git a/lib/client-core/src/test/java/org/apache/olingo/client/core/v4/ServiceDocumentTest.java b/lib/client-core/src/test/java/org/apache/olingo/client/core/v4/ServiceDocumentTest.java
index 096591c..e025076 100644
--- a/lib/client-core/src/test/java/org/apache/olingo/client/core/v4/ServiceDocumentTest.java
+++ b/lib/client-core/src/test/java/org/apache/olingo/client/core/v4/ServiceDocumentTest.java
@@ -22,7 +22,7 @@ import org.apache.olingo.client.api.ODataClient;
 import org.apache.olingo.client.api.data.ServiceDocument;
 import org.apache.olingo.client.core.AbstractTest;
 import org.apache.olingo.commons.api.data.ResWrap;
-import org.apache.olingo.commons.api.domain.ODataServiceDocument;
+import org.apache.olingo.commons.api.domain.ClientServiceDocument;
 import org.apache.olingo.commons.api.format.ODataFormat;
 import org.apache.olingo.commons.api.serialization.ODataDeserializerException;
 import org.junit.Test;
@@ -44,14 +44,14 @@ public class ServiceDocumentTest extends AbstractTest {
     return format == ODataFormat.XML ? "xml" : "json";
   }
 
-  private ODataServiceDocument parse(final ODataFormat format) throws ODataDeserializerException {
+  private ClientServiceDocument parse(final ODataFormat format) throws ODataDeserializerException {
     ResWrap<ServiceDocument> service = getClient().getDeserializer(format).toServiceDocument(
             getClass().getResourceAsStream("serviceDocument." + getFileExtension(format)));
 
     assertEquals(URI.create("http://host/service/$metadata"), service.getContextURL());
     assertEquals("W/\"MjAxMy0wNS0xM1QxNDo1NFo=\"", service.getMetadataETag());
 
-    final ODataServiceDocument serviceDocument = getClient().getBinder().getODataServiceDocument(service.getPayload());
+    final ClientServiceDocument serviceDocument = getClient().getBinder().getODataServiceDocument(service.getPayload());
     assertNotNull(serviceDocument);
 
     assertTrue(serviceDocument.getEntitySetNames().contains("Order Details"));

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/c37d4da5/lib/commons-api/src/main/java/org/apache/olingo/commons/api/data/Entity.java
----------------------------------------------------------------------
diff --git a/lib/commons-api/src/main/java/org/apache/olingo/commons/api/data/Entity.java b/lib/commons-api/src/main/java/org/apache/olingo/commons/api/data/Entity.java
index 167c5c3..a9db524 100644
--- a/lib/commons-api/src/main/java/org/apache/olingo/commons/api/data/Entity.java
+++ b/lib/commons-api/src/main/java/org/apache/olingo/commons/api/data/Entity.java
@@ -18,7 +18,7 @@
  */
 package org.apache.olingo.commons.api.data;
 
-import org.apache.olingo.commons.api.domain.ODataOperation;
+import org.apache.olingo.commons.api.domain.ClientOperation;
 
 import java.net.URI;
 import java.util.ArrayList;
@@ -33,7 +33,7 @@ public class Entity extends Linked {
   private Link editLink;
 
   private final List<Link> mediaEditLinks = new ArrayList<Link>();
-  private final List<ODataOperation> operations = new ArrayList<ODataOperation>();
+  private final List<ClientOperation> operations = new ArrayList<ClientOperation>();
 
   private final List<Property> properties = new ArrayList<Property>();
 
@@ -122,7 +122,7 @@ public class Entity extends Linked {
    * 
    * @return operations.
    */
-  public List<ODataOperation> getOperations() {
+  public List<ClientOperation> getOperations() {
     return operations;
   }
 

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/c37d4da5/lib/commons-api/src/main/java/org/apache/olingo/commons/api/domain/AbstractClientPayload.java
----------------------------------------------------------------------
diff --git a/lib/commons-api/src/main/java/org/apache/olingo/commons/api/domain/AbstractClientPayload.java b/lib/commons-api/src/main/java/org/apache/olingo/commons/api/domain/AbstractClientPayload.java
new file mode 100644
index 0000000..fc54860
--- /dev/null
+++ b/lib/commons-api/src/main/java/org/apache/olingo/commons/api/domain/AbstractClientPayload.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.commons.api.domain;
+
+import java.net.URI;
+
+/**
+ * OData entity.
+ */
+public abstract class AbstractClientPayload extends ClientItem {
+
+  /**
+   * Context URL.
+   */
+  private URI contextURL;
+
+  public AbstractClientPayload(final String name) {
+    super(name);
+  }
+
+  /**
+   * The context URL describes the content of the payload. It consists of the canonical metadata document URL and a
+   * fragment identifying the relevant portion of the metadata document.
+   * 
+   * @return context URL.
+   */
+  public URI getContextURL() {
+    return contextURL;
+  }
+
+  public void setContextURL(final URI contextURL) {
+    this.contextURL = contextURL;
+  }
+}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/c37d4da5/lib/commons-api/src/main/java/org/apache/olingo/commons/api/domain/AbstractClientValue.java
----------------------------------------------------------------------
diff --git a/lib/commons-api/src/main/java/org/apache/olingo/commons/api/domain/AbstractClientValue.java b/lib/commons-api/src/main/java/org/apache/olingo/commons/api/domain/AbstractClientValue.java
new file mode 100644
index 0000000..af5b423
--- /dev/null
+++ b/lib/commons-api/src/main/java/org/apache/olingo/commons/api/domain/AbstractClientValue.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.commons.api.domain;
+
+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;
+
+/**
+ * Abstract representation of an OData entity property value.
+ */
+public abstract class AbstractClientValue implements ClientValue {
+
+  /**
+   * Type name;
+   */
+  private final String typeName;
+
+  public AbstractClientValue(final String typeName) {
+    this.typeName = typeName;
+  }
+
+  @Override
+  public String getTypeName() {
+    return typeName;
+  }
+
+  /**
+   * Check is is a primitive value.
+   * 
+   * @return 'TRUE' if primitive; 'FALSE' otherwise.
+   */
+  @Override
+  public boolean isPrimitive() {
+    return (this instanceof ClientPrimitiveValue);
+  }
+
+  /**
+   * Casts to primitive value.
+   * 
+   * @return primitive value.
+   */
+  @Override
+  public ClientPrimitiveValue asPrimitive() {
+    return isPrimitive() ? (ClientPrimitiveValue) this : null;
+  }
+
+  /**
+   * Check is is a complex value.
+   * 
+   * @return 'TRUE' if complex; 'FALSE' otherwise.
+   */
+  @Override
+  public boolean isComplex() {
+    return (this instanceof ClientComplexValue);
+  }
+
+  /**
+   * Casts to complex value.
+   * 
+   * @return complex value.
+   */
+  @Override
+  public ClientComplexValue asComplex() {
+    return isComplex() ? (ClientComplexValue) this : null;
+  }
+
+  /**
+   * Check is is a collection value.
+   * 
+   * @return 'TRUE' if collection; 'FALSE' otherwise.
+   */
+  @Override
+  public boolean isCollection() {
+    return (this instanceof ClientCollectionValue);
+  }
+
+  /**
+   * Casts to collection value.
+   * 
+   * @return collection value.
+   */
+  @SuppressWarnings("unchecked")
+  @Override
+  public <OV extends ClientValue> ClientCollectionValue<OV> asCollection() {
+    return isCollection() ? (ClientCollectionValue<OV>) this : null;
+  }
+
+  @Override
+  public boolean equals(final Object obj) {
+    return EqualsBuilder.reflectionEquals(this, obj);
+  }
+
+  @Override
+  public int hashCode() {
+    return HashCodeBuilder.reflectionHashCode(this);
+  }
+
+  @Override
+  public String toString() {
+    return ReflectionToStringBuilder.toString(this, ToStringStyle.MULTI_LINE_STYLE);
+  }
+}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/c37d4da5/lib/commons-api/src/main/java/org/apache/olingo/commons/api/domain/AbstractODataPayload.java
----------------------------------------------------------------------
diff --git a/lib/commons-api/src/main/java/org/apache/olingo/commons/api/domain/AbstractODataPayload.java b/lib/commons-api/src/main/java/org/apache/olingo/commons/api/domain/AbstractODataPayload.java
deleted file mode 100644
index 62cb4e1..0000000
--- a/lib/commons-api/src/main/java/org/apache/olingo/commons/api/domain/AbstractODataPayload.java
+++ /dev/null
@@ -1,50 +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.commons.api.domain;
-
-import java.net.URI;
-
-/**
- * OData entity.
- */
-public abstract class AbstractODataPayload extends ODataItem {
-
-  /**
-   * Context URL.
-   */
-  private URI contextURL;
-
-  public AbstractODataPayload(final String name) {
-    super(name);
-  }
-
-  /**
-   * The context URL describes the content of the payload. It consists of the canonical metadata document URL and a
-   * fragment identifying the relevant portion of the metadata document.
-   * 
-   * @return context URL.
-   */
-  public URI getContextURL() {
-    return contextURL;
-  }
-
-  public void setContextURL(final URI contextURL) {
-    this.contextURL = contextURL;
-  }
-}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/c37d4da5/lib/commons-api/src/main/java/org/apache/olingo/commons/api/domain/AbstractODataValue.java
----------------------------------------------------------------------
diff --git a/lib/commons-api/src/main/java/org/apache/olingo/commons/api/domain/AbstractODataValue.java b/lib/commons-api/src/main/java/org/apache/olingo/commons/api/domain/AbstractODataValue.java
deleted file mode 100644
index acd056d..0000000
--- a/lib/commons-api/src/main/java/org/apache/olingo/commons/api/domain/AbstractODataValue.java
+++ /dev/null
@@ -1,120 +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.commons.api.domain;
-
-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;
-
-/**
- * Abstract representation of an OData entity property value.
- */
-public abstract class AbstractODataValue implements ODataValue {
-
-  /**
-   * Type name;
-   */
-  private final String typeName;
-
-  public AbstractODataValue(final String typeName) {
-    this.typeName = typeName;
-  }
-
-  @Override
-  public String getTypeName() {
-    return typeName;
-  }
-
-  /**
-   * Check is is a primitive value.
-   * 
-   * @return 'TRUE' if primitive; 'FALSE' otherwise.
-   */
-  @Override
-  public boolean isPrimitive() {
-    return (this instanceof ODataPrimitiveValue);
-  }
-
-  /**
-   * Casts to primitive value.
-   * 
-   * @return primitive value.
-   */
-  @Override
-  public ODataPrimitiveValue asPrimitive() {
-    return isPrimitive() ? (ODataPrimitiveValue) this : null;
-  }
-
-  /**
-   * Check is is a complex value.
-   * 
-   * @return 'TRUE' if complex; 'FALSE' otherwise.
-   */
-  @Override
-  public boolean isComplex() {
-    return (this instanceof ODataComplexValue);
-  }
-
-  /**
-   * Casts to complex value.
-   * 
-   * @return complex value.
-   */
-  @Override
-  public ODataComplexValue asComplex() {
-    return isComplex() ? (ODataComplexValue) this : null;
-  }
-
-  /**
-   * Check is is a collection value.
-   * 
-   * @return 'TRUE' if collection; 'FALSE' otherwise.
-   */
-  @Override
-  public boolean isCollection() {
-    return (this instanceof ODataCollectionValue);
-  }
-
-  /**
-   * Casts to collection value.
-   * 
-   * @return collection value.
-   */
-  @SuppressWarnings("unchecked")
-  @Override
-  public <OV extends ODataValue> ODataCollectionValue<OV> asCollection() {
-    return isCollection() ? (ODataCollectionValue<OV>) this : null;
-  }
-
-  @Override
-  public boolean equals(final Object obj) {
-    return EqualsBuilder.reflectionEquals(this, obj);
-  }
-
-  @Override
-  public int hashCode() {
-    return HashCodeBuilder.reflectionHashCode(this);
-  }
-
-  @Override
-  public String toString() {
-    return ReflectionToStringBuilder.toString(this, ToStringStyle.MULTI_LINE_STYLE);
-  }
-}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/c37d4da5/lib/commons-api/src/main/java/org/apache/olingo/commons/api/domain/ClientAnnotatable.java
----------------------------------------------------------------------
diff --git a/lib/commons-api/src/main/java/org/apache/olingo/commons/api/domain/ClientAnnotatable.java b/lib/commons-api/src/main/java/org/apache/olingo/commons/api/domain/ClientAnnotatable.java
new file mode 100644
index 0000000..f9c5119
--- /dev/null
+++ b/lib/commons-api/src/main/java/org/apache/olingo/commons/api/domain/ClientAnnotatable.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.commons.api.domain;
+
+import java.util.List;
+
+public interface ClientAnnotatable {
+
+  List<ClientAnnotation> getAnnotations();
+}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/c37d4da5/lib/commons-api/src/main/java/org/apache/olingo/commons/api/domain/ClientAnnotation.java
----------------------------------------------------------------------
diff --git a/lib/commons-api/src/main/java/org/apache/olingo/commons/api/domain/ClientAnnotation.java b/lib/commons-api/src/main/java/org/apache/olingo/commons/api/domain/ClientAnnotation.java
new file mode 100644
index 0000000..1749c63
--- /dev/null
+++ b/lib/commons-api/src/main/java/org/apache/olingo/commons/api/domain/ClientAnnotation.java
@@ -0,0 +1,30 @@
+/*
+ * 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.commons.api.domain;
+
+public interface ClientAnnotation extends ClientValuable {
+
+  /**
+   * Returns annotation name.
+   * 
+   * @return annotation name.
+   */
+  String getTerm();
+
+}


[17/50] [abbrv] olingo-odata4 git commit: [OLINGO-564] Renamed 'edm.provider.*' classes

Posted by mi...@apache.org.
http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/2318953c/lib/commons-api/src/main/java/org/apache/olingo/commons/api/edm/provider/CsdlEntityType.java
----------------------------------------------------------------------
diff --git a/lib/commons-api/src/main/java/org/apache/olingo/commons/api/edm/provider/CsdlEntityType.java b/lib/commons-api/src/main/java/org/apache/olingo/commons/api/edm/provider/CsdlEntityType.java
new file mode 100644
index 0000000..fad6e7a
--- /dev/null
+++ b/lib/commons-api/src/main/java/org/apache/olingo/commons/api/edm/provider/CsdlEntityType.java
@@ -0,0 +1,92 @@
+/*
+ * 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.commons.api.edm.provider;
+
+import java.util.List;
+
+import org.apache.olingo.commons.api.edm.FullQualifiedName;
+
+public class CsdlEntityType extends CsdlStructuralType {
+
+  private static final long serialVersionUID = -1564752618679704024L;
+
+  private List<CsdlPropertyRef> key;
+
+  private boolean hasStream = false;
+
+  public boolean hasStream() {
+    return hasStream;
+  }
+
+  public CsdlEntityType setHasStream(final boolean hasStream) {
+    this.hasStream = hasStream;
+    return this;
+  }
+
+  public List<CsdlPropertyRef> getKey() {
+    return key;
+  }
+
+  public CsdlEntityType setKey(final List<CsdlPropertyRef> key) {
+    this.key = key;
+    return this;
+  }
+  
+  @Override
+  public CsdlEntityType setName(final String name) {
+    this.name = name;
+    return this;
+  }
+
+  @Override
+  public CsdlEntityType setOpenType(final boolean isOpenType) {
+    this.isOpenType = isOpenType;
+    return this;
+  }
+
+  @Override
+  public CsdlEntityType setBaseType(final String baseType) {
+    this.baseType = new FullQualifiedName(baseType);
+    return this;
+  }
+ 
+  @Override
+  public CsdlEntityType setBaseType(final FullQualifiedName baseType) {
+    this.baseType = baseType;
+    return this;
+  }
+
+  @Override
+  public CsdlEntityType setAbstract(final boolean isAbstract) {
+    this.isAbstract = isAbstract;
+    return this;
+  }
+
+  @Override
+  public CsdlEntityType setProperties(final List<CsdlProperty> properties) {
+    this.properties = properties;
+    return this;
+  }
+
+  @Override
+  public CsdlEntityType setNavigationProperties(final List<CsdlNavigationProperty> navigationProperties) {
+    this.navigationProperties = navigationProperties;
+    return this;
+  }
+}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/2318953c/lib/commons-api/src/main/java/org/apache/olingo/commons/api/edm/provider/CsdlEnumMember.java
----------------------------------------------------------------------
diff --git a/lib/commons-api/src/main/java/org/apache/olingo/commons/api/edm/provider/CsdlEnumMember.java b/lib/commons-api/src/main/java/org/apache/olingo/commons/api/edm/provider/CsdlEnumMember.java
new file mode 100644
index 0000000..8f11bf0
--- /dev/null
+++ b/lib/commons-api/src/main/java/org/apache/olingo/commons/api/edm/provider/CsdlEnumMember.java
@@ -0,0 +1,57 @@
+/*
+ * 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.commons.api.edm.provider;
+
+import java.util.ArrayList;
+import java.util.List;
+
+public class CsdlEnumMember extends CsdlAbstractEdmItem implements CsdlNamed, CsdlAnnotatable {
+
+  private static final long serialVersionUID = 5618984420582832094L;
+
+  private String name;
+
+  private String value;
+
+  private final List<CsdlAnnotation> annotations = new ArrayList<CsdlAnnotation>();
+
+  public String getName() {
+    return name;
+  }
+
+  public CsdlEnumMember setName(final String name) {
+    this.name = name;
+    return this;
+  }
+
+  public String getValue() {
+    return value;
+  }
+
+  public CsdlEnumMember setValue(final String value) {
+    this.value = value;
+    return this;
+  }
+  
+  @Override
+  public List<CsdlAnnotation> getAnnotations() {
+    return annotations;
+  }
+  
+}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/2318953c/lib/commons-api/src/main/java/org/apache/olingo/commons/api/edm/provider/CsdlEnumType.java
----------------------------------------------------------------------
diff --git a/lib/commons-api/src/main/java/org/apache/olingo/commons/api/edm/provider/CsdlEnumType.java b/lib/commons-api/src/main/java/org/apache/olingo/commons/api/edm/provider/CsdlEnumType.java
new file mode 100644
index 0000000..314ac04
--- /dev/null
+++ b/lib/commons-api/src/main/java/org/apache/olingo/commons/api/edm/provider/CsdlEnumType.java
@@ -0,0 +1,113 @@
+/*
+ * 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.commons.api.edm.provider;
+
+import java.util.ArrayList;
+import java.util.List;
+
+import org.apache.olingo.commons.api.edm.FullQualifiedName;
+
+public class CsdlEnumType extends CsdlAbstractEdmItem implements CsdlNamed, CsdlAnnotatable {
+
+  private static final long serialVersionUID = -718032622783883403L;
+
+  private String name;
+
+  private boolean isFlags;
+
+  private FullQualifiedName underlyingType;
+
+  private List<CsdlEnumMember> members = new ArrayList<CsdlEnumMember>();
+  
+  private final List<CsdlAnnotation> annotations = new ArrayList<CsdlAnnotation>();
+
+  public String getName() {
+    return name;
+  }
+
+  public CsdlEnumType setName(final String name) {
+    this.name = name;
+    return this;
+  }
+
+  public boolean isFlags() {
+    return isFlags;
+  }
+
+  public CsdlEnumType setFlags(final boolean isFlags) {
+    this.isFlags = isFlags;
+    return this;
+  }
+
+  public String getUnderlyingType() {
+    if(underlyingType != null){
+      return underlyingType.getFullQualifiedNameAsString();
+    }
+    return null;
+  }
+
+  public CsdlEnumType setUnderlyingType(final String underlyingType) {
+    this.underlyingType = new FullQualifiedName(underlyingType);
+    return this;
+  }
+  
+  public CsdlEnumType setUnderlyingType(final FullQualifiedName underlyingType) {
+    this.underlyingType = underlyingType;
+    return this;
+  }
+
+
+  public List<CsdlEnumMember> getMembers() {
+    return members;
+  }
+
+  public CsdlEnumMember getMember(final String name) {
+    CsdlEnumMember result = null;
+    if (getMembers() != null) {
+      for (CsdlEnumMember member : getMembers()) {
+        if (name.equals(member.getName())) {
+          result = member;
+        }
+      }
+    }
+    return result;
+  }
+
+  public CsdlEnumMember getMember(final Integer value) {
+    CsdlEnumMember result = null;
+    if (getMembers() != null) {
+      for (CsdlEnumMember member : getMembers()) {
+        if (String.valueOf(value).equals(member.getValue())) {
+          result = member;
+        }
+      }
+    }
+    return result;
+  }
+
+  public CsdlEnumType setMembers(final List<CsdlEnumMember> members) {
+    this.members = members;
+    return this;
+  }
+  
+  @Override
+  public List<CsdlAnnotation> getAnnotations() {
+    return annotations;
+  }
+}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/2318953c/lib/commons-api/src/main/java/org/apache/olingo/commons/api/edm/provider/CsdlExpression.java
----------------------------------------------------------------------
diff --git a/lib/commons-api/src/main/java/org/apache/olingo/commons/api/edm/provider/CsdlExpression.java b/lib/commons-api/src/main/java/org/apache/olingo/commons/api/edm/provider/CsdlExpression.java
new file mode 100644
index 0000000..cb3f765
--- /dev/null
+++ b/lib/commons-api/src/main/java/org/apache/olingo/commons/api/edm/provider/CsdlExpression.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.commons.api.edm.provider;
+
+public class CsdlExpression {
+//TODO: Expression implementation
+}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/2318953c/lib/commons-api/src/main/java/org/apache/olingo/commons/api/edm/provider/CsdlFunction.java
----------------------------------------------------------------------
diff --git a/lib/commons-api/src/main/java/org/apache/olingo/commons/api/edm/provider/CsdlFunction.java b/lib/commons-api/src/main/java/org/apache/olingo/commons/api/edm/provider/CsdlFunction.java
new file mode 100644
index 0000000..38b32c7
--- /dev/null
+++ b/lib/commons-api/src/main/java/org/apache/olingo/commons/api/edm/provider/CsdlFunction.java
@@ -0,0 +1,67 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ * 
+ * http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.olingo.commons.api.edm.provider;
+
+import java.util.List;
+
+public class CsdlFunction extends CsdlOperation {
+
+  private static final long serialVersionUID = 673858921468578957L;
+  
+  private boolean isComposable = false;
+
+  public boolean isComposable() {
+    return isComposable;
+  }
+
+  public CsdlFunction setComposable(final boolean isComposable) {
+    this.isComposable = isComposable;
+    return this;
+  }
+
+  @Override
+  public CsdlFunction setName(final String name) {
+    this.name = name;
+    return this;
+  }
+
+  @Override
+  public CsdlFunction setBound(final boolean isBound) {
+    this.isBound = isBound;
+    return this;
+  }
+
+  @Override
+  public CsdlFunction setEntitySetPath(final String entitySetPath) {
+    this.entitySetPath = entitySetPath;
+    return this;
+  }
+
+  @Override
+  public CsdlFunction setParameters(final List<CsdlParameter> parameters) {
+    this.parameters = parameters;
+    return this;
+  }
+
+  @Override
+  public CsdlFunction setReturnType(final CsdlReturnType returnType) {
+    this.returnType = returnType;
+    return this;
+  }
+}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/2318953c/lib/commons-api/src/main/java/org/apache/olingo/commons/api/edm/provider/CsdlFunctionImport.java
----------------------------------------------------------------------
diff --git a/lib/commons-api/src/main/java/org/apache/olingo/commons/api/edm/provider/CsdlFunctionImport.java b/lib/commons-api/src/main/java/org/apache/olingo/commons/api/edm/provider/CsdlFunctionImport.java
new file mode 100644
index 0000000..ed14759
--- /dev/null
+++ b/lib/commons-api/src/main/java/org/apache/olingo/commons/api/edm/provider/CsdlFunctionImport.java
@@ -0,0 +1,77 @@
+/*
+ * 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.commons.api.edm.provider;
+
+import org.apache.olingo.commons.api.edm.FullQualifiedName;
+
+
+public class CsdlFunctionImport extends CsdlOperationImport {
+
+  private static final long serialVersionUID = 8479762299534736719L;
+
+  private FullQualifiedName function;
+
+  //Default include in service document is false for function imports
+  private boolean includeInServiceDocument;
+
+  @Override
+  public String getName() {
+    return name;
+  }
+
+  @Override
+  public CsdlFunctionImport setName(final String name) {
+    this.name = name;
+    return this;
+  }
+
+  @Override
+  public CsdlFunctionImport setEntitySet(final String entitySet) {
+    this.entitySet = entitySet;
+    return this;
+  }
+
+  public String getFunction() {
+    return function.getFullQualifiedNameAsString();
+  }
+  
+  public FullQualifiedName getFunctionFQN() {
+    return function;
+  }
+
+
+  public CsdlFunctionImport setFunction(final FullQualifiedName function) {
+    this.function = function;
+    return this;
+  }
+  
+  public CsdlFunctionImport setFunction(final String function) {
+    this.function = new FullQualifiedName(function);
+    return this;
+  }
+
+  public boolean isIncludeInServiceDocument() {
+    return includeInServiceDocument;
+  }
+
+  public CsdlFunctionImport setIncludeInServiceDocument(final boolean includeInServiceDocument) {
+    this.includeInServiceDocument = includeInServiceDocument;
+    return this;
+  }
+}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/2318953c/lib/commons-api/src/main/java/org/apache/olingo/commons/api/edm/provider/CsdlMapping.java
----------------------------------------------------------------------
diff --git a/lib/commons-api/src/main/java/org/apache/olingo/commons/api/edm/provider/CsdlMapping.java b/lib/commons-api/src/main/java/org/apache/olingo/commons/api/edm/provider/CsdlMapping.java
new file mode 100644
index 0000000..32bc782
--- /dev/null
+++ b/lib/commons-api/src/main/java/org/apache/olingo/commons/api/edm/provider/CsdlMapping.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.commons.api.edm.provider;
+
+import org.apache.olingo.commons.api.edm.EdmMapping;
+
+/**
+ * Content of this class does not appear within the CSDL metadata document. This class is used to perform server
+ * internal mapping for edm primitive types to java types.
+ */
+public class CsdlMapping implements EdmMapping {
+
+  private Class<?> mappedJavaClass;
+
+  /**
+   * Sets the class to be used during deserialization to transform an EDM primitive type into this java class. To see
+   * which classes work for which primitive type refer to {@link org.apache.olingo.commons.api.edm.EdmPrimitiveType}.
+   * @param mappedJavaClass class to which is mapped
+   * @return this for method chaining
+   */
+  public CsdlMapping setMappedJavaClass(Class<?> mappedJavaClass) {
+    this.mappedJavaClass = mappedJavaClass;
+    return this;
+  }
+
+  /* (non-Javadoc)
+   * @see org.apache.olingo.commons.api.edm.EdmMapping#getMappedJavaClass()
+   */
+  @Override
+  public Class<?> getMappedJavaClass() {
+    return mappedJavaClass;
+  }
+
+}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/2318953c/lib/commons-api/src/main/java/org/apache/olingo/commons/api/edm/provider/CsdlNamed.java
----------------------------------------------------------------------
diff --git a/lib/commons-api/src/main/java/org/apache/olingo/commons/api/edm/provider/CsdlNamed.java b/lib/commons-api/src/main/java/org/apache/olingo/commons/api/edm/provider/CsdlNamed.java
new file mode 100644
index 0000000..24a5803
--- /dev/null
+++ b/lib/commons-api/src/main/java/org/apache/olingo/commons/api/edm/provider/CsdlNamed.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.commons.api.edm.provider;
+
+import java.io.Serializable;
+
+public interface CsdlNamed extends Serializable {
+
+  String getName();
+}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/2318953c/lib/commons-api/src/main/java/org/apache/olingo/commons/api/edm/provider/CsdlNavigationProperty.java
----------------------------------------------------------------------
diff --git a/lib/commons-api/src/main/java/org/apache/olingo/commons/api/edm/provider/CsdlNavigationProperty.java b/lib/commons-api/src/main/java/org/apache/olingo/commons/api/edm/provider/CsdlNavigationProperty.java
new file mode 100644
index 0000000..16fc68e
--- /dev/null
+++ b/lib/commons-api/src/main/java/org/apache/olingo/commons/api/edm/provider/CsdlNavigationProperty.java
@@ -0,0 +1,138 @@
+/*
+ * 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.commons.api.edm.provider;
+
+import java.util.ArrayList;
+import java.util.List;
+
+import org.apache.olingo.commons.api.edm.FullQualifiedName;
+
+public class CsdlNavigationProperty extends CsdlAbstractEdmItem implements CsdlNamed, CsdlAnnotatable {
+
+  private static final long serialVersionUID = -788021920718310799L;
+
+  private String name;
+
+  private FullQualifiedName type;
+
+  private boolean isCollection;
+
+  private String partner;
+
+  private boolean containsTarget = false;
+
+  private List<CsdlReferentialConstraint> referentialConstraints = new ArrayList<CsdlReferentialConstraint>();
+
+  // Facets
+  private boolean nullable = true;
+
+  private CsdlOnDelete onDelete;
+  
+  private List<CsdlAnnotation> annotations = new ArrayList<CsdlAnnotation>();
+
+  public String getName() {
+    return name;
+  }
+
+  public boolean isCollection() {
+    return isCollection;
+  }
+
+  public CsdlNavigationProperty setCollection(final boolean isCollection) {
+    this.isCollection = isCollection;
+    return this;
+  }
+
+  public CsdlNavigationProperty setName(final String name) {
+    this.name = name;
+    return this;
+  }
+
+  public FullQualifiedName getTypeFQN() {
+    return type;
+  }
+  
+  public String getType() {
+    if(type != null){
+      return type.getFullQualifiedNameAsString();
+    }
+    return null;
+  }
+
+  public CsdlNavigationProperty setType(final FullQualifiedName type) {
+    this.type = type;
+    return this;
+  }
+  
+  public CsdlNavigationProperty setType(final String type) {
+    this.type = new FullQualifiedName(type);
+    return this;
+  }
+
+  public String getPartner() {
+    return partner;
+  }
+
+  public CsdlNavigationProperty setPartner(final String partner) {
+    this.partner = partner;
+    return this;
+  }
+
+  public boolean isContainsTarget() {
+    return containsTarget;
+  }
+
+  public CsdlNavigationProperty setContainsTarget(final boolean containsTarget) {
+    this.containsTarget = containsTarget;
+    return this;
+  }
+
+  public List<CsdlReferentialConstraint> getReferentialConstraints() {
+    return referentialConstraints;
+  }
+
+  public CsdlNavigationProperty setReferentialConstraints(
+          final List<CsdlReferentialConstraint> referentialConstraints) {
+    this.referentialConstraints = referentialConstraints;
+    return this;
+  }
+
+  public Boolean isNullable() {
+    return nullable;
+  }
+
+  public CsdlNavigationProperty setNullable(final Boolean nullable) {
+    this.nullable = nullable;
+    return this;
+  }
+
+  public CsdlOnDelete getOnDelete() {
+    return onDelete;
+  }
+
+  public CsdlNavigationProperty setOnDelete(final CsdlOnDelete onDelete) {
+    this.onDelete = onDelete;
+    return this;
+  }
+  
+  @Override
+  public List<CsdlAnnotation> getAnnotations() {
+    return annotations;
+  }
+}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/2318953c/lib/commons-api/src/main/java/org/apache/olingo/commons/api/edm/provider/CsdlNavigationPropertyBinding.java
----------------------------------------------------------------------
diff --git a/lib/commons-api/src/main/java/org/apache/olingo/commons/api/edm/provider/CsdlNavigationPropertyBinding.java b/lib/commons-api/src/main/java/org/apache/olingo/commons/api/edm/provider/CsdlNavigationPropertyBinding.java
new file mode 100644
index 0000000..ce14ead
--- /dev/null
+++ b/lib/commons-api/src/main/java/org/apache/olingo/commons/api/edm/provider/CsdlNavigationPropertyBinding.java
@@ -0,0 +1,47 @@
+/*
+ * 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.commons.api.edm.provider;
+
+
+public class CsdlNavigationPropertyBinding extends CsdlAbstractEdmItem {
+
+  private static final long serialVersionUID = 770380971233808502L;
+
+  private String path;
+
+  private String target;
+
+  public String getPath() {
+    return path;
+  }
+
+  public CsdlNavigationPropertyBinding setPath(final String path) {
+    this.path = path;
+    return this;
+  }
+
+  public String getTarget() {
+    return target;
+  }
+
+  public CsdlNavigationPropertyBinding setTarget(final String target) {
+    this.target = target;
+    return this;
+  }
+}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/2318953c/lib/commons-api/src/main/java/org/apache/olingo/commons/api/edm/provider/CsdlOnDelete.java
----------------------------------------------------------------------
diff --git a/lib/commons-api/src/main/java/org/apache/olingo/commons/api/edm/provider/CsdlOnDelete.java b/lib/commons-api/src/main/java/org/apache/olingo/commons/api/edm/provider/CsdlOnDelete.java
new file mode 100644
index 0000000..1b03ba8
--- /dev/null
+++ b/lib/commons-api/src/main/java/org/apache/olingo/commons/api/edm/provider/CsdlOnDelete.java
@@ -0,0 +1,38 @@
+/*
+ * 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.commons.api.edm.provider;
+
+
+
+public class CsdlOnDelete extends CsdlAbstractEdmItem {
+
+  private static final long serialVersionUID = -7130889202653716784L;
+
+  private CsdlOnDeleteAction action = CsdlOnDeleteAction.None;
+
+  public CsdlOnDeleteAction getAction() {
+    return action;
+  }
+
+  public CsdlOnDelete setAction(final CsdlOnDeleteAction action) {
+    this.action = action;
+    return this;
+  }
+  
+}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/2318953c/lib/commons-api/src/main/java/org/apache/olingo/commons/api/edm/provider/CsdlOnDeleteAction.java
----------------------------------------------------------------------
diff --git a/lib/commons-api/src/main/java/org/apache/olingo/commons/api/edm/provider/CsdlOnDeleteAction.java b/lib/commons-api/src/main/java/org/apache/olingo/commons/api/edm/provider/CsdlOnDeleteAction.java
new file mode 100644
index 0000000..822f0ce
--- /dev/null
+++ b/lib/commons-api/src/main/java/org/apache/olingo/commons/api/edm/provider/CsdlOnDeleteAction.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.commons.api.edm.provider;
+
+public enum CsdlOnDeleteAction {
+
+  Cascade,
+  None,
+  SetNull,
+  SetDefault
+
+}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/2318953c/lib/commons-api/src/main/java/org/apache/olingo/commons/api/edm/provider/CsdlOperation.java
----------------------------------------------------------------------
diff --git a/lib/commons-api/src/main/java/org/apache/olingo/commons/api/edm/provider/CsdlOperation.java b/lib/commons-api/src/main/java/org/apache/olingo/commons/api/edm/provider/CsdlOperation.java
new file mode 100644
index 0000000..e7cd6af
--- /dev/null
+++ b/lib/commons-api/src/main/java/org/apache/olingo/commons/api/edm/provider/CsdlOperation.java
@@ -0,0 +1,92 @@
+/*
+ * 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.commons.api.edm.provider;
+
+import java.util.ArrayList;
+import java.util.List;
+
+public abstract class CsdlOperation extends CsdlAbstractEdmItem implements CsdlNamed, CsdlAnnotatable {
+
+  private static final long serialVersionUID = -3842411084067064086L;
+
+  protected String name;
+
+  protected boolean isBound = false;
+
+  protected String entitySetPath;
+
+  protected List<CsdlParameter> parameters = new ArrayList<CsdlParameter>();
+
+  protected CsdlReturnType returnType;
+  
+  protected final List<CsdlAnnotation> annotations = new ArrayList<CsdlAnnotation>();
+
+  public String getName() {
+    return name;
+  }
+
+  public CsdlOperation setName(final String name) {
+    this.name = name;
+    return this;
+  }
+
+  public boolean isBound() {
+    return isBound;
+  }
+
+  public CsdlOperation setBound(final boolean isBound) {
+    this.isBound = isBound;
+    return this;
+  }
+
+  public String getEntitySetPath() {
+    return entitySetPath;
+  }
+
+  public CsdlOperation setEntitySetPath(final String entitySetPath) {
+    this.entitySetPath = entitySetPath;
+    return this;
+  }
+
+  public List<CsdlParameter> getParameters() {
+    return parameters;
+  }
+  
+  public CsdlParameter getParameter(String name) {
+    return getOneByName(name, getParameters());
+  }
+
+  public CsdlOperation setParameters(final List<CsdlParameter> parameters) {
+    this.parameters = parameters;
+    return this;
+  }
+
+  public CsdlReturnType getReturnType() {
+    return returnType;
+  }
+
+  public CsdlOperation setReturnType(final CsdlReturnType returnType) {
+    this.returnType = returnType;
+    return this;
+  }
+  
+  public List<CsdlAnnotation> getAnnotations() {
+    return annotations;
+  }
+}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/2318953c/lib/commons-api/src/main/java/org/apache/olingo/commons/api/edm/provider/CsdlOperationImport.java
----------------------------------------------------------------------
diff --git a/lib/commons-api/src/main/java/org/apache/olingo/commons/api/edm/provider/CsdlOperationImport.java b/lib/commons-api/src/main/java/org/apache/olingo/commons/api/edm/provider/CsdlOperationImport.java
new file mode 100644
index 0000000..af21471
--- /dev/null
+++ b/lib/commons-api/src/main/java/org/apache/olingo/commons/api/edm/provider/CsdlOperationImport.java
@@ -0,0 +1,54 @@
+/*
+ * 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.commons.api.edm.provider;
+
+import java.util.ArrayList;
+import java.util.List;
+
+public abstract class CsdlOperationImport extends CsdlAbstractEdmItem implements CsdlNamed, CsdlAnnotatable {
+
+  private static final long serialVersionUID = -8928186067970681061L;
+
+  protected String name;
+  protected String entitySet;
+  protected final List<CsdlAnnotation> annotations = new ArrayList<CsdlAnnotation>();
+
+  public String getName() {
+    return name;
+  }
+
+  public CsdlOperationImport setName(final String name) {
+    this.name = name;
+    return this;
+  }
+
+  public String getEntitySet() {
+    return entitySet;
+  }
+
+  public CsdlOperationImport setEntitySet(final String entitySet) {
+    this.entitySet = entitySet;
+    return this;
+  }
+  
+  @Override
+  public List<CsdlAnnotation> getAnnotations() {
+    return annotations;
+  }
+}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/2318953c/lib/commons-api/src/main/java/org/apache/olingo/commons/api/edm/provider/CsdlParameter.java
----------------------------------------------------------------------
diff --git a/lib/commons-api/src/main/java/org/apache/olingo/commons/api/edm/provider/CsdlParameter.java b/lib/commons-api/src/main/java/org/apache/olingo/commons/api/edm/provider/CsdlParameter.java
new file mode 100644
index 0000000..15c2c3a
--- /dev/null
+++ b/lib/commons-api/src/main/java/org/apache/olingo/commons/api/edm/provider/CsdlParameter.java
@@ -0,0 +1,146 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ * 
+ * http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.olingo.commons.api.edm.provider;
+
+import java.util.ArrayList;
+import java.util.List;
+
+import org.apache.olingo.commons.api.edm.FullQualifiedName;
+import org.apache.olingo.commons.api.edm.geo.SRID;
+
+public class CsdlParameter extends CsdlAbstractEdmItem implements CsdlNamed, CsdlAnnotatable {
+
+  private static final long serialVersionUID = -7360900923880732015L;
+
+  private String name;
+
+  private FullQualifiedName type;
+
+  private boolean isCollection;
+
+  private CsdlMapping mapping;
+
+  // Facets
+  private boolean nullable = true;
+
+  private Integer maxLength;
+
+  private Integer precision;
+
+  private Integer scale;
+  
+  private SRID srid;
+
+  private final List<CsdlAnnotation> annotations = new ArrayList<CsdlAnnotation>();
+
+  public String getName() {
+    return name;
+  }
+
+  public CsdlParameter setName(final String name) {
+    this.name = name;
+    return this;
+  }
+
+  public String getType() {
+    return type.getFullQualifiedNameAsString();
+  }
+  
+  public FullQualifiedName getTypeFQN() {
+    return type;
+  }
+
+  public CsdlParameter setType(final String type) {
+    this.type = new FullQualifiedName(type);
+    return this;
+  }
+  
+  public CsdlParameter setType(final FullQualifiedName type) {
+    this.type = type;
+    return this;
+  }
+
+  public boolean isCollection() {
+    return isCollection;
+  }
+
+  public CsdlParameter setCollection(final boolean isCollection) {
+    this.isCollection = isCollection;
+    return this;
+  }
+
+  public boolean isNullable() {
+    return nullable;
+  }
+
+  public CsdlParameter setNullable(final boolean nullable) {
+    this.nullable = nullable;
+    return this;
+  }
+
+  public Integer getMaxLength() {
+    return maxLength;
+  }
+
+  public CsdlParameter setMaxLength(final Integer maxLength) {
+    this.maxLength = maxLength;
+    return this;
+  }
+
+  public Integer getPrecision() {
+    return precision;
+  }
+
+  public CsdlParameter setPrecision(final Integer precision) {
+    this.precision = precision;
+    return this;
+  }
+
+  public Integer getScale() {
+    return scale;
+  }
+
+  public CsdlParameter setScale(final Integer scale) {
+    this.scale = scale;
+    return this;
+  }
+  
+  public SRID getSrid() {
+    return srid;
+  }
+
+  public CsdlParameter setSrid(final SRID srid) {
+    this.srid = srid;
+    return this;
+  }
+
+  @Override
+  public List<CsdlAnnotation> getAnnotations() {
+    return annotations;
+  }
+
+  public CsdlMapping getMapping() {
+    return mapping;
+  }
+
+  public CsdlParameter setMapping(final CsdlMapping mapping) {
+    this.mapping = mapping;
+    return this;
+  }
+}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/2318953c/lib/commons-api/src/main/java/org/apache/olingo/commons/api/edm/provider/CsdlProperty.java
----------------------------------------------------------------------
diff --git a/lib/commons-api/src/main/java/org/apache/olingo/commons/api/edm/provider/CsdlProperty.java b/lib/commons-api/src/main/java/org/apache/olingo/commons/api/edm/provider/CsdlProperty.java
new file mode 100644
index 0000000..42f7b65
--- /dev/null
+++ b/lib/commons-api/src/main/java/org/apache/olingo/commons/api/edm/provider/CsdlProperty.java
@@ -0,0 +1,180 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ * 
+ * http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.olingo.commons.api.edm.provider;
+
+import java.util.ArrayList;
+import java.util.List;
+
+import org.apache.olingo.commons.api.edm.FullQualifiedName;
+import org.apache.olingo.commons.api.edm.geo.SRID;
+
+public class CsdlProperty extends CsdlAbstractEdmItem implements CsdlNamed, CsdlAnnotatable {
+  
+  private static final long serialVersionUID = -4224390853690843450L;
+
+  private String name;
+
+  private String type;
+
+  private boolean collection;
+
+  private String mimeType;
+
+  private CsdlMapping mapping;
+
+  // Facets
+  private String defaultValue;
+
+  private boolean nullable = true;
+
+  private Integer maxLength;
+
+  private Integer precision;
+
+  private Integer scale;
+
+  private boolean unicode = true;
+  
+  private SRID srid;
+
+  private List<CsdlAnnotation> annotations = new ArrayList<CsdlAnnotation>();
+  
+
+  public String getName() {
+    return name;
+  }
+
+  public CsdlProperty setName(final String name) {
+    this.name = name;
+    return this;
+  }
+
+  public String getType() {
+    return type;
+  }
+
+  public CsdlProperty setType(final String type) {
+    this.type = type;
+    return this;
+  }
+  
+  public FullQualifiedName getTypeAsFQNObject(){
+    return new FullQualifiedName(type);
+  }
+  
+  public CsdlProperty setType(FullQualifiedName fqnName){
+    this.type = fqnName.getFullQualifiedNameAsString();
+    return this;
+  }
+
+  public boolean isCollection() {
+    return collection;
+  }
+
+  public CsdlProperty setCollection(final boolean isCollection) {
+    collection = isCollection;
+    return this;
+  }
+
+  public String getDefaultValue() {
+    return defaultValue;
+  }
+
+  public CsdlProperty setDefaultValue(final String defaultValue) {
+    this.defaultValue = defaultValue;
+    return this;
+  }
+
+  public boolean isNullable() {
+    return nullable;
+  }
+
+  public CsdlProperty setNullable(final boolean nullable) {
+    this.nullable = nullable;
+    return this;
+  }
+
+  public Integer getMaxLength() {
+    return maxLength;
+  }
+
+  public CsdlProperty setMaxLength(final Integer maxLength) {
+    this.maxLength = maxLength;
+    return this;
+  }
+
+  public Integer getPrecision() {
+    return precision;
+  }
+
+  public CsdlProperty setPrecision(final Integer precision) {
+    this.precision = precision;
+    return this;
+  }
+
+  public Integer getScale() {
+    return scale;
+  }
+
+  public CsdlProperty setScale(final Integer scale) {
+    this.scale = scale;
+    return this;
+  }
+
+  public boolean isUnicode() {
+    return unicode;
+  }
+
+  public CsdlProperty setUnicode(final boolean unicode) {
+    this.unicode = unicode;
+    return this;
+  }
+
+  public String getMimeType() {
+    return mimeType;
+  }
+
+  public CsdlProperty setMimeType(final String mimeType) {
+    this.mimeType = mimeType;
+    return this;
+  }
+
+  public CsdlMapping getMapping() {
+    return mapping;
+  }
+
+  public CsdlProperty setMapping(final CsdlMapping mapping) {
+    this.mapping = mapping;
+    return this;
+  }
+
+  @Override
+  public List<CsdlAnnotation> getAnnotations() {
+    return annotations;
+  }
+  
+  public CsdlProperty setSrid(final SRID srid) {
+    this.srid = srid;
+    return this;
+  }
+  
+  public SRID getSrid() {
+    return srid;
+  }
+}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/2318953c/lib/commons-api/src/main/java/org/apache/olingo/commons/api/edm/provider/CsdlPropertyRef.java
----------------------------------------------------------------------
diff --git a/lib/commons-api/src/main/java/org/apache/olingo/commons/api/edm/provider/CsdlPropertyRef.java b/lib/commons-api/src/main/java/org/apache/olingo/commons/api/edm/provider/CsdlPropertyRef.java
new file mode 100644
index 0000000..a57ce4e
--- /dev/null
+++ b/lib/commons-api/src/main/java/org/apache/olingo/commons/api/edm/provider/CsdlPropertyRef.java
@@ -0,0 +1,46 @@
+/*
+ * 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.commons.api.edm.provider;
+
+public class CsdlPropertyRef extends CsdlAbstractEdmItem implements CsdlNamed {
+
+  private static final long serialVersionUID = 9082892362895660037L;
+
+  private String name;
+
+  private String alias;
+
+  public String getName() {
+    return name;
+  }
+
+  public CsdlPropertyRef setName(final String name) {
+    this.name = name;
+    return this;
+  }
+
+  public String getAlias() {
+    return alias;
+  }
+
+  public CsdlPropertyRef setAlias(final String alias) {
+    this.alias = alias;
+    return this;
+  }
+}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/2318953c/lib/commons-api/src/main/java/org/apache/olingo/commons/api/edm/provider/CsdlReferentialConstraint.java
----------------------------------------------------------------------
diff --git a/lib/commons-api/src/main/java/org/apache/olingo/commons/api/edm/provider/CsdlReferentialConstraint.java b/lib/commons-api/src/main/java/org/apache/olingo/commons/api/edm/provider/CsdlReferentialConstraint.java
new file mode 100644
index 0000000..7c06724
--- /dev/null
+++ b/lib/commons-api/src/main/java/org/apache/olingo/commons/api/edm/provider/CsdlReferentialConstraint.java
@@ -0,0 +1,56 @@
+/*
+ * 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.commons.api.edm.provider;
+
+import java.util.ArrayList;
+import java.util.List;
+
+public class CsdlReferentialConstraint extends CsdlAbstractEdmItem implements CsdlAnnotatable {
+
+  private static final long serialVersionUID = -7467707499798840075L;
+
+  private String property;
+
+  private String referencedProperty;
+
+  private final List<CsdlAnnotation> annotations = new ArrayList<CsdlAnnotation>();
+
+  public String getProperty() {
+    return property;
+  }
+
+  public CsdlReferentialConstraint setProperty(final String property) {
+    this.property = property;
+    return this;
+  }
+
+  public String getReferencedProperty() {
+    return referencedProperty;
+  }
+
+  public CsdlReferentialConstraint setReferencedProperty(final String referencedProperty) {
+    this.referencedProperty = referencedProperty;
+    return this;
+  }
+  
+  @Override
+  public List<CsdlAnnotation> getAnnotations() {
+    return annotations;
+  }
+}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/2318953c/lib/commons-api/src/main/java/org/apache/olingo/commons/api/edm/provider/CsdlReturnType.java
----------------------------------------------------------------------
diff --git a/lib/commons-api/src/main/java/org/apache/olingo/commons/api/edm/provider/CsdlReturnType.java b/lib/commons-api/src/main/java/org/apache/olingo/commons/api/edm/provider/CsdlReturnType.java
new file mode 100644
index 0000000..f0d5e9e
--- /dev/null
+++ b/lib/commons-api/src/main/java/org/apache/olingo/commons/api/edm/provider/CsdlReturnType.java
@@ -0,0 +1,114 @@
+/*
+ * 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.commons.api.edm.provider;
+
+import org.apache.olingo.commons.api.edm.FullQualifiedName;
+import org.apache.olingo.commons.api.edm.geo.SRID;
+
+public class CsdlReturnType extends CsdlAbstractEdmItem {
+
+  private static final long serialVersionUID = 4816954124986010965L;
+
+  private FullQualifiedName type;
+
+  private boolean isCollection;
+
+  // facets
+  private boolean nullable = true;
+
+  private Integer maxLength;
+
+  private Integer precision;
+
+  private Integer scale;
+  
+  private SRID srid;
+
+  public String getType() {
+    return type.getFullQualifiedNameAsString();
+  }
+  
+  public FullQualifiedName getTypeFQN() {
+    return type;
+  }
+
+  public CsdlReturnType setType(final String type) {
+    this.type = new FullQualifiedName(type);
+    return this;
+  }
+  
+  public CsdlReturnType setType(final FullQualifiedName type) {
+    this.type = type;
+    return this;
+  }
+
+  public boolean isCollection() {
+    return isCollection;
+  }
+
+  public CsdlReturnType setCollection(final boolean isCollection) {
+    this.isCollection = isCollection;
+    return this;
+  }
+
+  public boolean isNullable() {
+    return nullable;
+  }
+
+  public CsdlReturnType setNullable(final boolean nullable) {
+    this.nullable = nullable;
+    return this;
+  }
+
+  public Integer getMaxLength() {
+    return maxLength;
+  }
+
+  public CsdlReturnType setMaxLength(final Integer maxLength) {
+    this.maxLength = maxLength;
+    return this;
+  }
+
+  public Integer getPrecision() {
+    return precision;
+  }
+
+  public CsdlReturnType setPrecision(final Integer precision) {
+    this.precision = precision;
+    return this;
+  }
+
+  public Integer getScale() {
+    return scale;
+  }
+
+  public CsdlReturnType setScale(final Integer scale) {
+    this.scale = scale;
+    return this;
+  }
+
+  public SRID getSrid() {
+    return srid;
+  }
+
+  public CsdlReturnType setSrid(final SRID srid) {
+    this.srid = srid;
+    return this;
+  }
+}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/2318953c/lib/commons-api/src/main/java/org/apache/olingo/commons/api/edm/provider/CsdlSchema.java
----------------------------------------------------------------------
diff --git a/lib/commons-api/src/main/java/org/apache/olingo/commons/api/edm/provider/CsdlSchema.java b/lib/commons-api/src/main/java/org/apache/olingo/commons/api/edm/provider/CsdlSchema.java
new file mode 100644
index 0000000..8300eaa
--- /dev/null
+++ b/lib/commons-api/src/main/java/org/apache/olingo/commons/api/edm/provider/CsdlSchema.java
@@ -0,0 +1,265 @@
+/*
+ * 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.commons.api.edm.provider;
+
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
+public class CsdlSchema extends CsdlAbstractEdmItem implements CsdlAnnotatable {
+  
+  private static final long serialVersionUID = -1527213201328056750L;
+
+  private String namespace;
+
+  private String alias;
+
+  private List<CsdlEnumType> enumTypes = new ArrayList<CsdlEnumType>();
+
+  private List<CsdlTypeDefinition> typeDefinitions = new ArrayList<CsdlTypeDefinition>();
+
+  private List<CsdlEntityType> entityTypes = new ArrayList<CsdlEntityType>();
+
+  private List<CsdlComplexType> complexTypes = new ArrayList<CsdlComplexType>();
+
+  private List<CsdlAction> actions = new ArrayList<CsdlAction>();
+
+  private List<CsdlFunction> functions = new ArrayList<CsdlFunction>();
+
+  private CsdlEntityContainer entityContainer;
+
+  private List<CsdlTerm> terms = new ArrayList<CsdlTerm>();
+  
+  private final List<CsdlAnnotations> annotationGroups = new ArrayList<CsdlAnnotations>();
+  
+  private final List<CsdlAnnotation> annotations = new ArrayList<CsdlAnnotation>();
+  
+  private Map<String, CsdlAnnotatable> annotatables;
+
+
+  public String getNamespace() {
+    return namespace;
+  }
+
+  public CsdlSchema setNamespace(final String namespace) {
+    this.namespace = namespace;
+    return this;
+  }
+
+  public String getAlias() {
+    return alias;
+  }
+
+  public CsdlSchema setAlias(final String alias) {
+    this.alias = alias;
+    return this;
+  }
+  
+  public List<CsdlEnumType> getEnumTypes() {
+    return enumTypes;
+  }
+  
+  public CsdlEnumType getEnumType(final String name) {
+    return getOneByName(name, getEnumTypes());
+  }
+
+  public CsdlSchema setEnumTypes(final List<CsdlEnumType> enumTypes) {
+    this.enumTypes = enumTypes;
+    return this;
+  }
+
+  public List<CsdlTypeDefinition> getTypeDefinitions() {
+    return typeDefinitions;
+  }
+
+  public CsdlTypeDefinition getTypeDefinition(final String name) {
+    return getOneByName(name, getTypeDefinitions());
+  }
+  
+  public CsdlSchema setTypeDefinitions(final List<CsdlTypeDefinition> typeDefinitions) {
+    this.typeDefinitions = typeDefinitions;
+    return this;
+  }
+
+  public List<CsdlEntityType> getEntityTypes() {
+    return entityTypes;
+  }
+
+  public CsdlEntityType getEntityType(final String name) {
+    return getOneByName(name, getEntityTypes());
+  }
+  
+  public CsdlSchema setEntityTypes(final List<CsdlEntityType> entityTypes) {
+    this.entityTypes = entityTypes;
+    return this;
+  }
+
+  public List<CsdlComplexType> getComplexTypes() {
+    return complexTypes;
+  }
+
+  public CsdlComplexType getComplexType(final String name) {
+    return getOneByName(name, getComplexTypes());
+  }
+
+  public CsdlSchema setComplexTypes(final List<CsdlComplexType> complexTypes) {
+    this.complexTypes = complexTypes;
+    return this;
+  }
+
+  public List<CsdlAction> getActions() {
+    return actions;
+  }
+
+  /**
+   * All actions with the given name
+   * @param name
+   * @return a list of actions
+   */
+  public List<CsdlAction> getActions(final String name) {
+    return getAllByName(name, getActions());
+  }
+  
+  public CsdlSchema setActions(final List<CsdlAction> actions) {
+    this.actions = actions;
+    return this;
+  }
+
+  public List<CsdlFunction> getFunctions() {
+    return functions;
+  }
+  
+  /**
+   * All functions with the given name
+   * @param name
+   * @return a list of functions
+   */
+  public List<CsdlFunction> getFunctions(final String name) {
+    return getAllByName(name, getFunctions());
+  }
+
+  public CsdlSchema setFunctions(final List<CsdlFunction> functions) {
+    this.functions = functions;
+    return this;
+  }
+
+  public CsdlEntityContainer getEntityContainer() {
+    return entityContainer;
+  }
+
+  public CsdlSchema setEntityContainer(final CsdlEntityContainer entityContainer) {
+    this.entityContainer = entityContainer;
+    return this;
+  }
+
+  public List<CsdlTerm> getTerms() {
+    return terms;
+  }
+  
+  public CsdlTerm getTerm(final String name) {
+    return getOneByName(name, getTerms());
+  }
+
+
+  public CsdlSchema setTerms(final List<CsdlTerm> terms) {
+    this.terms = terms;
+    return this;
+  }
+  
+  public List<CsdlAnnotations> getAnnotationGroups() {
+    return annotationGroups;
+  }
+
+  public CsdlAnnotations getAnnotationGroup(final String target) {
+    CsdlAnnotations result = null;
+    for (CsdlAnnotations annots : getAnnotationGroups()) {
+      if (target.equals(annots.getTarget())) {
+        result = annots;
+      }
+    }
+    return result;
+  }
+
+  public CsdlAnnotation getAnnotation(final String term) {
+    CsdlAnnotation result = null;
+    for (CsdlAnnotation annot : getAnnotations()) {
+      if (term.equals(annot.getTerm())) {
+        result = annot;
+      }
+    }
+    return result;
+  }
+
+  public List<CsdlAnnotation> getAnnotations() {
+    return annotations;
+  }
+  
+  public Map<String, CsdlAnnotatable> getAnnotatables() {
+    if (annotatables == null) {
+      annotatables = new HashMap<String, CsdlAnnotatable>();
+      for (CsdlAnnotations annotationGroup : getAnnotationGroups()) {
+        annotatables.put(null, annotationGroup);
+      }
+      for (CsdlAnnotation annotation : getAnnotations()) {
+        annotatables.put(annotation.getTerm(), annotation);
+      }
+      for (CsdlAction action : getActions()) {
+        annotatables.put(action.getName(), action);
+      }
+      for (CsdlComplexType complexType : getComplexTypes()) {
+        annotatables.put(complexType.getName(), complexType);
+      }
+      for (CsdlEntityType entityType : getEntityTypes()) {
+        annotatables.put(entityType.getName(), entityType);
+      }
+      for (CsdlEnumType enumType : getEnumTypes()) {
+        annotatables.put(enumType.getName(), enumType);
+      }
+      for (CsdlFunction function : getFunctions()) {
+        annotatables.put(function.getName(), function);
+      }
+      for (CsdlTerm term : getTerms()) {
+        annotatables.put(term.getName(), term);
+      }
+      for (CsdlTypeDefinition typedef : getTypeDefinitions()) {
+        annotatables.put(typedef.getName(), typedef);
+      }
+      if (entityContainer != null) {
+        annotatables.put(entityContainer.getName(), entityContainer);
+        for (CsdlAnnotation annotation : entityContainer.getAnnotations()) {
+          annotatables.put(annotation.getTerm(), annotation);
+        }
+        for (CsdlActionImport actionImport : entityContainer.getActionImports()) {
+          annotatables.put(actionImport.getName(), actionImport);
+        }
+        for (CsdlFunctionImport functionImport : entityContainer.getFunctionImports()) {
+          annotatables.put(functionImport.getName(), functionImport);
+        }
+        for (CsdlEntitySet entitySet : entityContainer.getEntitySets()) {
+          annotatables.put(entitySet.getName(), entitySet);
+        }
+        for (CsdlSingleton singleton : entityContainer.getSingletons()) {
+          annotatables.put(singleton.getName(), singleton);
+        }
+      }
+    }
+    return annotatables;
+  }
+}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/2318953c/lib/commons-api/src/main/java/org/apache/olingo/commons/api/edm/provider/CsdlSingleton.java
----------------------------------------------------------------------
diff --git a/lib/commons-api/src/main/java/org/apache/olingo/commons/api/edm/provider/CsdlSingleton.java b/lib/commons-api/src/main/java/org/apache/olingo/commons/api/edm/provider/CsdlSingleton.java
new file mode 100644
index 0000000..c5ca253
--- /dev/null
+++ b/lib/commons-api/src/main/java/org/apache/olingo/commons/api/edm/provider/CsdlSingleton.java
@@ -0,0 +1,53 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ * 
+ * http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.olingo.commons.api.edm.provider;
+
+import java.util.List;
+
+import org.apache.olingo.commons.api.edm.FullQualifiedName;
+
+public class CsdlSingleton extends CsdlBindingTarget {
+
+  private static final long serialVersionUID = -3997943079062565895L;
+
+  @Override
+  public CsdlSingleton setName(final String name) {
+    this.name = name;
+    return this;
+  }
+
+  @Override
+  public CsdlSingleton setType(final String type) {
+    this.type = new FullQualifiedName(type);
+    return this;
+  }
+  
+  @Override
+  public CsdlSingleton setType(final FullQualifiedName type) {
+    this.type = type;
+    return this;
+  }
+
+  @Override
+  public CsdlSingleton setNavigationPropertyBindings(
+          final List<CsdlNavigationPropertyBinding> navigationPropertyBindings) {
+    this.navigationPropertyBindings = navigationPropertyBindings;
+    return this;
+  }
+}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/2318953c/lib/commons-api/src/main/java/org/apache/olingo/commons/api/edm/provider/CsdlStructuralType.java
----------------------------------------------------------------------
diff --git a/lib/commons-api/src/main/java/org/apache/olingo/commons/api/edm/provider/CsdlStructuralType.java b/lib/commons-api/src/main/java/org/apache/olingo/commons/api/edm/provider/CsdlStructuralType.java
new file mode 100644
index 0000000..fdadf48
--- /dev/null
+++ b/lib/commons-api/src/main/java/org/apache/olingo/commons/api/edm/provider/CsdlStructuralType.java
@@ -0,0 +1,122 @@
+/*
+ * 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.commons.api.edm.provider;
+
+import java.util.ArrayList;
+import java.util.List;
+
+import org.apache.olingo.commons.api.edm.FullQualifiedName;
+
+public abstract class CsdlStructuralType extends CsdlAbstractEdmItem implements CsdlNamed, CsdlAnnotatable {
+
+  private static final long serialVersionUID = 8662852373514258646L;
+
+  protected String name;
+
+  protected boolean isOpenType = false;
+
+  protected FullQualifiedName baseType;
+
+  protected boolean isAbstract;
+
+  protected List<CsdlProperty> properties = new ArrayList<CsdlProperty>();
+
+  protected List<CsdlNavigationProperty> navigationProperties = new ArrayList<CsdlNavigationProperty>();
+
+  protected final List<CsdlAnnotation> annotations = new ArrayList<CsdlAnnotation>();
+
+  public String getName() {
+    return name;
+  }
+
+  public CsdlStructuralType setName(final String name) {
+    this.name = name;
+    return this;
+  }
+
+  public boolean isOpenType() {
+    return isOpenType;
+  }
+
+  public CsdlStructuralType setOpenType(final boolean isOpenType) {
+    this.isOpenType = isOpenType;
+    return this;
+  }
+
+  public String getBaseType() {
+    if (baseType != null) {
+      return baseType.getFullQualifiedNameAsString();
+    }
+    return null;
+  }
+
+  public FullQualifiedName getBaseTypeFQN() {
+    return baseType;
+  }
+
+  public CsdlStructuralType setBaseType(final String baseType) {
+    this.baseType = new FullQualifiedName(baseType);
+    return this;
+  }
+
+  public CsdlStructuralType setBaseType(final FullQualifiedName baseType) {
+    this.baseType = baseType;
+    return this;
+  }
+
+  public boolean isAbstract() {
+    return isAbstract;
+  }
+
+  public CsdlStructuralType setAbstract(final boolean isAbstract) {
+    this.isAbstract = isAbstract;
+    return this;
+  }
+
+  public List<CsdlProperty> getProperties() {
+    return properties;
+  }
+
+  public CsdlProperty getProperty(String name) {
+    return getOneByName(name, properties);
+  }
+
+  public CsdlStructuralType setProperties(final List<CsdlProperty> properties) {
+    this.properties = properties;
+    return this;
+  }
+
+  public List<CsdlNavigationProperty> getNavigationProperties() {
+    return navigationProperties;
+  }
+
+  public CsdlNavigationProperty getNavigationProperty(String name) {
+    return getOneByName(name, navigationProperties);
+  }
+
+  public CsdlStructuralType setNavigationProperties(final List<CsdlNavigationProperty> navigationProperties) {
+    this.navigationProperties = navigationProperties;
+    return this;
+  }
+
+  @Override
+  public List<CsdlAnnotation> getAnnotations() {
+    return annotations;
+  }
+}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/2318953c/lib/commons-api/src/main/java/org/apache/olingo/commons/api/edm/provider/CsdlTerm.java
----------------------------------------------------------------------
diff --git a/lib/commons-api/src/main/java/org/apache/olingo/commons/api/edm/provider/CsdlTerm.java b/lib/commons-api/src/main/java/org/apache/olingo/commons/api/edm/provider/CsdlTerm.java
new file mode 100644
index 0000000..ace5e36
--- /dev/null
+++ b/lib/commons-api/src/main/java/org/apache/olingo/commons/api/edm/provider/CsdlTerm.java
@@ -0,0 +1,162 @@
+/*
+ * 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.commons.api.edm.provider;
+
+import java.util.ArrayList;
+import java.util.List;
+
+import org.apache.olingo.commons.api.edm.geo.SRID;
+
+public class CsdlTerm extends CsdlAbstractEdmItem implements CsdlNamed, CsdlAnnotatable {
+
+  private static final long serialVersionUID = 3843929000407818103L;
+
+  private String name;
+
+  private String type;
+
+  private String baseTerm;
+
+  private List<String> appliesTo = new ArrayList<String>();
+
+  private boolean isCollection;
+
+  // Facets
+  private String defaultValue;
+
+  private boolean nullable = true;
+
+  private Integer maxLength;
+
+  private Integer precision;
+
+  private Integer scale;
+  
+  private SRID srid;
+
+  private List<CsdlAnnotation> annotations = new ArrayList<CsdlAnnotation>();
+
+  public String getName() {
+    return name;
+  }
+
+  public CsdlTerm setName(final String name) {
+    this.name = name;
+    return this;
+  }
+
+  public String getType() {
+    return type;
+  }
+
+  public CsdlTerm setType(final String type) {
+    this.type = type;
+    return this;
+  }
+
+  public String getBaseTerm() {
+    return baseTerm;
+  }
+
+  public CsdlTerm setBaseTerm(final String baseTerm) {
+    this.baseTerm = baseTerm;
+    return this;
+  }
+
+  public List<String> getAppliesTo() {
+    return appliesTo;
+  }
+
+  public CsdlTerm setAppliesTo(final List<String> appliesTo) {
+    this.appliesTo = appliesTo;
+    return this;
+  }
+
+  public boolean isCollection() {
+    return isCollection;
+  }
+
+  public CsdlTerm setCollection(final boolean isCollection) {
+    this.isCollection = isCollection;
+    return this;
+  }
+
+  public String getDefaultValue() {
+    return defaultValue;
+  }
+
+  public CsdlTerm setDefaultValue(final String defaultValue) {
+    this.defaultValue = defaultValue;
+    return this;
+  }
+
+  public boolean isNullable() {
+    return nullable;
+  }
+
+  public CsdlTerm setNullable(final boolean nullable) {
+    this.nullable = nullable;
+    return this;
+  }
+
+  public Integer getMaxLength() {
+    return maxLength;
+  }
+
+  public CsdlTerm setMaxLength(final Integer maxLength) {
+    this.maxLength = maxLength;
+    return this;
+  }
+
+  public Integer getPrecision() {
+    return precision;
+  }
+
+  public CsdlTerm setPrecision(final Integer precision) {
+    this.precision = precision;
+    return this;
+  }
+
+  public Integer getScale() {
+    return scale;
+  }
+
+  public CsdlTerm setScale(final Integer scale) {
+    this.scale = scale;
+    return this;
+  }
+
+  public List<CsdlAnnotation> getAnnotations() {
+    return annotations;
+  }
+
+  public CsdlTerm setAnnotations(final List<CsdlAnnotation> annotations) {
+    this.annotations = annotations;
+    return this;
+  }
+  
+  public SRID getSrid() {
+    return srid;
+  }
+
+  public CsdlTerm setSrid(final SRID srid) {
+    this.srid = srid;
+    return this;
+  }
+}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/2318953c/lib/commons-api/src/main/java/org/apache/olingo/commons/api/edm/provider/CsdlTypeDefinition.java
----------------------------------------------------------------------
diff --git a/lib/commons-api/src/main/java/org/apache/olingo/commons/api/edm/provider/CsdlTypeDefinition.java b/lib/commons-api/src/main/java/org/apache/olingo/commons/api/edm/provider/CsdlTypeDefinition.java
new file mode 100644
index 0000000..705c040
--- /dev/null
+++ b/lib/commons-api/src/main/java/org/apache/olingo/commons/api/edm/provider/CsdlTypeDefinition.java
@@ -0,0 +1,123 @@
+/*
+ * 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.commons.api.edm.provider;
+
+import java.util.ArrayList;
+import java.util.List;
+
+import org.apache.olingo.commons.api.edm.FullQualifiedName;
+import org.apache.olingo.commons.api.edm.geo.SRID;
+
+public class CsdlTypeDefinition extends CsdlAbstractEdmItem implements CsdlNamed, CsdlAnnotatable {
+
+  private static final long serialVersionUID = 3718980071229613048L;
+
+  private String name;
+
+  private FullQualifiedName underlyingType;
+
+  // Facets
+  private Integer maxLength;
+
+  private Integer precision;
+
+  private Integer scale;
+
+  private boolean unicode = true;
+
+  private SRID srid;
+
+  private final List<CsdlAnnotation> annotations = new ArrayList<CsdlAnnotation>();
+
+  public String getName() {
+    return name;
+  }
+
+  public CsdlTypeDefinition setName(final String name) {
+    this.name = name;
+    return this;
+  }
+
+  public String getUnderlyingType() {
+    if(underlyingType != null){
+      return underlyingType.getFullQualifiedNameAsString();
+    }
+    return null;
+  }
+
+  public CsdlTypeDefinition setUnderlyingType(final String underlyingType) {
+    this.underlyingType = new FullQualifiedName(underlyingType);
+    return this;
+  }
+  
+  public CsdlTypeDefinition setUnderlyingType(final FullQualifiedName underlyingType) {
+    this.underlyingType = underlyingType;
+    return this;
+  }
+
+  public Integer getMaxLength() {
+    return maxLength;
+  }
+
+  public CsdlTypeDefinition setMaxLength(final Integer maxLength) {
+    this.maxLength = maxLength;
+    return this;
+  }
+
+  public Integer getPrecision() {
+    return precision;
+  }
+
+  public CsdlTypeDefinition setPrecision(final Integer precision) {
+    this.precision = precision;
+    return this;
+  }
+
+  public Integer getScale() {
+    return scale;
+  }
+
+  public CsdlTypeDefinition setScale(final Integer scale) {
+    this.scale = scale;
+    return this;
+  }
+
+  public boolean isUnicode() {
+    return unicode;
+  }
+
+  public CsdlTypeDefinition setUnicode(final boolean unicode) {
+    this.unicode = unicode;
+    return this;
+  }
+
+  public SRID getSrid() {
+    return srid;
+  }
+
+  public CsdlTypeDefinition setSrid(final SRID srid) {
+    this.srid = srid;
+    return this;
+  }
+
+  @Override
+  public List<CsdlAnnotation> getAnnotations() {
+    return annotations;
+  }
+}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/2318953c/lib/commons-api/src/main/java/org/apache/olingo/commons/api/edm/provider/EdmProvider.java
----------------------------------------------------------------------
diff --git a/lib/commons-api/src/main/java/org/apache/olingo/commons/api/edm/provider/EdmProvider.java b/lib/commons-api/src/main/java/org/apache/olingo/commons/api/edm/provider/EdmProvider.java
deleted file mode 100644
index f3511d7..0000000
--- a/lib/commons-api/src/main/java/org/apache/olingo/commons/api/edm/provider/EdmProvider.java
+++ /dev/null
@@ -1,177 +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.commons.api.edm.provider;
-
-import java.util.List;
-
-import org.apache.olingo.commons.api.ODataException;
-import org.apache.olingo.commons.api.edm.FullQualifiedName;
-
-public interface EdmProvider {
-
-  /**
-   * This method should return an {@link EnumType} or <b>null</b> if nothing is found
-   * 
-   * @param enumTypeName
-   * @return {@link EnumType} for given name
-   * @throws ODataException
-   */
-  public EnumType getEnumType(final FullQualifiedName enumTypeName) throws ODataException;
-
-  /**
-   * This method should return an {@link TypeDefinition} or <b>null</b> if nothing is found
-   * 
-   * @param typeDefinitionName
-   * @return {@link TypeDefinition} for given name
-   * @throws ODataException
-   */
-  public TypeDefinition getTypeDefinition(final FullQualifiedName typeDefinitionName) throws ODataException;
-
-  /**
-   * This method should return an {@link EntityType} or <b>null</b> if nothing is found
-   * 
-   * @param entityTypeName
-   * @return {@link EntityType} for the given name
-   * @throws ODataException
-   */
-  public EntityType getEntityType(final FullQualifiedName entityTypeName) throws ODataException;
-
-  /**
-   * This method should return a {@link ComplexType} or <b>null</b> if nothing is found.
-   * 
-   * @param complexTypeName
-   * @return {@link ComplexType} for the given name
-   * @throws ODataException
-   */
-  public ComplexType getComplexType(final FullQualifiedName complexTypeName) throws ODataException;
-
-  /**
-   * This method should return a list of all {@link Action} for the FullQualifiedname or <b>null</b> if nothing is found
-   * 
-   * @param actionName
-   * @return List of {@link Action} or null
-   * @throws ODataException
-   */
-  public List<Action> getActions(final FullQualifiedName actionName) throws ODataException;
-
-  /**
-   * This method should return a list of all {@link Function} for the FullQualifiedname or <b>null</b> if nothing is
-   * found
-   * 
-   * @param functionName
-   * @return List of {@link Function} or null
-   * @throws ODataException
-   */
-  public List<Function> getFunctions(final FullQualifiedName functionName) throws ODataException;
-
-  /**
-   * This method should return a {@link Term} for the FullQualifiedName or <b>null</b> if nothing is found.
-   * @param termName the name of the Term
-   * @return {@link Term} or null
-   * @throws ODataException
-   */
-  public Term getTerm(final FullQualifiedName termName) throws ODataException;
-
-  /**
-   * This method should return an {@link EntitySet} or <b>null</b> if nothing is found
-   * 
-   * @param entityContainer this EntitySet is contained in
-   * @param entitySetName
-   * @return {@link EntitySet} for the given container and entityset name
-   * @throws ODataException
-   */
-  public EntitySet getEntitySet(final FullQualifiedName entityContainer, final String entitySetName)
-      throws ODataException;
-
-  /**
-   * This method should return an {@link Singleton} or <b>null</b> if nothing is found
-   * 
-   * @param entityContainer this Singleton is contained in
-   * @param singletonName
-   * @return {@link Singleton} for given container and singleton name
-   * @throws ODataException
-   */
-  public Singleton getSingleton(final FullQualifiedName entityContainer, final String singletonName)
-      throws ODataException;
-
-  /**
-   * This method should return an {@link ActionImport} or <b>null</b> if nothing is found
-   * 
-   * @param entityContainer this ActionImport is contained in
-   * @param actionImportName
-   * @return {@link ActionImport} for the given container and ActionImport name
-   * @throws ODataException
-   */
-  public ActionImport getActionImport(final FullQualifiedName entityContainer, final String actionImportName)
-      throws ODataException;
-
-  /**
-   * This method should return a {@link FunctionImport} or <b>null</b> if nothing is found
-   * 
-   * @param entityContainer this FunctionImport is contained in
-   * @param functionImportName
-   * @return {@link FunctionImport} for the given container name and function import name
-   * @throws ODataException
-   */
-  public FunctionImport getFunctionImport(final FullQualifiedName entityContainer, final String functionImportName)
-      throws ODataException;
-
-  /**
-   * This method should return an {@link EntityContainerInfo} or <b>null</b> if nothing is found
-   * 
-   * @param entityContainerName (null for default container)
-   * @return {@link EntityContainerInfo} for the given name
-   * @throws ODataException
-   */
-  public EntityContainerInfo getEntityContainerInfo(final FullQualifiedName entityContainerName) throws ODataException;
-
-  /**
-   * This method should return a list of all namespaces which have an alias
-   * 
-   * @return List of alias info
-   * @throws ODataException
-   */
-  public List<AliasInfo> getAliasInfos() throws ODataException;
-
-  /**
-   * This method should return a collection of all {@link Schema}
-   * 
-   * @return List<{@link Schema}>
-   * @throws ODataException
-   */
-  public List<Schema> getSchemas() throws ODataException;
-
-  /**
-   * Returns the entity container of this edm
-   * @return {@link EntityContainer} of this edm
-   */
-  public EntityContainer getEntityContainer() throws ODataException;
-
-  /**
-   * @param targetName
-   * @return {@link Annotations} group for the given Target
-   */
-  public Annotations getAnnotationsGroup(FullQualifiedName targetName) throws ODataException;
-
-  /**
-   * @param annotatedName
-   * @return Annotatble element by target name
-   */
-  public Annotatable getAnnoatatable(FullQualifiedName annotatedName) throws ODataException;
-}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/2318953c/lib/commons-api/src/main/java/org/apache/olingo/commons/api/edm/provider/EntityContainer.java
----------------------------------------------------------------------
diff --git a/lib/commons-api/src/main/java/org/apache/olingo/commons/api/edm/provider/EntityContainer.java b/lib/commons-api/src/main/java/org/apache/olingo/commons/api/edm/provider/EntityContainer.java
deleted file mode 100644
index 802da48..0000000
--- a/lib/commons-api/src/main/java/org/apache/olingo/commons/api/edm/provider/EntityContainer.java
+++ /dev/null
@@ -1,159 +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.commons.api.edm.provider;
-
-import java.util.ArrayList;
-import java.util.List;
-
-import org.apache.olingo.commons.api.edm.FullQualifiedName;
-
-public class EntityContainer extends AbstractEdmItem implements Named, Annotatable {
-
-  private static final long serialVersionUID = 5384682515007129458L;
-
-  private String name;
-
-  private FullQualifiedName extendsContainer;
-
-  private List<EntitySet> entitySets = new ArrayList<EntitySet>();
-
-  private List<ActionImport> actionImports = new ArrayList<ActionImport>();
-
-  private List<FunctionImport> functionImports = new ArrayList<FunctionImport>();
-
-  private List<Singleton> singletons = new ArrayList<Singleton>();
-
-  private final List<Annotation> annotations = new ArrayList<Annotation>();
-
-  // Annotations
-  public String getName() {
-    return name;
-  }
-
-  public EntityContainer setName(final String name) {
-    this.name = name;
-    return this;
-  }
-
-  public String getExtendsContainer() {
-    if (extendsContainer != null) {
-      return extendsContainer.getFullQualifiedNameAsString();
-    }
-    return null;
-  }
-
-  public FullQualifiedName getExtendsContainerFQN() {
-    return extendsContainer;
-  }
-
-  public EntityContainer setExtendsContainer(final String extendsContainer) {
-    this.extendsContainer = new FullQualifiedName(extendsContainer);
-    return this;
-  }
-
-  public List<EntitySet> getEntitySets() {
-    return entitySets;
-  }
-
-  public EntitySet getEntitySet(final String name) {
-    return getOneByName(name, getEntitySets());
-  }
-
-  public EntityContainer setEntitySets(final List<EntitySet> entitySets) {
-    this.entitySets = entitySets;
-    return this;
-  }
-
-  public List<ActionImport> getActionImports() {
-    return actionImports;
-  }
-
-  /**
-   * Gets the first action import with given name.
-   *
-   * @param name name.
-   * @return action import.
-   */
-  public ActionImport getActionImport(final String name) {
-    return getOneByName(name, getActionImports());
-  }
-
-  /**
-   * Gets all action imports with given name.
-   *
-   * @param name name.
-   * @return action imports.
-   */
-  public List<ActionImport> getActionImports(final String name) {
-    return getAllByName(name, getActionImports());
-  }
-
-  public EntityContainer setActionImports(final List<ActionImport> actionImports) {
-    this.actionImports = actionImports;
-    return this;
-  }
-
-  public List<FunctionImport> getFunctionImports() {
-    return functionImports;
-  }
-
-  /**
-   * Gets the first function import with given name.
-   *
-   * @param name name.
-   * @return function import.
-   */
-  public FunctionImport getFunctionImport(final String name) {
-    return getOneByName(name, getFunctionImports());
-  }
-
-  /**
-   * Gets all function imports with given name.
-   *
-   * @param name name.
-   * @return function imports.
-   */
-  public List<FunctionImport> getFunctionImports(final String name) {
-    return getAllByName(name, getFunctionImports());
-  }
-
-  public EntityContainer setFunctionImports(final List<FunctionImport> functionImports) {
-    this.functionImports = functionImports;
-    return this;
-  }
-
-  public List<Singleton> getSingletons() {
-    return singletons;
-  }
-
-  public Singleton getSingleton(final String name) {
-    return getOneByName(name, getSingletons());
-  }
-
-  public EntityContainer setSingletons(final List<Singleton> singletons) {
-    this.singletons = singletons;
-    return this;
-  }
-
-  @Override
-  public List<Annotation> getAnnotations() {
-    return annotations;
-  }
-
-}


[40/50] [abbrv] olingo-odata4 git commit: [OLINGO-564] Renamed 'OData*' to 'Client*' classes

Posted by mi...@apache.org.
http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/c37d4da5/fit/src/test/java/org/apache/olingo/fit/tecsvc/client/BasicITCase.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/tecsvc/client/BasicITCase.java b/fit/src/test/java/org/apache/olingo/fit/tecsvc/client/BasicITCase.java
index 5beec7b..8a19000 100644
--- a/fit/src/test/java/org/apache/olingo/fit/tecsvc/client/BasicITCase.java
+++ b/fit/src/test/java/org/apache/olingo/fit/tecsvc/client/BasicITCase.java
@@ -53,17 +53,17 @@ import org.apache.olingo.client.api.communication.response.ODataRetrieveResponse
 import org.apache.olingo.client.api.edm.xml.Reference;
 import org.apache.olingo.client.api.edm.xml.XMLMetadata;
 import org.apache.olingo.client.core.ODataClientFactory;
-import org.apache.olingo.commons.api.domain.ODataAnnotation;
-import org.apache.olingo.commons.api.domain.ODataComplexValue;
-import org.apache.olingo.commons.api.domain.ODataEntity;
-import org.apache.olingo.commons.api.domain.ODataEntitySet;
-import org.apache.olingo.commons.api.domain.ODataError;
-import org.apache.olingo.commons.api.domain.ODataInlineEntity;
-import org.apache.olingo.commons.api.domain.ODataInlineEntitySet;
-import org.apache.olingo.commons.api.domain.ODataObjectFactory;
-import org.apache.olingo.commons.api.domain.ODataProperty;
-import org.apache.olingo.commons.api.domain.ODataServiceDocument;
-import org.apache.olingo.commons.api.domain.ODataValue;
+import org.apache.olingo.commons.api.domain.ClientAnnotation;
+import org.apache.olingo.commons.api.domain.ClientComplexValue;
+import org.apache.olingo.commons.api.domain.ClientEntity;
+import org.apache.olingo.commons.api.domain.ClientEntitySet;
+import org.apache.olingo.commons.api.domain.ClientError;
+import org.apache.olingo.commons.api.domain.ClientInlineEntity;
+import org.apache.olingo.commons.api.domain.ClientInlineEntitySet;
+import org.apache.olingo.commons.api.domain.ClientObjectFactory;
+import org.apache.olingo.commons.api.domain.ClientProperty;
+import org.apache.olingo.commons.api.domain.ClientServiceDocument;
+import org.apache.olingo.commons.api.domain.ClientValue;
 import org.apache.olingo.commons.api.edm.Edm;
 import org.apache.olingo.commons.api.edm.EdmPrimitiveTypeException;
 import org.apache.olingo.commons.api.edm.FullQualifiedName;
@@ -85,10 +85,10 @@ public class BasicITCase extends AbstractBaseTestITCase {
         .getServiceDocumentRequest(SERVICE_URI);
     assertNotNull(request);
 
-    ODataRetrieveResponse<ODataServiceDocument> response = request.execute();
+    ODataRetrieveResponse<ClientServiceDocument> response = request.execute();
     assertEquals(HttpStatusCode.OK.getStatusCode(), response.getStatusCode());
 
-    ODataServiceDocument serviceDocument = response.getBody();
+    ClientServiceDocument serviceDocument = response.getBody();
     assertNotNull(serviceDocument);
 
     assertThat(serviceDocument.getEntitySetNames(), hasItem("ESAllPrim"));
@@ -134,29 +134,29 @@ public class BasicITCase extends AbstractBaseTestITCase {
 
   @Test
   public void readEntitySet() {
-    final ODataEntitySetRequest<ODataEntitySet> request = getClient().getRetrieveRequestFactory()
+    final ODataEntitySetRequest<ClientEntitySet> request = getClient().getRetrieveRequestFactory()
         .getEntitySetRequest(getClient().newURIBuilder(SERVICE_URI)
             .appendEntitySetSegment("ESMixPrimCollComp").build());
     assertNotNull(request);
 
-    final ODataRetrieveResponse<ODataEntitySet> response = request.execute();
+    final ODataRetrieveResponse<ClientEntitySet> response = request.execute();
     assertEquals(HttpStatusCode.OK.getStatusCode(), response.getStatusCode());
     assertThat(response.getContentType(), containsString(ContentType.APPLICATION_JSON.toContentTypeString()));
 
-    final ODataEntitySet entitySet = response.getBody();
+    final ClientEntitySet entitySet = response.getBody();
     assertNotNull(entitySet);
 
     assertNull(entitySet.getCount());
     assertNull(entitySet.getNext());
-    assertEquals(Collections.<ODataAnnotation> emptyList(), entitySet.getAnnotations());
+    assertEquals(Collections.<ClientAnnotation> emptyList(), entitySet.getAnnotations());
     assertNull(entitySet.getDeltaLink());
 
-    final List<ODataEntity> entities = entitySet.getEntities();
+    final List<ClientEntity> entities = entitySet.getEntities();
     assertNotNull(entities);
     assertEquals(3, entities.size());
-    final ODataEntity entity = entities.get(2);
+    final ClientEntity entity = entities.get(2);
     assertNotNull(entity);
-    final ODataProperty property = entity.getProperty("PropertyInt16");
+    final ClientProperty property = entity.getProperty("PropertyInt16");
     assertNotNull(property);
     assertNotNull(property.getPrimitiveValue());
     assertEquals(0, property.getPrimitiveValue().toValue());
@@ -164,7 +164,7 @@ public class BasicITCase extends AbstractBaseTestITCase {
 
   @Test
   public void readException() throws Exception {
-    final ODataEntityRequest<ODataEntity> request = getClient().getRetrieveRequestFactory()
+    final ODataEntityRequest<ClientEntity> request = getClient().getRetrieveRequestFactory()
         .getEntityRequest(getClient().newURIBuilder(SERVICE_URI)
             .appendEntitySetSegment("ESMixPrimCollComp").appendKeySegment("42").build());
     assertNotNull(request);
@@ -174,29 +174,29 @@ public class BasicITCase extends AbstractBaseTestITCase {
       fail("Expected Exception not thrown!");
     } catch (final ODataClientErrorException e) {
       assertEquals(HttpStatusCode.BAD_REQUEST.getStatusCode(), e.getStatusLine().getStatusCode());
-      final ODataError error = e.getODataError();
+      final ClientError error = e.getODataError();
       assertThat(error.getMessage(), containsString("key property"));
     }
   }
 
   @Test
   public void readEntity() throws Exception {
-    final ODataEntityRequest<ODataEntity> request = getClient().getRetrieveRequestFactory()
+    final ODataEntityRequest<ClientEntity> request = getClient().getRetrieveRequestFactory()
         .getEntityRequest(getClient().newURIBuilder(SERVICE_URI)
             .appendEntitySetSegment("ESCollAllPrim").appendKeySegment(1).build());
     assertNotNull(request);
 
-    final ODataRetrieveResponse<ODataEntity> response = request.execute();
+    final ODataRetrieveResponse<ClientEntity> response = request.execute();
     assertEquals(HttpStatusCode.OK.getStatusCode(), response.getStatusCode());
     assertThat(response.getContentType(), containsString(ContentType.APPLICATION_JSON.toContentTypeString()));
 
-    final ODataEntity entity = response.getBody();
+    final ClientEntity entity = response.getBody();
     assertNotNull(entity);
-    final ODataProperty property = entity.getProperty("CollPropertyInt16");
+    final ClientProperty property = entity.getProperty("CollPropertyInt16");
     assertNotNull(property);
     assertNotNull(property.getCollectionValue());
     assertEquals(3, property.getCollectionValue().size());
-    Iterator<ODataValue> iterator = property.getCollectionValue().iterator();
+    Iterator<ClientValue> iterator = property.getCollectionValue().iterator();
     assertEquals(1000, iterator.next().asPrimitive().toValue());
     assertEquals(2000, iterator.next().asPrimitive().toValue());
     assertEquals(30112, iterator.next().asPrimitive().toValue());
@@ -213,7 +213,7 @@ public class BasicITCase extends AbstractBaseTestITCase {
 
     // Check that the deleted entity is really gone.
     // This check has to be in the same session in order to access the same data provider.
-    ODataEntityRequest<ODataEntity> entityRequest = client.getRetrieveRequestFactory().getEntityRequest(uri);
+    ODataEntityRequest<ClientEntity> entityRequest = client.getRetrieveRequestFactory().getEntityRequest(uri);
     entityRequest.addCustomHeader(HttpHeader.COOKIE, response.getHeader(HttpHeader.SET_COOKIE).iterator().next());
     try {
       entityRequest.execute();
@@ -226,8 +226,8 @@ public class BasicITCase extends AbstractBaseTestITCase {
   @Test
   public void patchEntity() throws Exception {
     final ODataClient client = getClient();
-    final ODataObjectFactory factory = client.getObjectFactory();
-    ODataEntity patchEntity = factory.newEntity(new FullQualifiedName("olingo.odata.test1", "ETAllPrim"));
+    final ClientObjectFactory factory = client.getObjectFactory();
+    ClientEntity patchEntity = factory.newEntity(new FullQualifiedName("olingo.odata.test1", "ETAllPrim"));
     patchEntity.getProperties().add(factory.newPrimitiveProperty("PropertyString",
         factory.newPrimitiveValueBuilder().buildString("new")));
     patchEntity.getProperties().add(factory.newPrimitiveProperty("PropertyDecimal",
@@ -236,29 +236,29 @@ public class BasicITCase extends AbstractBaseTestITCase {
         factory.newPrimitiveValueBuilder().buildInt64(null)));
     final URI uri = client.newURIBuilder(SERVICE_URI).appendEntitySetSegment("ESAllPrim").appendKeySegment(32767)
         .build();
-    final ODataEntityUpdateRequest<ODataEntity> request = client.getCUDRequestFactory().getEntityUpdateRequest(
+    final ODataEntityUpdateRequest<ClientEntity> request = client.getCUDRequestFactory().getEntityUpdateRequest(
         uri, UpdateType.PATCH, patchEntity);
-    final ODataEntityUpdateResponse<ODataEntity> response = request.execute();
+    final ODataEntityUpdateResponse<ClientEntity> response = request.execute();
     assertEquals(HttpStatusCode.NO_CONTENT.getStatusCode(), response.getStatusCode());
 
     // Check that the patched properties have changed and the other properties not.
     // This check has to be in the same session in order to access the same data provider.
-    ODataEntityRequest<ODataEntity> entityRequest = client.getRetrieveRequestFactory().getEntityRequest(uri);
+    ODataEntityRequest<ClientEntity> entityRequest = client.getRetrieveRequestFactory().getEntityRequest(uri);
     entityRequest.addCustomHeader(HttpHeader.COOKIE, response.getHeader(HttpHeader.SET_COOKIE).iterator().next());
-    final ODataRetrieveResponse<ODataEntity> entityResponse = entityRequest.execute();
+    final ODataRetrieveResponse<ClientEntity> entityResponse = entityRequest.execute();
     assertEquals(HttpStatusCode.OK.getStatusCode(), entityResponse.getStatusCode());
-    final ODataEntity entity = entityResponse.getBody();
+    final ClientEntity entity = entityResponse.getBody();
     assertNotNull(entity);
-    final ODataProperty property1 = entity.getProperty("PropertyString");
+    final ClientProperty property1 = entity.getProperty("PropertyString");
     assertNotNull(property1);
     assertEquals("new", property1.getPrimitiveValue().toValue());
-    final ODataProperty property2 = entity.getProperty("PropertyDecimal");
+    final ClientProperty property2 = entity.getProperty("PropertyDecimal");
     assertNotNull(property2);
     assertEquals(42.875, property2.getPrimitiveValue().toValue());
-    final ODataProperty property3 = entity.getProperty("PropertyInt64");
+    final ClientProperty property3 = entity.getProperty("PropertyInt64");
     assertNotNull(property3);
     assertNull(property3.getPrimitiveValue());
-    final ODataProperty property4 = entity.getProperty("PropertyDuration");
+    final ClientProperty property4 = entity.getProperty("PropertyDuration");
     assertNotNull(property4);
     assertEquals("PT6S", property4.getPrimitiveValue().toValue());
   }
@@ -266,30 +266,30 @@ public class BasicITCase extends AbstractBaseTestITCase {
   @Test
   public void updateEntity() throws Exception {
     final ODataClient client = getClient();
-    final ODataObjectFactory factory = client.getObjectFactory();
-    ODataEntity newEntity = factory.newEntity(new FullQualifiedName("olingo.odata.test1", "ETAllPrim"));
+    final ClientObjectFactory factory = client.getObjectFactory();
+    ClientEntity newEntity = factory.newEntity(new FullQualifiedName("olingo.odata.test1", "ETAllPrim"));
     newEntity.getProperties().add(factory.newPrimitiveProperty("PropertyInt64",
         factory.newPrimitiveValueBuilder().buildInt32(42)));
-    
+
     final URI uri = client.newURIBuilder(SERVICE_URI).appendEntitySetSegment("ESAllPrim").appendKeySegment(32767)
         .build();
-    final ODataEntityUpdateRequest<ODataEntity> request = client.getCUDRequestFactory().getEntityUpdateRequest(
+    final ODataEntityUpdateRequest<ClientEntity> request = client.getCUDRequestFactory().getEntityUpdateRequest(
         uri, UpdateType.REPLACE, newEntity);
-    final ODataEntityUpdateResponse<ODataEntity> response = request.execute();
+    final ODataEntityUpdateResponse<ClientEntity> response = request.execute();
     assertEquals(HttpStatusCode.NO_CONTENT.getStatusCode(), response.getStatusCode());
 
     // Check that the updated properties have changed and that other properties have their default values.
     // This check has to be in the same session in order to access the same data provider.
-    ODataEntityRequest<ODataEntity> entityRequest = client.getRetrieveRequestFactory().getEntityRequest(uri);
+    ODataEntityRequest<ClientEntity> entityRequest = client.getRetrieveRequestFactory().getEntityRequest(uri);
     entityRequest.addCustomHeader(HttpHeader.COOKIE, response.getHeader(HttpHeader.SET_COOKIE).iterator().next());
-    final ODataRetrieveResponse<ODataEntity> entityResponse = entityRequest.execute();
+    final ODataRetrieveResponse<ClientEntity> entityResponse = entityRequest.execute();
     assertEquals(HttpStatusCode.OK.getStatusCode(), entityResponse.getStatusCode());
-    final ODataEntity entity = entityResponse.getBody();
+    final ClientEntity entity = entityResponse.getBody();
     assertNotNull(entity);
-    final ODataProperty property1 = entity.getProperty("PropertyInt64");
+    final ClientProperty property1 = entity.getProperty("PropertyInt64");
     assertNotNull(property1);
     assertEquals(42, property1.getPrimitiveValue().toValue());
-    final ODataProperty property2 = entity.getProperty("PropertyDecimal");
+    final ClientProperty property2 = entity.getProperty("PropertyDecimal");
     assertNotNull(property2);
     assertNull(property2.getPrimitiveValue());
   }
@@ -297,8 +297,8 @@ public class BasicITCase extends AbstractBaseTestITCase {
   @Test
   public void patchEntityWithComplex() throws Exception {
     final ODataClient client = getClient();
-    final ODataObjectFactory factory = client.getObjectFactory();
-    ODataEntity patchEntity = factory.newEntity(new FullQualifiedName("olingo.odata.test1", "ETCompComp"));
+    final ClientObjectFactory factory = client.getObjectFactory();
+    ClientEntity patchEntity = factory.newEntity(new FullQualifiedName("olingo.odata.test1", "ETCompComp"));
     patchEntity.getProperties().add(factory.newComplexProperty("PropertyComp",
         factory.newComplexValue("olingo.odata.test1.CTCompComp").add(
             factory.newComplexProperty("PropertyComp",
@@ -306,26 +306,26 @@ public class BasicITCase extends AbstractBaseTestITCase {
                     factory.newPrimitiveProperty("PropertyInt16",
                         factory.newPrimitiveValueBuilder().buildInt32(42)))))));
     final URI uri = client.newURIBuilder(SERVICE_URI).appendEntitySetSegment("ESCompComp").appendKeySegment(1).build();
-    final ODataEntityUpdateRequest<ODataEntity> request = client.getCUDRequestFactory().getEntityUpdateRequest(
+    final ODataEntityUpdateRequest<ClientEntity> request = client.getCUDRequestFactory().getEntityUpdateRequest(
         uri, UpdateType.PATCH, patchEntity);
-    final ODataEntityUpdateResponse<ODataEntity> response = request.execute();
+    final ODataEntityUpdateResponse<ClientEntity> response = request.execute();
     assertEquals(HttpStatusCode.NO_CONTENT.getStatusCode(), response.getStatusCode());
 
     // Check that the patched properties have changed and the other properties not.
     // This check has to be in the same session in order to access the same data provider.
-    ODataEntityRequest<ODataEntity> entityRequest = client.getRetrieveRequestFactory().getEntityRequest(uri);
+    ODataEntityRequest<ClientEntity> entityRequest = client.getRetrieveRequestFactory().getEntityRequest(uri);
     entityRequest.addCustomHeader(HttpHeader.COOKIE, response.getHeader(HttpHeader.SET_COOKIE).iterator().next());
-    final ODataRetrieveResponse<ODataEntity> entityResponse = entityRequest.execute();
+    final ODataRetrieveResponse<ClientEntity> entityResponse = entityRequest.execute();
     assertEquals(HttpStatusCode.OK.getStatusCode(), entityResponse.getStatusCode());
-    final ODataEntity entity = entityResponse.getBody();
+    final ClientEntity entity = entityResponse.getBody();
     assertNotNull(entity);
-    final ODataComplexValue complex = entity.getProperty("PropertyComp").getComplexValue()
+    final ClientComplexValue complex = entity.getProperty("PropertyComp").getComplexValue()
         .get("PropertyComp").getComplexValue();
     assertNotNull(complex);
-    final ODataProperty property1 = complex.get("PropertyInt16");
+    final ClientProperty property1 = complex.get("PropertyInt16");
     assertNotNull(property1);
     assertEquals(42, property1.getPrimitiveValue().toValue());
-    final ODataProperty property2 = complex.get("PropertyString");
+    final ClientProperty property2 = complex.get("PropertyString");
     assertNotNull(property2);
     assertEquals("String 1", property2.getPrimitiveValue().toValue());
   }
@@ -333,8 +333,8 @@ public class BasicITCase extends AbstractBaseTestITCase {
   @Test
   public void updateEntityWithComplex() throws Exception {
     final ODataClient client = getClient();
-    final ODataObjectFactory factory = client.getObjectFactory();
-    ODataEntity newEntity = factory.newEntity(new FullQualifiedName("olingo.odata.test1", "ETKeyNav"));
+    final ClientObjectFactory factory = client.getObjectFactory();
+    ClientEntity newEntity = factory.newEntity(new FullQualifiedName("olingo.odata.test1", "ETKeyNav"));
     newEntity.getProperties().add(factory.newComplexProperty("PropertyCompCompNav", null));
     // The following properties must not be null
     newEntity.getProperties().add(factory.newPrimitiveProperty("PropertyString",
@@ -350,23 +350,23 @@ public class BasicITCase extends AbstractBaseTestITCase {
                     factory.newPrimitiveValueBuilder().buildString("Test2")))));
 
     final URI uri = client.newURIBuilder(SERVICE_URI).appendEntitySetSegment("ESKeyNav").appendKeySegment(1).build();
-    final ODataEntityUpdateRequest<ODataEntity> request = client.getCUDRequestFactory().getEntityUpdateRequest(
+    final ODataEntityUpdateRequest<ClientEntity> request = client.getCUDRequestFactory().getEntityUpdateRequest(
         uri, UpdateType.REPLACE, newEntity);
-    final ODataEntityUpdateResponse<ODataEntity> response = request.execute();
+    final ODataEntityUpdateResponse<ClientEntity> response = request.execute();
     assertEquals(HttpStatusCode.NO_CONTENT.getStatusCode(), response.getStatusCode());
 
     // Check that the complex-property hierarchy is still there and that all primitive values are now null.
     // This check has to be in the same session in order to access the same data provider.
-    ODataEntityRequest<ODataEntity> entityRequest = client.getRetrieveRequestFactory().getEntityRequest(uri);
+    ODataEntityRequest<ClientEntity> entityRequest = client.getRetrieveRequestFactory().getEntityRequest(uri);
     entityRequest.addCustomHeader(HttpHeader.COOKIE, response.getHeader(HttpHeader.SET_COOKIE).iterator().next());
-    final ODataRetrieveResponse<ODataEntity> entityResponse = entityRequest.execute();
+    final ODataRetrieveResponse<ClientEntity> entityResponse = entityRequest.execute();
     assertEquals(HttpStatusCode.OK.getStatusCode(), entityResponse.getStatusCode());
-    final ODataEntity entity = entityResponse.getBody();
+    final ClientEntity entity = entityResponse.getBody();
     assertNotNull(entity);
-    final ODataComplexValue complex = entity.getProperty("PropertyCompCompNav").getComplexValue()
+    final ClientComplexValue complex = entity.getProperty("PropertyCompCompNav").getComplexValue()
         .get("PropertyCompNav").getComplexValue();
     assertNotNull(complex);
-    final ODataProperty property = complex.get("PropertyInt16");
+    final ClientProperty property = complex.get("PropertyInt16");
     assertNotNull(property);
     assertNull(property.getPrimitiveValue());
   }
@@ -374,30 +374,30 @@ public class BasicITCase extends AbstractBaseTestITCase {
   @Test
   public void createEntity() throws Exception {
     final ODataClient client = getClient();
-    final ODataObjectFactory factory = client.getObjectFactory();
-    ODataEntity newEntity = factory.newEntity(new FullQualifiedName("olingo.odata.test1", "ETAllPrim"));
+    final ClientObjectFactory factory = client.getObjectFactory();
+    ClientEntity newEntity = factory.newEntity(new FullQualifiedName("olingo.odata.test1", "ETAllPrim"));
     newEntity.getProperties().add(factory.newPrimitiveProperty("PropertyInt64",
         factory.newPrimitiveValueBuilder().buildInt32(42)));
-    newEntity.addLink(factory.newEntityNavigationLink("NavPropertyETTwoPrimOne", 
-                          client.newURIBuilder(SERVICE_URI)
-                                .appendEntitySetSegment("ESTwoPrim")
-                                .appendKeySegment(32766)
-                                .build()));
-    
-    final ODataEntityCreateRequest<ODataEntity> createRequest = client.getCUDRequestFactory().getEntityCreateRequest(
+    newEntity.addLink(factory.newEntityNavigationLink("NavPropertyETTwoPrimOne",
+        client.newURIBuilder(SERVICE_URI)
+            .appendEntitySetSegment("ESTwoPrim")
+            .appendKeySegment(32766)
+            .build()));
+
+    final ODataEntityCreateRequest<ClientEntity> createRequest = client.getCUDRequestFactory().getEntityCreateRequest(
         client.newURIBuilder(SERVICE_URI).appendEntitySetSegment("ESAllPrim").build(),
         newEntity);
     assertNotNull(createRequest);
-    final ODataEntityCreateResponse<ODataEntity> createResponse = createRequest.execute();
+    final ODataEntityCreateResponse<ClientEntity> createResponse = createRequest.execute();
 
     assertEquals(HttpStatusCode.CREATED.getStatusCode(), createResponse.getStatusCode());
     assertEquals(SERVICE_URI + "/ESAllPrim(1)", createResponse.getHeader(HttpHeader.LOCATION).iterator().next());
-    final ODataEntity createdEntity = createResponse.getBody();
+    final ClientEntity createdEntity = createResponse.getBody();
     assertNotNull(createdEntity);
-    final ODataProperty property1 = createdEntity.getProperty("PropertyInt64");
+    final ClientProperty property1 = createdEntity.getProperty("PropertyInt64");
     assertNotNull(property1);
     assertEquals(42, property1.getPrimitiveValue().toValue());
-    final ODataProperty property2 = createdEntity.getProperty("PropertyDecimal");
+    final ClientProperty property2 = createdEntity.getProperty("PropertyDecimal");
     assertNotNull(property2);
     assertNull(property2.getPrimitiveValue());
   }
@@ -406,140 +406,169 @@ public class BasicITCase extends AbstractBaseTestITCase {
   public void readEntityWithExpandedNavigationProperty() {
     final ODataClient client = ODataClientFactory.getEdmEnabledClient(SERVICE_URI);
     client.getConfiguration().setDefaultPubFormat(ODataFormat.JSON);
-    
+
     final URI uri = client.newURIBuilder(SERVICE_URI)
         .appendEntitySetSegment("ESKeyNav")
         .appendKeySegment(1)
         .expand("NavPropertyETKeyNavOne", "NavPropertyETKeyNavMany")
         .build();
-    
-    final ODataRetrieveResponse<ODataEntity> response = client.getRetrieveRequestFactory()
-                                                              .getEntityRequest(uri)
-                                                              .execute();
-    
+
+    final ODataRetrieveResponse<ClientEntity> response = client.getRetrieveRequestFactory()
+        .getEntityRequest(uri)
+        .execute();
+
     assertEquals(HttpStatusCode.OK.getStatusCode(), response.getStatusCode());
-    
+
     // Check if all inlined entities are available
     // NavPropertyETKeyNavOne
     assertNotNull(response.getBody().getNavigationLink("NavPropertyETKeyNavOne"));
-    final ODataInlineEntity inlineEntity = response.getBody()
-                                                   .getNavigationLink("NavPropertyETKeyNavOne")
-                                                   .asInlineEntity();
+    final ClientInlineEntity inlineEntity = response.getBody()
+        .getNavigationLink("NavPropertyETKeyNavOne")
+        .asInlineEntity();
     assertNotNull(inlineEntity);
     assertEquals(Integer.valueOf(2), inlineEntity.getEntity()
-                                                  .getProperty("PropertyInt16")
-                                                  .getPrimitiveValue()
-                                                  .toValue());
-    
+        .getProperty("PropertyInt16")
+        .getPrimitiveValue()
+        .toValue());
+
     // NavPropertyETKeyNavMany
     assertNotNull(response.getBody().getNavigationLink("NavPropertyETKeyNavMany"));
-    final ODataInlineEntitySet inlineEntitySet = response.getBody()
-                                                         .getNavigationLink("NavPropertyETKeyNavMany")
-                                                         .asInlineEntitySet();
+    final ClientInlineEntitySet inlineEntitySet = response.getBody()
+        .getNavigationLink("NavPropertyETKeyNavMany")
+        .asInlineEntitySet();
     assertNotNull(inlineEntitySet);
     assertEquals(2, inlineEntitySet.getEntitySet().getEntities().size());
     assertEquals(1, inlineEntitySet.getEntitySet()
-                                   .getEntities()
-                                   .get(0)
-                                   .getProperty("PropertyInt16")
-                                   .getPrimitiveValue()
-                                   .toValue());
-    
+        .getEntities()
+        .get(0)
+        .getProperty("PropertyInt16")
+        .getPrimitiveValue()
+        .toValue());
+
     assertEquals(2, inlineEntitySet.getEntitySet()
-                                   .getEntities()
-                                   .get(1)
-                                   .getProperty("PropertyInt16")
-                                   .getPrimitiveValue()
-                                   .toValue());  
+        .getEntities()
+        .get(1)
+        .getProperty("PropertyInt16")
+        .getPrimitiveValue()
+        .toValue());
   }
-  
+
   @Test
   public void updateCollectionOfComplexCollection() {
-    final ODataObjectFactory of = getClient().getObjectFactory();
-    final ODataEntity entity = of.newEntity(new FullQualifiedName("olingo.odata.test1", "ETKeyNav"));
-
-    entity.getProperties().add(of.newCollectionProperty("CollPropertyComp", 
-        of.newCollectionValue("CTPrimComp")
-          .add(of.newComplexValue("CTPrimComp")
-              .add(of.newPrimitiveProperty("PropertyInt16", of.newPrimitiveValueBuilder().buildInt16((short)42)))
-              .add(of.newComplexProperty("PropertyComp", of.newComplexValue("CTAllPrim")
-                  .add(of.newPrimitiveProperty("PropertyString", of.newPrimitiveValueBuilder().buildString("42"))))))
-          .add(of.newComplexValue("CTPrimComp")
-              .add(of.newPrimitiveProperty("PropertyInt16", of.newPrimitiveValueBuilder().buildInt16((short)43)))
-              .add(of.newComplexProperty("PropertyComp", of.newComplexValue("CTAllPrim")
-                  .add(of.newPrimitiveProperty("PropertyString", of.newPrimitiveValueBuilder().buildString("43"))))))));
-    
+    final ClientObjectFactory of = getClient().getObjectFactory();
+    final ClientEntity entity = of.newEntity(new FullQualifiedName("olingo.odata.test1", "ETKeyNav"));
+
+    entity.getProperties().add(
+        of.newCollectionProperty("CollPropertyComp",
+            of.newCollectionValue("CTPrimComp")
+                .add(
+                    of.newComplexValue("CTPrimComp")
+                        .add(
+                            of.newPrimitiveProperty("PropertyInt16", of.newPrimitiveValueBuilder().buildInt16(
+                                (short) 42)))
+                        .add(
+                            of.newComplexProperty("PropertyComp", of.newComplexValue("CTAllPrim")
+                                .add(
+                                    of.newPrimitiveProperty("PropertyString", of.newPrimitiveValueBuilder()
+                                        .buildString("42"))))))
+                .add(
+                    of.newComplexValue("CTPrimComp")
+                        .add(
+                            of.newPrimitiveProperty("PropertyInt16", of.newPrimitiveValueBuilder().buildInt16(
+                                (short) 43)))
+                        .add(
+                            of.newComplexProperty("PropertyComp", of.newComplexValue("CTAllPrim")
+                                .add(
+                                    of.newPrimitiveProperty("PropertyString", of.newPrimitiveValueBuilder()
+                                        .buildString("43"))))))));
+
     final URI uri = getClient().newURIBuilder(SERVICE_URI)
-                               .appendEntitySetSegment("ESKeyNav")
-                               .appendKeySegment(3)
-                               .build();
-    
-    final ODataEntityUpdateResponse<ODataEntity> response = getClient().getCUDRequestFactory()
-                                                                       .getEntityUpdateRequest(uri, 
-                                                                                               UpdateType.PATCH, 
-                                                                                               entity)
-                                                                       .execute();
-    
+        .appendEntitySetSegment("ESKeyNav")
+        .appendKeySegment(3)
+        .build();
+
+    final ODataEntityUpdateResponse<ClientEntity> response = getClient().getCUDRequestFactory()
+        .getEntityUpdateRequest(uri,
+            UpdateType.PATCH,
+            entity)
+        .execute();
+
     assertEquals(HttpStatusCode.NO_CONTENT.getStatusCode(), response.getStatusCode());
     final String cookie = response.getHeader(HttpHeader.SET_COOKIE).iterator().next();
-    
+
     // Check if entity has changed
-    final ODataEntityRequest<ODataEntity> entityRequest = getClient().getRetrieveRequestFactory().getEntityRequest(uri);
+    final ODataEntityRequest<ClientEntity> entityRequest =
+        getClient().getRetrieveRequestFactory().getEntityRequest(uri);
     entityRequest.addCustomHeader(HttpHeader.COOKIE, cookie);
-    final ODataRetrieveResponse<ODataEntity> entityResponse = entityRequest.execute();
-    
+    final ODataRetrieveResponse<ClientEntity> entityResponse = entityRequest.execute();
+
     assertEquals(HttpStatusCode.OK.getStatusCode(), entityResponse.getStatusCode());
     assertNotNull(entityResponse.getBody().getProperty("CollPropertyComp"));
     assertEquals(2, entityResponse.getBody().getProperty("CollPropertyComp").getCollectionValue().size());
-    
-    final Iterator<ODataValue> collectionIterator = entityResponse.getBody()
-                                                                  .getProperty("CollPropertyComp")
-                                                                  .getCollectionValue()
-                                                                  .iterator();
-    
-    ODataComplexValue complexProperty = collectionIterator.next().asComplex();
+
+    final Iterator<ClientValue> collectionIterator = entityResponse.getBody()
+        .getProperty("CollPropertyComp")
+        .getCollectionValue()
+        .iterator();
+
+    ClientComplexValue complexProperty = collectionIterator.next().asComplex();
     assertEquals(42, complexProperty.get("PropertyInt16").getPrimitiveValue().toValue());
     assertNotNull(complexProperty.get("PropertyComp"));
-    
-    ODataComplexValue innerComplexProperty = complexProperty.get("PropertyComp").getComplexValue();
+
+    ClientComplexValue innerComplexProperty = complexProperty.get("PropertyComp").getComplexValue();
     assertEquals("42", innerComplexProperty.get("PropertyString").getPrimitiveValue().toValue());
-    
+
     complexProperty = collectionIterator.next().asComplex();
     assertEquals(43, complexProperty.get("PropertyInt16").getPrimitiveValue().toValue());
     assertNotNull(complexProperty.get("PropertyComp"));
-    
+
     innerComplexProperty = complexProperty.get("PropertyComp").getComplexValue();
     assertEquals("43", innerComplexProperty.get("PropertyString").getPrimitiveValue().toValue());
   }
-  
+
   @Test
   public void createCollectionOfComplexCollection() {
     /*
      * Create a new entity which contains a collection of complex collections
      * Check if all not filled fields are created by the server
      */
-    final ODataObjectFactory of = getClient().getObjectFactory();
-    final ODataEntity entity = of.newEntity(new FullQualifiedName("olingo.odata.test1", "ETKeyNav"));
+    final ClientObjectFactory of = getClient().getObjectFactory();
+    final ClientEntity entity = of.newEntity(new FullQualifiedName("olingo.odata.test1", "ETKeyNav"));
     entity.getProperties().add(
-        of.newPrimitiveProperty("PropertyString", 
-                                of.newPrimitiveValueBuilder().buildString("Complex collection test")));
-    entity.getProperties().add(of.newComplexProperty("PropertyCompTwoPrim", 
-         of.newComplexValue("CTTwoPrim")
-           .add(of.newPrimitiveProperty("PropertyInt16", of.newPrimitiveValueBuilder().buildInt16((short) 1)))
-           .add(of.newPrimitiveProperty("PropertyString", of.newPrimitiveValueBuilder().buildString("1")))));
-    
-    entity.getProperties().add(of.newCollectionProperty("CollPropertyComp", 
-        of.newCollectionValue("CTPrimComp")
-          .add(of.newComplexValue("CTPrimComp")
-              .add(of.newPrimitiveProperty("PropertyInt16", of.newPrimitiveValueBuilder().buildInt16((short)1)))
-              .add(of.newComplexProperty("PropertyComp", of.newComplexValue("CTAllPrim")
-                  .add(of.newPrimitiveProperty("PropertyString", of.newPrimitiveValueBuilder().buildString("1"))))))
-          .add(of.newComplexValue("CTPrimComp")
-              .add(of.newComplexProperty("PropertyComp", of.newComplexValue("CTAllPrim")
-                  .add(of.newPrimitiveProperty("PropertyString", of.newPrimitiveValueBuilder().buildString("2")))
-                  .add(of.newPrimitiveProperty("PropertyInt16", of.newPrimitiveValueBuilder().buildInt16((short) 2)))
-                  .add(of.newPrimitiveProperty("PropertySingle", of.newPrimitiveValueBuilder().buildSingle(2.0f))))))));
-    
+        of.newPrimitiveProperty("PropertyString",
+            of.newPrimitiveValueBuilder().buildString("Complex collection test")));
+    entity.getProperties().add(of.newComplexProperty("PropertyCompTwoPrim",
+        of.newComplexValue("CTTwoPrim")
+            .add(of.newPrimitiveProperty("PropertyInt16", of.newPrimitiveValueBuilder().buildInt16((short) 1)))
+            .add(of.newPrimitiveProperty("PropertyString", of.newPrimitiveValueBuilder().buildString("1")))));
+
+    entity.getProperties().add(
+        of.newCollectionProperty("CollPropertyComp",
+            of.newCollectionValue("CTPrimComp")
+                .add(
+                    of.newComplexValue("CTPrimComp")
+                        .add(
+                            of.newPrimitiveProperty("PropertyInt16", of.newPrimitiveValueBuilder()
+                                .buildInt16((short) 1)))
+                        .add(
+                            of.newComplexProperty("PropertyComp", of.newComplexValue("CTAllPrim")
+                                .add(
+                                    of.newPrimitiveProperty("PropertyString", of.newPrimitiveValueBuilder()
+                                        .buildString("1"))))))
+                .add(
+                    of.newComplexValue("CTPrimComp")
+                        .add(
+                            of.newComplexProperty("PropertyComp", of.newComplexValue("CTAllPrim")
+                                .add(
+                                    of.newPrimitiveProperty("PropertyString", of.newPrimitiveValueBuilder()
+                                        .buildString("2")))
+                                .add(
+                                    of.newPrimitiveProperty("PropertyInt16", of.newPrimitiveValueBuilder().buildInt16(
+                                        (short) 2)))
+                                .add(
+                                    of.newPrimitiveProperty("PropertySingle", of.newPrimitiveValueBuilder()
+                                        .buildSingle(2.0f))))))));
+
     entity.addLink(of.newEntityNavigationLink("NavPropertyETTwoKeyNavOne",
         getClient().newURIBuilder(SERVICE_URI)
             .appendEntitySetSegment("ESTwoKeyNav")
@@ -551,22 +580,21 @@ public class BasicITCase extends AbstractBaseTestITCase {
                 put("PropertyString", "1");
               }
             }).build()));
-    
-    final ODataEntityCreateResponse<ODataEntity> response = getClient().getCUDRequestFactory().getEntityCreateRequest(
+
+    final ODataEntityCreateResponse<ClientEntity> response = getClient().getCUDRequestFactory().getEntityCreateRequest(
         getClient().newURIBuilder(SERVICE_URI).appendEntitySetSegment("ESKeyNav").build(),
         entity).execute();
-    
-    
+
     // Check if not declared fields are also available
     assertEquals(HttpStatusCode.CREATED.getStatusCode(), response.getStatusCode());
-    final ODataEntity newEntity = response.getBody();
-    
+    final ClientEntity newEntity = response.getBody();
+
     assertEquals(2, newEntity.getProperty("CollPropertyComp").getCollectionValue().size());
-    final Iterator<ODataValue> iter = newEntity.getProperty("CollPropertyComp").getCollectionValue().iterator();
-    final ODataComplexValue complexProperty1 = iter.next().asComplex();
+    final Iterator<ClientValue> iter = newEntity.getProperty("CollPropertyComp").getCollectionValue().iterator();
+    final ClientComplexValue complexProperty1 = iter.next().asComplex();
     assertEquals(1, complexProperty1.get("PropertyInt16").getPrimitiveValue().toValue());
     assertNotNull(complexProperty1.get("PropertyComp"));
-    final ODataComplexValue innerComplexProperty1 = complexProperty1.get("PropertyComp").getComplexValue();
+    final ClientComplexValue innerComplexProperty1 = complexProperty1.get("PropertyComp").getComplexValue();
     assertEquals("1", innerComplexProperty1.get("PropertyString").getPrimitiveValue().toValue());
     assertTrue(innerComplexProperty1.get("PropertyBinary").hasNullValue());
     assertTrue(innerComplexProperty1.get("PropertyBoolean").hasNullValue());
@@ -584,11 +612,11 @@ public class BasicITCase extends AbstractBaseTestITCase {
     assertTrue(innerComplexProperty1.get("PropertyTimeOfDay").hasNullValue());
     assertTrue(innerComplexProperty1.get("PropertyInt16").hasNullValue());
     assertTrue(innerComplexProperty1.get("PropertySingle").hasNullValue());
-    
-    final ODataComplexValue complexProperty2 = iter.next().asComplex();
+
+    final ClientComplexValue complexProperty2 = iter.next().asComplex();
     assertTrue(complexProperty2.get("PropertyInt16").hasNullValue());
     assertNotNull(complexProperty2.get("PropertyComp"));
-    final ODataComplexValue innerComplexProperty2 = complexProperty2.get("PropertyComp").getComplexValue();
+    final ClientComplexValue innerComplexProperty2 = complexProperty2.get("PropertyComp").getComplexValue();
     assertEquals("2", innerComplexProperty2.get("PropertyString").getPrimitiveValue().toValue());
     assertEquals(2, innerComplexProperty2.get("PropertyInt16").getPrimitiveValue().toValue());
     assertEquals(Double.valueOf(2), innerComplexProperty2.get("PropertySingle").getPrimitiveValue().toValue());
@@ -605,20 +633,20 @@ public class BasicITCase extends AbstractBaseTestITCase {
     assertTrue(innerComplexProperty2.get("PropertyInt64").hasNullValue());
     assertTrue(innerComplexProperty2.get("PropertySByte").hasNullValue());
     assertTrue(innerComplexProperty2.get("PropertyTimeOfDay").hasNullValue());
-    
+
     // Check if not available properties return null
     assertNull(innerComplexProperty2.get("NotAvailableProperty"));
   }
-  
+
   @Test
   public void testComplexPropertyWithNotNullablePrimitiveValue() {
     final EdmEnabledODataClient client = ODataClientFactory.getEdmEnabledClient(SERVICE_URI);
-    final ODataObjectFactory of = client.getObjectFactory();
-    
+    final ClientObjectFactory of = client.getObjectFactory();
+
     // PropertyComp is null, but the primitive values in PropertyComp must not be null
-    final ODataEntity entity = of.newEntity(new FullQualifiedName("olingo.odata.test1", "ETMixPrimCollComp"));
+    final ClientEntity entity = of.newEntity(new FullQualifiedName("olingo.odata.test1", "ETMixPrimCollComp"));
     final URI targetURI = client.newURIBuilder(SERVICE_URI).appendEntitySetSegment("ESMixPrimCollComp").build();
-    
+
     try {
       client.getCUDRequestFactory().getEntityCreateRequest(targetURI, entity).execute();
       fail("Expecting bad request");
@@ -626,192 +654,192 @@ public class BasicITCase extends AbstractBaseTestITCase {
       assertEquals(HttpStatusCode.BAD_REQUEST.getStatusCode(), e.getStatusLine().getStatusCode());
     }
   }
-  
+
   @Test
   public void testUpsert() throws EdmPrimitiveTypeException {
     final EdmEnabledODataClient client = ODataClientFactory.getEdmEnabledClient(SERVICE_URI);
-    final ODataObjectFactory of = client.getObjectFactory();
-  
-    final ODataEntity entity = of.newEntity(new FullQualifiedName("olingo.odata.test1", "ETTwoPrim"));
+    final ClientObjectFactory of = client.getObjectFactory();
+
+    final ClientEntity entity = of.newEntity(new FullQualifiedName("olingo.odata.test1", "ETTwoPrim"));
     entity.getProperties().add(of.newPrimitiveProperty("PropertyString", of.newPrimitiveValueBuilder()
-                                                                           .buildString("Test")));
-    
+        .buildString("Test")));
+
     final URI uri = client.newURIBuilder(SERVICE_URI).appendEntitySetSegment("ESTwoPrim").appendKeySegment(33).build();
-    final ODataEntityUpdateResponse<ODataEntity> updateResponse = 
+    final ODataEntityUpdateResponse<ClientEntity> updateResponse =
         client.getCUDRequestFactory().getEntityUpdateRequest(uri, UpdateType.PATCH, entity).execute();
-    
+
     assertEquals(HttpStatusCode.CREATED.getStatusCode(), updateResponse.getStatusCode());
     assertEquals("Test", updateResponse.getBody().getProperty("PropertyString").getPrimitiveValue().toValue());
-    
+
     final String cookie = updateResponse.getHeader(HttpHeader.SET_COOKIE).iterator().next();
     final Short key = updateResponse.getBody().getProperty("PropertyInt16")
-                                              .getPrimitiveValue()
-                                              .toCastValue(Short.class);
-    
-    final ODataEntityRequest<ODataEntity> entityRequest = client.getRetrieveRequestFactory()
-                                                                .getEntityRequest(client.newURIBuilder()
-                                                                    .appendEntitySetSegment("ESTwoPrim")
-                                                                    .appendKeySegment(key)
-                                                                    .build());
+        .getPrimitiveValue()
+        .toCastValue(Short.class);
+
+    final ODataEntityRequest<ClientEntity> entityRequest = client.getRetrieveRequestFactory()
+        .getEntityRequest(client.newURIBuilder()
+            .appendEntitySetSegment("ESTwoPrim")
+            .appendKeySegment(key)
+            .build());
     entityRequest.addCustomHeader(HttpHeader.COOKIE, cookie);
-    final ODataRetrieveResponse<ODataEntity> responseEntityRequest = entityRequest.execute();
+    final ODataRetrieveResponse<ClientEntity> responseEntityRequest = entityRequest.execute();
     assertEquals(HttpStatusCode.OK.getStatusCode(), responseEntityRequest.getStatusCode());
     assertEquals("Test", responseEntityRequest.getBody().getProperty("PropertyString").getPrimitiveValue().toValue());
   }
-  
+
   @Test
   public void testUpdatePropertyWithNull() {
     final EdmEnabledODataClient client = ODataClientFactory.getEdmEnabledClient(SERVICE_URI);
-    final ODataObjectFactory of = client.getObjectFactory();
-  
+    final ClientObjectFactory of = client.getObjectFactory();
+
     final URI targetURI = client.newURIBuilder(SERVICE_URI)
-                                .appendEntitySetSegment("ESAllPrim")
-                                .appendKeySegment(32767)
-                                .build();
-    
-    final ODataEntity entity = of.newEntity(new FullQualifiedName("olingo.odata.test1", "ETAllPrim"));
+        .appendEntitySetSegment("ESAllPrim")
+        .appendKeySegment(32767)
+        .build();
+
+    final ClientEntity entity = of.newEntity(new FullQualifiedName("olingo.odata.test1", "ETAllPrim"));
     entity.getProperties().add(of.newPrimitiveProperty("PropertyString", of.newPrimitiveValueBuilder()
-                                                                            .buildString(null)));
-    
-    final ODataEntityUpdateResponse<ODataEntity> updateResponse = client.getCUDRequestFactory()
-        .getEntityUpdateRequest(targetURI,  UpdateType.PATCH, entity)
+        .buildString(null)));
+
+    final ODataEntityUpdateResponse<ClientEntity> updateResponse = client.getCUDRequestFactory()
+        .getEntityUpdateRequest(targetURI, UpdateType.PATCH, entity)
         .execute();
-    
+
     assertEquals(HttpStatusCode.NO_CONTENT.getStatusCode(), updateResponse.getStatusCode());
     final String cookie = updateResponse.getHeader(HttpHeader.SET_COOKIE).iterator().next();
-    
-    final ODataEntityRequest<ODataEntity> entityRequest = client.getRetrieveRequestFactory()
-                                                                .getEntityRequest(targetURI);
+
+    final ODataEntityRequest<ClientEntity> entityRequest = client.getRetrieveRequestFactory()
+        .getEntityRequest(targetURI);
     entityRequest.addCustomHeader(HttpHeader.COOKIE, cookie);
-    final ODataRetrieveResponse<ODataEntity> entityResponse = entityRequest.execute();
+    final ODataRetrieveResponse<ClientEntity> entityResponse = entityRequest.execute();
     assertEquals(HttpStatusCode.OK.getStatusCode(), entityResponse.getStatusCode());
-    
+
     assertTrue(entityResponse.getBody().getProperty("PropertyString").hasNullValue());
     assertEquals(34, entityResponse.getBody().getProperty("PropertyDecimal").getPrimitiveValue().toValue());
   }
-  
-  @Test(expected=ODataClientErrorException.class)
+
+  @Test(expected = ODataClientErrorException.class)
   public void testUpdatePropertyWithNullNotAllowed() {
     final EdmEnabledODataClient client = ODataClientFactory.getEdmEnabledClient(SERVICE_URI);
-    final ODataObjectFactory of = client.getObjectFactory();
-  
+    final ClientObjectFactory of = client.getObjectFactory();
+
     final URI targetURI = client.newURIBuilder(SERVICE_URI)
-                                .appendEntitySetSegment("ESKeyNav")
-                                .appendKeySegment(32767)
-                                .build();
-    
-    final ODataEntity entity = of.newEntity(new FullQualifiedName("olingo.odata.test1", "ETKeyNav"));
+        .appendEntitySetSegment("ESKeyNav")
+        .appendKeySegment(32767)
+        .build();
+
+    final ClientEntity entity = of.newEntity(new FullQualifiedName("olingo.odata.test1", "ETKeyNav"));
     entity.getProperties().add(of.newPrimitiveProperty("PropertyString", of.newPrimitiveValueBuilder()
-                                                                            .buildString(null)));
-    
-    client.getCUDRequestFactory().getEntityUpdateRequest(targetURI,  UpdateType.PATCH, entity).execute();
+        .buildString(null)));
+
+    client.getCUDRequestFactory().getEntityUpdateRequest(targetURI, UpdateType.PATCH, entity).execute();
   }
-  
+
   @Test
   public void testUpdateMerge() {
     final EdmEnabledODataClient client = ODataClientFactory.getEdmEnabledClient(SERVICE_URI);
-    final ODataObjectFactory of = client.getObjectFactory();
-  
+    final ClientObjectFactory of = client.getObjectFactory();
+
     final URI targetURI = client.newURIBuilder(SERVICE_URI)
-                                .appendEntitySetSegment("ESKeyNav")
-                                .appendKeySegment(1)
-                                .build();
+        .appendEntitySetSegment("ESKeyNav")
+        .appendKeySegment(1)
+        .build();
 
-    final ODataEntity entity = of.newEntity(new FullQualifiedName("olingo.odata.test1", "ETKeyNav"));
+    final ClientEntity entity = of.newEntity(new FullQualifiedName("olingo.odata.test1", "ETKeyNav"));
     entity.addLink(of.newEntityNavigationLink("NavPropertyETKeyNavOne", targetURI));
     entity.addLink(of.newEntitySetNavigationLink("NavPropertyETKeyNavMany", client.newURIBuilder(SERVICE_URI)
         .appendEntitySetSegment("ESKeyNav").appendKeySegment(3).build()));
     entity.getProperties().add(of.newCollectionProperty("CollPropertyString", of.newCollectionValue("Edm.String")
         .add(of.newPrimitiveValueBuilder().buildString("Single entry!"))));
-    entity.getProperties().add(of.newComplexProperty("PropertyCompAllPrim", 
+    entity.getProperties().add(of.newComplexProperty("PropertyCompAllPrim",
         of.newComplexValue("CTAllPrim")
-          .add(of.newPrimitiveProperty("PropertyString", 
-              of.newPrimitiveValueBuilder().buildString("Changed")))));
-    
-    final ODataEntityUpdateResponse<ODataEntity> response = client.getCUDRequestFactory()
-                                                .getEntityUpdateRequest(targetURI,UpdateType.PATCH, entity)
-                                                .execute();
-    
+            .add(of.newPrimitiveProperty("PropertyString",
+                of.newPrimitiveValueBuilder().buildString("Changed")))));
+
+    final ODataEntityUpdateResponse<ClientEntity> response = client.getCUDRequestFactory()
+        .getEntityUpdateRequest(targetURI, UpdateType.PATCH, entity)
+        .execute();
+
     assertEquals(HttpStatusCode.NO_CONTENT.getStatusCode(), response.getStatusCode());
     final String cookie = response.getHeader(HttpHeader.SET_COOKIE).iterator().next();
-    
-    final ODataEntityRequest<ODataEntity> entityRequest = client.getRetrieveRequestFactory()
-                                                      .getEntityRequest(
-                                                          client.newURIBuilder()
-                                                          .appendEntitySetSegment("ESKeyNav")
-                                                          .appendKeySegment(1)
-                                                          .expand("NavPropertyETKeyNavOne", "NavPropertyETKeyNavMany")
-                                                          .build());
+
+    final ODataEntityRequest<ClientEntity> entityRequest = client.getRetrieveRequestFactory()
+        .getEntityRequest(
+            client.newURIBuilder()
+                .appendEntitySetSegment("ESKeyNav")
+                .appendKeySegment(1)
+                .expand("NavPropertyETKeyNavOne", "NavPropertyETKeyNavMany")
+                .build());
     entityRequest.addCustomHeader(HttpHeader.COOKIE, cookie);
-    final ODataRetrieveResponse<ODataEntity> entitytResponse = entityRequest.execute();
-    
+    final ODataRetrieveResponse<ClientEntity> entitytResponse = entityRequest.execute();
+
     assertEquals(HttpStatusCode.OK.getStatusCode(), entitytResponse.getStatusCode());
     assertEquals(1, entitytResponse.getBody().getNavigationLink("NavPropertyETKeyNavOne")
-                                             .asInlineEntity()
-                                             .getEntity()
-                                             .getProperty("PropertyInt16")
-                                             .getPrimitiveValue()
-                                             .toValue());
-    
+        .asInlineEntity()
+        .getEntity()
+        .getProperty("PropertyInt16")
+        .getPrimitiveValue()
+        .toValue());
+
     assertEquals(3, entitytResponse.getBody().getNavigationLink("NavPropertyETKeyNavMany")
         .asInlineEntitySet()
         .getEntitySet()
         .getEntities()
         .size());
-    
+
     assertEquals(1, entitytResponse.getBody().getNavigationLink("NavPropertyETKeyNavMany")
-                                             .asInlineEntitySet()
-                                             .getEntitySet()
-                                             .getEntities()
-                                             .get(0)
-                                             .getProperty("PropertyInt16")
-                                             .getPrimitiveValue()
-                                             .toValue());
-    
+        .asInlineEntitySet()
+        .getEntitySet()
+        .getEntities()
+        .get(0)
+        .getProperty("PropertyInt16")
+        .getPrimitiveValue()
+        .toValue());
+
     assertEquals(2, entitytResponse.getBody().getNavigationLink("NavPropertyETKeyNavMany")
-                                              .asInlineEntitySet()
-                                              .getEntitySet()
-                                              .getEntities()
-                                              .get(1)
-                                              .getProperty("PropertyInt16")
-                                              .getPrimitiveValue()
-                                              .toValue());
-    
+        .asInlineEntitySet()
+        .getEntitySet()
+        .getEntities()
+        .get(1)
+        .getProperty("PropertyInt16")
+        .getPrimitiveValue()
+        .toValue());
+
     assertEquals(3, entitytResponse.getBody().getNavigationLink("NavPropertyETKeyNavMany")
-                                              .asInlineEntitySet()
-                                              .getEntitySet()
-                                              .getEntities()
-                                              .get(2)
-                                              .getProperty("PropertyInt16")
-                                              .getPrimitiveValue()
-                                              .toValue());
-    
-    final Iterator<ODataValue> collectionIterator = entitytResponse.getBody()
-                                                                   .getProperty("CollPropertyString")
-                                                                   .getCollectionValue()
-                                                                   .iterator();
+        .asInlineEntitySet()
+        .getEntitySet()
+        .getEntities()
+        .get(2)
+        .getProperty("PropertyInt16")
+        .getPrimitiveValue()
+        .toValue());
+
+    final Iterator<ClientValue> collectionIterator = entitytResponse.getBody()
+        .getProperty("CollPropertyString")
+        .getCollectionValue()
+        .iterator();
     assertTrue(collectionIterator.hasNext());
     assertEquals("Single entry!", collectionIterator.next().asPrimitive().toValue());
     assertFalse(collectionIterator.hasNext());
-    
-    final ODataComplexValue complexValue = entitytResponse.getBody()
-                                                          .getProperty("PropertyCompAllPrim")
-                                                          .getComplexValue();
-    
+
+    final ClientComplexValue complexValue = entitytResponse.getBody()
+        .getProperty("PropertyCompAllPrim")
+        .getComplexValue();
+
     assertEquals("Changed", complexValue.get("PropertyString").getPrimitiveValue().toValue());
   }
-  
+
   @Test
   public void testUpdateReplace() {
     final EdmEnabledODataClient client = ODataClientFactory.getEdmEnabledClient(SERVICE_URI);
-    final ODataObjectFactory of = client.getObjectFactory();
-  
+    final ClientObjectFactory of = client.getObjectFactory();
+
     final URI targetURI = client.newURIBuilder(SERVICE_URI)
-                                .appendEntitySetSegment("ESKeyNav")
-                                .appendKeySegment(1)
-                                .build();
+        .appendEntitySetSegment("ESKeyNav")
+        .appendKeySegment(1)
+        .build();
 
-    final ODataEntity entity = of.newEntity(new FullQualifiedName("olingo.odata.test1", "ETKeyNav"));
+    final ClientEntity entity = of.newEntity(new FullQualifiedName("olingo.odata.test1", "ETKeyNav"));
     entity.addLink(of.newEntityNavigationLink("NavPropertyETKeyNavOne", targetURI));
     entity.addLink(of.newEntitySetNavigationLink("NavPropertyETKeyNavMany", client.newURIBuilder(SERVICE_URI)
         .appendEntitySetSegment("ESKeyNav").appendKeySegment(3).build()));
@@ -819,105 +847,104 @@ public class BasicITCase extends AbstractBaseTestITCase {
         .buildString("Must not be null")));
     entity.getProperties().add(of.newComplexProperty("PropertyCompTwoPrim", of.newComplexValue("CTTwoPrim")
         .add(of.newPrimitiveProperty("PropertyString", of.newPrimitiveValueBuilder()
-                                                          .buildString("Must not be null")))
+            .buildString("Must not be null")))
         .add(of.newPrimitiveProperty("PropertyInt16", of.newPrimitiveValueBuilder().buildInt16((short) 42)))));
     entity.getProperties().add(of.newCollectionProperty("CollPropertyString", of.newCollectionValue("Edm.String")
         .add(of.newPrimitiveValueBuilder().buildString("Single entry!"))));
-    entity.getProperties().add(of.newComplexProperty("PropertyCompAllPrim", 
+    entity.getProperties().add(of.newComplexProperty("PropertyCompAllPrim",
         of.newComplexValue("CTAllPrim")
-          .add(of.newPrimitiveProperty("PropertyString", 
-              of.newPrimitiveValueBuilder().buildString("Changed")))));
-    
-    final ODataEntityUpdateResponse<ODataEntity> response = client.getCUDRequestFactory()
-                                                .getEntityUpdateRequest(targetURI,UpdateType.REPLACE, entity)
-                                                .execute();
-    
+            .add(of.newPrimitiveProperty("PropertyString",
+                of.newPrimitiveValueBuilder().buildString("Changed")))));
+
+    final ODataEntityUpdateResponse<ClientEntity> response = client.getCUDRequestFactory()
+        .getEntityUpdateRequest(targetURI, UpdateType.REPLACE, entity)
+        .execute();
+
     assertEquals(HttpStatusCode.NO_CONTENT.getStatusCode(), response.getStatusCode());
     final String cookie = response.getHeader(HttpHeader.SET_COOKIE).iterator().next();
-    
-    final ODataEntityRequest<ODataEntity> entityRequest = client.getRetrieveRequestFactory()
-                                                      .getEntityRequest(
-                                                          client.newURIBuilder()
-                                                          .appendEntitySetSegment("ESKeyNav")
-                                                          .appendKeySegment(1)
-                                                          .expand("NavPropertyETKeyNavOne", "NavPropertyETKeyNavMany")
-                                                          .build());
+
+    final ODataEntityRequest<ClientEntity> entityRequest = client.getRetrieveRequestFactory()
+        .getEntityRequest(
+            client.newURIBuilder()
+                .appendEntitySetSegment("ESKeyNav")
+                .appendKeySegment(1)
+                .expand("NavPropertyETKeyNavOne", "NavPropertyETKeyNavMany")
+                .build());
     entityRequest.addCustomHeader(HttpHeader.COOKIE, cookie);
-    final ODataRetrieveResponse<ODataEntity> entitytResponse = entityRequest.execute();
-    
+    final ODataRetrieveResponse<ClientEntity> entitytResponse = entityRequest.execute();
+
     assertEquals(HttpStatusCode.OK.getStatusCode(), entitytResponse.getStatusCode());
     assertEquals(1, entitytResponse.getBody().getNavigationLink("NavPropertyETKeyNavOne")
-                                             .asInlineEntity()
-                                             .getEntity()
-                                             .getProperty("PropertyInt16")
-                                             .getPrimitiveValue()
-                                             .toValue());
-    
+        .asInlineEntity()
+        .getEntity()
+        .getProperty("PropertyInt16")
+        .getPrimitiveValue()
+        .toValue());
+
     assertEquals(3, entitytResponse.getBody().getNavigationLink("NavPropertyETKeyNavMany")
         .asInlineEntitySet()
         .getEntitySet()
         .getEntities()
         .size());
-    
+
     assertEquals(1, entitytResponse.getBody().getNavigationLink("NavPropertyETKeyNavMany")
-                                             .asInlineEntitySet()
-                                             .getEntitySet()
-                                             .getEntities()
-                                             .get(0)
-                                             .getProperty("PropertyInt16")
-                                             .getPrimitiveValue()
-                                             .toValue());
-    
+        .asInlineEntitySet()
+        .getEntitySet()
+        .getEntities()
+        .get(0)
+        .getProperty("PropertyInt16")
+        .getPrimitiveValue()
+        .toValue());
+
     assertEquals(2, entitytResponse.getBody().getNavigationLink("NavPropertyETKeyNavMany")
-                                              .asInlineEntitySet()
-                                              .getEntitySet()
-                                              .getEntities()
-                                              .get(1)
-                                              .getProperty("PropertyInt16")
-                                              .getPrimitiveValue()
-                                              .toValue());
-    
+        .asInlineEntitySet()
+        .getEntitySet()
+        .getEntities()
+        .get(1)
+        .getProperty("PropertyInt16")
+        .getPrimitiveValue()
+        .toValue());
+
     assertEquals(3, entitytResponse.getBody().getNavigationLink("NavPropertyETKeyNavMany")
-                                              .asInlineEntitySet()
-                                              .getEntitySet()
-                                              .getEntities()
-                                              .get(2)
-                                              .getProperty("PropertyInt16")
-                                              .getPrimitiveValue()
-                                              .toValue());
-    
-    final Iterator<ODataValue> collectionIterator = entitytResponse.getBody()
-                                                                   .getProperty("CollPropertyString")
-                                                                   .getCollectionValue()
-                                                                   .iterator();
+        .asInlineEntitySet()
+        .getEntitySet()
+        .getEntities()
+        .get(2)
+        .getProperty("PropertyInt16")
+        .getPrimitiveValue()
+        .toValue());
+
+    final Iterator<ClientValue> collectionIterator = entitytResponse.getBody()
+        .getProperty("CollPropertyString")
+        .getCollectionValue()
+        .iterator();
     assertTrue(collectionIterator.hasNext());
     assertEquals("Single entry!", collectionIterator.next().asPrimitive().toValue());
     assertFalse(collectionIterator.hasNext());
-    
-    final ODataComplexValue propCompAllPrim = entitytResponse.getBody()
-                                                          .getProperty("PropertyCompAllPrim")
-                                                          .getComplexValue();
-    
+
+    final ClientComplexValue propCompAllPrim = entitytResponse.getBody()
+        .getProperty("PropertyCompAllPrim")
+        .getComplexValue();
+
     assertEquals("Changed", propCompAllPrim.get("PropertyString").getPrimitiveValue().toValue());
     assertTrue(propCompAllPrim.get("PropertyInt16").hasNullValue());
     assertTrue(propCompAllPrim.get("PropertyDate").hasNullValue());
-    
-   final ODataComplexValue propCompTwoPrim = entitytResponse.getBody()
-                                                            .getProperty("PropertyCompTwoPrim")
-                                                            .getComplexValue();
-   
-   assertEquals("Must not be null", propCompTwoPrim.get("PropertyString").getPrimitiveValue().toValue());
-   assertEquals(42, propCompTwoPrim.get("PropertyInt16").getPrimitiveValue().toValue());
-   
-   assertNotNull(entitytResponse.getBody().getProperty("PropertyCompNav").getComplexValue());
-   assertTrue(entitytResponse.getBody()
-                             .getProperty("PropertyCompNav")
-                             .getComplexValue()
-                             .get("PropertyInt16")
-                             .hasNullValue());
+
+    final ClientComplexValue propCompTwoPrim = entitytResponse.getBody()
+        .getProperty("PropertyCompTwoPrim")
+        .getComplexValue();
+
+    assertEquals("Must not be null", propCompTwoPrim.get("PropertyString").getPrimitiveValue().toValue());
+    assertEquals(42, propCompTwoPrim.get("PropertyInt16").getPrimitiveValue().toValue());
+
+    assertNotNull(entitytResponse.getBody().getProperty("PropertyCompNav").getComplexValue());
+    assertTrue(entitytResponse.getBody()
+        .getProperty("PropertyCompNav")
+        .getComplexValue()
+        .get("PropertyInt16")
+        .hasNullValue());
   }
 
-  
   @Override
   protected ODataClient getClient() {
     ODataClient odata = ODataClientFactory.getClient();

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/c37d4da5/fit/src/test/java/org/apache/olingo/fit/tecsvc/client/BatchClientITCase.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/tecsvc/client/BatchClientITCase.java b/fit/src/test/java/org/apache/olingo/fit/tecsvc/client/BatchClientITCase.java
index 55fa57f..c03490c 100644
--- a/fit/src/test/java/org/apache/olingo/fit/tecsvc/client/BatchClientITCase.java
+++ b/fit/src/test/java/org/apache/olingo/fit/tecsvc/client/BatchClientITCase.java
@@ -45,9 +45,9 @@ import org.apache.olingo.client.api.communication.response.ODataRetrieveResponse
 import org.apache.olingo.client.api.http.HttpClientException;
 import org.apache.olingo.client.api.uri.URIBuilder;
 import org.apache.olingo.client.core.communication.request.batch.ODataChangesetResponseItem;
-import org.apache.olingo.commons.api.domain.ODataEntity;
-import org.apache.olingo.commons.api.domain.ODataEntitySet;
-import org.apache.olingo.commons.api.domain.ODataObjectFactory;
+import org.apache.olingo.commons.api.domain.ClientEntity;
+import org.apache.olingo.commons.api.domain.ClientEntitySet;
+import org.apache.olingo.commons.api.domain.ClientObjectFactory;
 import org.apache.olingo.commons.api.edm.EdmPrimitiveTypeException;
 import org.apache.olingo.commons.api.edm.FullQualifiedName;
 import org.apache.olingo.commons.api.format.ContentType;
@@ -91,10 +91,10 @@ public class BatchClientITCase extends AbstractTestITCase {
      */
 
     final ODataClient client = getClient();
-    final ODataObjectFactory of = client.getObjectFactory();
+    final ClientObjectFactory of = client.getObjectFactory();
 
     // Try to create entity, with invalid type
-    final ODataEntity entity = of.newEntity(ES_NOT_AVAILABLE);
+    final ClientEntity entity = of.newEntity(ES_NOT_AVAILABLE);
     entity.getProperties().add(of.newPrimitiveProperty(PROPERTY_STRING, of.newPrimitiveValueBuilder()
         .buildString("1")));
     final ODataBatchRequest batchRequest = client.getBatchRequestFactory().getBatchRequest(SERVICE_URI);
@@ -104,7 +104,7 @@ public class BatchClientITCase extends AbstractTestITCase {
     final URI targetURI = client.newURIBuilder(SERVICE_URI)
         .appendEntitySetSegment(ES_NOT_AVAILABLE_NAME)
         .build();
-    final ODataEntityCreateRequest<ODataEntity> createRequest = client.getCUDRequestFactory()
+    final ODataEntityCreateRequest<ClientEntity> createRequest = client.getCUDRequestFactory()
         .getEntityCreateRequest(targetURI, entity);
     changeset.addRequest(createRequest);
 
@@ -257,7 +257,7 @@ public class BatchClientITCase extends AbstractTestITCase {
 
     final BatchManager payload = request.payloadManager();
     final URI uri = new URI(SERVICE_URI + "/../ESAllPrim(32767)");
-    final ODataEntityRequest<ODataEntity> queryReq = client.getRetrieveRequestFactory().getEntityRequest(uri);
+    final ODataEntityRequest<ClientEntity> queryReq = client.getRetrieveRequestFactory().getEntityRequest(uri);
     queryReq.setFormat(ODataFormat.JSON);
     payload.addRequest(queryReq);
 
@@ -282,7 +282,7 @@ public class BatchClientITCase extends AbstractTestITCase {
 
     final BatchManager payload = request.payloadManager();
     final URI uri = new URI("http://otherhost/odata/ESAllPrim(32767)");
-    final ODataEntityRequest<ODataEntity> queryReq = client.getRetrieveRequestFactory().getEntityRequest(uri);
+    final ODataEntityRequest<ClientEntity> queryReq = client.getRetrieveRequestFactory().getEntityRequest(uri);
     queryReq.setFormat(ODataFormat.JSON);
     payload.addRequest(queryReq);
 
@@ -297,7 +297,7 @@ public class BatchClientITCase extends AbstractTestITCase {
 
     final BatchManager payload = request.payloadManager();
     final URI uri = new URI("/ESAllPrim(32767)");
-    final ODataEntityRequest<ODataEntity> queryReq = client.getRetrieveRequestFactory().getEntityRequest(uri);
+    final ODataEntityRequest<ClientEntity> queryReq = client.getRetrieveRequestFactory().getEntityRequest(uri);
     queryReq.setFormat(ODataFormat.JSON);
     payload.addRequest(queryReq);
 
@@ -366,29 +366,28 @@ public class BatchClientITCase extends AbstractTestITCase {
   public void changesetWithReferences() throws EdmPrimitiveTypeException, URISyntaxException {
     // create your request
     final ODataBatchRequest request = client.getBatchRequestFactory().getBatchRequest(SERVICE_URI);
-    final ODataObjectFactory of = client.getObjectFactory();
+    final ClientObjectFactory of = client.getObjectFactory();
     request.setAccept(ACCEPT);
     final BatchManager streamManager = request.payloadManager();
 
     final ODataChangeset changeset = streamManager.addChangeset();
-    final ODataEntity entityESAllPrim = getClient().getObjectFactory().
+    final ClientEntity entityESAllPrim = getClient().getObjectFactory().
         newEntity(new FullQualifiedName("olingo.odata.test1.ESAllPrim"));
 
     entityESAllPrim.getProperties().add(client.getObjectFactory().newPrimitiveProperty(
         "PropertyDouble",
         client.getObjectFactory().newPrimitiveValueBuilder().buildDouble(3.1415)));
-    
+
     entityESAllPrim.addLink(
         of.newEntityNavigationLink("NavPropertyETTwoPrimOne", client.newURIBuilder(SERVICE_URI)
-                                                                    .appendEntitySetSegment("ESTwoPrim")
-                                                                    .appendKeySegment(-365)
-                                                                    .build()));
-    
-    
+            .appendEntitySetSegment("ESTwoPrim")
+            .appendKeySegment(-365)
+            .build()));
+
     final URIBuilder uriBuilder = client.newURIBuilder(SERVICE_URI).appendEntitySetSegment("ESAllPrim");
 
     // add create request
-    final ODataEntityCreateRequest<ODataEntity> createReq =
+    final ODataEntityCreateRequest<ClientEntity> createReq =
         client.getCUDRequestFactory().getEntityCreateRequest(uriBuilder.build(), entityESAllPrim);
     createReq.setFormat(ODataFormat.JSON);
     changeset.addRequest(createReq);
@@ -397,21 +396,21 @@ public class BatchClientITCase extends AbstractTestITCase {
     int createRequestRef = changeset.getLastContentId();
 
     // add update request
-    final ODataEntity entityUpdate = client.getObjectFactory().newEntity(entityESAllPrim.getTypeName());
+    final ClientEntity entityUpdate = client.getObjectFactory().newEntity(entityESAllPrim.getTypeName());
     entityUpdate.addLink(client.getObjectFactory().newEntitySetNavigationLink(
         "NavPropertyETTwoPrimMany",
         client.newURIBuilder(SERVICE_URI).appendEntitySetSegment("ESTwoPrim").appendKeySegment(32767).build()));
 
-    final ODataEntityUpdateRequest<ODataEntity> updateReq = client.getCUDRequestFactory().getEntityUpdateRequest(
+    final ODataEntityUpdateRequest<ClientEntity> updateReq = client.getCUDRequestFactory().getEntityUpdateRequest(
         URI.create("$" + createRequestRef), UpdateType.PATCH, entityUpdate);
     updateReq.setFormat(ODataFormat.JSON);
-    
+
     changeset.addRequest(updateReq);
 
     final ODataBatchResponse response = streamManager.getResponse();
     assertEquals(HttpStatusCode.ACCEPTED.getStatusCode(), response.getStatusCode());
     final String cookie = response.getHeader(HttpHeader.SET_COOKIE).iterator().next();
-    
+
     // verify response payload ...
     final Iterator<ODataBatchResponseItem> bodyIterator = response.getBody();
     final ODataBatchResponseItem item = bodyIterator.next();
@@ -422,31 +421,31 @@ public class BatchClientITCase extends AbstractTestITCase {
     ODataResponse res = chgitem.next();
     assertEquals(HttpStatusCode.CREATED.getStatusCode(), res.getStatusCode());
     assertTrue(res instanceof ODataEntityCreateResponse);
-    final ODataEntityCreateResponse<ODataEntity> createResponse = ((ODataEntityCreateResponse<ODataEntity>) res);
-    
+    final ODataEntityCreateResponse<ClientEntity> createResponse = ((ODataEntityCreateResponse<ClientEntity>) res);
+
     res = chgitem.next();
     assertEquals(HttpStatusCode.NO_CONTENT.getStatusCode(), res.getStatusCode());
     assertTrue(res instanceof ODataEntityUpdateResponse);
-    
-    final ODataEntitySetRequest<ODataEntitySet> req = client.getRetrieveRequestFactory().getEntitySetRequest(
+
+    final ODataEntitySetRequest<ClientEntitySet> req = client.getRetrieveRequestFactory().getEntitySetRequest(
         new URI(createResponse.getHeader(HttpHeader.LOCATION).iterator().next() + "/NavPropertyETTwoPrimMany"));
     req.setFormat(ODataFormat.JSON);
     req.addCustomHeader(HttpHeader.COOKIE, cookie);
-    final ODataRetrieveResponse<ODataEntitySet> getResponse = req.execute();
-    
+    final ODataRetrieveResponse<ClientEntitySet> getResponse = req.execute();
+
     assertEquals(32767, getResponse.getBody()
-                               .getEntities()
-                               .get(0)
-                               .getProperty("PropertyInt16")
-                               .getPrimitiveValue()
-                               .toValue());
-  } 
+        .getEntities()
+        .get(0)
+        .getProperty("PropertyInt16")
+        .getPrimitiveValue()
+        .toValue());
+  }
 
   @Test
   @SuppressWarnings("unchecked")
   public void changesetBatchRequest() throws URISyntaxException {
     final ODataBatchRequest request = client.getBatchRequestFactory().getBatchRequest(SERVICE_URI);
-    final ODataObjectFactory of = client.getObjectFactory();
+    final ClientObjectFactory of = client.getObjectFactory();
     request.setAccept(ACCEPT);
 
     final BatchManager payload = request.payloadManager();
@@ -466,18 +465,18 @@ public class BatchClientITCase extends AbstractTestITCase {
         client.newURIBuilder(SERVICE_URI).appendEntitySetSegment("ESAllPrim");
     URI editLink = targetURI.build();
 
-    ODataEntity postEntity = client.getObjectFactory().newEntity(
+    ClientEntity postEntity = client.getObjectFactory().newEntity(
         new FullQualifiedName("olingo.odata.test1.ESAllPrim"));
     postEntity.addLink(of.newEntityNavigationLink("NavPropertyETTwoPrimOne", client.newURIBuilder(SERVICE_URI)
-                                                                             .appendEntitySetSegment("ESTwoPrim")
-                                                                             .appendKeySegment(32766)
-                                                                             .build()));
+        .appendEntitySetSegment("ESTwoPrim")
+        .appendKeySegment(32766)
+        .build()));
 
     postEntity.getProperties().add(client.getObjectFactory().newPrimitiveProperty(
         "PropertyDouble",
         client.getObjectFactory().newPrimitiveValueBuilder().buildDouble(3.1415)));
 
-    final ODataEntityCreateRequest<ODataEntity> createRequest =
+    final ODataEntityCreateRequest<ClientEntity> createRequest =
         client.getCUDRequestFactory().getEntityCreateRequest(editLink, postEntity);
     createRequest.setFormat(ODataFormat.JSON);
 
@@ -488,15 +487,15 @@ public class BatchClientITCase extends AbstractTestITCase {
     targetURI = client.newURIBuilder(SERVICE_URI).appendEntitySetSegment("ESAllPrim").appendKeySegment(0);
     editLink = targetURI.build();
 
-    ODataEntity patchEntity = client.getObjectFactory()
-              .newEntity(new FullQualifiedName("olingo.odata.test1.ESAllPrim"));
+    ClientEntity patchEntity = client.getObjectFactory()
+        .newEntity(new FullQualifiedName("olingo.odata.test1.ESAllPrim"));
     patchEntity.setEditLink(editLink);
 
     patchEntity.getProperties().add(client.getObjectFactory().newPrimitiveProperty(
         "PropertyDouble",
         client.getObjectFactory().newPrimitiveValueBuilder().buildDouble(3.1415)));
 
-    ODataEntityUpdateRequest<ODataEntity> changeReq =
+    ODataEntityUpdateRequest<ClientEntity> changeReq =
         client.getCUDRequestFactory().getEntityUpdateRequest(UpdateType.PATCH, patchEntity);
     changeReq.setFormat(ODataFormat.JSON);
     changeset.addRequest(changeReq);
@@ -512,12 +511,12 @@ public class BatchClientITCase extends AbstractTestITCase {
     patchEntity.getProperties().add(client.getObjectFactory().newPrimitiveProperty(
         "PropertyDouble",
         client.getObjectFactory().newPrimitiveValueBuilder().buildDouble(3.1415)));
-    
+
     patchEntity.addLink(of.newEntityNavigationLink("NavPropertyETTwoPrimOne", client.newURIBuilder(SERVICE_URI)
         .appendEntitySetSegment("ESTwoPrim")
         .appendKeySegment(32766)
         .build()));
-    
+
     changeReq = client.getCUDRequestFactory().getEntityUpdateRequest(UpdateType.PATCH, patchEntity);
     changeReq.setFormat(ODataFormat.JSON);
     changeset.addRequest(changeReq);
@@ -541,24 +540,24 @@ public class BatchClientITCase extends AbstractTestITCase {
     assertTrue(item.hasNext());
     final ODataResponse response0 = item.next();
     assertTrue(response0 instanceof ODataRetrieveResponse);
-    assertEquals(34, ((ODataRetrieveResponse<ODataEntity>)response0).getBody()
-                                                                    .getProperty("PropertyDecimal")
-                                                                    .getPrimitiveValue()
-                                                                    .toValue());
-    
+    assertEquals(34, ((ODataRetrieveResponse<ClientEntity>) response0).getBody()
+        .getProperty("PropertyDecimal")
+        .getPrimitiveValue()
+        .toValue());
+
     // Check change set
     assertTrue(bodyIterator.hasNext());
     item = bodyIterator.next();
     assertTrue(item.isChangeset());
-    
+
     // Insert
     assertTrue(item.hasNext());
     final ODataResponse response1 = item.next();
     assertEquals(HttpStatusCode.CREATED.getStatusCode(), response1.getStatusCode());
     assertTrue(response1 instanceof ODataEntityCreateResponse);
-    assertEquals(3.1415, ((ODataEntityCreateResponse<ODataEntity>) response1).getBody().getProperty("PropertyDouble")
-                                                                                       .getPrimitiveValue()
-                                                                                       .toValue());
+    assertEquals(3.1415, ((ODataEntityCreateResponse<ClientEntity>) response1).getBody().getProperty("PropertyDouble")
+        .getPrimitiveValue()
+        .toValue());
     // Update
     assertTrue(item.hasNext());
     final ODataResponse response2 = item.next();
@@ -568,12 +567,12 @@ public class BatchClientITCase extends AbstractTestITCase {
     // Upsert
     assertTrue(item.hasNext());
     final ODataResponse response3 = item.next();
-    assertEquals(HttpStatusCode.CREATED.getStatusCode(),response3.getStatusCode());
+    assertEquals(HttpStatusCode.CREATED.getStatusCode(), response3.getStatusCode());
     assertTrue(response3 instanceof ODataEntityUpdateResponse);
-    assertEquals(3.1415, ((ODataEntityUpdateResponse<ODataEntity>) response3).getBody().getProperty("PropertyDouble")
-                                                                                       .getPrimitiveValue()
-                                                                                       .toValue());
-    
+    assertEquals(3.1415, ((ODataEntityUpdateResponse<ClientEntity>) response3).getBody().getProperty("PropertyDouble")
+        .getPrimitiveValue()
+        .toValue());
+
     // Check second get request
     assertTrue(bodyIterator.hasNext());
     item = bodyIterator.next();
@@ -581,18 +580,19 @@ public class BatchClientITCase extends AbstractTestITCase {
     assertTrue(item.hasNext());
     final ODataResponse response4 = item.next();
     assertTrue(response4 instanceof ODataRetrieveResponse);
-    assertEquals(3.1415, ((ODataRetrieveResponse<ODataEntity>)response4).getBody()
-                                                                        .getProperty("PropertyDouble")
-                                                                        .getPrimitiveValue()
-                                                                        .toValue());
+    assertEquals(3.1415, ((ODataRetrieveResponse<ClientEntity>) response4).getBody()
+        .getProperty("PropertyDouble")
+        .getPrimitiveValue()
+        .toValue());
   }
+
   private void appendGetRequest(final BatchManager manager, final String segment, final Object key, boolean isRelative)
       throws URISyntaxException {
     final URIBuilder targetURI = client.newURIBuilder(SERVICE_URI);
     targetURI.appendEntitySetSegment(segment).appendKeySegment(key);
     final URI uri = (isRelative) ? new URI(SERVICE_URI).relativize(targetURI.build()) : targetURI.build();
 
-    ODataEntityRequest<ODataEntity> queryReq = client.getRetrieveRequestFactory().getEntityRequest(uri);
+    ODataEntityRequest<ClientEntity> queryReq = client.getRetrieveRequestFactory().getEntityRequest(uri);
     queryReq.setFormat(ODataFormat.JSON);
     manager.addRequest(queryReq);
   }


[21/50] [abbrv] olingo-odata4 git commit: [OLINGO-564] Renamed 'ClientCsdl' classes

Posted by mi...@apache.org.
http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/53b10f6b/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/ClientPropertyPath.java
----------------------------------------------------------------------
diff --git a/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/ClientPropertyPath.java b/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/ClientPropertyPath.java
deleted file mode 100644
index b74da28..0000000
--- a/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/ClientPropertyPath.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.client.core.edm.xml;
-
-import org.apache.olingo.commons.api.edm.provider.annotation.PropertyPath;
-
-class ClientPropertyPath extends AbstractClientElementOrAttributeExpression implements PropertyPath {
-
-  private static final long serialVersionUID = -9133862135834738470L;
-
-}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/53b10f6b/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/ClientPropertyRef.java
----------------------------------------------------------------------
diff --git a/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/ClientPropertyRef.java b/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/ClientPropertyRef.java
deleted file mode 100644
index 17bdc33..0000000
--- a/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/ClientPropertyRef.java
+++ /dev/null
@@ -1,54 +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.client.core.edm.xml;
-
-import com.fasterxml.jackson.core.JsonParser;
-import com.fasterxml.jackson.core.JsonToken;
-import com.fasterxml.jackson.databind.DeserializationContext;
-import com.fasterxml.jackson.databind.annotation.JsonDeserialize;
-import org.apache.olingo.commons.api.edm.provider.CsdlPropertyRef;
-
-import java.io.IOException;
-
-@JsonDeserialize(using = ClientPropertyRef.PropertyRefDeserializer.class)
-class ClientPropertyRef extends CsdlPropertyRef {
-
-  private static final long serialVersionUID = 1504095609268590326L;
-
-  static class PropertyRefDeserializer extends AbstractClientEdmDeserializer<CsdlPropertyRef> {
-    @Override
-    protected CsdlPropertyRef doDeserialize(final JsonParser jp, final DeserializationContext ctxt)
-            throws IOException {
-
-      final CsdlPropertyRef propertyRef = new ClientPropertyRef();
-
-      for (; jp.getCurrentToken() != JsonToken.END_OBJECT; jp.nextToken()) {
-        final JsonToken token = jp.getCurrentToken();
-        if (token == JsonToken.FIELD_NAME) {
-          if ("Name".equals(jp.getCurrentName())) {
-            propertyRef.setName(jp.nextTextValue());
-          } else if ("Alias".equals(jp.getCurrentName())) {
-            propertyRef.setAlias(jp.nextTextValue());
-          }
-        }
-      }
-      return propertyRef;
-    }
-  }
-}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/53b10f6b/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/ClientPropertyValue.java
----------------------------------------------------------------------
diff --git a/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/ClientPropertyValue.java b/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/ClientPropertyValue.java
deleted file mode 100644
index 9b9aa8e..0000000
--- a/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/ClientPropertyValue.java
+++ /dev/null
@@ -1,80 +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.client.core.edm.xml;
-
-import com.fasterxml.jackson.core.JsonParser;
-import com.fasterxml.jackson.core.JsonToken;
-import com.fasterxml.jackson.databind.DeserializationContext;
-import org.apache.olingo.commons.api.edm.provider.annotation.AnnotationExpression;
-import org.apache.olingo.commons.api.edm.provider.annotation.PropertyValue;
-
-import com.fasterxml.jackson.databind.annotation.JsonDeserialize;
-
-import java.io.IOException;
-
-@JsonDeserialize(using = ClientPropertyValue.PropertyValueDeserializer.class)
-class ClientPropertyValue extends AbstractClientAnnotatableDynamicAnnotationExpression implements PropertyValue {
-
-  private static final long serialVersionUID = -8437649215282645228L;
-
-  private String property;
-
-  private AnnotationExpression value;
-
-  @Override
-  public String getProperty() {
-    return property;
-  }
-
-  public void setProperty(final String property) {
-    this.property = property;
-  }
-
-  @Override
-  public AnnotationExpression getValue() {
-    return value;
-  }
-
-  public void setValue(final AnnotationExpression value) {
-    this.value = value;
-  }
-
-  static class PropertyValueDeserializer extends AbstractClientEdmDeserializer<ClientPropertyValue> {
-    @Override
-    protected ClientPropertyValue doDeserialize(final JsonParser jp, final DeserializationContext ctxt)
-            throws IOException {
-      final ClientPropertyValue propValue = new ClientPropertyValue();
-      for (; jp.getCurrentToken() != JsonToken.END_OBJECT; jp.nextToken()) {
-        final JsonToken token = jp.getCurrentToken();
-        if (token == JsonToken.FIELD_NAME) {
-          if ("Property".equals(jp.getCurrentName())) {
-            propValue.setProperty(jp.nextTextValue());
-          } else if ("Annotation".equals(jp.getCurrentName())) {
-            propValue.getAnnotations().add(jp.readValueAs(ClientAnnotation.class));
-          } else if (isAnnotationConstExprConstruct(jp)) {
-            propValue.setValue(parseAnnotationConstExprConstruct(jp));
-          } else {
-            propValue.setValue(jp.readValueAs(AbstractClientDynamicAnnotationExpression.class));
-          }
-        }
-      }
-      return propValue;
-    }
-  }
-}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/53b10f6b/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/ClientRecord.java
----------------------------------------------------------------------
diff --git a/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/ClientRecord.java b/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/ClientRecord.java
deleted file mode 100644
index 264adae..0000000
--- a/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/ClientRecord.java
+++ /dev/null
@@ -1,76 +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.client.core.edm.xml;
-
-import java.io.IOException;
-import java.util.ArrayList;
-import java.util.List;
-
-import com.fasterxml.jackson.core.JsonParser;
-import com.fasterxml.jackson.core.JsonToken;
-import com.fasterxml.jackson.databind.DeserializationContext;
-import org.apache.olingo.commons.api.edm.provider.annotation.PropertyValue;
-import org.apache.olingo.commons.api.edm.provider.annotation.Record;
-
-import com.fasterxml.jackson.databind.annotation.JsonDeserialize;
-
-@JsonDeserialize(using = ClientRecord.RecordDeserializer.class)
-class ClientRecord extends AbstractClientAnnotatableDynamicAnnotationExpression implements Record {
-
-  private static final long serialVersionUID = 4275271751615410709L;
-
-  private String type;
-
-  private final List<PropertyValue> propertyValues = new ArrayList<PropertyValue>();
-
-  @Override
-  public String getType() {
-    return type;
-  }
-
-  public void setType(final String type) {
-    this.type = type;
-  }
-
-  @Override
-  public List<PropertyValue> getPropertyValues() {
-    return propertyValues;
-  }
-
-  static class RecordDeserializer extends AbstractClientEdmDeserializer<ClientRecord> {
-    @Override
-    protected ClientRecord doDeserialize(final JsonParser jp, final DeserializationContext ctxt)
-            throws IOException {
-      final ClientRecord record = new ClientRecord();
-      for (; jp.getCurrentToken() != JsonToken.END_OBJECT; jp.nextToken()) {
-        final JsonToken token = jp.getCurrentToken();
-        if (token == JsonToken.FIELD_NAME) {
-          if ("Type".equals(jp.getCurrentName())) {
-            record.setType(jp.nextTextValue());
-          } else if ("Annotation".equals(jp.getCurrentName())) {
-            record.getAnnotations().add(jp.readValueAs(ClientAnnotation.class));
-          } else {
-            record.getPropertyValues().add(jp.readValueAs(ClientPropertyValue.class));
-          }
-        }
-      }
-      return record;
-    }
-  }
-}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/53b10f6b/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/ClientReference.java
----------------------------------------------------------------------
diff --git a/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/ClientReference.java b/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/ClientReference.java
deleted file mode 100644
index 36b43d6..0000000
--- a/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/ClientReference.java
+++ /dev/null
@@ -1,98 +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.client.core.edm.xml;
-
-import java.io.IOException;
-import java.net.URI;
-import java.util.ArrayList;
-import java.util.List;
-
-import com.fasterxml.jackson.core.JsonParser;
-import com.fasterxml.jackson.core.JsonToken;
-import com.fasterxml.jackson.databind.DeserializationContext;
-import org.apache.olingo.client.api.edm.xml.Include;
-import org.apache.olingo.client.api.edm.xml.IncludeAnnotations;
-import org.apache.olingo.client.api.edm.xml.Reference;
-import org.apache.olingo.commons.api.edm.provider.CsdlAbstractEdmItem;
-import org.apache.olingo.commons.api.edm.provider.CsdlAnnotation;
-
-import com.fasterxml.jackson.databind.annotation.JsonDeserialize;
-
-@JsonDeserialize(using = ClientReference.ReferenceDeserializer.class)
-class ClientReference extends CsdlAbstractEdmItem implements Reference {
-
-  private static final long serialVersionUID = 7720274712545267654L;
-
-  private URI uri;
-  private final List<Include> includes = new ArrayList<Include>();
-  private final List<IncludeAnnotations> includeAnnotations = new ArrayList<IncludeAnnotations>();
-  private final List<CsdlAnnotation> annotations = new ArrayList<CsdlAnnotation>();
-
-  @Override
-  public List<CsdlAnnotation> getAnnotations() {
-    return annotations;
-  }
-  
-  @Override
-  public URI getUri() {
-    return uri;
-  }
-
-  public void setUri(final URI uri) {
-    this.uri = uri;
-  }
-
-  @Override
-  public List<Include> getIncludes() {
-    return includes;
-  }
-
-  @Override
-  public List<IncludeAnnotations> getIncludeAnnotations() {
-    return includeAnnotations;
-  }
-
-  static class ReferenceDeserializer extends AbstractClientEdmDeserializer<ClientReference> {
-    @Override
-    protected ClientReference doDeserialize(final JsonParser jp, final DeserializationContext ctxt)
-            throws IOException {
-      final ClientReference reference = new ClientReference();
-
-      for (; jp.getCurrentToken() != JsonToken.END_OBJECT; jp.nextToken()) {
-        final JsonToken token = jp.getCurrentToken();
-        if (token == JsonToken.FIELD_NAME) {
-          if ("Uri".equals(jp.getCurrentName())) {
-            reference.setUri(URI.create(jp.nextTextValue()));
-          } else if ("Include".equals(jp.getCurrentName())) {
-            jp.nextToken();
-            reference.getIncludes().add(jp.readValueAs( ClientInclude.class));
-          } else if ("IncludeAnnotations".equals(jp.getCurrentName())) {
-            jp.nextToken();
-            reference.getIncludeAnnotations().add(jp.readValueAs( ClientIncludeAnnotations.class));
-          } else if ("Annotation".equals(jp.getCurrentName())) {
-            jp.nextToken();
-            reference.getAnnotations().add(jp.readValueAs( ClientAnnotation.class));
-          }
-        }
-      }
-
-      return reference;
-    }
-  }
-}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/53b10f6b/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/ClientReferentialConstraint.java
----------------------------------------------------------------------
diff --git a/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/ClientReferentialConstraint.java b/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/ClientReferentialConstraint.java
deleted file mode 100644
index e613563..0000000
--- a/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/ClientReferentialConstraint.java
+++ /dev/null
@@ -1,54 +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.client.core.edm.xml;
-
-import com.fasterxml.jackson.core.JsonParser;
-import com.fasterxml.jackson.core.JsonToken;
-import com.fasterxml.jackson.databind.DeserializationContext;
-import com.fasterxml.jackson.databind.annotation.JsonDeserialize;
-import org.apache.olingo.commons.api.edm.provider.CsdlReferentialConstraint;
-
-import java.io.IOException;
-
-@JsonDeserialize(using = ClientReferentialConstraint.ReferentialConstraintDeserializer.class)
-class ClientReferentialConstraint extends CsdlReferentialConstraint {
-
-  private static final long serialVersionUID = -5822115908069878139L;
-
-  static class ReferentialConstraintDeserializer extends AbstractClientEdmDeserializer<CsdlReferentialConstraint> {
-    @Override
-    protected CsdlReferentialConstraint doDeserialize(final JsonParser jp, final DeserializationContext ctxt)
-            throws IOException {
-
-      final CsdlReferentialConstraint refConst = new ClientReferentialConstraint();
-
-      for (; jp.getCurrentToken() != JsonToken.END_OBJECT; jp.nextToken()) {
-        final JsonToken token = jp.getCurrentToken();
-        if (token == JsonToken.FIELD_NAME) {
-          if ("Property".equals(jp.getCurrentName())) {
-            refConst.setProperty(jp.nextTextValue());
-          } else if ("ReferencedProperty".equals(jp.getCurrentName())) {
-            refConst.setReferencedProperty(jp.nextTextValue());
-          }
-        }
-      }
-      return refConst;
-    }
-  }
-}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/53b10f6b/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/ClientReturnType.java
----------------------------------------------------------------------
diff --git a/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/ClientReturnType.java b/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/ClientReturnType.java
deleted file mode 100644
index 72db23f..0000000
--- a/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/ClientReturnType.java
+++ /dev/null
@@ -1,78 +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.client.core.edm.xml;
-
-import com.fasterxml.jackson.core.JsonParser;
-import com.fasterxml.jackson.core.JsonToken;
-import com.fasterxml.jackson.databind.DeserializationContext;
-import org.apache.commons.lang3.BooleanUtils;
-import org.apache.olingo.commons.api.edm.geo.SRID;
-import org.apache.olingo.commons.api.edm.provider.CsdlReturnType;
-
-import com.fasterxml.jackson.databind.annotation.JsonDeserialize;
-
-import java.io.IOException;
-
-@JsonDeserialize(using = ClientReturnType.ReturnTypeDeserializer.class)
-class ClientReturnType extends CsdlReturnType {
-
-  private static final long serialVersionUID = 6261092793901735110L;
-
-  static class ReturnTypeDeserializer extends AbstractClientEdmDeserializer<ClientReturnType> {
-    @Override
-    protected ClientReturnType doDeserialize(final JsonParser jp, final DeserializationContext ctxt)
-            throws IOException {
-      final ClientReturnType returnType = new ClientReturnType();
-
-      for (; jp.getCurrentToken() != JsonToken.END_OBJECT; jp.nextToken()) {
-        final JsonToken token = jp.getCurrentToken();
-        if (token == JsonToken.FIELD_NAME) {
-          if ("Type".equals(jp.getCurrentName())) {
-            String metadataTypeName = jp.nextTextValue();
-            if (metadataTypeName.startsWith("Collection(")) {
-              returnType.setType(metadataTypeName.substring(metadataTypeName.indexOf("(") + 1,
-                      metadataTypeName.length() - 1));
-              returnType.setCollection(true);
-            } else {
-              returnType.setType(metadataTypeName);
-              returnType.setCollection(false);
-            }
-          } else if ("Nullable".equals(jp.getCurrentName())) {
-            returnType.setNullable(BooleanUtils.toBoolean(jp.nextTextValue()));
-          } else if ("MaxLength".equals(jp.getCurrentName())) {
-            final String maxLenght = jp.nextTextValue();
-            returnType.setMaxLength(maxLenght.equalsIgnoreCase("max") ? Integer.MAX_VALUE : Integer.valueOf(maxLenght));
-          } else if ("Precision".equals(jp.getCurrentName())) {
-            returnType.setPrecision(Integer.valueOf(jp.nextTextValue()));
-          } else if ("Scale".equals(jp.getCurrentName())) {
-            final String scale = jp.nextTextValue();
-            returnType.setScale(scale.equalsIgnoreCase("variable") ? 0 : Integer.valueOf(scale));
-          } else if ("SRID".equals(jp.getCurrentName())) {
-            final String srid = jp.nextTextValue();
-            if (srid != null) {
-              returnType.setSrid(SRID.valueOf(srid));
-            }
-          }
-        }
-      }
-
-      return returnType;
-    }
-  }
-}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/53b10f6b/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/ClientSchema.java
----------------------------------------------------------------------
diff --git a/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/ClientSchema.java b/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/ClientSchema.java
deleted file mode 100644
index a4a0dd7..0000000
--- a/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/ClientSchema.java
+++ /dev/null
@@ -1,86 +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.client.core.edm.xml;
-
-import com.fasterxml.jackson.core.JsonParser;
-import com.fasterxml.jackson.core.JsonToken;
-import com.fasterxml.jackson.databind.DeserializationContext;
-import org.apache.olingo.commons.api.edm.provider.CsdlSchema;
-
-import com.fasterxml.jackson.databind.annotation.JsonDeserialize;
-
-import java.io.IOException;
-
-@JsonDeserialize(using = ClientSchema.SchemaDeserializer.class)
-class ClientSchema extends CsdlSchema {
-
-  private static final long serialVersionUID = 1911087363912024939L;
-
-  static class SchemaDeserializer extends AbstractClientEdmDeserializer<ClientSchema> {
-    @Override
-    protected ClientSchema doDeserialize(final JsonParser jp, final DeserializationContext ctxt)
-            throws IOException {
-      final ClientSchema schema = new ClientSchema();
-
-      for (; jp.getCurrentToken() != JsonToken.END_OBJECT; jp.nextToken()) {
-        final JsonToken token = jp.getCurrentToken();
-        if (token == JsonToken.FIELD_NAME) {
-          if ("Namespace".equals(jp.getCurrentName())) {
-            schema.setNamespace(jp.nextTextValue());
-          } else if ("Alias".equals(jp.getCurrentName())) {
-            schema.setAlias(jp.nextTextValue());
-          } else if ("ComplexType".equals(jp.getCurrentName())) {
-            jp.nextToken();
-            schema.getComplexTypes().add(jp.readValueAs(ClientComplexType.class));
-          } else if ("EntityType".equals(jp.getCurrentName())) {
-            jp.nextToken();
-            schema.getEntityTypes().add(jp.readValueAs(ClientEntityType.class));
-          } else if ("EnumType".equals(jp.getCurrentName())) {
-            jp.nextToken();
-            schema.getEnumTypes().add(jp.readValueAs(ClientEnumType.class));
-          } else if ("EntityContainer".equals(jp.getCurrentName())) {
-            jp.nextToken();
-            ClientEntityContainer entityContainer = jp.readValueAs(ClientEntityContainer.class);
-            schema.setEntityContainer(entityContainer);
-          } else if ("Action".equals(jp.getCurrentName())) {
-            jp.nextToken();
-            schema.getActions().add(jp.readValueAs(ClientAction.class));
-          } else if ("Function".equals(jp.getCurrentName())) {
-            jp.nextToken();
-            schema.getFunctions().add(jp.readValueAs(ClientFunction.class));
-          } else if ("TypeDefinition".equals(jp.getCurrentName())) {
-            jp.nextToken();
-            schema.getTypeDefinitions().add(jp.readValueAs(ClientTypeDefinition.class));
-          }
-        } else if ("Annotations".equals(jp.getCurrentName())) {
-          jp.nextToken();
-          schema.getAnnotationGroups().add(jp.readValueAs(ClientAnnotations.class));
-        } else if ("Annotation".equals(jp.getCurrentName())) {
-          jp.nextToken();
-          schema.getAnnotations().add(jp.readValueAs(ClientAnnotation.class));
-        } else if ("Term".equals(jp.getCurrentName())) {
-          jp.nextToken();
-          schema.getTerms().add(jp.readValueAs(ClientTerm.class));
-        }
-      }
-
-      return schema;
-    }
-  }
-}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/53b10f6b/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/ClientSingleton.java
----------------------------------------------------------------------
diff --git a/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/ClientSingleton.java b/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/ClientSingleton.java
deleted file mode 100644
index a06d6e8..0000000
--- a/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/ClientSingleton.java
+++ /dev/null
@@ -1,62 +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.client.core.edm.xml;
-
-import com.fasterxml.jackson.core.JsonParser;
-import com.fasterxml.jackson.core.JsonToken;
-import com.fasterxml.jackson.databind.DeserializationContext;
-import org.apache.olingo.commons.api.edm.provider.CsdlSingleton;
-
-import com.fasterxml.jackson.databind.annotation.JsonDeserialize;
-
-import java.io.IOException;
-
-@JsonDeserialize(using = ClientSingleton.SingletonDeserializer.class)
-class ClientSingleton extends CsdlSingleton {
-
-  private static final long serialVersionUID = 1656749615107151921L;
-
-  static class SingletonDeserializer extends AbstractClientEdmDeserializer<ClientSingleton> {
-    @Override
-    protected ClientSingleton doDeserialize(final JsonParser jp, final DeserializationContext ctxt)
-            throws IOException {
-      final ClientSingleton singleton = new ClientSingleton();
-
-      for (; jp.getCurrentToken() != JsonToken.END_OBJECT; jp.nextToken()) {
-        final JsonToken token = jp.getCurrentToken();
-        if (token == JsonToken.FIELD_NAME) {
-          if ("Name".equals(jp.getCurrentName())) {
-            singleton.setName(jp.nextTextValue());
-          } else if ("Type".equals(jp.getCurrentName())) {
-            singleton.setType(jp.nextTextValue());
-          } else if ("NavigationPropertyBinding".equals(jp.getCurrentName())) {
-            jp.nextToken();
-            singleton.getNavigationPropertyBindings().add(
-                    jp.readValueAs(ClientNavigationPropertyBinding.class));
-          } else if ("Annotation".equals(jp.getCurrentName())) {
-            jp.nextToken();
-            singleton.getAnnotations().add(jp.readValueAs(ClientAnnotation.class));
-          }
-        }
-      }
-
-      return singleton;
-    }
-  }
-}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/53b10f6b/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/ClientTerm.java
----------------------------------------------------------------------
diff --git a/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/ClientTerm.java b/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/ClientTerm.java
deleted file mode 100644
index f0904dd..0000000
--- a/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/ClientTerm.java
+++ /dev/null
@@ -1,83 +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.client.core.edm.xml;
-
-import com.fasterxml.jackson.core.JsonParser;
-import com.fasterxml.jackson.core.JsonToken;
-import com.fasterxml.jackson.databind.DeserializationContext;
-import org.apache.commons.lang3.BooleanUtils;
-import org.apache.commons.lang3.StringUtils;
-import org.apache.olingo.commons.api.edm.geo.SRID;
-import org.apache.olingo.commons.api.edm.provider.CsdlTerm;
-
-import com.fasterxml.jackson.databind.annotation.JsonDeserialize;
-
-import java.io.IOException;
-import java.util.Arrays;
-
-@JsonDeserialize(using = ClientTerm.TermDeserializer.class)
-class ClientTerm extends CsdlTerm {
-
-  private static final long serialVersionUID = -8350072064720586186L;
-
-  static class TermDeserializer extends AbstractClientEdmDeserializer<ClientTerm> {
-    @Override
-    protected ClientTerm doDeserialize(final JsonParser jp, final DeserializationContext ctxt)
-            throws IOException {
-      final ClientTerm term = new ClientTerm();
-
-      for (; jp.getCurrentToken() != JsonToken.END_OBJECT; jp.nextToken()) {
-        final JsonToken token = jp.getCurrentToken();
-        if (token == JsonToken.FIELD_NAME) {
-          if ("Name".equals(jp.getCurrentName())) {
-            term.setName(jp.nextTextValue());
-          } else if ("Type".equals(jp.getCurrentName())) {
-            term.setType(jp.nextTextValue());
-          } else if ("BaseTerm".equals(jp.getCurrentName())) {
-            term.setBaseTerm(jp.nextTextValue());
-          } else if ("DefaultValue".equals(jp.getCurrentName())) {
-            term.setDefaultValue(jp.nextTextValue());
-          } else if ("Nullable".equals(jp.getCurrentName())) {
-            term.setNullable(BooleanUtils.toBoolean(jp.nextTextValue()));
-          } else if ("MaxLength".equals(jp.getCurrentName())) {
-            final String maxLenght = jp.nextTextValue();
-            term.setMaxLength(maxLenght.equalsIgnoreCase("max") ? Integer.MAX_VALUE : Integer.valueOf(maxLenght));
-          } else if ("Precision".equals(jp.getCurrentName())) {
-            term.setPrecision(Integer.valueOf(jp.nextTextValue()));
-          } else if ("Scale".equals(jp.getCurrentName())) {
-            final String scale = jp.nextTextValue();
-            term.setScale(scale.equalsIgnoreCase("variable") ? 0 : Integer.valueOf(scale));
-          } else if ("SRID".equals(jp.getCurrentName())) {
-            final String srid = jp.nextTextValue();
-            if (srid != null) {
-              term.setSrid(SRID.valueOf(srid));
-            }
-          } else if ("AppliesTo".equals(jp.getCurrentName())) {
-            term.getAppliesTo().addAll(Arrays.asList(StringUtils.split(jp.nextTextValue())));
-          } else if ("Annotation".equals(jp.getCurrentName())) {
-            jp.nextToken();
-            term.getAnnotations().add(jp.readValueAs(ClientAnnotation.class));
-          }
-        }
-      }
-
-      return term;
-    }
-  }
-}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/53b10f6b/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/ClientTwoParamsOpDynamicAnnotationExpression.java
----------------------------------------------------------------------
diff --git a/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/ClientTwoParamsOpDynamicAnnotationExpression.java b/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/ClientTwoParamsOpDynamicAnnotationExpression.java
deleted file mode 100644
index 8ce3167..0000000
--- a/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/ClientTwoParamsOpDynamicAnnotationExpression.java
+++ /dev/null
@@ -1,62 +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.client.core.edm.xml;
-
-import org.apache.olingo.commons.api.edm.provider.annotation.DynamicAnnotationExpression;
-import org.apache.olingo.commons.api.edm.provider.annotation.TwoParamsOpDynamicAnnotationExpression;
-
-class ClientTwoParamsOpDynamicAnnotationExpression
-        extends AbstractClientDynamicAnnotationExpression implements TwoParamsOpDynamicAnnotationExpression {
-
-  private static final long serialVersionUID = 6241842185452451946L;
-
-  private Type type;
-
-  private DynamicAnnotationExpression left;
-
-  private DynamicAnnotationExpression right;
-
-  @Override
-  public Type getType() {
-    return type;
-  }
-
-  public void setType(final Type type) {
-    this.type = type;
-  }
-
-  @Override
-  public DynamicAnnotationExpression getLeftExpression() {
-    return left;
-  }
-
-  public void setLeftExpression(final DynamicAnnotationExpression left) {
-    this.left = left;
-  }
-
-  @Override
-  public DynamicAnnotationExpression getRightExpression() {
-    return right;
-  }
-
-  public void setRightExpression(final DynamicAnnotationExpression right) {
-    this.right = right;
-  }
-
-}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/53b10f6b/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/ClientTypeDefinition.java
----------------------------------------------------------------------
diff --git a/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/ClientTypeDefinition.java b/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/ClientTypeDefinition.java
deleted file mode 100644
index fd79ec4..0000000
--- a/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/ClientTypeDefinition.java
+++ /dev/null
@@ -1,74 +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.client.core.edm.xml;
-
-import com.fasterxml.jackson.core.JsonParser;
-import com.fasterxml.jackson.core.JsonToken;
-import com.fasterxml.jackson.databind.DeserializationContext;
-import org.apache.commons.lang3.BooleanUtils;
-import org.apache.olingo.commons.api.edm.geo.SRID;
-import org.apache.olingo.commons.api.edm.provider.CsdlTypeDefinition;
-
-import com.fasterxml.jackson.databind.annotation.JsonDeserialize;
-
-import java.io.IOException;
-
-@JsonDeserialize(using = ClientTypeDefinition.TypeDefinitionDeserializer.class)
-class ClientTypeDefinition extends CsdlTypeDefinition {
-
-  private static final long serialVersionUID = -902407149079419602L;
-
-  static class TypeDefinitionDeserializer extends AbstractClientEdmDeserializer<ClientTypeDefinition> {
-    @Override
-    protected ClientTypeDefinition doDeserialize(final JsonParser jp, final DeserializationContext ctxt)
-            throws IOException {
-      final ClientTypeDefinition typeDefinition = new ClientTypeDefinition();
-
-      for (; jp.getCurrentToken() != JsonToken.END_OBJECT; jp.nextToken()) {
-        final JsonToken token = jp.getCurrentToken();
-        if (token == JsonToken.FIELD_NAME) {
-          if ("Name".equals(jp.getCurrentName())) {
-            typeDefinition.setName(jp.nextTextValue());
-          } else if ("UnderlyingType".equals(jp.getCurrentName())) {
-            typeDefinition.setUnderlyingType(jp.nextTextValue());
-          } else if ("MaxLength".equals(jp.getCurrentName())) {
-            typeDefinition.setMaxLength(jp.nextIntValue(0));
-          } else if ("Unicode".equals(jp.getCurrentName())) {
-            typeDefinition.setUnicode(BooleanUtils.toBoolean(jp.nextTextValue()));
-          } else if ("Precision".equals(jp.getCurrentName())) {
-            typeDefinition.setPrecision(jp.nextIntValue(0));
-          } else if ("Scale".equals(jp.getCurrentName())) {
-            final String scale = jp.nextTextValue();
-            typeDefinition.setScale(scale.equalsIgnoreCase("variable") ? 0 : Integer.valueOf(scale));
-          } else if ("SRID".equals(jp.getCurrentName())) {
-            final String srid = jp.nextTextValue();
-            if (srid != null) {
-              typeDefinition.setSrid(SRID.valueOf(srid));
-            }
-          } else if ("Annotation".equals(jp.getCurrentName())) {
-            jp.nextToken();
-            typeDefinition.getAnnotations().add(jp.readValueAs(ClientAnnotation.class));
-          }
-        }
-      }
-
-      return typeDefinition;
-    }
-  }
-}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/53b10f6b/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/ClientUrlRef.java
----------------------------------------------------------------------
diff --git a/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/ClientUrlRef.java b/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/ClientUrlRef.java
deleted file mode 100644
index 053a52e..0000000
--- a/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/ClientUrlRef.java
+++ /dev/null
@@ -1,65 +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.client.core.edm.xml;
-
-import com.fasterxml.jackson.core.JsonParser;
-import com.fasterxml.jackson.core.JsonToken;
-import com.fasterxml.jackson.databind.DeserializationContext;
-import org.apache.olingo.commons.api.edm.provider.annotation.AnnotationExpression;
-import org.apache.olingo.commons.api.edm.provider.annotation.UrlRef;
-
-import com.fasterxml.jackson.databind.annotation.JsonDeserialize;
-
-import java.io.IOException;
-
-@JsonDeserialize(using = ClientUrlRef.UrlRefDeserializer.class)
-class ClientUrlRef extends AbstractClientDynamicAnnotationExpression implements UrlRef {
-
-  private static final long serialVersionUID = -7693224811739000440L;
-
-  private AnnotationExpression value;
-
-  @Override
-  public AnnotationExpression getValue() {
-    return value;
-  }
-
-  public void setValue(final AnnotationExpression value) {
-    this.value = value;
-  }
-
-  static class UrlRefDeserializer extends AbstractClientEdmDeserializer<ClientUrlRef> {
-    @Override
-    protected ClientUrlRef doDeserialize(final JsonParser jp, final DeserializationContext ctxt)
-            throws IOException {
-      final ClientUrlRef urlref = new ClientUrlRef();
-      for (; jp.getCurrentToken() != JsonToken.END_OBJECT; jp.nextToken()) {
-        final JsonToken token = jp.getCurrentToken();
-        if (token == JsonToken.FIELD_NAME) {
-          if (isAnnotationConstExprConstruct(jp)) {
-            urlref.setValue(parseAnnotationConstExprConstruct(jp));
-          } else {
-            urlref.setValue(jp.readValueAs(AbstractClientDynamicAnnotationExpression.class));
-          }
-        }
-      }
-      return urlref;
-    }
-  }
-}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/53b10f6b/lib/client-core/src/main/java/org/apache/olingo/client/core/serialization/ClientODataDeserializerImpl.java
----------------------------------------------------------------------
diff --git a/lib/client-core/src/main/java/org/apache/olingo/client/core/serialization/ClientODataDeserializerImpl.java b/lib/client-core/src/main/java/org/apache/olingo/client/core/serialization/ClientODataDeserializerImpl.java
index 55a02d4..a668aaf 100644
--- a/lib/client-core/src/main/java/org/apache/olingo/client/core/serialization/ClientODataDeserializerImpl.java
+++ b/lib/client-core/src/main/java/org/apache/olingo/client/core/serialization/ClientODataDeserializerImpl.java
@@ -28,8 +28,8 @@ import org.apache.olingo.client.api.edm.xml.XMLMetadata;
 import org.apache.olingo.client.api.serialization.ClientODataDeserializer;
 import org.apache.olingo.client.core.data.JSONServiceDocumentDeserializer;
 import org.apache.olingo.client.core.data.XMLServiceDocumentDeserializer;
-import org.apache.olingo.client.core.edm.xml.ClientEdmx;
-import org.apache.olingo.client.core.edm.ClientXMLMetadata;
+import org.apache.olingo.client.core.edm.xml.ClientCsdlEdmx;
+import org.apache.olingo.client.core.edm.ClientCsdlXMLMetadata;
 import org.apache.olingo.commons.api.data.Delta;
 import org.apache.olingo.commons.api.data.Entity;
 import org.apache.olingo.commons.api.data.EntityCollection;
@@ -114,7 +114,7 @@ public class ClientODataDeserializerImpl implements ClientODataDeserializer {
   @Override
   public XMLMetadata toMetadata(final InputStream input) {
     try {
-      return new ClientXMLMetadata(getXmlMapper().readValue(input, ClientEdmx.class));
+      return new ClientCsdlXMLMetadata(getXmlMapper().readValue(input, ClientCsdlEdmx.class));
     } catch (Exception e) {
       throw new IllegalArgumentException("Could not parse as Edmx document", e);
     }

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/53b10f6b/lib/client-core/src/main/java/org/apache/olingo/client/core/serialization/ODataReaderImpl.java
----------------------------------------------------------------------
diff --git a/lib/client-core/src/main/java/org/apache/olingo/client/core/serialization/ODataReaderImpl.java b/lib/client-core/src/main/java/org/apache/olingo/client/core/serialization/ODataReaderImpl.java
index c1b4e7c..c0af3af 100644
--- a/lib/client-core/src/main/java/org/apache/olingo/client/core/serialization/ODataReaderImpl.java
+++ b/lib/client-core/src/main/java/org/apache/olingo/client/core/serialization/ODataReaderImpl.java
@@ -28,7 +28,7 @@ import org.apache.olingo.client.api.data.ServiceDocument;
 import org.apache.olingo.client.api.domain.ODataEntitySetIterator;
 import org.apache.olingo.client.api.edm.xml.XMLMetadata;
 import org.apache.olingo.client.api.serialization.ODataReader;
-import org.apache.olingo.client.core.edm.ClientEdmProvider;
+import org.apache.olingo.client.core.edm.ClientCsdlEdmProvider;
 import org.apache.olingo.commons.api.data.Entity;
 import org.apache.olingo.commons.api.data.EntityCollection;
 import org.apache.olingo.commons.api.data.Property;
@@ -68,7 +68,7 @@ public class ODataReaderImpl implements ODataReader {
 
   @Override
   public Edm readMetadata(final Map<String, CsdlSchema> xmlSchemas) {
-    ClientEdmProvider prov = new ClientEdmProvider(xmlSchemas);
+    ClientCsdlEdmProvider prov = new ClientCsdlEdmProvider(xmlSchemas);
     return new EdmProviderImpl(prov);
   }
 


[18/50] [abbrv] olingo-odata4 git commit: [OLINGO-564] Renamed 'edm.provider.*' classes

Posted by mi...@apache.org.
http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/2318953c/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/ClientTypeDefinition.java
----------------------------------------------------------------------
diff --git a/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/ClientTypeDefinition.java b/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/ClientTypeDefinition.java
index e0dd12b..fd79ec4 100644
--- a/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/ClientTypeDefinition.java
+++ b/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/ClientTypeDefinition.java
@@ -23,14 +23,14 @@ import com.fasterxml.jackson.core.JsonToken;
 import com.fasterxml.jackson.databind.DeserializationContext;
 import org.apache.commons.lang3.BooleanUtils;
 import org.apache.olingo.commons.api.edm.geo.SRID;
-import org.apache.olingo.commons.api.edm.provider.TypeDefinition;
+import org.apache.olingo.commons.api.edm.provider.CsdlTypeDefinition;
 
 import com.fasterxml.jackson.databind.annotation.JsonDeserialize;
 
 import java.io.IOException;
 
 @JsonDeserialize(using = ClientTypeDefinition.TypeDefinitionDeserializer.class)
-class ClientTypeDefinition extends TypeDefinition {
+class ClientTypeDefinition extends CsdlTypeDefinition {
 
   private static final long serialVersionUID = -902407149079419602L;
 

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/2318953c/lib/client-core/src/main/java/org/apache/olingo/client/core/serialization/ODataReaderImpl.java
----------------------------------------------------------------------
diff --git a/lib/client-core/src/main/java/org/apache/olingo/client/core/serialization/ODataReaderImpl.java b/lib/client-core/src/main/java/org/apache/olingo/client/core/serialization/ODataReaderImpl.java
index f153ddb..c1b4e7c 100644
--- a/lib/client-core/src/main/java/org/apache/olingo/client/core/serialization/ODataReaderImpl.java
+++ b/lib/client-core/src/main/java/org/apache/olingo/client/core/serialization/ODataReaderImpl.java
@@ -41,7 +41,7 @@ import org.apache.olingo.commons.api.domain.ODataServiceDocument;
 import org.apache.olingo.commons.api.domain.ODataValue;
 import org.apache.olingo.commons.api.edm.Edm;
 import org.apache.olingo.commons.api.edm.EdmPrimitiveTypeKind;
-import org.apache.olingo.commons.api.edm.provider.Schema;
+import org.apache.olingo.commons.api.edm.provider.CsdlSchema;
 import org.apache.olingo.commons.api.format.ODataFormat;
 import org.apache.olingo.commons.api.serialization.ODataDeserializerException;
 import org.apache.olingo.commons.core.edm.EdmProviderImpl;
@@ -67,7 +67,7 @@ public class ODataReaderImpl implements ODataReader {
   }
 
   @Override
-  public Edm readMetadata(final Map<String, Schema> xmlSchemas) {
+  public Edm readMetadata(final Map<String, CsdlSchema> xmlSchemas) {
     ClientEdmProvider prov = new ClientEdmProvider(xmlSchemas);
     return new EdmProviderImpl(prov);
   }

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/2318953c/lib/client-core/src/test/java/org/apache/olingo/client/core/uri/URIEscapeTest.java
----------------------------------------------------------------------
diff --git a/lib/client-core/src/test/java/org/apache/olingo/client/core/uri/URIEscapeTest.java b/lib/client-core/src/test/java/org/apache/olingo/client/core/uri/URIEscapeTest.java
index 2245a14..aad1dc7 100644
--- a/lib/client-core/src/test/java/org/apache/olingo/client/core/uri/URIEscapeTest.java
+++ b/lib/client-core/src/test/java/org/apache/olingo/client/core/uri/URIEscapeTest.java
@@ -32,7 +32,7 @@ import org.apache.olingo.commons.api.edm.EdmEnumType;
 import org.apache.olingo.commons.api.edm.FullQualifiedName;
 import org.apache.olingo.commons.api.edm.geo.Geospatial;
 import org.apache.olingo.commons.api.edm.geo.Point;
-import org.apache.olingo.commons.api.edm.provider.EnumType;
+import org.apache.olingo.commons.api.edm.provider.CsdlEnumType;
 import org.apache.olingo.commons.core.edm.EdmEnumTypeImpl;
 import org.junit.Test;
 
@@ -51,7 +51,7 @@ public class URIEscapeTest {
   @Test
   public void _enum() throws UnsupportedEncodingException {
     final EdmEnumType pattern =
-        new EdmEnumTypeImpl(null, new FullQualifiedName("Sales", "Pattern"), new EnumType());
+        new EdmEnumTypeImpl(null, new FullQualifiedName("Sales", "Pattern"), new CsdlEnumType());
 
     assertEquals("Sales.Pattern'Yellow'", URIUtils.escape( pattern.toUriLiteral("Yellow")));
   }

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/2318953c/lib/client-core/src/test/java/org/apache/olingo/client/core/uri/v4/FilterFactoryTest.java
----------------------------------------------------------------------
diff --git a/lib/client-core/src/test/java/org/apache/olingo/client/core/uri/v4/FilterFactoryTest.java b/lib/client-core/src/test/java/org/apache/olingo/client/core/uri/v4/FilterFactoryTest.java
index aa94a80..eff892e 100644
--- a/lib/client-core/src/test/java/org/apache/olingo/client/core/uri/v4/FilterFactoryTest.java
+++ b/lib/client-core/src/test/java/org/apache/olingo/client/core/uri/v4/FilterFactoryTest.java
@@ -33,7 +33,7 @@ import org.apache.olingo.client.core.AbstractTest;
 import org.apache.olingo.commons.api.Constants;
 import org.apache.olingo.commons.api.edm.EdmEnumType;
 import org.apache.olingo.commons.api.edm.FullQualifiedName;
-import org.apache.olingo.commons.api.edm.provider.EnumType;
+import org.apache.olingo.commons.api.edm.provider.CsdlEnumType;
 import org.apache.olingo.commons.core.edm.EdmEnumTypeImpl;
 import org.junit.Test;
 
@@ -55,7 +55,7 @@ public class FilterFactoryTest extends AbstractTest {
   @Test
   public void has() {
     final EdmEnumType pattern =
-        new EdmEnumTypeImpl(null, new FullQualifiedName("Sales", "Pattern"), new EnumType());
+        new EdmEnumTypeImpl(null, new FullQualifiedName("Sales", "Pattern"), new CsdlEnumType());
     final URIFilter filter = getFilterFactory().has(getFilterArgFactory().property("style"), pattern, "Yellow");
 
     assertEquals("(style has Sales.Pattern'Yellow')", filter.build());

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/2318953c/lib/client-core/src/test/java/org/apache/olingo/client/core/v4/MetadataTest.java
----------------------------------------------------------------------
diff --git a/lib/client-core/src/test/java/org/apache/olingo/client/core/v4/MetadataTest.java b/lib/client-core/src/test/java/org/apache/olingo/client/core/v4/MetadataTest.java
index 19b6881..8d359a7 100644
--- a/lib/client-core/src/test/java/org/apache/olingo/client/core/v4/MetadataTest.java
+++ b/lib/client-core/src/test/java/org/apache/olingo/client/core/v4/MetadataTest.java
@@ -48,16 +48,16 @@ import org.apache.olingo.commons.api.edm.EdmTypeDefinition;
 import org.apache.olingo.commons.api.edm.FullQualifiedName;
 import org.apache.olingo.commons.api.edm.annotation.EdmUrlRef;
 import org.apache.olingo.commons.api.edm.constants.EdmTypeKind;
-import org.apache.olingo.commons.api.edm.provider.Annotation;
-import org.apache.olingo.commons.api.edm.provider.Annotations;
-import org.apache.olingo.commons.api.edm.provider.ComplexType;
-import org.apache.olingo.commons.api.edm.provider.EntityContainer;
-import org.apache.olingo.commons.api.edm.provider.EntityType;
-import org.apache.olingo.commons.api.edm.provider.Function;
-import org.apache.olingo.commons.api.edm.provider.FunctionImport;
-import org.apache.olingo.commons.api.edm.provider.Schema;
-import org.apache.olingo.commons.api.edm.provider.Singleton;
-import org.apache.olingo.commons.api.edm.provider.Term;
+import org.apache.olingo.commons.api.edm.provider.CsdlAnnotation;
+import org.apache.olingo.commons.api.edm.provider.CsdlAnnotations;
+import org.apache.olingo.commons.api.edm.provider.CsdlComplexType;
+import org.apache.olingo.commons.api.edm.provider.CsdlEntityContainer;
+import org.apache.olingo.commons.api.edm.provider.CsdlEntityType;
+import org.apache.olingo.commons.api.edm.provider.CsdlFunction;
+import org.apache.olingo.commons.api.edm.provider.CsdlFunctionImport;
+import org.apache.olingo.commons.api.edm.provider.CsdlSchema;
+import org.apache.olingo.commons.api.edm.provider.CsdlSingleton;
+import org.apache.olingo.commons.api.edm.provider.CsdlTerm;
 import org.apache.olingo.commons.api.edm.provider.annotation.Apply;
 import org.apache.olingo.commons.api.edm.provider.annotation.Collection;
 import org.apache.olingo.commons.api.edm.provider.annotation.ConstantAnnotationExpression;
@@ -145,7 +145,7 @@ public class MetadataTest extends AbstractTest {
     assertNotNull(metadata);
 
     assertFalse(metadata.getSchema(0).getAnnotationGroups().isEmpty());
-    final Annotations annots = metadata.getSchema(0).getAnnotationGroup("ODataDemo.DemoService/Suppliers");
+    final CsdlAnnotations annots = metadata.getSchema(0).getAnnotationGroup("ODataDemo.DemoService/Suppliers");
     assertNotNull(annots);
     assertFalse(annots.getAnnotations().isEmpty());
     assertEquals(ConstantAnnotationExpression.Type.String,
@@ -185,13 +185,13 @@ public class MetadataTest extends AbstractTest {
         toMetadata(getClass().getResourceAsStream("northwind-metadata.xml"));
     assertNotNull(metadata);
 
-    final Schema first = metadata.getSchema("NorthwindModel");
+    final CsdlSchema first = metadata.getSchema("NorthwindModel");
     assertNotNull(first);
 
-    final Schema second = metadata.getSchema("ODataWebExperimental.Northwind.Model");
+    final CsdlSchema second = metadata.getSchema("ODataWebExperimental.Northwind.Model");
     assertNotNull(second);
 
-    final EntityContainer entityContainer = second.getEntityContainer();
+    final CsdlEntityContainer entityContainer = second.getEntityContainer();
     assertNotNull(entityContainer);
     assertEquals("NorthwindEntities", entityContainer.getName());
   }
@@ -208,31 +208,31 @@ public class MetadataTest extends AbstractTest {
     assertFalse(metadata.getReferences().isEmpty());
     assertEquals("Org.OData.Measures.V1", metadata.getReferences().get(1).getIncludes().get(0).getNamespace());
 
-    final EntityType product = metadata.getSchema(0).getEntityType("Product");
+    final CsdlEntityType product = metadata.getSchema(0).getEntityType("Product");
     assertTrue(product.hasStream());
     assertEquals("UoM.ISOCurrency", product.getProperty("Price").getAnnotations().get(0).getTerm());
     assertEquals("Products", product.getNavigationProperty("Supplier").getPartner());
 
-    final EntityType category = metadata.getSchema(0).getEntityType("Category");
+    final CsdlEntityType category = metadata.getSchema(0).getEntityType("Category");
     assertNotNull(category);
 
-    final ComplexType address = metadata.getSchema(0).getComplexType("Address");
+    final CsdlComplexType address = metadata.getSchema(0).getComplexType("Address");
     assertFalse(address.getNavigationProperty("Country").getReferentialConstraints().isEmpty());
     assertEquals("Name",
         address.getNavigationProperty("Country").getReferentialConstraints().get(0).getReferencedProperty());
 
-    final Function productsByRating = metadata.getSchema(0).getFunctions("ProductsByRating").get(0);
+    final CsdlFunction productsByRating = metadata.getSchema(0).getFunctions("ProductsByRating").get(0);
     assertNotNull(productsByRating.getParameter("Rating"));
     assertEquals("Edm.Int32", productsByRating.getParameter("Rating").getType());
     assertEquals("ODataDemo.Product", productsByRating.getReturnType().getType());
     assertTrue(productsByRating.getReturnType().isCollection());
 
-    final Singleton contoso = metadata.getSchema(0).getEntityContainer().getSingleton("Contoso");
+    final CsdlSingleton contoso = metadata.getSchema(0).getEntityContainer().getSingleton("Contoso");
     assertNotNull(contoso);
     assertFalse(contoso.getNavigationPropertyBindings().isEmpty());
     assertEquals("Products", contoso.getNavigationPropertyBindings().get(0).getPath());
 
-    final FunctionImport functionImport = metadata.getSchema(0).getEntityContainer().
+    final CsdlFunctionImport functionImport = metadata.getSchema(0).getEntityContainer().
         getFunctionImport("ProductsByRating");
     assertNotNull(functionImport);
     assertEquals(metadata.getSchema(0).getNamespace() + "." + productsByRating.getName(),
@@ -286,7 +286,7 @@ public class MetadataTest extends AbstractTest {
     assertNotNull(metadata);
 
     // Check displayName
-    final Annotation displayName = metadata.getSchema(0).getAnnotationGroup("ODataDemo.Supplier").
+    final CsdlAnnotation displayName = metadata.getSchema(0).getAnnotationGroup("ODataDemo.Supplier").
         getAnnotation("Vocabulary1.DisplayName");
     assertNotNull(displayName);
     assertTrue(displayName.getExpression().isDynamic());
@@ -308,7 +308,7 @@ public class MetadataTest extends AbstractTest {
     assertEquals("Address/CountryName", thirdArg.getValue());
 
     // Check Tags
-    final Annotation tags = metadata.getSchema(0).getAnnotationGroup("ODataDemo.Product").
+    final CsdlAnnotation tags = metadata.getSchema(0).getAnnotationGroup("ODataDemo.Product").
         getAnnotation("Vocabulary1.Tags");
     assertNotNull(tags);
     assertTrue(tags.getExpression().isDynamic());
@@ -347,10 +347,10 @@ public class MetadataTest extends AbstractTest {
         toMetadata(getClass().getResourceAsStream("fromdoc4-metadata.xml"));
     assertNotNull(metadata);
 
-    final Annotations group = metadata.getSchema(0).getAnnotationGroups().get(0);
+    final CsdlAnnotations group = metadata.getSchema(0).getAnnotationGroups().get(0);
     assertNotNull(group);
 
-    Annotation annotation = group.getAnnotations().get(0);
+    CsdlAnnotation annotation = group.getAnnotations().get(0);
     assertTrue(annotation.getExpression().isDynamic());
     assertTrue(annotation.getExpression().asDynamic().isCast());
     assertEquals("Edm.Decimal", annotation.getExpression().asDynamic().asCast().getType());
@@ -402,11 +402,11 @@ public class MetadataTest extends AbstractTest {
     final XMLMetadata metadata = getClient().getDeserializer(ODataFormat.XML).
             toMetadata(input);
 
-    Schema schema = metadata.getSchema("Capabilities");
+    CsdlSchema schema = metadata.getSchema("Capabilities");
     assertNotNull(schema);
     assertEquals(23, schema.getTerms().size());
 
-    final Term deleteRestrictions = schema.getTerm("DeleteRestrictions");
+    final CsdlTerm deleteRestrictions = schema.getTerm("DeleteRestrictions");
     assertNotNull(deleteRestrictions);
     assertEquals("Capabilities.DeleteRestrictionsType", deleteRestrictions.getType());
   }

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/2318953c/lib/commons-api/src/main/java/org/apache/olingo/commons/api/edm/provider/AbstractEdmItem.java
----------------------------------------------------------------------
diff --git a/lib/commons-api/src/main/java/org/apache/olingo/commons/api/edm/provider/AbstractEdmItem.java b/lib/commons-api/src/main/java/org/apache/olingo/commons/api/edm/provider/AbstractEdmItem.java
deleted file mode 100644
index 0c375ae..0000000
--- a/lib/commons-api/src/main/java/org/apache/olingo/commons/api/edm/provider/AbstractEdmItem.java
+++ /dev/null
@@ -1,64 +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.commons.api.edm.provider;
-
-import java.io.Serializable;
-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;
-
-public abstract class AbstractEdmItem implements Serializable {
-
-  private static final long serialVersionUID = 241190986363884784L;
-
-  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);
-  }
-
-  @Override
-  public int hashCode() {
-    return HashCodeBuilder.reflectionHashCode(this);
-  }
-
-  @Override
-  public String toString() {
-    return ReflectionToStringBuilder.toString(this, ToStringStyle.MULTI_LINE_STYLE);
-  }
-}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/2318953c/lib/commons-api/src/main/java/org/apache/olingo/commons/api/edm/provider/AbstractEdmProvider.java
----------------------------------------------------------------------
diff --git a/lib/commons-api/src/main/java/org/apache/olingo/commons/api/edm/provider/AbstractEdmProvider.java b/lib/commons-api/src/main/java/org/apache/olingo/commons/api/edm/provider/AbstractEdmProvider.java
deleted file mode 100644
index d1ada55..0000000
--- a/lib/commons-api/src/main/java/org/apache/olingo/commons/api/edm/provider/AbstractEdmProvider.java
+++ /dev/null
@@ -1,116 +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.commons.api.edm.provider;
-
-import java.util.List;
-
-import org.apache.olingo.commons.api.ODataException;
-import org.apache.olingo.commons.api.edm.FullQualifiedName;
-
-public abstract class AbstractEdmProvider implements EdmProvider {
-
-  @Override
-  public EnumType getEnumType(final FullQualifiedName enumTypeName) throws ODataException {
-    return null;
-  }
-
-  @Override
-  public TypeDefinition getTypeDefinition(final FullQualifiedName typeDefinitionName) throws ODataException {
-    return null;
-  }
-
-  @Override
-  public EntityType getEntityType(final FullQualifiedName entityTypeName) throws ODataException {
-    return null;
-  }
-
-  @Override
-  public ComplexType getComplexType(final FullQualifiedName complexTypeName) throws ODataException {
-    return null;
-  }
-
-  @Override
-  public List<Action> getActions(final FullQualifiedName actionName) throws ODataException {
-    return null;
-  }
-
-  @Override
-  public List<Function> getFunctions(final FullQualifiedName functionName) throws ODataException {
-    return null;
-  }
-
-  @Override
-  public Term getTerm(final FullQualifiedName termName) throws ODataException {
-    return null;
-  }
-
-  @Override
-  public EntitySet getEntitySet(final FullQualifiedName entityContainer, final String entitySetName)
-      throws ODataException {
-    return null;
-  }
-
-  @Override
-  public Singleton getSingleton(final FullQualifiedName entityContainer, final String singletonName)
-      throws ODataException {
-    return null;
-  }
-
-  @Override
-  public ActionImport getActionImport(final FullQualifiedName entityContainer, final String actionImportName)
-      throws ODataException {
-    return null;
-  }
-
-  @Override
-  public FunctionImport getFunctionImport(final FullQualifiedName entityContainer, final String functionImportName)
-      throws ODataException {
-    return null;
-  }
-
-  @Override
-  public EntityContainerInfo getEntityContainerInfo(final FullQualifiedName entityContainerName) throws ODataException {
-    return null;
-  }
-
-  @Override
-  public List<AliasInfo> getAliasInfos() throws ODataException {
-    return null;
-  }
-
-  @Override
-  public List<Schema> getSchemas() throws ODataException {
-    return null;
-  }
-
-  @Override
-  public EntityContainer getEntityContainer() throws ODataException {
-    return null;
-  }
-
-  @Override
-  public Annotations getAnnotationsGroup(FullQualifiedName targetName) throws ODataException {
-    return null;
-  }
-
-  @Override
-  public Annotatable getAnnoatatable(FullQualifiedName annotatedName) throws ODataException {
-    return null;
-  }
-}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/2318953c/lib/commons-api/src/main/java/org/apache/olingo/commons/api/edm/provider/Action.java
----------------------------------------------------------------------
diff --git a/lib/commons-api/src/main/java/org/apache/olingo/commons/api/edm/provider/Action.java b/lib/commons-api/src/main/java/org/apache/olingo/commons/api/edm/provider/Action.java
deleted file mode 100644
index 1a614a7..0000000
--- a/lib/commons-api/src/main/java/org/apache/olingo/commons/api/edm/provider/Action.java
+++ /dev/null
@@ -1,56 +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.commons.api.edm.provider;
-
-import java.util.List;
-
-public class Action extends Operation {
-
-  private static final long serialVersionUID = 211295197043448841L;
-
-  @Override
-  public Action setName(final String name) {
-    this.name = name;
-    return this;
-  }
-
-  @Override
-  public Action setBound(final boolean isBound) {
-    this.isBound = isBound;
-    return this;
-  }
-
-  @Override
-  public Action setEntitySetPath(final String entitySetPath) {
-    this.entitySetPath = entitySetPath;
-    return this;
-  }
-
-  @Override
-  public Action setParameters(final List<Parameter> parameters) {
-    this.parameters = parameters;
-    return this;
-  }
-
-  @Override
-  public Action setReturnType(final ReturnType returnType) {
-    this.returnType = returnType;
-    return this;
-  }
-}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/2318953c/lib/commons-api/src/main/java/org/apache/olingo/commons/api/edm/provider/ActionImport.java
----------------------------------------------------------------------
diff --git a/lib/commons-api/src/main/java/org/apache/olingo/commons/api/edm/provider/ActionImport.java b/lib/commons-api/src/main/java/org/apache/olingo/commons/api/edm/provider/ActionImport.java
deleted file mode 100644
index a773039..0000000
--- a/lib/commons-api/src/main/java/org/apache/olingo/commons/api/edm/provider/ActionImport.java
+++ /dev/null
@@ -1,59 +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.commons.api.edm.provider;
-
-import org.apache.olingo.commons.api.edm.FullQualifiedName;
-
-
-public class ActionImport extends OperationImport {
-
-  private static final long serialVersionUID = 9186148718228340987L;
-
-  private FullQualifiedName action;
-
-  @Override
-  public ActionImport setName(final String name) {
-    this.name = name;
-    return this;
-  }
-
-  @Override
-  public ActionImport setEntitySet(final String entitySet) {
-    this.entitySet = entitySet;
-    return this;
-  }
-
-  public String getAction() {
-    return action.getFullQualifiedNameAsString();
-  }
-  
-  public FullQualifiedName getActionFQN() {
-    return action;
-  }
-
-  public ActionImport setAction(final String action) {
-    this.action = new FullQualifiedName(action);
-    return this;
-  }
-  
-  public ActionImport setAction(final FullQualifiedName action) {
-    this.action = action;
-    return this;
-  }
-}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/2318953c/lib/commons-api/src/main/java/org/apache/olingo/commons/api/edm/provider/AliasInfo.java
----------------------------------------------------------------------
diff --git a/lib/commons-api/src/main/java/org/apache/olingo/commons/api/edm/provider/AliasInfo.java b/lib/commons-api/src/main/java/org/apache/olingo/commons/api/edm/provider/AliasInfo.java
deleted file mode 100644
index b4493f5..0000000
--- a/lib/commons-api/src/main/java/org/apache/olingo/commons/api/edm/provider/AliasInfo.java
+++ /dev/null
@@ -1,45 +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.commons.api.edm.provider;
-
-public class AliasInfo {
-
-  private String namespace;
-
-  private String alias;
-
-  public String getNamespace() {
-    return namespace;
-  }
-
-  public AliasInfo setNamespace(final String namespace) {
-    this.namespace = namespace;
-    return this;
-  }
-
-  public String getAlias() {
-    return alias;
-  }
-
-  public AliasInfo setAlias(final String alias) {
-    this.alias = alias;
-    return this;
-  }
-
-}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/2318953c/lib/commons-api/src/main/java/org/apache/olingo/commons/api/edm/provider/Annotatable.java
----------------------------------------------------------------------
diff --git a/lib/commons-api/src/main/java/org/apache/olingo/commons/api/edm/provider/Annotatable.java b/lib/commons-api/src/main/java/org/apache/olingo/commons/api/edm/provider/Annotatable.java
deleted file mode 100644
index 1e97719..0000000
--- a/lib/commons-api/src/main/java/org/apache/olingo/commons/api/edm/provider/Annotatable.java
+++ /dev/null
@@ -1,26 +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.commons.api.edm.provider;
-
-import java.util.List;
-
-public interface Annotatable {
-  
-  List<Annotation> getAnnotations();
-}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/2318953c/lib/commons-api/src/main/java/org/apache/olingo/commons/api/edm/provider/Annotation.java
----------------------------------------------------------------------
diff --git a/lib/commons-api/src/main/java/org/apache/olingo/commons/api/edm/provider/Annotation.java b/lib/commons-api/src/main/java/org/apache/olingo/commons/api/edm/provider/Annotation.java
deleted file mode 100644
index 67791c9..0000000
--- a/lib/commons-api/src/main/java/org/apache/olingo/commons/api/edm/provider/Annotation.java
+++ /dev/null
@@ -1,77 +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.commons.api.edm.provider;
-
-import java.util.ArrayList;
-import java.util.List;
-
-import org.apache.olingo.commons.api.edm.provider.annotation.AnnotationExpression;
-
-public class Annotation extends AbstractEdmItem implements Annotatable {
-
-  private static final long serialVersionUID = -7137313445729486860L;
-
-  private String term;
-
-  private String qualifier;
-
-  private List<Annotation> annotation = new ArrayList<Annotation>();
-
-  private AnnotationExpression annotationExpression;
-
-  public AnnotationExpression getExpression() {
-    return annotationExpression;
-  }
-
-  public void setExpression(final AnnotationExpression annotationExpression) {
-    this.annotationExpression = annotationExpression;
-  }
-
-  public String getTerm() {
-    return term;
-  }
-
-  public Annotation setTerm(final String term) {
-    this.term = term;
-    return this;
-  }
-
-  public String getQualifier() {
-    return qualifier;
-  }
-
-  public Annotation setQualifier(final String qualifier) {
-    this.qualifier = qualifier;
-    return this;
-  }
-
-//  public List<Annotation> getAnnotation() {
-//    return annotation;
-//  }
-
-  public Annotation setAnnotations(final List<Annotation> annotation) {
-    this.annotation = annotation;
-    return this;
-  }
-
-  @Override
-  public List<Annotation> getAnnotations() {
-    return annotation;
-  }
-}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/2318953c/lib/commons-api/src/main/java/org/apache/olingo/commons/api/edm/provider/Annotations.java
----------------------------------------------------------------------
diff --git a/lib/commons-api/src/main/java/org/apache/olingo/commons/api/edm/provider/Annotations.java b/lib/commons-api/src/main/java/org/apache/olingo/commons/api/edm/provider/Annotations.java
deleted file mode 100644
index c01566d..0000000
--- a/lib/commons-api/src/main/java/org/apache/olingo/commons/api/edm/provider/Annotations.java
+++ /dev/null
@@ -1,66 +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.commons.api.edm.provider;
-
-import java.util.ArrayList;
-import java.util.List;
-
-public class Annotations extends AbstractEdmItem implements Annotatable{
-
-  private static final long serialVersionUID = 8283036066408166150L;
-
-  private final List<Annotation> annotations = new ArrayList<Annotation>();
-
-  private String target;
-
-  private String qualifier;
-
-  public String getTarget() {
-    return target;
-  }
-
-  public Annotations setTarget(final String target) {
-    this.target = target;
-    return this;
-  }
-
-  public String getQualifier() {
-    return qualifier;
-  }
-
-  public Annotations setQualifier(final String qualifier) {
-    this.qualifier = qualifier;
-    return this;
-  }
-  
-  @Override
-  public List<Annotation> getAnnotations() {
-    return annotations;
-  }
-
-  public Annotation getAnnotation(final String term) {
-    Annotation result = null;
-    for (Annotation annotation : getAnnotations()) {
-      if (term.equals(annotation.getTerm())) {
-        result = annotation;
-      }
-    }
-    return result;
-  }
-}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/2318953c/lib/commons-api/src/main/java/org/apache/olingo/commons/api/edm/provider/BindingTarget.java
----------------------------------------------------------------------
diff --git a/lib/commons-api/src/main/java/org/apache/olingo/commons/api/edm/provider/BindingTarget.java b/lib/commons-api/src/main/java/org/apache/olingo/commons/api/edm/provider/BindingTarget.java
deleted file mode 100644
index 4612857..0000000
--- a/lib/commons-api/src/main/java/org/apache/olingo/commons/api/edm/provider/BindingTarget.java
+++ /dev/null
@@ -1,79 +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.commons.api.edm.provider;
-
-import java.util.ArrayList;
-import java.util.List;
-
-import org.apache.olingo.commons.api.edm.FullQualifiedName;
-
-public abstract class BindingTarget extends AbstractEdmItem implements Named, Annotatable {
-
-  private static final long serialVersionUID = -7011724617956042182L;
-
-  protected String name;
-
-  protected FullQualifiedName type;
-
-  protected List<NavigationPropertyBinding> navigationPropertyBindings = new ArrayList<NavigationPropertyBinding>();
-  
-  private final List<Annotation> annotations = new ArrayList<Annotation>();
-
-  public String getName() {
-    return name;
-  }
-
-  public BindingTarget setName(final String name) {
-    this.name = name;
-    return this;
-  }
-
-  public String getType() {
-    return type.getFullQualifiedNameAsString();
-  }
-  
-  public FullQualifiedName getTypeFQN() {
-    return type;
-  }
-
-  public BindingTarget setType(final String type) {
-    this.type = new FullQualifiedName(type);
-    return this;
-  }
-  
-  public BindingTarget setType(final FullQualifiedName type) {
-    this.type = type;
-    return this;
-  }
-
-  public List<NavigationPropertyBinding> getNavigationPropertyBindings() {
-    return navigationPropertyBindings;
-  }
-
-  public BindingTarget setNavigationPropertyBindings(final List<NavigationPropertyBinding> navigationPropertyBindings) {
-    this.navigationPropertyBindings = navigationPropertyBindings;
-    return this;
-  }
-  
-  @Override
-  public List<Annotation> getAnnotations() {
-    return annotations;
-  }
-
-}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/2318953c/lib/commons-api/src/main/java/org/apache/olingo/commons/api/edm/provider/ComplexType.java
----------------------------------------------------------------------
diff --git a/lib/commons-api/src/main/java/org/apache/olingo/commons/api/edm/provider/ComplexType.java b/lib/commons-api/src/main/java/org/apache/olingo/commons/api/edm/provider/ComplexType.java
deleted file mode 100644
index 07f4d3b..0000000
--- a/lib/commons-api/src/main/java/org/apache/olingo/commons/api/edm/provider/ComplexType.java
+++ /dev/null
@@ -1,70 +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.commons.api.edm.provider;
-
-import java.util.List;
-
-import org.apache.olingo.commons.api.edm.FullQualifiedName;
-
-public class ComplexType extends StructuralType {
-
-  private static final long serialVersionUID = 1089771609327713928L;
-
-  @Override
-  public ComplexType setName(final String name) {
-    this.name = name;
-    return this;
-  }
-
-  @Override
-  public ComplexType setOpenType(final boolean isOpenType) {
-    this.isOpenType = isOpenType;
-    return this;
-  }
-
-  @Override
-  public ComplexType setBaseType(final String baseType) {
-    this.baseType = new FullQualifiedName(baseType);
-    return this;
-  }
-  
-  @Override
-  public ComplexType setBaseType(final FullQualifiedName baseType) {
-    this.baseType = baseType;
-    return this;
-  }
-
-  @Override
-  public ComplexType setAbstract(final boolean isAbstract) {
-    this.isAbstract = isAbstract;
-    return this;
-  }
-
-  @Override
-  public ComplexType setProperties(final List<Property> properties) {
-    this.properties = properties;
-    return this;
-  }
-
-  @Override
-  public ComplexType setNavigationProperties(final List<NavigationProperty> navigationProperties) {
-    this.navigationProperties = navigationProperties;
-    return this;
-  }
-}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/2318953c/lib/commons-api/src/main/java/org/apache/olingo/commons/api/edm/provider/CsdlAbstractEdmItem.java
----------------------------------------------------------------------
diff --git a/lib/commons-api/src/main/java/org/apache/olingo/commons/api/edm/provider/CsdlAbstractEdmItem.java b/lib/commons-api/src/main/java/org/apache/olingo/commons/api/edm/provider/CsdlAbstractEdmItem.java
new file mode 100644
index 0000000..0b02947
--- /dev/null
+++ b/lib/commons-api/src/main/java/org/apache/olingo/commons/api/edm/provider/CsdlAbstractEdmItem.java
@@ -0,0 +1,64 @@
+/*
+ * 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.commons.api.edm.provider;
+
+import java.io.Serializable;
+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;
+
+public abstract class CsdlAbstractEdmItem implements Serializable {
+
+  private static final long serialVersionUID = 241190986363884784L;
+
+  protected <T extends CsdlNamed> 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 CsdlNamed> 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);
+  }
+
+  @Override
+  public int hashCode() {
+    return HashCodeBuilder.reflectionHashCode(this);
+  }
+
+  @Override
+  public String toString() {
+    return ReflectionToStringBuilder.toString(this, ToStringStyle.MULTI_LINE_STYLE);
+  }
+}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/2318953c/lib/commons-api/src/main/java/org/apache/olingo/commons/api/edm/provider/CsdlAbstractEdmProvider.java
----------------------------------------------------------------------
diff --git a/lib/commons-api/src/main/java/org/apache/olingo/commons/api/edm/provider/CsdlAbstractEdmProvider.java b/lib/commons-api/src/main/java/org/apache/olingo/commons/api/edm/provider/CsdlAbstractEdmProvider.java
new file mode 100644
index 0000000..802cef8
--- /dev/null
+++ b/lib/commons-api/src/main/java/org/apache/olingo/commons/api/edm/provider/CsdlAbstractEdmProvider.java
@@ -0,0 +1,117 @@
+/*
+ * 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.commons.api.edm.provider;
+
+import java.util.List;
+
+import org.apache.olingo.commons.api.ODataException;
+import org.apache.olingo.commons.api.edm.FullQualifiedName;
+
+public abstract class CsdlAbstractEdmProvider implements CsdlEdmProvider {
+
+  @Override
+  public CsdlEnumType getEnumType(final FullQualifiedName enumTypeName) throws ODataException {
+    return null;
+  }
+
+  @Override
+  public CsdlTypeDefinition getTypeDefinition(final FullQualifiedName typeDefinitionName) throws ODataException {
+    return null;
+  }
+
+  @Override
+  public CsdlEntityType getEntityType(final FullQualifiedName entityTypeName) throws ODataException {
+    return null;
+  }
+
+  @Override
+  public CsdlComplexType getComplexType(final FullQualifiedName complexTypeName) throws ODataException {
+    return null;
+  }
+
+  @Override
+  public List<CsdlAction> getActions(final FullQualifiedName actionName) throws ODataException {
+    return null;
+  }
+
+  @Override
+  public List<CsdlFunction> getFunctions(final FullQualifiedName functionName) throws ODataException {
+    return null;
+  }
+
+  @Override
+  public CsdlTerm getTerm(final FullQualifiedName termName) throws ODataException {
+    return null;
+  }
+
+  @Override
+  public CsdlEntitySet getEntitySet(final FullQualifiedName entityContainer, final String entitySetName)
+      throws ODataException {
+    return null;
+  }
+
+  @Override
+  public CsdlSingleton getSingleton(final FullQualifiedName entityContainer, final String singletonName)
+      throws ODataException {
+    return null;
+  }
+
+  @Override
+  public CsdlActionImport getActionImport(final FullQualifiedName entityContainer, final String actionImportName)
+      throws ODataException {
+    return null;
+  }
+
+  @Override
+  public CsdlFunctionImport getFunctionImport(final FullQualifiedName entityContainer, final String functionImportName)
+      throws ODataException {
+    return null;
+  }
+
+  @Override
+  public CsdlEntityContainerInfo getEntityContainerInfo(final FullQualifiedName entityContainerName)
+          throws ODataException {
+    return null;
+  }
+
+  @Override
+  public List<CsdlAliasInfo> getAliasInfos() throws ODataException {
+    return null;
+  }
+
+  @Override
+  public List<CsdlSchema> getSchemas() throws ODataException {
+    return null;
+  }
+
+  @Override
+  public CsdlEntityContainer getEntityContainer() throws ODataException {
+    return null;
+  }
+
+  @Override
+  public CsdlAnnotations getAnnotationsGroup(FullQualifiedName targetName) throws ODataException {
+    return null;
+  }
+
+  @Override
+  public CsdlAnnotatable getAnnoatatable(FullQualifiedName annotatedName) throws ODataException {
+    return null;
+  }
+}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/2318953c/lib/commons-api/src/main/java/org/apache/olingo/commons/api/edm/provider/CsdlAction.java
----------------------------------------------------------------------
diff --git a/lib/commons-api/src/main/java/org/apache/olingo/commons/api/edm/provider/CsdlAction.java b/lib/commons-api/src/main/java/org/apache/olingo/commons/api/edm/provider/CsdlAction.java
new file mode 100644
index 0000000..bfd0d83
--- /dev/null
+++ b/lib/commons-api/src/main/java/org/apache/olingo/commons/api/edm/provider/CsdlAction.java
@@ -0,0 +1,56 @@
+/*
+ * 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.commons.api.edm.provider;
+
+import java.util.List;
+
+public class CsdlAction extends CsdlOperation {
+
+  private static final long serialVersionUID = 211295197043448841L;
+
+  @Override
+  public CsdlAction setName(final String name) {
+    this.name = name;
+    return this;
+  }
+
+  @Override
+  public CsdlAction setBound(final boolean isBound) {
+    this.isBound = isBound;
+    return this;
+  }
+
+  @Override
+  public CsdlAction setEntitySetPath(final String entitySetPath) {
+    this.entitySetPath = entitySetPath;
+    return this;
+  }
+
+  @Override
+  public CsdlAction setParameters(final List<CsdlParameter> parameters) {
+    this.parameters = parameters;
+    return this;
+  }
+
+  @Override
+  public CsdlAction setReturnType(final CsdlReturnType returnType) {
+    this.returnType = returnType;
+    return this;
+  }
+}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/2318953c/lib/commons-api/src/main/java/org/apache/olingo/commons/api/edm/provider/CsdlActionImport.java
----------------------------------------------------------------------
diff --git a/lib/commons-api/src/main/java/org/apache/olingo/commons/api/edm/provider/CsdlActionImport.java b/lib/commons-api/src/main/java/org/apache/olingo/commons/api/edm/provider/CsdlActionImport.java
new file mode 100644
index 0000000..eb47c5c
--- /dev/null
+++ b/lib/commons-api/src/main/java/org/apache/olingo/commons/api/edm/provider/CsdlActionImport.java
@@ -0,0 +1,59 @@
+/*
+ * 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.commons.api.edm.provider;
+
+import org.apache.olingo.commons.api.edm.FullQualifiedName;
+
+
+public class CsdlActionImport extends CsdlOperationImport {
+
+  private static final long serialVersionUID = 9186148718228340987L;
+
+  private FullQualifiedName action;
+
+  @Override
+  public CsdlActionImport setName(final String name) {
+    this.name = name;
+    return this;
+  }
+
+  @Override
+  public CsdlActionImport setEntitySet(final String entitySet) {
+    this.entitySet = entitySet;
+    return this;
+  }
+
+  public String getAction() {
+    return action.getFullQualifiedNameAsString();
+  }
+  
+  public FullQualifiedName getActionFQN() {
+    return action;
+  }
+
+  public CsdlActionImport setAction(final String action) {
+    this.action = new FullQualifiedName(action);
+    return this;
+  }
+  
+  public CsdlActionImport setAction(final FullQualifiedName action) {
+    this.action = action;
+    return this;
+  }
+}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/2318953c/lib/commons-api/src/main/java/org/apache/olingo/commons/api/edm/provider/CsdlAliasInfo.java
----------------------------------------------------------------------
diff --git a/lib/commons-api/src/main/java/org/apache/olingo/commons/api/edm/provider/CsdlAliasInfo.java b/lib/commons-api/src/main/java/org/apache/olingo/commons/api/edm/provider/CsdlAliasInfo.java
new file mode 100644
index 0000000..ba6067a
--- /dev/null
+++ b/lib/commons-api/src/main/java/org/apache/olingo/commons/api/edm/provider/CsdlAliasInfo.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.commons.api.edm.provider;
+
+public class CsdlAliasInfo {
+
+  private String namespace;
+
+  private String alias;
+
+  public String getNamespace() {
+    return namespace;
+  }
+
+  public CsdlAliasInfo setNamespace(final String namespace) {
+    this.namespace = namespace;
+    return this;
+  }
+
+  public String getAlias() {
+    return alias;
+  }
+
+  public CsdlAliasInfo setAlias(final String alias) {
+    this.alias = alias;
+    return this;
+  }
+
+}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/2318953c/lib/commons-api/src/main/java/org/apache/olingo/commons/api/edm/provider/CsdlAnnotatable.java
----------------------------------------------------------------------
diff --git a/lib/commons-api/src/main/java/org/apache/olingo/commons/api/edm/provider/CsdlAnnotatable.java b/lib/commons-api/src/main/java/org/apache/olingo/commons/api/edm/provider/CsdlAnnotatable.java
new file mode 100644
index 0000000..393f353
--- /dev/null
+++ b/lib/commons-api/src/main/java/org/apache/olingo/commons/api/edm/provider/CsdlAnnotatable.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.commons.api.edm.provider;
+
+import java.util.List;
+
+public interface CsdlAnnotatable {
+  
+  List<CsdlAnnotation> getAnnotations();
+}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/2318953c/lib/commons-api/src/main/java/org/apache/olingo/commons/api/edm/provider/CsdlAnnotation.java
----------------------------------------------------------------------
diff --git a/lib/commons-api/src/main/java/org/apache/olingo/commons/api/edm/provider/CsdlAnnotation.java b/lib/commons-api/src/main/java/org/apache/olingo/commons/api/edm/provider/CsdlAnnotation.java
new file mode 100644
index 0000000..580c03f
--- /dev/null
+++ b/lib/commons-api/src/main/java/org/apache/olingo/commons/api/edm/provider/CsdlAnnotation.java
@@ -0,0 +1,77 @@
+/*
+ * 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.commons.api.edm.provider;
+
+import java.util.ArrayList;
+import java.util.List;
+
+import org.apache.olingo.commons.api.edm.provider.annotation.AnnotationExpression;
+
+public class CsdlAnnotation extends CsdlAbstractEdmItem implements CsdlAnnotatable {
+
+  private static final long serialVersionUID = -7137313445729486860L;
+
+  private String term;
+
+  private String qualifier;
+
+  private List<CsdlAnnotation> annotation = new ArrayList<CsdlAnnotation>();
+
+  private AnnotationExpression annotationExpression;
+
+  public AnnotationExpression getExpression() {
+    return annotationExpression;
+  }
+
+  public void setExpression(final AnnotationExpression annotationExpression) {
+    this.annotationExpression = annotationExpression;
+  }
+
+  public String getTerm() {
+    return term;
+  }
+
+  public CsdlAnnotation setTerm(final String term) {
+    this.term = term;
+    return this;
+  }
+
+  public String getQualifier() {
+    return qualifier;
+  }
+
+  public CsdlAnnotation setQualifier(final String qualifier) {
+    this.qualifier = qualifier;
+    return this;
+  }
+
+//  public List<Annotation> getAnnotation() {
+//    return annotation;
+//  }
+
+  public CsdlAnnotation setAnnotations(final List<CsdlAnnotation> annotation) {
+    this.annotation = annotation;
+    return this;
+  }
+
+  @Override
+  public List<CsdlAnnotation> getAnnotations() {
+    return annotation;
+  }
+}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/2318953c/lib/commons-api/src/main/java/org/apache/olingo/commons/api/edm/provider/CsdlAnnotations.java
----------------------------------------------------------------------
diff --git a/lib/commons-api/src/main/java/org/apache/olingo/commons/api/edm/provider/CsdlAnnotations.java b/lib/commons-api/src/main/java/org/apache/olingo/commons/api/edm/provider/CsdlAnnotations.java
new file mode 100644
index 0000000..595eb96
--- /dev/null
+++ b/lib/commons-api/src/main/java/org/apache/olingo/commons/api/edm/provider/CsdlAnnotations.java
@@ -0,0 +1,66 @@
+/*
+ * 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.commons.api.edm.provider;
+
+import java.util.ArrayList;
+import java.util.List;
+
+public class CsdlAnnotations extends CsdlAbstractEdmItem implements CsdlAnnotatable {
+
+  private static final long serialVersionUID = 8283036066408166150L;
+
+  private final List<CsdlAnnotation> annotations = new ArrayList<CsdlAnnotation>();
+
+  private String target;
+
+  private String qualifier;
+
+  public String getTarget() {
+    return target;
+  }
+
+  public CsdlAnnotations setTarget(final String target) {
+    this.target = target;
+    return this;
+  }
+
+  public String getQualifier() {
+    return qualifier;
+  }
+
+  public CsdlAnnotations setQualifier(final String qualifier) {
+    this.qualifier = qualifier;
+    return this;
+  }
+  
+  @Override
+  public List<CsdlAnnotation> getAnnotations() {
+    return annotations;
+  }
+
+  public CsdlAnnotation getAnnotation(final String term) {
+    CsdlAnnotation result = null;
+    for (CsdlAnnotation annotation : getAnnotations()) {
+      if (term.equals(annotation.getTerm())) {
+        result = annotation;
+      }
+    }
+    return result;
+  }
+}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/2318953c/lib/commons-api/src/main/java/org/apache/olingo/commons/api/edm/provider/CsdlBindingTarget.java
----------------------------------------------------------------------
diff --git a/lib/commons-api/src/main/java/org/apache/olingo/commons/api/edm/provider/CsdlBindingTarget.java b/lib/commons-api/src/main/java/org/apache/olingo/commons/api/edm/provider/CsdlBindingTarget.java
new file mode 100644
index 0000000..c7143c7
--- /dev/null
+++ b/lib/commons-api/src/main/java/org/apache/olingo/commons/api/edm/provider/CsdlBindingTarget.java
@@ -0,0 +1,81 @@
+/*
+ * 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.commons.api.edm.provider;
+
+import java.util.ArrayList;
+import java.util.List;
+
+import org.apache.olingo.commons.api.edm.FullQualifiedName;
+
+public abstract class CsdlBindingTarget extends CsdlAbstractEdmItem implements CsdlNamed, CsdlAnnotatable {
+
+  private static final long serialVersionUID = -7011724617956042182L;
+
+  protected String name;
+
+  protected FullQualifiedName type;
+
+  protected List<CsdlNavigationPropertyBinding> navigationPropertyBindings =
+          new ArrayList<CsdlNavigationPropertyBinding>();
+  
+  private final List<CsdlAnnotation> annotations = new ArrayList<CsdlAnnotation>();
+
+  public String getName() {
+    return name;
+  }
+
+  public CsdlBindingTarget setName(final String name) {
+    this.name = name;
+    return this;
+  }
+
+  public String getType() {
+    return type.getFullQualifiedNameAsString();
+  }
+  
+  public FullQualifiedName getTypeFQN() {
+    return type;
+  }
+
+  public CsdlBindingTarget setType(final String type) {
+    this.type = new FullQualifiedName(type);
+    return this;
+  }
+  
+  public CsdlBindingTarget setType(final FullQualifiedName type) {
+    this.type = type;
+    return this;
+  }
+
+  public List<CsdlNavigationPropertyBinding> getNavigationPropertyBindings() {
+    return navigationPropertyBindings;
+  }
+
+  public CsdlBindingTarget setNavigationPropertyBindings(
+          final List<CsdlNavigationPropertyBinding> navigationPropertyBindings) {
+    this.navigationPropertyBindings = navigationPropertyBindings;
+    return this;
+  }
+  
+  @Override
+  public List<CsdlAnnotation> getAnnotations() {
+    return annotations;
+  }
+
+}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/2318953c/lib/commons-api/src/main/java/org/apache/olingo/commons/api/edm/provider/CsdlComplexType.java
----------------------------------------------------------------------
diff --git a/lib/commons-api/src/main/java/org/apache/olingo/commons/api/edm/provider/CsdlComplexType.java b/lib/commons-api/src/main/java/org/apache/olingo/commons/api/edm/provider/CsdlComplexType.java
new file mode 100644
index 0000000..208d377
--- /dev/null
+++ b/lib/commons-api/src/main/java/org/apache/olingo/commons/api/edm/provider/CsdlComplexType.java
@@ -0,0 +1,70 @@
+/*
+ * 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.commons.api.edm.provider;
+
+import java.util.List;
+
+import org.apache.olingo.commons.api.edm.FullQualifiedName;
+
+public class CsdlComplexType extends CsdlStructuralType {
+
+  private static final long serialVersionUID = 1089771609327713928L;
+
+  @Override
+  public CsdlComplexType setName(final String name) {
+    this.name = name;
+    return this;
+  }
+
+  @Override
+  public CsdlComplexType setOpenType(final boolean isOpenType) {
+    this.isOpenType = isOpenType;
+    return this;
+  }
+
+  @Override
+  public CsdlComplexType setBaseType(final String baseType) {
+    this.baseType = new FullQualifiedName(baseType);
+    return this;
+  }
+  
+  @Override
+  public CsdlComplexType setBaseType(final FullQualifiedName baseType) {
+    this.baseType = baseType;
+    return this;
+  }
+
+  @Override
+  public CsdlComplexType setAbstract(final boolean isAbstract) {
+    this.isAbstract = isAbstract;
+    return this;
+  }
+
+  @Override
+  public CsdlComplexType setProperties(final List<CsdlProperty> properties) {
+    this.properties = properties;
+    return this;
+  }
+
+  @Override
+  public CsdlComplexType setNavigationProperties(final List<CsdlNavigationProperty> navigationProperties) {
+    this.navigationProperties = navigationProperties;
+    return this;
+  }
+}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/2318953c/lib/commons-api/src/main/java/org/apache/olingo/commons/api/edm/provider/CsdlEdmProvider.java
----------------------------------------------------------------------
diff --git a/lib/commons-api/src/main/java/org/apache/olingo/commons/api/edm/provider/CsdlEdmProvider.java b/lib/commons-api/src/main/java/org/apache/olingo/commons/api/edm/provider/CsdlEdmProvider.java
new file mode 100644
index 0000000..db40de1
--- /dev/null
+++ b/lib/commons-api/src/main/java/org/apache/olingo/commons/api/edm/provider/CsdlEdmProvider.java
@@ -0,0 +1,179 @@
+/*
+ * 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.commons.api.edm.provider;
+
+import java.util.List;
+
+import org.apache.olingo.commons.api.ODataException;
+import org.apache.olingo.commons.api.edm.FullQualifiedName;
+
+public interface CsdlEdmProvider {
+
+  /**
+   * This method should return an {@link CsdlEnumType} or <b>null</b> if nothing is found
+   * 
+   * @param enumTypeName
+   * @return {@link CsdlEnumType} for given name
+   * @throws ODataException
+   */
+  public CsdlEnumType getEnumType(final FullQualifiedName enumTypeName) throws ODataException;
+
+  /**
+   * This method should return an {@link CsdlTypeDefinition} or <b>null</b> if nothing is found
+   * 
+   * @param typeDefinitionName
+   * @return {@link CsdlTypeDefinition} for given name
+   * @throws ODataException
+   */
+  public CsdlTypeDefinition getTypeDefinition(final FullQualifiedName typeDefinitionName) throws ODataException;
+
+  /**
+   * This method should return an {@link CsdlEntityType} or <b>null</b> if nothing is found
+   * 
+   * @param entityTypeName
+   * @return {@link CsdlEntityType} for the given name
+   * @throws ODataException
+   */
+  public CsdlEntityType getEntityType(final FullQualifiedName entityTypeName) throws ODataException;
+
+  /**
+   * This method should return a {@link CsdlComplexType} or <b>null</b> if nothing is found.
+   * 
+   * @param complexTypeName
+   * @return {@link CsdlComplexType} for the given name
+   * @throws ODataException
+   */
+  public CsdlComplexType getComplexType(final FullQualifiedName complexTypeName) throws ODataException;
+
+  /**
+   * This method should return a list of all {@link CsdlAction} for the FullQualifiedname
+   * or <b>null</b> if nothing is found
+   * 
+   * @param actionName
+   * @return List of {@link CsdlAction} or null
+   * @throws ODataException
+   */
+  public List<CsdlAction> getActions(final FullQualifiedName actionName) throws ODataException;
+
+  /**
+   * This method should return a list of all {@link CsdlFunction} for the FullQualifiedname or <b>null</b> if nothing is
+   * found
+   * 
+   * @param functionName
+   * @return List of {@link CsdlFunction} or null
+   * @throws ODataException
+   */
+  public List<CsdlFunction> getFunctions(final FullQualifiedName functionName) throws ODataException;
+
+  /**
+   * This method should return a {@link CsdlTerm} for the FullQualifiedName or <b>null</b> if nothing is found.
+   * @param termName the name of the Term
+   * @return {@link CsdlTerm} or null
+   * @throws ODataException
+   */
+  public CsdlTerm getTerm(final FullQualifiedName termName) throws ODataException;
+
+  /**
+   * This method should return an {@link CsdlEntitySet} or <b>null</b> if nothing is found
+   * 
+   * @param entityContainer this EntitySet is contained in
+   * @param entitySetName
+   * @return {@link CsdlEntitySet} for the given container and entityset name
+   * @throws ODataException
+   */
+  public CsdlEntitySet getEntitySet(final FullQualifiedName entityContainer, final String entitySetName)
+      throws ODataException;
+
+  /**
+   * This method should return an {@link CsdlSingleton} or <b>null</b> if nothing is found
+   * 
+   * @param entityContainer this Singleton is contained in
+   * @param singletonName
+   * @return {@link CsdlSingleton} for given container and singleton name
+   * @throws ODataException
+   */
+  public CsdlSingleton getSingleton(final FullQualifiedName entityContainer, final String singletonName)
+      throws ODataException;
+
+  /**
+   * This method should return an {@link CsdlActionImport} or <b>null</b> if nothing is found
+   * 
+   * @param entityContainer this ActionImport is contained in
+   * @param actionImportName
+   * @return {@link CsdlActionImport} for the given container and ActionImport name
+   * @throws ODataException
+   */
+  public CsdlActionImport getActionImport(final FullQualifiedName entityContainer, final String actionImportName)
+      throws ODataException;
+
+  /**
+   * This method should return a {@link CsdlFunctionImport} or <b>null</b> if nothing is found
+   * 
+   * @param entityContainer this FunctionImport is contained in
+   * @param functionImportName
+   * @return {@link CsdlFunctionImport} for the given container name and function import name
+   * @throws ODataException
+   */
+  public CsdlFunctionImport getFunctionImport(final FullQualifiedName entityContainer, final String functionImportName)
+      throws ODataException;
+
+  /**
+   * This method should return an {@link CsdlEntityContainerInfo} or <b>null</b> if nothing is found
+   * 
+   * @param entityContainerName (null for default container)
+   * @return {@link CsdlEntityContainerInfo} for the given name
+   * @throws ODataException
+   */
+  public CsdlEntityContainerInfo getEntityContainerInfo(final FullQualifiedName entityContainerName)
+          throws ODataException;
+
+  /**
+   * This method should return a list of all namespaces which have an alias
+   * 
+   * @return List of alias info
+   * @throws ODataException
+   */
+  public List<CsdlAliasInfo> getAliasInfos() throws ODataException;
+
+  /**
+   * This method should return a collection of all {@link CsdlSchema}
+   * 
+   * @return List<{@link Schema}>
+   * @throws ODataException
+   */
+  public List<CsdlSchema> getSchemas() throws ODataException;
+
+  /**
+   * Returns the entity container of this edm
+   * @return {@link CsdlEntityContainer} of this edm
+   */
+  public CsdlEntityContainer getEntityContainer() throws ODataException;
+
+  /**
+   * @param targetName
+   * @return {@link CsdlAnnotations} group for the given Target
+   */
+  public CsdlAnnotations getAnnotationsGroup(FullQualifiedName targetName) throws ODataException;
+
+  /**
+   * @param annotatedName
+   * @return Annotatble element by target name
+   */
+  public CsdlAnnotatable getAnnoatatable(FullQualifiedName annotatedName) throws ODataException;
+}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/2318953c/lib/commons-api/src/main/java/org/apache/olingo/commons/api/edm/provider/CsdlEntityContainer.java
----------------------------------------------------------------------
diff --git a/lib/commons-api/src/main/java/org/apache/olingo/commons/api/edm/provider/CsdlEntityContainer.java b/lib/commons-api/src/main/java/org/apache/olingo/commons/api/edm/provider/CsdlEntityContainer.java
new file mode 100644
index 0000000..ee0a772
--- /dev/null
+++ b/lib/commons-api/src/main/java/org/apache/olingo/commons/api/edm/provider/CsdlEntityContainer.java
@@ -0,0 +1,159 @@
+/*
+ * 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.commons.api.edm.provider;
+
+import java.util.ArrayList;
+import java.util.List;
+
+import org.apache.olingo.commons.api.edm.FullQualifiedName;
+
+public class CsdlEntityContainer extends CsdlAbstractEdmItem implements CsdlNamed, CsdlAnnotatable {
+
+  private static final long serialVersionUID = 5384682515007129458L;
+
+  private String name;
+
+  private FullQualifiedName extendsContainer;
+
+  private List<CsdlEntitySet> entitySets = new ArrayList<CsdlEntitySet>();
+
+  private List<CsdlActionImport> actionImports = new ArrayList<CsdlActionImport>();
+
+  private List<CsdlFunctionImport> functionImports = new ArrayList<CsdlFunctionImport>();
+
+  private List<CsdlSingleton> singletons = new ArrayList<CsdlSingleton>();
+
+  private final List<CsdlAnnotation> annotations = new ArrayList<CsdlAnnotation>();
+
+  // Annotations
+  public String getName() {
+    return name;
+  }
+
+  public CsdlEntityContainer setName(final String name) {
+    this.name = name;
+    return this;
+  }
+
+  public String getExtendsContainer() {
+    if (extendsContainer != null) {
+      return extendsContainer.getFullQualifiedNameAsString();
+    }
+    return null;
+  }
+
+  public FullQualifiedName getExtendsContainerFQN() {
+    return extendsContainer;
+  }
+
+  public CsdlEntityContainer setExtendsContainer(final String extendsContainer) {
+    this.extendsContainer = new FullQualifiedName(extendsContainer);
+    return this;
+  }
+
+  public List<CsdlEntitySet> getEntitySets() {
+    return entitySets;
+  }
+
+  public CsdlEntitySet getEntitySet(final String name) {
+    return getOneByName(name, getEntitySets());
+  }
+
+  public CsdlEntityContainer setEntitySets(final List<CsdlEntitySet> entitySets) {
+    this.entitySets = entitySets;
+    return this;
+  }
+
+  public List<CsdlActionImport> getActionImports() {
+    return actionImports;
+  }
+
+  /**
+   * Gets the first action import with given name.
+   *
+   * @param name name.
+   * @return action import.
+   */
+  public CsdlActionImport getActionImport(final String name) {
+    return getOneByName(name, getActionImports());
+  }
+
+  /**
+   * Gets all action imports with given name.
+   *
+   * @param name name.
+   * @return action imports.
+   */
+  public List<CsdlActionImport> getActionImports(final String name) {
+    return getAllByName(name, getActionImports());
+  }
+
+  public CsdlEntityContainer setActionImports(final List<CsdlActionImport> actionImports) {
+    this.actionImports = actionImports;
+    return this;
+  }
+
+  public List<CsdlFunctionImport> getFunctionImports() {
+    return functionImports;
+  }
+
+  /**
+   * Gets the first function import with given name.
+   *
+   * @param name name.
+   * @return function import.
+   */
+  public CsdlFunctionImport getFunctionImport(final String name) {
+    return getOneByName(name, getFunctionImports());
+  }
+
+  /**
+   * Gets all function imports with given name.
+   *
+   * @param name name.
+   * @return function imports.
+   */
+  public List<CsdlFunctionImport> getFunctionImports(final String name) {
+    return getAllByName(name, getFunctionImports());
+  }
+
+  public CsdlEntityContainer setFunctionImports(final List<CsdlFunctionImport> functionImports) {
+    this.functionImports = functionImports;
+    return this;
+  }
+
+  public List<CsdlSingleton> getSingletons() {
+    return singletons;
+  }
+
+  public CsdlSingleton getSingleton(final String name) {
+    return getOneByName(name, getSingletons());
+  }
+
+  public CsdlEntityContainer setSingletons(final List<CsdlSingleton> singletons) {
+    this.singletons = singletons;
+    return this;
+  }
+
+  @Override
+  public List<CsdlAnnotation> getAnnotations() {
+    return annotations;
+  }
+
+}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/2318953c/lib/commons-api/src/main/java/org/apache/olingo/commons/api/edm/provider/CsdlEntityContainerInfo.java
----------------------------------------------------------------------
diff --git a/lib/commons-api/src/main/java/org/apache/olingo/commons/api/edm/provider/CsdlEntityContainerInfo.java b/lib/commons-api/src/main/java/org/apache/olingo/commons/api/edm/provider/CsdlEntityContainerInfo.java
new file mode 100644
index 0000000..9445c89
--- /dev/null
+++ b/lib/commons-api/src/main/java/org/apache/olingo/commons/api/edm/provider/CsdlEntityContainerInfo.java
@@ -0,0 +1,47 @@
+/*
+ * 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.commons.api.edm.provider;
+
+import org.apache.olingo.commons.api.edm.FullQualifiedName;
+
+public class CsdlEntityContainerInfo {
+
+  private FullQualifiedName containerName;
+
+  private FullQualifiedName extendsContainer;
+
+  public FullQualifiedName getContainerName() {
+    return containerName;
+  }
+
+  public CsdlEntityContainerInfo setContainerName(final FullQualifiedName containerName) {
+    this.containerName = containerName;
+    return this;
+  }
+
+  public FullQualifiedName getExtendsContainer() {
+    return extendsContainer;
+  }
+
+  public CsdlEntityContainerInfo setExtendsContainer(final FullQualifiedName extendsContainer) {
+    this.extendsContainer = extendsContainer;
+    return this;
+  }
+
+}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/2318953c/lib/commons-api/src/main/java/org/apache/olingo/commons/api/edm/provider/CsdlEntitySet.java
----------------------------------------------------------------------
diff --git a/lib/commons-api/src/main/java/org/apache/olingo/commons/api/edm/provider/CsdlEntitySet.java b/lib/commons-api/src/main/java/org/apache/olingo/commons/api/edm/provider/CsdlEntitySet.java
new file mode 100644
index 0000000..d4a6002
--- /dev/null
+++ b/lib/commons-api/src/main/java/org/apache/olingo/commons/api/edm/provider/CsdlEntitySet.java
@@ -0,0 +1,65 @@
+/*
+ * 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.commons.api.edm.provider;
+
+import java.util.List;
+
+import org.apache.olingo.commons.api.edm.FullQualifiedName;
+
+public class CsdlEntitySet extends CsdlBindingTarget {
+
+  private static final long serialVersionUID = 5291570018480936643L;
+  
+  //Default for EntitySets is true
+  private boolean includeInServiceDocument = true;
+
+  @Override
+  public CsdlEntitySet setName(final String name) {
+    this.name = name;
+    return this;
+  }
+
+  @Override
+  public CsdlEntitySet setNavigationPropertyBindings(
+          final List<CsdlNavigationPropertyBinding> navigationPropertyBindings) {
+    this.navigationPropertyBindings = navigationPropertyBindings;
+    return this;
+  }
+
+  @Override
+  public CsdlEntitySet setType(final String type) {
+    this.type = new FullQualifiedName(type);
+    return this;
+  }
+  
+  @Override
+  public CsdlEntitySet setType(final FullQualifiedName type) {
+    this.type = type;
+    return this;
+  }
+
+  public boolean isIncludeInServiceDocument() {
+    return includeInServiceDocument;
+  }
+
+  public CsdlEntitySet setIncludeInServiceDocument(final boolean includeInServiceDocument) {
+    this.includeInServiceDocument = includeInServiceDocument;
+    return this;
+  }
+}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/2318953c/lib/commons-api/src/main/java/org/apache/olingo/commons/api/edm/provider/CsdlEntitySetPath.java
----------------------------------------------------------------------
diff --git a/lib/commons-api/src/main/java/org/apache/olingo/commons/api/edm/provider/CsdlEntitySetPath.java b/lib/commons-api/src/main/java/org/apache/olingo/commons/api/edm/provider/CsdlEntitySetPath.java
new file mode 100644
index 0000000..073559e
--- /dev/null
+++ b/lib/commons-api/src/main/java/org/apache/olingo/commons/api/edm/provider/CsdlEntitySetPath.java
@@ -0,0 +1,44 @@
+/*
+ * 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.commons.api.edm.provider;
+
+public class CsdlEntitySetPath {
+
+  private String bindingParameter;
+
+  private String path;
+
+  public String getBindingParameter() {
+    return bindingParameter;
+  }
+
+  public CsdlEntitySetPath setBindingParameter(final String bindingParameter) {
+    this.bindingParameter = bindingParameter;
+    return this;
+  }
+
+  public String getPath() {
+    return path;
+  }
+
+  public CsdlEntitySetPath setPath(final String path) {
+    this.path = path;
+    return this;
+  }
+}


[34/50] [abbrv] olingo-odata4 git commit: [OLINGO-564] Renamed 'OData*' to 'Client*' classes

Posted by mi...@apache.org.
http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/c37d4da5/fit/src/test/java/org/apache/olingo/fit/v4/EntityUpdateTestITCase.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/v4/EntityUpdateTestITCase.java b/fit/src/test/java/org/apache/olingo/fit/v4/EntityUpdateTestITCase.java
index 913d5db..2b47267 100644
--- a/fit/src/test/java/org/apache/olingo/fit/v4/EntityUpdateTestITCase.java
+++ b/fit/src/test/java/org/apache/olingo/fit/v4/EntityUpdateTestITCase.java
@@ -1,18 +1,18 @@
-/* 
+/*
  * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
+ * or more contributor license agreements. See the NOTICE file
  * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
+ * 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
- *
+ * 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
+ * KIND, either express or implied. See the License for the
  * specific language governing permissions and limitations
  * under the License.
  */
@@ -32,8 +32,8 @@ import org.apache.olingo.client.api.communication.request.cud.ODataReferenceAddi
 import org.apache.olingo.client.api.communication.request.cud.UpdateType;
 import org.apache.olingo.client.api.communication.response.ODataEntityUpdateResponse;
 import org.apache.olingo.client.api.communication.response.ODataReferenceAddingResponse;
-import org.apache.olingo.commons.api.domain.ODataEntity;
-import org.apache.olingo.commons.api.domain.ODataLink;
+import org.apache.olingo.commons.api.domain.ClientEntity;
+import org.apache.olingo.commons.api.domain.ClientLink;
 import org.apache.olingo.commons.api.edm.EdmPrimitiveTypeException;
 import org.apache.olingo.commons.api.edm.EdmPrimitiveTypeKind;
 import org.apache.olingo.commons.api.edm.FullQualifiedName;
@@ -44,7 +44,7 @@ import org.junit.Test;
 public class EntityUpdateTestITCase extends AbstractTestITCase {
 
   private void upsert(final UpdateType updateType, final ODataFormat format) {
-    final ODataEntity order = getClient().getObjectFactory().
+    final ClientEntity order = getClient().getObjectFactory().
         newEntity(new FullQualifiedName("Microsoft.Test.OData.Services.ODataWCFService.Order"));
 
     order.getProperties().add(getClient().getObjectFactory().newPrimitiveProperty("OrderID",
@@ -59,13 +59,13 @@ public class EntityUpdateTestITCase extends AbstractTestITCase {
 
     final URI upsertURI = getClient().newURIBuilder(testStaticServiceRootURL).
         appendEntitySetSegment("Orders").appendKeySegment(9).build();
-    final ODataEntityUpdateRequest<ODataEntity> req = getClient().getCUDRequestFactory().
+    final ODataEntityUpdateRequest<ClientEntity> req = getClient().getCUDRequestFactory().
         getEntityUpdateRequest(upsertURI, updateType, order);
     req.setFormat(format);
 
     req.execute();
     try {
-      final ODataEntity read = read(format, upsertURI);
+      final ClientEntity read = read(format, upsertURI);
       assertNotNull(read);
       assertEquals(order.getProperty("OrderID"), read.getProperty("OrderID"));
       assertEquals(order.getProperty("OrderDate").getPrimitiveValue().toString(),
@@ -115,7 +115,7 @@ public class EntityUpdateTestITCase extends AbstractTestITCase {
 
   private void onContained(final ODataFormat format) {
     final String newName = UUID.randomUUID().toString();
-    final ODataEntity changes = getClient().getObjectFactory().newEntity(
+    final ClientEntity changes = getClient().getObjectFactory().newEntity(
         new FullQualifiedName("Microsoft.Test.OData.Services.ODataWCFService.PaymentInstrument"));
     changes.getProperties().add(getClient().getObjectFactory().newPrimitiveProperty("FriendlyName",
         getClient().getObjectFactory().newPrimitiveValueBuilder().buildString(newName)));
@@ -123,14 +123,14 @@ public class EntityUpdateTestITCase extends AbstractTestITCase {
     final URI uri = getClient().newURIBuilder(testStaticServiceRootURL).
         appendEntitySetSegment("Accounts").appendKeySegment(101).
         appendNavigationSegment("MyPaymentInstruments").appendKeySegment(101901).build();
-    final ODataEntityUpdateRequest<ODataEntity> req = getClient().getCUDRequestFactory().
+    final ODataEntityUpdateRequest<ClientEntity> req = getClient().getCUDRequestFactory().
         getEntityUpdateRequest(uri, UpdateType.PATCH, changes);
     req.setFormat(format);
 
-    final ODataEntityUpdateResponse<ODataEntity> res = req.execute();
+    final ODataEntityUpdateResponse<ClientEntity> res = req.execute();
     assertEquals(204, res.getStatusCode());
 
-    final ODataEntity actual = getClient().getRetrieveRequestFactory().getEntityRequest(uri).execute().getBody();
+    final ClientEntity actual = getClient().getRetrieveRequestFactory().getEntityRequest(uri).execute().getBody();
     assertNotNull(actual);
     assertEquals(newName, actual.getProperty("FriendlyName").getPrimitiveValue().toString());
   }
@@ -146,28 +146,28 @@ public class EntityUpdateTestITCase extends AbstractTestITCase {
   }
 
   private void bindOperation(final ODataFormat format) throws EdmPrimitiveTypeException {
-    final ODataEntity changes = getClient().getObjectFactory().newEntity(
+    final ClientEntity changes = getClient().getObjectFactory().newEntity(
         new FullQualifiedName("Microsoft.Test.OData.Services.ODataWCFService.Customer"));
-    final ODataLink parent = getClient().getObjectFactory().newEntityNavigationLink("Parent",
+    final ClientLink parent = getClient().getObjectFactory().newEntityNavigationLink("Parent",
         getClient().newURIBuilder(testStaticServiceRootURL).
             appendEntitySetSegment("People").appendKeySegment(1).build());
     changes.getNavigationLinks().add(parent);
 
     final URI uri = getClient().newURIBuilder(testStaticServiceRootURL).
         appendEntitySetSegment("People").appendKeySegment(5).build();
-    final ODataEntityUpdateRequest<ODataEntity> req = getClient().getCUDRequestFactory().
+    final ODataEntityUpdateRequest<ClientEntity> req = getClient().getCUDRequestFactory().
         getEntityUpdateRequest(uri, UpdateType.PATCH, changes);
     req.setFormat(format);
 
-    final ODataEntityUpdateResponse<ODataEntity> res = req.execute();
+    final ODataEntityUpdateResponse<ClientEntity> res = req.execute();
     assertEquals(204, res.getStatusCode());
 
-    final ODataEntity updated = getClient().getRetrieveRequestFactory().getEntityRequest(uri).execute().getBody();
+    final ClientEntity updated = getClient().getRetrieveRequestFactory().getEntityRequest(uri).execute().getBody();
     assertNotNull(updated);
-    final ODataLink updatedLink = updated.getNavigationLink("Parent");
+    final ClientLink updatedLink = updated.getNavigationLink("Parent");
     assertNotNull(updatedLink);
 
-    final ODataEntity updatedEntity = getClient().getRetrieveRequestFactory().getEntityRequest(updatedLink.getLink()).
+    final ClientEntity updatedEntity = getClient().getRetrieveRequestFactory().getEntityRequest(updatedLink.getLink()).
         execute().getBody();
     assertNotNull(updatedEntity);
     assertEquals(1, updatedEntity.getProperty("PersonID").getPrimitiveValue().toCastValue(Integer.class), 0);

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/c37d4da5/fit/src/test/java/org/apache/olingo/fit/v4/ErrorResponseTestITCase.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/v4/ErrorResponseTestITCase.java b/fit/src/test/java/org/apache/olingo/fit/v4/ErrorResponseTestITCase.java
index 4c52624..a69df67 100644
--- a/fit/src/test/java/org/apache/olingo/fit/v4/ErrorResponseTestITCase.java
+++ b/fit/src/test/java/org/apache/olingo/fit/v4/ErrorResponseTestITCase.java
@@ -1,26 +1,26 @@
-/* 
+/*
  * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
+ * or more contributor license agreements. See the NOTICE file
  * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
+ * 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
- *
+ * 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
+ * KIND, either express or implied. See the License for the
  * specific language governing permissions and limitations
  * under the License.
  */
 package org.apache.olingo.fit.v4;
 
 import org.apache.olingo.client.api.communication.ODataClientErrorException;
-import org.apache.olingo.commons.api.domain.ODataError;
-import org.apache.olingo.commons.api.domain.ODataErrorDetail;
+import org.apache.olingo.commons.api.domain.ClientError;
+import org.apache.olingo.commons.api.domain.ClientErrorDetail;
 import org.apache.olingo.commons.api.format.ODataFormat;
 import org.junit.Test;
 
@@ -42,10 +42,10 @@ public class ErrorResponseTestITCase extends AbstractTestITCase {
       read(ODataFormat.JSON, readURI);
       fail("should have got exception");
     } catch (Exception ex) {
-      final ODataError err = ((ODataClientErrorException) ex).getODataError();
+      final ClientError err = ((ODataClientErrorException) ex).getODataError();
 
       // verify details
-      final ODataErrorDetail detail = err.getDetails().get(0);
+      final ClientErrorDetail detail = err.getDetails().get(0);
       assertEquals("Code should be correct", "301", detail.getCode());
       assertEquals("Target should be correct", "$search", detail.getTarget());
       assertEquals("Message should be correct", "$search query option not supported", detail.getMessage());

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/c37d4da5/fit/src/test/java/org/apache/olingo/fit/v4/FilterFactoryTestITCase.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/v4/FilterFactoryTestITCase.java b/fit/src/test/java/org/apache/olingo/fit/v4/FilterFactoryTestITCase.java
index b6f416f..74e510a 100644
--- a/fit/src/test/java/org/apache/olingo/fit/v4/FilterFactoryTestITCase.java
+++ b/fit/src/test/java/org/apache/olingo/fit/v4/FilterFactoryTestITCase.java
@@ -1,18 +1,18 @@
-/* 
+/*
  * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
+ * or more contributor license agreements. See the NOTICE file
  * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
+ * 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
- *
+ * 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
+ * KIND, either express or implied. See the License for the
  * specific language governing permissions and limitations
  * under the License.
  */
@@ -23,8 +23,8 @@ import org.apache.olingo.client.api.uri.FilterArgFactory;
 import org.apache.olingo.client.api.uri.FilterFactory;
 import org.apache.olingo.client.api.uri.URIBuilder;
 import org.apache.olingo.client.api.uri.URIFilter;
-import org.apache.olingo.commons.api.domain.ODataEntity;
-import org.apache.olingo.commons.api.domain.ODataEntitySet;
+import org.apache.olingo.commons.api.domain.ClientEntity;
+import org.apache.olingo.commons.api.domain.ClientEntitySet;
 import org.apache.olingo.commons.api.format.ODataFormat;
 import org.junit.Test;
 
@@ -48,14 +48,14 @@ public class FilterFactoryTestITCase extends AbstractTestITCase {
     final URIBuilder uriBuilder =
         client.newURIBuilder(testStaticServiceRootURL).appendCrossjoinSegment("Customers", "Orders").filter(filter);
 
-    final ODataEntitySetRequest<ODataEntitySet> req =
+    final ODataEntitySetRequest<ClientEntitySet> req =
         client.getRetrieveRequestFactory().getEntitySetRequest(uriBuilder.build());
     req.setFormat(ODataFormat.JSON_FULL_METADATA);
 
-    final ODataEntitySet feed = req.execute().getBody();
+    final ClientEntitySet feed = req.execute().getBody();
     assertEquals(3, feed.getEntities().size());
 
-    for (ODataEntity entity : feed.getEntities()) {
+    for (ClientEntity entity : feed.getEntities()) {
       assertEquals(2, entity.getNavigationLinks().size());
     }
   }

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/c37d4da5/fit/src/test/java/org/apache/olingo/fit/v4/JSONFormatConformanceTestITCase.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/v4/JSONFormatConformanceTestITCase.java b/fit/src/test/java/org/apache/olingo/fit/v4/JSONFormatConformanceTestITCase.java
index 1af92d6..b45cf5a 100644
--- a/fit/src/test/java/org/apache/olingo/fit/v4/JSONFormatConformanceTestITCase.java
+++ b/fit/src/test/java/org/apache/olingo/fit/v4/JSONFormatConformanceTestITCase.java
@@ -1,18 +1,18 @@
-/* 
+/*
  * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
+ * or more contributor license agreements. See the NOTICE file
  * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
+ * 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
- *
+ * 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
+ * KIND, either express or implied. See the License for the
  * specific language governing permissions and limitations
  * under the License.
  */
@@ -29,12 +29,12 @@ import org.apache.olingo.client.api.communication.response.ODataRetrieveResponse
 import org.apache.olingo.commons.api.data.Entity;
 import org.apache.olingo.commons.api.data.EntityCollection;
 import org.apache.olingo.commons.api.data.ResWrap;
-import org.apache.olingo.commons.api.domain.ODataAnnotation;
-import org.apache.olingo.commons.api.domain.ODataEntity;
-import org.apache.olingo.commons.api.domain.ODataEntitySet;
-import org.apache.olingo.commons.api.domain.ODataLink;
-import org.apache.olingo.commons.api.domain.ODataLinkType;
-import org.apache.olingo.commons.api.domain.ODataProperty;
+import org.apache.olingo.commons.api.domain.ClientAnnotation;
+import org.apache.olingo.commons.api.domain.ClientEntity;
+import org.apache.olingo.commons.api.domain.ClientEntitySet;
+import org.apache.olingo.commons.api.domain.ClientLink;
+import org.apache.olingo.commons.api.domain.ClientLinkType;
+import org.apache.olingo.commons.api.domain.ClientProperty;
 import org.apache.olingo.commons.api.edm.EdmPrimitiveTypeException;
 import org.apache.olingo.commons.api.edm.EdmPrimitiveTypeKind;
 import org.apache.olingo.commons.api.format.ODataFormat;
@@ -62,21 +62,21 @@ public class JSONFormatConformanceTestITCase extends AbstractTestITCase {
   @Test
   public void item1() throws EdmPrimitiveTypeException {
     final URI uri = edmClient.newURIBuilder().
-            appendEntitySetSegment("Accounts").appendKeySegment(102).
-            appendNavigationSegment("MyPaymentInstruments").appendKeySegment(102902).build();
-    final ODataEntityRequest<ODataEntity> req = edmClient.getRetrieveRequestFactory().getEntityRequest(uri);
+        appendEntitySetSegment("Accounts").appendKeySegment(102).
+        appendNavigationSegment("MyPaymentInstruments").appendKeySegment(102902).build();
+    final ODataEntityRequest<ClientEntity> req = edmClient.getRetrieveRequestFactory().getEntityRequest(uri);
 
     // request format (via Accept header) is set to minimal by default
     assertEquals("application/json;odata.metadata=minimal", req.getAccept());
 
-    final ODataRetrieveResponse<ODataEntity> res = req.execute();
+    final ODataRetrieveResponse<ClientEntity> res = req.execute();
 
     // response is odata.metadata=minimal
     assertFalse(res.getContentType().contains("odata.metadata=none"));
     assertFalse(res.getContentType().contains("odata.metadata=full"));
 
     // response payload is understood
-    final ODataEntity entity = res.getBody();
+    final ClientEntity entity = res.getBody();
     assertNotNull(entity);
     assertEquals("Microsoft.Test.OData.Services.ODataWCFService.PaymentInstrument", entity.getTypeName().toString());
     assertEquals(102902, entity.getProperty("PaymentInstrumentID").getPrimitiveValue().toCastValue(Integer.class), 0);
@@ -89,23 +89,23 @@ public class JSONFormatConformanceTestITCase extends AbstractTestITCase {
   @Test
   public void item2() {
     final URI uri = edmClient.newURIBuilder(testStaticServiceRootURL).
-            appendEntitySetSegment("Accounts").appendKeySegment(102).build();
-    final ODataEntityRequest<ODataEntity> req = edmClient.getRetrieveRequestFactory().getEntityRequest(uri);
+        appendEntitySetSegment("Accounts").appendKeySegment(102).build();
+    final ODataEntityRequest<ClientEntity> req = edmClient.getRetrieveRequestFactory().getEntityRequest(uri);
     req.setFormat(ODataFormat.JSON_FULL_METADATA);
 
     // request format (via Accept header) is set to full metadata
     assertEquals("application/json;odata.metadata=full", req.getAccept());
 
-    final ODataRetrieveResponse<ODataEntity> res = req.execute();
+    final ODataRetrieveResponse<ClientEntity> res = req.execute();
 
     // response is odata.metadata=full
     assertTrue(res.getContentType().contains("odata.metadata=full"));
 
     // response payload is understood (including links, only returned with full metadata)
-    final ODataEntity entity = res.getBody();
+    final ClientEntity entity = res.getBody();
     assertNotNull(entity);
-    assertEquals(ODataLinkType.ENTITY_SET_NAVIGATION, entity.getNavigationLink("MyPaymentInstruments").getType());
-    assertEquals(ODataLinkType.ENTITY_SET_NAVIGATION, entity.getNavigationLink("ActiveSubscriptions").getType());
+    assertEquals(ClientLinkType.ENTITY_SET_NAVIGATION, entity.getNavigationLink("MyPaymentInstruments").getType());
+    assertEquals(ClientLinkType.ENTITY_SET_NAVIGATION, entity.getNavigationLink("ActiveSubscriptions").getType());
   }
 
   /**
@@ -119,36 +119,36 @@ public class JSONFormatConformanceTestITCase extends AbstractTestITCase {
   @Test
   public void item3() throws Exception {
     final String fromSection71 = "{"
-            + "\"NullValue\": null,"
-            + "\"TrueValue\": true,"
-            + "\"FalseValue\": false,"
-            + "\"BinaryValue@odata.type\": \"Binary\","
-            + "\"BinaryValue\": \"T0RhdGE\","
-            + "\"IntegerValue\": -128,"
-            + "\"DoubleValue\": 3.1415926535897931,"
-            + "\"SingleValue@odata.type\": \"Single\","
-            + "\"SingleValue\": \"INF\","
-            + "\"DecimalValue@odata.type\": \"Decimal\","
-            + "\"DecimalValue\": 34.95,"
-            + "\"StringValue\": \"Say \\\"Hello\\\",\\nthen go\","
-            + "\"DateValue@odata.type\": \"Date\","
-            + "\"DateValue\": \"2012-12-03\","
-            + "\"DateTimeOffsetValue@odata.type\": \"DateTimeOffset\","
-            + "\"DateTimeOffsetValue\": \"2012-12-03T07:16:23Z\","
-            + "\"DurationValue@odata.type\": \"Duration\","
-            + "\"DurationValue\": \"P12DT23H59M59.999999999999S\","
-            + "\"TimeOfDayValue@odata.type\": \"TimeOfDay\","
-            + "\"TimeOfDayValue\": \"07:59:59.999\","
-            + "\"GuidValue@odata.type\": \"Guid\","
-            + "\"GuidValue\": \"01234567-89ab-cdef-0123-456789abcdef\","
-            + "\"Int64Value@odata.type\": \"Int64\","
-            + "\"Int64Value\": 0,"
-            + "\"ColorEnumValue@odata.type\": \"Test.Color\","
-            + "\"ColorEnumValue\": \"Yellow\","
-            + "\"GeographyPoint\": {\"type\": \"Point\",\"coordinates\":[142.1,64.1]}"
-            + "}";
-
-    final ODataEntity entity = client.getReader().readEntity(IOUtils.toInputStream(fromSection71), ODataFormat.JSON);
+        + "\"NullValue\": null,"
+        + "\"TrueValue\": true,"
+        + "\"FalseValue\": false,"
+        + "\"BinaryValue@odata.type\": \"Binary\","
+        + "\"BinaryValue\": \"T0RhdGE\","
+        + "\"IntegerValue\": -128,"
+        + "\"DoubleValue\": 3.1415926535897931,"
+        + "\"SingleValue@odata.type\": \"Single\","
+        + "\"SingleValue\": \"INF\","
+        + "\"DecimalValue@odata.type\": \"Decimal\","
+        + "\"DecimalValue\": 34.95,"
+        + "\"StringValue\": \"Say \\\"Hello\\\",\\nthen go\","
+        + "\"DateValue@odata.type\": \"Date\","
+        + "\"DateValue\": \"2012-12-03\","
+        + "\"DateTimeOffsetValue@odata.type\": \"DateTimeOffset\","
+        + "\"DateTimeOffsetValue\": \"2012-12-03T07:16:23Z\","
+        + "\"DurationValue@odata.type\": \"Duration\","
+        + "\"DurationValue\": \"P12DT23H59M59.999999999999S\","
+        + "\"TimeOfDayValue@odata.type\": \"TimeOfDay\","
+        + "\"TimeOfDayValue\": \"07:59:59.999\","
+        + "\"GuidValue@odata.type\": \"Guid\","
+        + "\"GuidValue\": \"01234567-89ab-cdef-0123-456789abcdef\","
+        + "\"Int64Value@odata.type\": \"Int64\","
+        + "\"Int64Value\": 0,"
+        + "\"ColorEnumValue@odata.type\": \"Test.Color\","
+        + "\"ColorEnumValue\": \"Yellow\","
+        + "\"GeographyPoint\": {\"type\": \"Point\",\"coordinates\":[142.1,64.1]}"
+        + "}";
+
+    final ClientEntity entity = client.getReader().readEntity(IOUtils.toInputStream(fromSection71), ODataFormat.JSON);
 
     assertTrue(entity.getProperty("NullValue").hasNullValue());
 
@@ -165,29 +165,29 @@ public class JSONFormatConformanceTestITCase extends AbstractTestITCase {
 
     assertEquals(EdmPrimitiveTypeKind.Double, entity.getProperty("DoubleValue").getPrimitiveValue().getTypeKind());
     assertEquals(3.1415926535897931,
-            entity.getProperty("DoubleValue").getPrimitiveValue().toCastValue(Double.class), 0);
+        entity.getProperty("DoubleValue").getPrimitiveValue().toCastValue(Double.class), 0);
 
     assertEquals(EdmPrimitiveTypeKind.Single, entity.getProperty("SingleValue").getPrimitiveValue().getTypeKind());
     assertEquals(Float.POSITIVE_INFINITY,
-            entity.getProperty("SingleValue").getPrimitiveValue().toCastValue(Float.class), 0);
+        entity.getProperty("SingleValue").getPrimitiveValue().toCastValue(Float.class), 0);
 
     assertEquals(EdmPrimitiveTypeKind.Decimal, entity.getProperty("DecimalValue").getPrimitiveValue().getTypeKind());
     assertEquals(BigDecimal.valueOf(34.95),
-            entity.getProperty("DecimalValue").getPrimitiveValue().toCastValue(BigDecimal.class));
+        entity.getProperty("DecimalValue").getPrimitiveValue().toCastValue(BigDecimal.class));
 
     assertEquals(EdmPrimitiveTypeKind.String, entity.getProperty("StringValue").getPrimitiveValue().getTypeKind());
     assertEquals("Say \"Hello\",\nthen go",
-            entity.getProperty("StringValue").getPrimitiveValue().toCastValue(String.class));
+        entity.getProperty("StringValue").getPrimitiveValue().toCastValue(String.class));
 
     assertEquals(EdmPrimitiveTypeKind.Date, entity.getProperty("DateValue").getPrimitiveValue().getTypeKind());
 
     assertEquals(EdmPrimitiveTypeKind.DateTimeOffset,
-            entity.getProperty("DateTimeOffsetValue").getPrimitiveValue().getTypeKind());
+        entity.getProperty("DateTimeOffsetValue").getPrimitiveValue().getTypeKind());
 
     assertEquals(EdmPrimitiveTypeKind.Duration, entity.getProperty("DurationValue").getPrimitiveValue().getTypeKind());
 
     assertEquals(EdmPrimitiveTypeKind.TimeOfDay,
-            entity.getProperty("TimeOfDayValue").getPrimitiveValue().getTypeKind());
+        entity.getProperty("TimeOfDayValue").getPrimitiveValue().getTypeKind());
 
     assertEquals(EdmPrimitiveTypeKind.Guid, entity.getProperty("GuidValue").getPrimitiveValue().getTypeKind());
 
@@ -196,7 +196,7 @@ public class JSONFormatConformanceTestITCase extends AbstractTestITCase {
     assertTrue(entity.getProperty("ColorEnumValue").hasEnumValue());
 
     assertEquals(EdmPrimitiveTypeKind.GeographyPoint,
-            entity.getProperty("GeographyPoint").getPrimitiveValue().getTypeKind());
+        entity.getProperty("GeographyPoint").getPrimitiveValue().getTypeKind());
   }
 
   /**
@@ -205,21 +205,21 @@ public class JSONFormatConformanceTestITCase extends AbstractTestITCase {
   @Test
   public void item4() throws Exception {
     final String fromSection45_1 = "{"
-            + "\"@odata.context\": \"http://host/service/$metadata#Customers/$entity\","
-            + "\"@odata.metadataEtag\": \"W/\\\"A1FF3E230954908F\\\"\","
-            + "\"@odata.etag\": \"W/\\\"A1FF3E230954908G\\\"\","
-            + "\"@odata.type\": \"#Model.VipCustomer\","
-            + "\"@odata.id\": \"http://host/service/Employees(PersonID=3)\","
-            + "\"@odata.editLink\": \"People(976)\","
-            + "\"@odata.mediaEditLink\": \"Employees(1)/$value\","
-            + "\"@odata.mediaContentType\": \"image/jpeg\","
-            + "\"@odata.mediaEtag\": \"W/\\\"A1FF3E230954908H\\\"\","
-            + "\"Parent@odata.navigationLink\": \"People(976)/Parent\","
-            + "\"Parent@odata.associationLink\": \"People(976)/Parent\""
-            + "}";
+        + "\"@odata.context\": \"http://host/service/$metadata#Customers/$entity\","
+        + "\"@odata.metadataEtag\": \"W/\\\"A1FF3E230954908F\\\"\","
+        + "\"@odata.etag\": \"W/\\\"A1FF3E230954908G\\\"\","
+        + "\"@odata.type\": \"#Model.VipCustomer\","
+        + "\"@odata.id\": \"http://host/service/Employees(PersonID=3)\","
+        + "\"@odata.editLink\": \"People(976)\","
+        + "\"@odata.mediaEditLink\": \"Employees(1)/$value\","
+        + "\"@odata.mediaContentType\": \"image/jpeg\","
+        + "\"@odata.mediaEtag\": \"W/\\\"A1FF3E230954908H\\\"\","
+        + "\"Parent@odata.navigationLink\": \"People(976)/Parent\","
+        + "\"Parent@odata.associationLink\": \"People(976)/Parent\""
+        + "}";
 
     final ResWrap<Entity> entity =
-            client.getDeserializer(ODataFormat.JSON).toEntity(IOUtils.toInputStream(fromSection45_1));
+        client.getDeserializer(ODataFormat.JSON).toEntity(IOUtils.toInputStream(fromSection45_1));
 
     assertEquals("http://host/service/$metadata#Customers/$entity", entity.getContextURL().toASCIIString());
     assertEquals("W/\"A1FF3E230954908F\"", entity.getMetadataETag());
@@ -234,14 +234,14 @@ public class JSONFormatConformanceTestITCase extends AbstractTestITCase {
     assertEquals("People(976)/Parent", entity.getPayload().getAssociationLink("Parent").getHref());
 
     final String fromSection45_2 = "{"
-            + "  \"@odata.count\": 5,"
-            + "  \"value\": [],"
-            + "  \"@odata.nextLink\": \"Customers?$expand=Orders&$skipToken=5\","
-            + "  \"@odata.deltaLink\": \"Customers?$expand=Orders&$deltatoken=8015\""
-            + "}";
+        + "  \"@odata.count\": 5,"
+        + "  \"value\": [],"
+        + "  \"@odata.nextLink\": \"Customers?$expand=Orders&$skipToken=5\","
+        + "  \"@odata.deltaLink\": \"Customers?$expand=Orders&$deltatoken=8015\""
+        + "}";
 
     final ResWrap<EntityCollection> entitySet =
-            client.getDeserializer(ODataFormat.JSON).toEntitySet(IOUtils.toInputStream(fromSection45_2));
+        client.getDeserializer(ODataFormat.JSON).toEntitySet(IOUtils.toInputStream(fromSection45_2));
 
     assertEquals(5, entitySet.getPayload().getCount(), 0);
     assertEquals("Customers?$expand=Orders&$skipToken=5", entitySet.getPayload().getNext().toASCIIString());
@@ -255,54 +255,54 @@ public class JSONFormatConformanceTestITCase extends AbstractTestITCase {
   @Test
   public void item5() throws Exception {
     final String sample = "{"
-            + "  \"@odata.context\": \"http://host/service/$metadata#Customers\","
-            + "  \"@odata.notdefined\": 11,"
-            + "  \"@com.contoso.customer.setkind\": \"VIPs\","
-            + "  \"value\": ["
-            + "    {"
-            + "      \"@com.contoso.display.highlight\": true,"
-            + "      \"ID\": \"ALFKI\","
-            + "      \"CompanyName@com.contoso.display.style\": { \"title\": true, \"order\": 1 },"
-            + "      \"CompanyName\": \"Alfreds Futterkiste\","
-            + "      \"Orders@com.contoso.display.style\": { \"order\": 2 },"
-            + "      \"Orders@odata.navigationLink\": \"People(976)/Orders\""
-            + "    }"
-            + "  ]"
-            + "}";
-
-    final ODataEntitySet entitySet = client.getReader().
-            readEntitySet(IOUtils.toInputStream(sample), ODataFormat.JSON);
+        + "  \"@odata.context\": \"http://host/service/$metadata#Customers\","
+        + "  \"@odata.notdefined\": 11,"
+        + "  \"@com.contoso.customer.setkind\": \"VIPs\","
+        + "  \"value\": ["
+        + "    {"
+        + "      \"@com.contoso.display.highlight\": true,"
+        + "      \"ID\": \"ALFKI\","
+        + "      \"CompanyName@com.contoso.display.style\": { \"title\": true, \"order\": 1 },"
+        + "      \"CompanyName\": \"Alfreds Futterkiste\","
+        + "      \"Orders@com.contoso.display.style\": { \"order\": 2 },"
+        + "      \"Orders@odata.navigationLink\": \"People(976)/Orders\""
+        + "    }"
+        + "  ]"
+        + "}";
+
+    final ClientEntitySet entitySet = client.getReader().
+        readEntitySet(IOUtils.toInputStream(sample), ODataFormat.JSON);
 
     assertEquals(2, entitySet.getAnnotations().size());
 
-    final ODataAnnotation notdefined = entitySet.getAnnotations().get(0);
+    final ClientAnnotation notdefined = entitySet.getAnnotations().get(0);
     assertEquals("odata.notdefined", notdefined.getTerm());
     assertEquals(11, notdefined.getPrimitiveValue().toCastValue(Integer.class), 0);
 
-    final ODataAnnotation setkind = entitySet.getAnnotations().get(1);
+    final ClientAnnotation setkind = entitySet.getAnnotations().get(1);
     assertEquals("com.contoso.customer.setkind", setkind.getTerm());
     assertEquals("VIPs", setkind.getPrimitiveValue().toCastValue(String.class));
 
-    final ODataEntity entity = entitySet.getEntities().get(0);
+    final ClientEntity entity = entitySet.getEntities().get(0);
     assertEquals(1, entity.getAnnotations().size());
 
-    final ODataAnnotation highlight = entity.getAnnotations().get(0);
+    final ClientAnnotation highlight = entity.getAnnotations().get(0);
     assertEquals("com.contoso.display.highlight", highlight.getTerm());
     assertEquals(Boolean.TRUE, highlight.getPrimitiveValue().toCastValue(Boolean.class));
 
-    final ODataProperty property = entity.getProperty("CompanyName");
+    final ClientProperty property = entity.getProperty("CompanyName");
     assertEquals(1, property.getAnnotations().size());
 
-    final ODataAnnotation style = property.getAnnotations().get(0);
+    final ClientAnnotation style = property.getAnnotations().get(0);
     assertEquals("com.contoso.display.style", style.getTerm());
     assertTrue(style.hasComplexValue());
     assertEquals(Boolean.TRUE, style.getComplexValue().get("title").getPrimitiveValue().toCastValue(Boolean.class));
     assertEquals(1, style.getComplexValue().get("order").getPrimitiveValue().toCastValue(Integer.class), 0);
 
-    final ODataLink orders = entity.getNavigationLink("Orders");
+    final ClientLink orders = entity.getNavigationLink("Orders");
     assertEquals(1, orders.getAnnotations().size());
 
-    final ODataAnnotation style2 = orders.getAnnotations().get(0);
+    final ClientAnnotation style2 = orders.getAnnotations().get(0);
     assertEquals("com.contoso.display.style", style2.getTerm());
     assertTrue(style2.hasComplexValue());
     assertEquals(2, style2.getComplexValue().get("order").getPrimitiveValue().toCastValue(Integer.class), 0);
@@ -314,17 +314,17 @@ public class JSONFormatConformanceTestITCase extends AbstractTestITCase {
   @Test
   public void item6() throws EdmPrimitiveTypeException {
     final URI uri = edmClient.newURIBuilder().
-            appendEntitySetSegment("Accounts").appendKeySegment(102).
-            appendNavigationSegment("MyPaymentInstruments").appendKeySegment(102902).build();
-    final ODataEntityRequest<ODataEntity> req = edmClient.getRetrieveRequestFactory().getEntityRequest(uri);
+        appendEntitySetSegment("Accounts").appendKeySegment(102).
+        appendNavigationSegment("MyPaymentInstruments").appendKeySegment(102902).build();
+    final ODataEntityRequest<ClientEntity> req = edmClient.getRetrieveRequestFactory().getEntityRequest(uri);
 
     // request format (via Accept header) does not contain odata.streaming=true
     assertEquals("application/json;odata.metadata=minimal", req.getAccept());
 
-    final ODataRetrieveResponse<ODataEntity> res = req.execute();
+    final ODataRetrieveResponse<ClientEntity> res = req.execute();
 
     // response payload is understood
-    final ODataEntity entity = res.getBody();
+    final ClientEntity entity = res.getBody();
     assertNotNull(entity);
     assertEquals("Microsoft.Test.OData.Services.ODataWCFService.PaymentInstrument", entity.getTypeName().toString());
     assertEquals(102902, entity.getProperty("PaymentInstrumentID").getPrimitiveValue().toCastValue(Integer.class), 0);

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/c37d4da5/fit/src/test/java/org/apache/olingo/fit/v4/KeyAsSegmentTestITCase.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/v4/KeyAsSegmentTestITCase.java b/fit/src/test/java/org/apache/olingo/fit/v4/KeyAsSegmentTestITCase.java
index b92e39f..835d7a3 100644
--- a/fit/src/test/java/org/apache/olingo/fit/v4/KeyAsSegmentTestITCase.java
+++ b/fit/src/test/java/org/apache/olingo/fit/v4/KeyAsSegmentTestITCase.java
@@ -1,18 +1,18 @@
-/* 
+/*
  * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
+ * or more contributor license agreements. See the NOTICE file
  * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
+ * 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
- *
+ * 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
+ * KIND, either express or implied. See the License for the
  * specific language governing permissions and limitations
  * under the License.
  */
@@ -24,8 +24,8 @@ import org.apache.olingo.client.api.communication.request.retrieve.ODataEntityRe
 import org.apache.olingo.client.api.communication.response.ODataEntityUpdateResponse;
 import org.apache.olingo.client.api.communication.response.ODataRetrieveResponse;
 import org.apache.olingo.client.api.uri.URIBuilder;
-import org.apache.olingo.commons.api.domain.ODataEntity;
-import org.apache.olingo.commons.api.domain.ODataProperty;
+import org.apache.olingo.commons.api.domain.ClientEntity;
+import org.apache.olingo.commons.api.domain.ClientProperty;
 import org.apache.olingo.commons.api.edm.FullQualifiedName;
 import org.apache.olingo.commons.api.format.ODataFormat;
 import org.junit.AfterClass;
@@ -52,13 +52,14 @@ public class KeyAsSegmentTestITCase extends AbstractTestITCase {
 
   private void read(final ODataFormat format) {
     final URIBuilder uriBuilder = client.newURIBuilder(testKeyAsSegmentServiceRootURL).
-            appendEntitySetSegment("Accounts").appendKeySegment(101);
+        appendEntitySetSegment("Accounts").appendKeySegment(101);
 
-    final ODataEntityRequest<ODataEntity> req = client.getRetrieveRequestFactory().getEntityRequest(uriBuilder.build());
+    final ODataEntityRequest<ClientEntity> req =
+        client.getRetrieveRequestFactory().getEntityRequest(uriBuilder.build());
     req.setFormat(format);
 
-    final ODataRetrieveResponse<ODataEntity> res = req.execute();
-    final ODataEntity entity = res.getBody();
+    final ODataRetrieveResponse<ClientEntity> res = req.execute();
+    final ClientEntity entity = res.getBody();
     assertNotNull(entity);
 
     // In JSON with minimal metadata, links are not provided
@@ -89,27 +90,27 @@ public class KeyAsSegmentTestITCase extends AbstractTestITCase {
   }
 
   private void update(final ODataFormat format) {
-    final ODataEntity changes = getClient().getObjectFactory().newEntity(
-            new FullQualifiedName("Microsoft.Test.OData.Services.ODataWCFService.Customer"));
-    final ODataProperty middleName = getClient().getObjectFactory().newPrimitiveProperty("MiddleName",
-            getClient().getObjectFactory().newPrimitiveValueBuilder().buildString("middle"));
+    final ClientEntity changes = getClient().getObjectFactory().newEntity(
+        new FullQualifiedName("Microsoft.Test.OData.Services.ODataWCFService.Customer"));
+    final ClientProperty middleName = getClient().getObjectFactory().newPrimitiveProperty("MiddleName",
+        getClient().getObjectFactory().newPrimitiveValueBuilder().buildString("middle"));
     changes.getProperties().add(middleName);
 
     final URI uri = getClient().newURIBuilder(testKeyAsSegmentServiceRootURL).
-            appendEntitySetSegment("People").appendKeySegment(5).build();
-    final ODataEntityUpdateRequest<ODataEntity> req = getClient().getCUDRequestFactory().
-            getEntityUpdateRequest(uri, UpdateType.PATCH, changes);
+        appendEntitySetSegment("People").appendKeySegment(5).build();
+    final ODataEntityUpdateRequest<ClientEntity> req = getClient().getCUDRequestFactory().
+        getEntityUpdateRequest(uri, UpdateType.PATCH, changes);
     req.setFormat(format);
 
-    final ODataEntityUpdateResponse<ODataEntity> res = req.execute();
+    final ODataEntityUpdateResponse<ClientEntity> res = req.execute();
     assertEquals(204, res.getStatusCode());
 
-    final ODataEntity updated = getClient().getRetrieveRequestFactory().getEntityRequest(uri).execute().getBody();
+    final ClientEntity updated = getClient().getRetrieveRequestFactory().getEntityRequest(uri).execute().getBody();
     assertNotNull(updated);
     assertFalse(updated.getEditLink().toASCIIString().contains("("));
     assertFalse(updated.getEditLink().toASCIIString().contains(")"));
 
-    final ODataProperty updatedMiddleName = updated.getProperty("MiddleName");
+    final ClientProperty updatedMiddleName = updated.getProperty("MiddleName");
     assertNotNull(updatedMiddleName);
     assertEquals("middle", updatedMiddleName.getPrimitiveValue().toString());
   }

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/c37d4da5/fit/src/test/java/org/apache/olingo/fit/v4/MediaEntityTestITCase.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/v4/MediaEntityTestITCase.java b/fit/src/test/java/org/apache/olingo/fit/v4/MediaEntityTestITCase.java
index 9dfc97f..2b19064 100644
--- a/fit/src/test/java/org/apache/olingo/fit/v4/MediaEntityTestITCase.java
+++ b/fit/src/test/java/org/apache/olingo/fit/v4/MediaEntityTestITCase.java
@@ -1,18 +1,18 @@
-/* 
+/*
  * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
+ * or more contributor license agreements. See the NOTICE file
  * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
+ * 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
- *
+ * 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
+ * KIND, either express or implied. See the License for the
  * specific language governing permissions and limitations
  * under the License.
  */
@@ -36,8 +36,8 @@ import org.apache.olingo.client.api.communication.response.ODataMediaEntityUpdat
 import org.apache.olingo.client.api.communication.response.ODataRetrieveResponse;
 import org.apache.olingo.client.api.uri.URIBuilder;
 import org.apache.olingo.client.core.ODataClientFactory;
-import org.apache.olingo.commons.api.domain.ODataEntity;
-import org.apache.olingo.commons.api.domain.ODataValuable;
+import org.apache.olingo.commons.api.domain.ClientEntity;
+import org.apache.olingo.commons.api.domain.ClientValuable;
 import org.apache.olingo.commons.api.edm.EdmPrimitiveTypeException;
 import org.apache.olingo.commons.api.edm.EdmPrimitiveTypeKind;
 import org.apache.olingo.commons.api.edm.FullQualifiedName;
@@ -61,16 +61,16 @@ public class MediaEntityTestITCase extends AbstractTestITCase {
     final URIBuilder builder = client.newURIBuilder(testDemoServiceRootURL).
         appendEntitySetSegment("Advertisements").
         appendKeySegment(UUID.fromString("f89dee73-af9f-4cd4-b330-db93c25ff3c7"));
-    final ODataEntityRequest<ODataEntity> entityReq =
+    final ODataEntityRequest<ClientEntity> entityReq =
         client.getRetrieveRequestFactory().getEntityRequest(builder.build());
     entityReq.setFormat(format);
 
-    final ODataEntity entity = entityReq.execute().getBody();
+    final ClientEntity entity = entityReq.execute().getBody();
     assertNotNull(entity);
     assertTrue(entity.isMediaEntity());
     // cast to workaround JDK 6 bug, fixed in JDK 7
     assertEquals(EdmPrimitiveTypeKind.DateTimeOffset.getFullQualifiedName().toString(),
-        ((ODataValuable) entity.getProperty("AirDate")).getValue().getTypeName());
+        ((ClientValuable) entity.getProperty("AirDate")).getValue().getTypeName());
 
     final ODataMediaRequest streamReq = client.getRetrieveRequestFactory().
         getMediaRequest(entity.getMediaContentSource());
@@ -101,28 +101,28 @@ public class MediaEntityTestITCase extends AbstractTestITCase {
     final InputStream input = IOUtils.toInputStream(random);
 
     final URI uri = client.newURIBuilder(testDemoServiceRootURL).appendEntitySetSegment("Advertisements").build();
-    final ODataMediaEntityCreateRequest<ODataEntity> createReq =
+    final ODataMediaEntityCreateRequest<ClientEntity> createReq =
         client.getCUDRequestFactory().getMediaEntityCreateRequest(uri, input);
-    final MediaEntityCreateStreamManager<ODataEntity> streamManager = createReq.payloadManager();
+    final MediaEntityCreateStreamManager<ClientEntity> streamManager = createReq.payloadManager();
 
-    final ODataMediaEntityCreateResponse<ODataEntity> createRes = streamManager.getResponse();
+    final ODataMediaEntityCreateResponse<ClientEntity> createRes = streamManager.getResponse();
     assertEquals(201, createRes.getStatusCode());
 
     final Collection<String> location = createRes.getHeader(HeaderName.location);
     assertNotNull(location);
     final URI createdLocation = URI.create(location.iterator().next());
 
-    final ODataEntity changes = client.getObjectFactory().
+    final ClientEntity changes = client.getObjectFactory().
         newEntity(new FullQualifiedName("ODataDemo.Advertisement"));
     changes.getProperties().add(client.getObjectFactory().newPrimitiveProperty("AirDate",
         getClient().getObjectFactory().newPrimitiveValueBuilder().
             setType(EdmPrimitiveTypeKind.DateTimeOffset).setValue(Calendar.getInstance()).build()));
 
-    final ODataEntityUpdateRequest<ODataEntity> updateReq = getClient().getCUDRequestFactory().
+    final ODataEntityUpdateRequest<ClientEntity> updateReq = getClient().getCUDRequestFactory().
         getEntityUpdateRequest(createdLocation, UpdateType.PATCH, changes);
     updateReq.setFormat(format);
 
-    final ODataEntityUpdateResponse<ODataEntity> updateRes = updateReq.execute();
+    final ODataEntityUpdateResponse<ClientEntity> updateRes = updateReq.execute();
     assertEquals(204, updateRes.getStatusCode());
 
     final ODataMediaRequest retrieveReq = client.getRetrieveRequestFactory().
@@ -153,12 +153,12 @@ public class MediaEntityTestITCase extends AbstractTestITCase {
     final String random = RandomStringUtils.random(124);
 
     // 1. update providing media content
-    final ODataMediaEntityUpdateRequest<ODataEntity> updateReq = client.getCUDRequestFactory().
+    final ODataMediaEntityUpdateRequest<ClientEntity> updateReq = client.getCUDRequestFactory().
         getMediaEntityUpdateRequest(uri, IOUtils.toInputStream(random));
     updateReq.setFormat(format);
 
-    final MediaEntityUpdateStreamManager<ODataEntity> streamManager = updateReq.payloadManager();
-    final ODataMediaEntityUpdateResponse<ODataEntity> createRes = streamManager.getResponse();
+    final MediaEntityUpdateStreamManager<ClientEntity> streamManager = updateReq.payloadManager();
+    final ODataMediaEntityUpdateResponse<ClientEntity> createRes = streamManager.getResponse();
     assertEquals(204, createRes.getStatusCode());
 
     // 2. check that media content was effectively uploaded

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/c37d4da5/fit/src/test/java/org/apache/olingo/fit/v4/MetadataTestITCase.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/v4/MetadataTestITCase.java b/fit/src/test/java/org/apache/olingo/fit/v4/MetadataTestITCase.java
index 2119c0c..4a5d6f5 100644
--- a/fit/src/test/java/org/apache/olingo/fit/v4/MetadataTestITCase.java
+++ b/fit/src/test/java/org/apache/olingo/fit/v4/MetadataTestITCase.java
@@ -1,18 +1,18 @@
-/* 
+/*
  * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
+ * or more contributor license agreements. See the NOTICE file
  * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
+ * 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
- *
+ * 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
+ * KIND, either express or implied. See the License for the
  * specific language governing permissions and limitations
  * under the License.
  */
@@ -47,7 +47,7 @@ public class MetadataTestITCase extends AbstractTestITCase {
     assertNotNull(edm);
 
     final EdmEntityType order = edm.getEntityType(
-            new FullQualifiedName("Microsoft.Test.OData.Services.ODataWCFService", "Order"));
+        new FullQualifiedName("Microsoft.Test.OData.Services.ODataWCFService", "Order"));
     assertNotNull(order);
 
     final EdmProperty orderDate = order.getStructuralProperty("OrderDate");
@@ -68,12 +68,12 @@ public class MetadataTestITCase extends AbstractTestITCase {
     assertEquals(3, record.getPropertyValues().size());
     assertTrue(record.getPropertyValues().get(0).getValue().isConstant());
     assertTrue(record.getPropertyValues().get(0).getValue().asConstant().getValue().asPrimitive().
-            toCastValue(Boolean.class));
+        toCastValue(Boolean.class));
     assertTrue(record.getPropertyValues().get(1).getValue().asDynamic().isCollection());
     assertEquals(1, record.getPropertyValues().get(1).getValue().asDynamic().asCollection().getItems().size());
     assertTrue(record.getPropertyValues().get(1).getValue().asDynamic().asCollection().getItems().get(0).isDynamic());
     assertEquals("OrderID", record.getPropertyValues().get(1).getValue().asDynamic().asCollection().
-            getItems().get(0).asDynamic().asPropertyPath().getValue());
+        getItems().get(0).asDynamic().asPropertyPath().getValue());
   }
 
   @Test
@@ -82,7 +82,7 @@ public class MetadataTestITCase extends AbstractTestITCase {
     assertNotNull(edm);
 
     final EdmEntityContainer container = edm.getEntityContainer(
-            new FullQualifiedName("ODataWebExperimental.Northwind.Model", "NorthwindEntities"));
+        new FullQualifiedName("ODataWebExperimental.Northwind.Model", "NorthwindEntities"));
     assertNotNull(container);
 
     final EdmEntitySet categories = container.getEntitySet("Categories");
@@ -93,7 +93,7 @@ public class MetadataTestITCase extends AbstractTestITCase {
   @Test
   public void vocabularies() {
     final Edm edm = client.getRetrieveRequestFactory().
-            getMetadataRequest(testVocabulariesServiceRootURL).execute().getBody();
+        getMetadataRequest(testVocabulariesServiceRootURL).execute().getBody();
     assertNotNull(edm);
 
     // 1. core
@@ -105,12 +105,12 @@ public class MetadataTestITCase extends AbstractTestITCase {
     final EdmTerm descriptionTerm = edm.getTerm(new FullQualifiedName("Core.Description"));
     assertNotNull(descriptionTerm);
     assertEquals(descriptionTerm.getFullQualifiedName(),
-            edm.getTerm(new FullQualifiedName("Org.OData.Core.V1.Description")).getFullQualifiedName());
+        edm.getTerm(new FullQualifiedName("Org.OData.Core.V1.Description")).getFullQualifiedName());
 
     final EdmAnnotation description = core.getAnnotation(descriptionTerm);
     assertNotNull(description);
     assertEquals("Core terms needed to write vocabularies",
-            description.getExpression().asConstant().getValue().asPrimitive().toString());
+        description.getExpression().asConstant().getValue().asPrimitive().toString());
 
     final EdmTerm isLanguageDependent = edm.getTerm(new FullQualifiedName("Core.IsLanguageDependent"));
     assertNotNull(isLanguageDependent);
@@ -132,7 +132,7 @@ public class MetadataTestITCase extends AbstractTestITCase {
     assertNotNull(scale);
 
     final EdmAnnotation requiresTypeInScale = edm.getAnnotation(
-            scale.getFullQualifiedName(), edm.getTerm(new FullQualifiedName("Core.RequiresType")));
+        scale.getFullQualifiedName(), edm.getTerm(new FullQualifiedName("Core.RequiresType")));
     assertNotNull(requiresTypeInScale);
     assertEquals("Edm.Decimal", requiresTypeInScale.getExpression().asConstant().getValue().toString());
 
@@ -140,6 +140,6 @@ public class MetadataTestITCase extends AbstractTestITCase {
     final EdmTerm deleteRestrictions = edm.getTerm(new FullQualifiedName("Capabilities.DeleteRestrictions"));
     assertNotNull(deleteRestrictions);
     assertEquals(deleteRestrictions.getType().getFullQualifiedName(),
-            edm.getComplexType(new FullQualifiedName("Capabilities.DeleteRestrictionsType")).getFullQualifiedName());
+        edm.getComplexType(new FullQualifiedName("Capabilities.DeleteRestrictionsType")).getFullQualifiedName());
   }
 }

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/c37d4da5/fit/src/test/java/org/apache/olingo/fit/v4/OAuth2TestITCase.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/v4/OAuth2TestITCase.java b/fit/src/test/java/org/apache/olingo/fit/v4/OAuth2TestITCase.java
index 1eba762..44b7eca 100644
--- a/fit/src/test/java/org/apache/olingo/fit/v4/OAuth2TestITCase.java
+++ b/fit/src/test/java/org/apache/olingo/fit/v4/OAuth2TestITCase.java
@@ -1,18 +1,18 @@
-/* 
+/*
  * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
+ * or more contributor license agreements. See the NOTICE file
  * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
+ * 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
- *
+ * 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
+ * KIND, either express or implied. See the License for the
  * specific language governing permissions and limitations
  * under the License.
  */
@@ -28,7 +28,7 @@ import org.apache.olingo.client.api.communication.request.retrieve.ODataEntityRe
 import org.apache.olingo.client.api.communication.response.ODataRetrieveResponse;
 import org.apache.olingo.client.api.uri.URIBuilder;
 import org.apache.olingo.client.core.ODataClientFactory;
-import org.apache.olingo.commons.api.domain.ODataEntity;
+import org.apache.olingo.commons.api.domain.ClientEntity;
 import org.apache.olingo.commons.api.format.ODataFormat;
 import org.junit.AfterClass;
 import org.junit.BeforeClass;
@@ -42,17 +42,17 @@ import org.apache.olingo.fit.CXFOAuth2HttpClientFactory;
 public class OAuth2TestITCase extends AbstractTestITCase {
 
   private static final URI OAUTH2_GRANT_SERVICE_URI =
-          URI.create("http://localhost:9080/stub/StaticService/oauth2/authorize");
+      URI.create("http://localhost:9080/stub/StaticService/oauth2/authorize");
 
   private static final URI OAUTH2_TOKEN_SERVICE_URI =
-          URI.create("http://localhost:9080/stub/StaticService/oauth2/token");
+      URI.create("http://localhost:9080/stub/StaticService/oauth2/token");
 
   private EdmEnabledODataClient _edmClient;
 
   @BeforeClass
   public static void enableOAuth2() {
     client.getConfiguration().setHttpClientFactory(
-            new CXFOAuth2HttpClientFactory(OAUTH2_GRANT_SERVICE_URI, OAUTH2_TOKEN_SERVICE_URI));
+        new CXFOAuth2HttpClientFactory(OAUTH2_GRANT_SERVICE_URI, OAUTH2_TOKEN_SERVICE_URI));
   }
 
   @AfterClass
@@ -64,7 +64,7 @@ public class OAuth2TestITCase extends AbstractTestITCase {
     if (_edmClient == null) {
       _edmClient = ODataClientFactory.getEdmEnabledClient(testOAuth2ServiceRootURL);
       _edmClient.getConfiguration().setHttpClientFactory(
-              new CXFOAuth2HttpClientFactory(OAUTH2_GRANT_SERVICE_URI, OAUTH2_TOKEN_SERVICE_URI));
+          new CXFOAuth2HttpClientFactory(OAUTH2_GRANT_SERVICE_URI, OAUTH2_TOKEN_SERVICE_URI));
     }
 
     return _edmClient;
@@ -72,18 +72,19 @@ public class OAuth2TestITCase extends AbstractTestITCase {
 
   private void read(final ODataClient client, final ODataFormat format) {
     final URIBuilder uriBuilder =
-            client.newURIBuilder(testOAuth2ServiceRootURL).appendEntitySetSegment("Orders").appendKeySegment(8);
+        client.newURIBuilder(testOAuth2ServiceRootURL).appendEntitySetSegment("Orders").appendKeySegment(8);
 
-    final ODataEntityRequest<ODataEntity> req = client.getRetrieveRequestFactory().getEntityRequest(uriBuilder.build());
+    final ODataEntityRequest<ClientEntity> req =
+        client.getRetrieveRequestFactory().getEntityRequest(uriBuilder.build());
     req.setFormat(format);
 
-    final ODataRetrieveResponse<ODataEntity> res = req.execute();
+    final ODataRetrieveResponse<ClientEntity> res = req.execute();
     assertEquals(200, res.getStatusCode());
 
     final String etag = res.getETag();
     assertTrue(StringUtils.isNotBlank(etag));
 
-    final ODataEntity order = res.getBody();
+    final ClientEntity order = res.getBody();
     assertEquals(etag, order.getETag());
     assertEquals("Microsoft.Test.OData.Services.ODataWCFService.Order", order.getTypeName().toString());
     assertEquals("Edm.Int32", order.getProperty("OrderID").getPrimitiveValue().getTypeName());

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/c37d4da5/fit/src/test/java/org/apache/olingo/fit/v4/OpenTypeTestITCase.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/v4/OpenTypeTestITCase.java b/fit/src/test/java/org/apache/olingo/fit/v4/OpenTypeTestITCase.java
index 4721ddc..ad9b0a6 100644
--- a/fit/src/test/java/org/apache/olingo/fit/v4/OpenTypeTestITCase.java
+++ b/fit/src/test/java/org/apache/olingo/fit/v4/OpenTypeTestITCase.java
@@ -1,18 +1,18 @@
-/* 
+/*
  * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
+ * or more contributor license agreements. See the NOTICE file
  * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
+ * 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
- *
+ * 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
+ * KIND, either express or implied. See the License for the
  * specific language governing permissions and limitations
  * under the License.
  */
@@ -30,8 +30,8 @@ import org.apache.olingo.client.api.communication.request.cud.ODataEntityCreateR
 import org.apache.olingo.client.api.communication.response.ODataDeleteResponse;
 import org.apache.olingo.client.api.communication.response.ODataEntityCreateResponse;
 import org.apache.olingo.client.api.uri.URIBuilder;
-import org.apache.olingo.commons.api.domain.ODataComplexValue;
-import org.apache.olingo.commons.api.domain.ODataEntity;
+import org.apache.olingo.commons.api.domain.ClientComplexValue;
+import org.apache.olingo.commons.api.domain.ClientEntity;
 import org.apache.olingo.commons.api.edm.Edm;
 import org.apache.olingo.commons.api.edm.EdmPrimitiveTypeKind;
 import org.apache.olingo.commons.api.edm.EdmSchema;
@@ -53,14 +53,14 @@ public class OpenTypeTestITCase extends AbstractTestITCase {
     assertTrue(metadata.getEntityType(new FullQualifiedName(schema.getNamespace(), "RowIndex")).isOpenType());
   }
 
-  private ODataEntity readRow(final ODataFormat format, final String uuid) {
+  private ClientEntity readRow(final ODataFormat format, final String uuid) {
     final URIBuilder builder = getClient().newURIBuilder(testOpenTypeServiceRootURL).
         appendEntitySetSegment("Row").appendKeySegment(UUID.fromString(uuid));
     return read(format, builder.build());
   }
 
   private void read(final ODataFormat format) {
-    ODataEntity row = readRow(format, "71f7d0dc-ede4-45eb-b421-555a2aa1e58f");
+    ClientEntity row = readRow(format, "71f7d0dc-ede4-45eb-b421-555a2aa1e58f");
     assertEquals(EdmPrimitiveTypeKind.Double, row.getProperty("Double").getPrimitiveValue().getTypeKind());
     assertEquals(EdmPrimitiveTypeKind.Guid, row.getProperty("Id").getPrimitiveValue().getTypeKind());
 
@@ -81,7 +81,7 @@ public class OpenTypeTestITCase extends AbstractTestITCase {
   private void cud(final ODataFormat format) {
     final Integer id = 1426;
 
-    ODataEntity rowIndex = getClient().getObjectFactory().newEntity(
+    ClientEntity rowIndex = getClient().getObjectFactory().newEntity(
         new FullQualifiedName("Microsoft.Test.OData.Services.OpenTypesServiceV4.RowIndex"));
     getClient().getBinder().add(rowIndex,
         getClient().getObjectFactory().newPrimitiveProperty("Id",
@@ -114,7 +114,7 @@ public class OpenTypeTestITCase extends AbstractTestITCase {
         getClient().getObjectFactory().newEnumProperty("aColor", getClient().getObjectFactory().
             newEnumValue("Microsoft.Test.OData.Services.ODataWCFService.Color", "Blue")));
 
-    final ODataComplexValue contactDetails = getClient().getObjectFactory().newComplexValue(
+    final ClientComplexValue contactDetails = getClient().getObjectFactory().newComplexValue(
         "Microsoft.Test.OData.Services.OpenTypesServiceV4.ContactDetails");
     contactDetails.add(getClient().getObjectFactory().newPrimitiveProperty("FirstContacted",
         getClient().getObjectFactory().newPrimitiveValueBuilder().buildBinary("text".getBytes())));
@@ -151,11 +151,11 @@ public class OpenTypeTestITCase extends AbstractTestITCase {
     getClient().getBinder().add(rowIndex,
         getClient().getObjectFactory().newComplexProperty("aContact", contactDetails));
 
-    final ODataEntityCreateRequest<ODataEntity> createReq = getClient().getCUDRequestFactory().
+    final ODataEntityCreateRequest<ClientEntity> createReq = getClient().getCUDRequestFactory().
         getEntityCreateRequest(getClient().newURIBuilder(testOpenTypeServiceRootURL).
             appendEntitySetSegment("RowIndex").build(), rowIndex);
     createReq.setFormat(format);
-    final ODataEntityCreateResponse<ODataEntity> createRes = createReq.execute();
+    final ODataEntityCreateResponse<ClientEntity> createRes = createReq.execute();
     assertEquals(201, createRes.getStatusCode());
 
     final URIBuilder builder = getClient().newURIBuilder(testOpenTypeServiceRootURL).

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/c37d4da5/fit/src/test/java/org/apache/olingo/fit/v4/OperationImportInvokeTestITCase.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/v4/OperationImportInvokeTestITCase.java b/fit/src/test/java/org/apache/olingo/fit/v4/OperationImportInvokeTestITCase.java
index 261d943..4c0775e 100644
--- a/fit/src/test/java/org/apache/olingo/fit/v4/OperationImportInvokeTestITCase.java
+++ b/fit/src/test/java/org/apache/olingo/fit/v4/OperationImportInvokeTestITCase.java
@@ -1,18 +1,18 @@
-/* 
+/*
  * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
+ * or more contributor license agreements. See the NOTICE file
  * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
+ * 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
- *
+ * 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
+ * KIND, either express or implied. See the License for the
  * specific language governing permissions and limitations
  * under the License.
  */
@@ -27,15 +27,15 @@ import java.util.LinkedHashMap;
 import java.util.Map;
 
 import org.apache.olingo.client.api.communication.request.invoke.ODataInvokeRequest;
-import org.apache.olingo.client.api.communication.request.invoke.ODataNoContent;
-import org.apache.olingo.commons.api.domain.ODataCollectionValue;
-import org.apache.olingo.commons.api.domain.ODataComplexValue;
-import org.apache.olingo.commons.api.domain.ODataEntity;
-import org.apache.olingo.commons.api.domain.ODataEntitySet;
-import org.apache.olingo.commons.api.domain.ODataEnumValue;
-import org.apache.olingo.commons.api.domain.ODataPrimitiveValue;
-import org.apache.olingo.commons.api.domain.ODataProperty;
-import org.apache.olingo.commons.api.domain.ODataValue;
+import org.apache.olingo.client.api.communication.request.invoke.ClientNoContent;
+import org.apache.olingo.commons.api.domain.ClientCollectionValue;
+import org.apache.olingo.commons.api.domain.ClientComplexValue;
+import org.apache.olingo.commons.api.domain.ClientEntity;
+import org.apache.olingo.commons.api.domain.ClientEntitySet;
+import org.apache.olingo.commons.api.domain.ClientEnumValue;
+import org.apache.olingo.commons.api.domain.ClientPrimitiveValue;
+import org.apache.olingo.commons.api.domain.ClientProperty;
+import org.apache.olingo.commons.api.domain.ClientValue;
 import org.apache.olingo.commons.api.edm.EdmPrimitiveTypeException;
 import org.apache.olingo.commons.api.format.ODataFormat;
 import org.junit.Test;
@@ -44,31 +44,31 @@ public class OperationImportInvokeTestITCase extends AbstractTestITCase {
 
   private void functionImports(final ODataFormat format) throws EdmPrimitiveTypeException {
     // GetDefaultColor
-    final ODataInvokeRequest<ODataProperty> defaultColorReq = getClient().getInvokeRequestFactory().
+    final ODataInvokeRequest<ClientProperty> defaultColorReq = getClient().getInvokeRequestFactory().
         getFunctionInvokeRequest(getClient().newURIBuilder(testStaticServiceRootURL).
-            appendOperationCallSegment("GetDefaultColor").build(), ODataProperty.class);
+            appendOperationCallSegment("GetDefaultColor").build(), ClientProperty.class);
     defaultColorReq.setFormat(format);
-    final ODataProperty defaultColor = defaultColorReq.execute().getBody();
+    final ClientProperty defaultColor = defaultColorReq.execute().getBody();
     assertNotNull(defaultColor);
     assertTrue(defaultColor.hasEnumValue());
     assertEquals("Red", defaultColor.getEnumValue().getValue());
     assertEquals("Microsoft.Test.OData.Services.ODataWCFService.Color", defaultColor.getEnumValue().getTypeName());
 
     // GetPerson2
-    final ODataPrimitiveValue city = getClient().getObjectFactory().newPrimitiveValueBuilder().buildString("London");
+    final ClientPrimitiveValue city = getClient().getObjectFactory().newPrimitiveValueBuilder().buildString("London");
 
-    final ODataInvokeRequest<ODataEntity> person2Req = getClient().getInvokeRequestFactory().
+    final ODataInvokeRequest<ClientEntity> person2Req = getClient().getInvokeRequestFactory().
         getFunctionInvokeRequest(getClient().newURIBuilder(testStaticServiceRootURL).
-            appendOperationCallSegment("GetPerson2").build(), ODataEntity.class,
-            Collections.<String, ODataValue> singletonMap("city", city));
+            appendOperationCallSegment("GetPerson2").build(), ClientEntity.class,
+            Collections.<String, ClientValue> singletonMap("city", city));
     person2Req.setFormat(format);
-    final ODataEntity person2 = person2Req.execute().getBody();
+    final ClientEntity person2 = person2Req.execute().getBody();
     assertNotNull(person2);
     assertEquals("Microsoft.Test.OData.Services.ODataWCFService.Customer", person2.getTypeName().toString());
     assertEquals(1, person2.getProperty("PersonID").getPrimitiveValue().toCastValue(Integer.class), 0);
 
     // GetPerson
-    final ODataComplexValue address = getClient().getObjectFactory().
+    final ClientComplexValue address = getClient().getObjectFactory().
         newComplexValue("Microsoft.Test.OData.Services.ODataWCFService.Address");
     address.add(client.getObjectFactory().newPrimitiveProperty("Street",
         client.getObjectFactory().newPrimitiveValueBuilder().buildString("1 Microsoft Way")));
@@ -77,34 +77,34 @@ public class OperationImportInvokeTestITCase extends AbstractTestITCase {
     address.add(client.getObjectFactory().newPrimitiveProperty("PostalCode",
         client.getObjectFactory().newPrimitiveValueBuilder().buildString("98052")));
 
-    final ODataInvokeRequest<ODataEntity> personReq = getClient().getInvokeRequestFactory().
+    final ODataInvokeRequest<ClientEntity> personReq = getClient().getInvokeRequestFactory().
         getFunctionInvokeRequest(getClient().newURIBuilder(testStaticServiceRootURL).
-            appendOperationCallSegment("GetPerson").build(), ODataEntity.class,
-            Collections.<String, ODataValue> singletonMap("address", address));
+            appendOperationCallSegment("GetPerson").build(), ClientEntity.class,
+            Collections.<String, ClientValue> singletonMap("address", address));
     personReq.setFormat(format);
-    final ODataEntity person = personReq.execute().getBody();
+    final ClientEntity person = personReq.execute().getBody();
     assertNotNull(person);
     assertEquals(person2, person);
 
     // GetAllProducts
-    final ODataInvokeRequest<ODataEntitySet> productsReq = getClient().getInvokeRequestFactory()
+    final ODataInvokeRequest<ClientEntitySet> productsReq = getClient().getInvokeRequestFactory()
         .getFunctionInvokeRequest(getClient().newURIBuilder(testStaticServiceRootURL).
-            appendOperationCallSegment("GetAllProducts").build(), ODataEntitySet.class);
+            appendOperationCallSegment("GetAllProducts").build(), ClientEntitySet.class);
     productsReq.setFormat(format);
-    final ODataEntitySet products = productsReq.execute().getBody();
+    final ClientEntitySet products = productsReq.execute().getBody();
     assertNotNull(products);
     assertEquals(5, products.getEntities().size());
 
     // GetProductsByAccessLevel
-    final ODataEnumValue accessLevel = getClient().getObjectFactory().
+    final ClientEnumValue accessLevel = getClient().getObjectFactory().
         newEnumValue("Microsoft.Test.OData.Services.ODataWCFService.AccessLevel", "None");
 
-    final ODataInvokeRequest<ODataProperty> prodByALReq = getClient().getInvokeRequestFactory().
+    final ODataInvokeRequest<ClientProperty> prodByALReq = getClient().getInvokeRequestFactory().
         getFunctionInvokeRequest(getClient().newURIBuilder(testStaticServiceRootURL).
-            appendOperationCallSegment("GetProductsByAccessLevel").build(), ODataProperty.class,
-            Collections.<String, ODataValue> singletonMap("accessLevel", accessLevel));
+            appendOperationCallSegment("GetProductsByAccessLevel").build(), ClientProperty.class,
+            Collections.<String, ClientValue> singletonMap("accessLevel", accessLevel));
     prodByALReq.setFormat(format);
-    final ODataProperty prodByAL = prodByALReq.execute().getBody();
+    final ClientProperty prodByAL = prodByALReq.execute().getBody();
     assertNotNull(prodByAL);
     assertTrue(prodByAL.hasCollectionValue());
     assertEquals(5, prodByAL.getCollectionValue().size());
@@ -124,27 +124,27 @@ public class OperationImportInvokeTestITCase extends AbstractTestITCase {
   @Test
   public void edmEnabledFunctionImports() throws EdmPrimitiveTypeException {
     // GetDefaultColor
-    final ODataInvokeRequest<ODataProperty> defaultColorReq = edmClient.getInvokeRequestFactory().
+    final ODataInvokeRequest<ClientProperty> defaultColorReq = edmClient.getInvokeRequestFactory().
         getFunctionImportInvokeRequest("GetDefaultColor");
-    final ODataProperty defaultColor = defaultColorReq.execute().getBody();
+    final ClientProperty defaultColor = defaultColorReq.execute().getBody();
     assertNotNull(defaultColor);
     assertTrue(defaultColor.hasEnumValue());
     assertEquals("Red", defaultColor.getEnumValue().getValue());
     assertEquals("Microsoft.Test.OData.Services.ODataWCFService.Color", defaultColor.getEnumValue().getTypeName());
 
     // GetPerson2
-    final ODataPrimitiveValue city =
+    final ClientPrimitiveValue city =
         getClient().getObjectFactory().newPrimitiveValueBuilder().buildString("London");
-    final ODataInvokeRequest<ODataEntity> person2Req = edmClient.getInvokeRequestFactory().
+    final ODataInvokeRequest<ClientEntity> person2Req = edmClient.getInvokeRequestFactory().
         getFunctionImportInvokeRequest(
-            "GetPerson2", Collections.<String, ODataValue> singletonMap("city", city));
-    final ODataEntity person2 = person2Req.execute().getBody();
+            "GetPerson2", Collections.<String, ClientValue> singletonMap("city", city));
+    final ClientEntity person2 = person2Req.execute().getBody();
     assertNotNull(person2);
     assertEquals("Microsoft.Test.OData.Services.ODataWCFService.Customer", person2.getTypeName().toString());
     assertEquals(1, person2.getProperty("PersonID").getPrimitiveValue().toCastValue(Integer.class), 0);
 
     // GetPerson
-    final ODataComplexValue address = getClient().getObjectFactory().
+    final ClientComplexValue address = getClient().getObjectFactory().
         newComplexValue("Microsoft.Test.OData.Services.ODataWCFService.Address");
     address.add(client.getObjectFactory().newPrimitiveProperty("Street",
         client.getObjectFactory().newPrimitiveValueBuilder().buildString("1 Microsoft Way")));
@@ -153,29 +153,29 @@ public class OperationImportInvokeTestITCase extends AbstractTestITCase {
     address.add(client.getObjectFactory().newPrimitiveProperty("PostalCode",
         client.getObjectFactory().newPrimitiveValueBuilder().buildString("98052")));
 
-    final ODataInvokeRequest<ODataEntity> personReq = edmClient.getInvokeRequestFactory().
+    final ODataInvokeRequest<ClientEntity> personReq = edmClient.getInvokeRequestFactory().
         getFunctionImportInvokeRequest(
-            "GetPerson", Collections.<String, ODataValue> singletonMap("address", address));
-    final ODataEntity person = personReq.execute().getBody();
+            "GetPerson", Collections.<String, ClientValue> singletonMap("address", address));
+    final ClientEntity person = personReq.execute().getBody();
     assertNotNull(person);
     assertEquals(person2, person);
 
     // GetAllProducts
-    final ODataInvokeRequest<ODataEntitySet> productsReq = edmClient.getInvokeRequestFactory().
+    final ODataInvokeRequest<ClientEntitySet> productsReq = edmClient.getInvokeRequestFactory().
         getFunctionImportInvokeRequest("GetAllProducts");
-    final ODataEntitySet products = productsReq.execute().getBody();
+    final ClientEntitySet products = productsReq.execute().getBody();
     assertNotNull(products);
     assertEquals(5, products.getEntities().size());
 
     // GetProductsByAccessLevel
-    final ODataEnumValue accessLevel = getClient().getObjectFactory().
+    final ClientEnumValue accessLevel = getClient().getObjectFactory().
         newEnumValue("Microsoft.Test.OData.Services.ODataWCFService.AccessLevel", "None");
 
-    final ODataInvokeRequest<ODataProperty> prodByALReq = edmClient.getInvokeRequestFactory().
+    final ODataInvokeRequest<ClientProperty> prodByALReq = edmClient.getInvokeRequestFactory().
         getFunctionImportInvokeRequest(
             "GetProductsByAccessLevel",
-            Collections.<String, ODataValue> singletonMap("accessLevel", accessLevel));
-    final ODataProperty prodByAL = prodByALReq.execute().getBody();
+            Collections.<String, ClientValue> singletonMap("accessLevel", accessLevel));
+    final ClientProperty prodByAL = prodByALReq.execute().getBody();
     assertNotNull(prodByAL);
     assertTrue(prodByAL.hasCollectionValue());
     assertEquals(5, prodByAL.getCollectionValue().size());
@@ -184,17 +184,17 @@ public class OperationImportInvokeTestITCase extends AbstractTestITCase {
 
   private void actionImports(final ODataFormat format) {
     // Discount
-    final ODataPrimitiveValue percentage = getClient().getObjectFactory().newPrimitiveValueBuilder().buildInt32(22);
-    final ODataInvokeRequest<ODataNoContent> discountReq = getClient().getInvokeRequestFactory().
+    final ClientPrimitiveValue percentage = getClient().getObjectFactory().newPrimitiveValueBuilder().buildInt32(22);
+    final ODataInvokeRequest<ClientNoContent> discountReq = getClient().getInvokeRequestFactory().
         getActionInvokeRequest(getClient().newURIBuilder(testStaticServiceRootURL).
-            appendOperationCallSegment("Discount").build(), ODataNoContent.class,
-            Collections.<String, ODataValue> singletonMap("percentage", percentage));
+            appendOperationCallSegment("Discount").build(), ClientNoContent.class,
+            Collections.<String, ClientValue> singletonMap("percentage", percentage));
     discountReq.setFormat(format);
-    final ODataNoContent discount = discountReq.execute().getBody();
+    final ClientNoContent discount = discountReq.execute().getBody();
     assertNotNull(discount);
 
     // ResetBossAddress
-    final ODataComplexValue address = getClient().getObjectFactory().
+    final ClientComplexValue address = getClient().getObjectFactory().
         newComplexValue("Microsoft.Test.OData.Services.ODataWCFService.Address");
     address.add(client.getObjectFactory().newPrimitiveProperty("Street",
         client.getObjectFactory().newPrimitiveValueBuilder().buildString("Via Le Mani Dal Naso, 123")));
@@ -203,12 +203,12 @@ public class OperationImportInvokeTestITCase extends AbstractTestITCase {
     address.add(client.getObjectFactory().newPrimitiveProperty("PostalCode",
         client.getObjectFactory().newPrimitiveValueBuilder().buildString("66010")));
 
-    final ODataInvokeRequest<ODataProperty> resetBossAddressReq = getClient().getInvokeRequestFactory().
+    final ODataInvokeRequest<ClientProperty> resetBossAddressReq = getClient().getInvokeRequestFactory().
         getActionInvokeRequest(getClient().newURIBuilder(testStaticServiceRootURL).
-            appendOperationCallSegment("ResetBossAddress").build(), ODataProperty.class,
-            Collections.<String, ODataValue> singletonMap("address", address));
+            appendOperationCallSegment("ResetBossAddress").build(), ClientProperty.class,
+            Collections.<String, ClientValue> singletonMap("address", address));
     resetBossAddressReq.setFormat(format);
-    final ODataProperty resetBossAddress = resetBossAddressReq.execute().getBody();
+    final ClientProperty resetBossAddress = resetBossAddressReq.execute().getBody();
     assertNotNull(resetBossAddress);
     assertEquals(address, resetBossAddress.getComplexValue());
   }
@@ -226,15 +226,15 @@ public class OperationImportInvokeTestITCase extends AbstractTestITCase {
   @Test
   public void edmEnabledActionImports() {
     // Discount
-    final ODataPrimitiveValue percentage = getClient().getObjectFactory().newPrimitiveValueBuilder().buildInt32(22);
-    final ODataInvokeRequest<ODataNoContent> discountReq = edmClient.getInvokeRequestFactory().
+    final ClientPrimitiveValue percentage = getClient().getObjectFactory().newPrimitiveValueBuilder().buildInt32(22);
+    final ODataInvokeRequest<ClientNoContent> discountReq = edmClient.getInvokeRequestFactory().
         getActionImportInvokeRequest(
-            "Discount", Collections.<String, ODataValue> singletonMap("percentage", percentage));
-    final ODataNoContent discount = discountReq.execute().getBody();
+            "Discount", Collections.<String, ClientValue> singletonMap("percentage", percentage));
+    final ClientNoContent discount = discountReq.execute().getBody();
     assertNotNull(discount);
 
     // ResetBossAddress
-    final ODataComplexValue address = getClient().getObjectFactory().
+    final ClientComplexValue address = getClient().getObjectFactory().
         newComplexValue("Microsoft.Test.OData.Services.ODataWCFService.Address");
     address.add(client.getObjectFactory().newPrimitiveProperty("Street",
         client.getObjectFactory().newPrimitiveValueBuilder().buildString("Via Le Mani Dal Naso, 123")));
@@ -243,38 +243,38 @@ public class OperationImportInvokeTestITCase extends AbstractTestITCase {
     address.add(client.getObjectFactory().newPrimitiveProperty("PostalCode",
         client.getObjectFactory().newPrimitiveValueBuilder().buildString("66010")));
 
-    final ODataInvokeRequest<ODataProperty> resetBossAddressReq = edmClient.getInvokeRequestFactory().
+    final ODataInvokeRequest<ClientProperty> resetBossAddressReq = edmClient.getInvokeRequestFactory().
         getActionImportInvokeRequest(
-            "ResetBossAddress", Collections.<String, ODataValue> singletonMap("address", address));
-    final ODataProperty resetBossAddress = resetBossAddressReq.execute().getBody();
+            "ResetBossAddress", Collections.<String, ClientValue> singletonMap("address", address));
+    final ClientProperty resetBossAddress = resetBossAddressReq.execute().getBody();
     assertNotNull(resetBossAddress);
     assertEquals(address.getTypeName(), resetBossAddress.getComplexValue().getTypeName());
   }
 
   private void bossEmails(final ODataFormat format) {
     // ResetBossEmail
-    final ODataCollectionValue<org.apache.olingo.commons.api.domain.ODataValue> emails =
+    final ClientCollectionValue<ClientValue> emails =
         getClient().getObjectFactory().newCollectionValue("Collection(Edm.String)");
     emails.add(getClient().getObjectFactory().newPrimitiveValueBuilder().buildString("first@olingo.apache.org"));
     emails.add(getClient().getObjectFactory().newPrimitiveValueBuilder().buildString("second@olingo.apache.org"));
-    ODataInvokeRequest<ODataProperty> bossEmailsReq = getClient().getInvokeRequestFactory().
+    ODataInvokeRequest<ClientProperty> bossEmailsReq = getClient().getInvokeRequestFactory().
         getActionInvokeRequest(getClient().newURIBuilder(testStaticServiceRootURL).
-            appendOperationCallSegment("ResetBossEmail").build(), ODataProperty.class,
-            Collections.<String, ODataValue> singletonMap("emails", emails));
+            appendOperationCallSegment("ResetBossEmail").build(), ClientProperty.class,
+            Collections.<String, ClientValue> singletonMap("emails", emails));
     bossEmailsReq.setFormat(format);
-    final ODataProperty bossEmails = bossEmailsReq.execute().getBody();
+    final ClientProperty bossEmails = bossEmailsReq.execute().getBody();
     assertNotNull(bossEmails);
     assertTrue(bossEmails.hasCollectionValue());
     assertEquals(2, bossEmails.getCollectionValue().size());
 
-    final Map<String, ODataValue> params = new LinkedHashMap<String, ODataValue>(2);
+    final Map<String, ClientValue> params = new LinkedHashMap<String, ClientValue>(2);
     params.put("start", getClient().getObjectFactory().newPrimitiveValueBuilder().buildInt32(0));
     params.put("count", getClient().getObjectFactory().newPrimitiveValueBuilder().buildInt32(100));
     bossEmailsReq = getClient().getInvokeRequestFactory().getFunctionInvokeRequest(
         getClient().newURIBuilder(testStaticServiceRootURL).
-            appendOperationCallSegment("GetBossEmails").build(), ODataProperty.class, params);
+            appendOperationCallSegment("GetBossEmails").build(), ClientProperty.class, params);
     bossEmailsReq.setFormat(format);
-    final ODataProperty bossEmailsViaGET = bossEmailsReq.execute().getBody();
+    final ClientProperty bossEmailsViaGET = bossEmailsReq.execute().getBody();
     assertNotNull(bossEmailsViaGET);
     assertTrue(bossEmailsViaGET.hasCollectionValue());
     assertEquals(2, bossEmailsViaGET.getCollectionValue().size());


[06/50] [abbrv] olingo-odata4 git commit: [OLINGO-564] Moved client edm classes

Posted by mi...@apache.org.
http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/cbbe3da6/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/annotation/ClientPropertyValue.java
----------------------------------------------------------------------
diff --git a/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/annotation/ClientPropertyValue.java b/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/annotation/ClientPropertyValue.java
deleted file mode 100644
index 97ff40a..0000000
--- a/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/annotation/ClientPropertyValue.java
+++ /dev/null
@@ -1,82 +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.client.core.edm.xml.annotation;
-
-import com.fasterxml.jackson.core.JsonParser;
-import com.fasterxml.jackson.core.JsonToken;
-import com.fasterxml.jackson.databind.DeserializationContext;
-import org.apache.olingo.client.core.edm.xml.AbstractClientEdmDeserializer;
-import org.apache.olingo.client.core.edm.xml.ClientAnnotation;
-import org.apache.olingo.commons.api.edm.provider.annotation.AnnotationExpression;
-import org.apache.olingo.commons.api.edm.provider.annotation.PropertyValue;
-
-import com.fasterxml.jackson.databind.annotation.JsonDeserialize;
-
-import java.io.IOException;
-
-@JsonDeserialize(using = ClientPropertyValue.PropertyValueDeserializer.class)
-public class ClientPropertyValue extends AbstractClientAnnotatableDynamicAnnotationExpression implements PropertyValue {
-
-  private static final long serialVersionUID = -8437649215282645228L;
-
-  private String property;
-
-  private AnnotationExpression value;
-
-  @Override
-  public String getProperty() {
-    return property;
-  }
-
-  public void setProperty(final String property) {
-    this.property = property;
-  }
-
-  @Override
-  public AnnotationExpression getValue() {
-    return value;
-  }
-
-  public void setValue(final AnnotationExpression value) {
-    this.value = value;
-  }
-
-  static class PropertyValueDeserializer extends AbstractClientEdmDeserializer<ClientPropertyValue> {
-    @Override
-    protected ClientPropertyValue doDeserialize(final JsonParser jp, final DeserializationContext ctxt)
-            throws IOException {
-      final ClientPropertyValue propValue = new ClientPropertyValue();
-      for (; jp.getCurrentToken() != JsonToken.END_OBJECT; jp.nextToken()) {
-        final JsonToken token = jp.getCurrentToken();
-        if (token == JsonToken.FIELD_NAME) {
-          if ("Property".equals(jp.getCurrentName())) {
-            propValue.setProperty(jp.nextTextValue());
-          } else if ("Annotation".equals(jp.getCurrentName())) {
-            propValue.getAnnotations().add(jp.readValueAs(ClientAnnotation.class));
-          } else if (isAnnotationConstExprConstruct(jp)) {
-            propValue.setValue(parseAnnotationConstExprConstruct(jp));
-          } else {
-            propValue.setValue(jp.readValueAs(AbstractClientDynamicAnnotationExpression.class));
-          }
-        }
-      }
-      return propValue;
-    }
-  }
-}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/cbbe3da6/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/annotation/ClientRecord.java
----------------------------------------------------------------------
diff --git a/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/annotation/ClientRecord.java b/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/annotation/ClientRecord.java
deleted file mode 100644
index 744e061..0000000
--- a/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/annotation/ClientRecord.java
+++ /dev/null
@@ -1,78 +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.client.core.edm.xml.annotation;
-
-import java.io.IOException;
-import java.util.ArrayList;
-import java.util.List;
-
-import com.fasterxml.jackson.core.JsonParser;
-import com.fasterxml.jackson.core.JsonToken;
-import com.fasterxml.jackson.databind.DeserializationContext;
-import org.apache.olingo.client.core.edm.xml.AbstractClientEdmDeserializer;
-import org.apache.olingo.client.core.edm.xml.ClientAnnotation;
-import org.apache.olingo.commons.api.edm.provider.annotation.PropertyValue;
-import org.apache.olingo.commons.api.edm.provider.annotation.Record;
-
-import com.fasterxml.jackson.databind.annotation.JsonDeserialize;
-
-@JsonDeserialize(using = ClientRecord.RecordDeserializer.class)
-public class ClientRecord extends AbstractClientAnnotatableDynamicAnnotationExpression implements Record {
-
-  private static final long serialVersionUID = 4275271751615410709L;
-
-  private String type;
-
-  private final List<PropertyValue> propertyValues = new ArrayList<PropertyValue>();
-
-  @Override
-  public String getType() {
-    return type;
-  }
-
-  public void setType(final String type) {
-    this.type = type;
-  }
-
-  @Override
-  public List<PropertyValue> getPropertyValues() {
-    return propertyValues;
-  }
-
-  static class RecordDeserializer extends AbstractClientEdmDeserializer<ClientRecord> {
-    @Override
-    protected ClientRecord doDeserialize(final JsonParser jp, final DeserializationContext ctxt)
-            throws IOException {
-      final ClientRecord record = new ClientRecord();
-      for (; jp.getCurrentToken() != JsonToken.END_OBJECT; jp.nextToken()) {
-        final JsonToken token = jp.getCurrentToken();
-        if (token == JsonToken.FIELD_NAME) {
-          if ("Type".equals(jp.getCurrentName())) {
-            record.setType(jp.nextTextValue());
-          } else if ("Annotation".equals(jp.getCurrentName())) {
-            record.getAnnotations().add(jp.readValueAs(ClientAnnotation.class));
-          } else {
-            record.getPropertyValues().add(jp.readValueAs(ClientPropertyValue.class));
-          }
-        }
-      }
-      return record;
-    }
-  }
-}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/cbbe3da6/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/annotation/ClientTwoParamsOpDynamicAnnotationExpression.java
----------------------------------------------------------------------
diff --git a/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/annotation/ClientTwoParamsOpDynamicAnnotationExpression.java b/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/annotation/ClientTwoParamsOpDynamicAnnotationExpression.java
deleted file mode 100644
index 2c371b6..0000000
--- a/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/annotation/ClientTwoParamsOpDynamicAnnotationExpression.java
+++ /dev/null
@@ -1,62 +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.client.core.edm.xml.annotation;
-
-import org.apache.olingo.commons.api.edm.provider.annotation.DynamicAnnotationExpression;
-import org.apache.olingo.commons.api.edm.provider.annotation.TwoParamsOpDynamicAnnotationExpression;
-
-public class ClientTwoParamsOpDynamicAnnotationExpression
-        extends AbstractClientDynamicAnnotationExpression implements TwoParamsOpDynamicAnnotationExpression {
-
-  private static final long serialVersionUID = 6241842185452451946L;
-
-  private Type type;
-
-  private DynamicAnnotationExpression left;
-
-  private DynamicAnnotationExpression right;
-
-  @Override
-  public Type getType() {
-    return type;
-  }
-
-  public void setType(final Type type) {
-    this.type = type;
-  }
-
-  @Override
-  public DynamicAnnotationExpression getLeftExpression() {
-    return left;
-  }
-
-  public void setLeftExpression(final DynamicAnnotationExpression left) {
-    this.left = left;
-  }
-
-  @Override
-  public DynamicAnnotationExpression getRightExpression() {
-    return right;
-  }
-
-  public void setRightExpression(final DynamicAnnotationExpression right) {
-    this.right = right;
-  }
-
-}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/cbbe3da6/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/annotation/ClientUrlRef.java
----------------------------------------------------------------------
diff --git a/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/annotation/ClientUrlRef.java b/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/annotation/ClientUrlRef.java
deleted file mode 100644
index 82d6d38..0000000
--- a/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/annotation/ClientUrlRef.java
+++ /dev/null
@@ -1,66 +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.client.core.edm.xml.annotation;
-
-import com.fasterxml.jackson.core.JsonParser;
-import com.fasterxml.jackson.core.JsonToken;
-import com.fasterxml.jackson.databind.DeserializationContext;
-import org.apache.olingo.client.core.edm.xml.AbstractClientEdmDeserializer;
-import org.apache.olingo.commons.api.edm.provider.annotation.AnnotationExpression;
-import org.apache.olingo.commons.api.edm.provider.annotation.UrlRef;
-
-import com.fasterxml.jackson.databind.annotation.JsonDeserialize;
-
-import java.io.IOException;
-
-@JsonDeserialize(using = ClientUrlRef.UrlRefDeserializer.class)
-public class ClientUrlRef extends AbstractClientDynamicAnnotationExpression implements UrlRef {
-
-  private static final long serialVersionUID = -7693224811739000440L;
-
-  private AnnotationExpression value;
-
-  @Override
-  public AnnotationExpression getValue() {
-    return value;
-  }
-
-  public void setValue(final AnnotationExpression value) {
-    this.value = value;
-  }
-
-  static class UrlRefDeserializer extends AbstractClientEdmDeserializer<ClientUrlRef> {
-    @Override
-    protected ClientUrlRef doDeserialize(final JsonParser jp, final DeserializationContext ctxt)
-            throws IOException {
-      final ClientUrlRef urlref = new ClientUrlRef();
-      for (; jp.getCurrentToken() != JsonToken.END_OBJECT; jp.nextToken()) {
-        final JsonToken token = jp.getCurrentToken();
-        if (token == JsonToken.FIELD_NAME) {
-          if (isAnnotationConstExprConstruct(jp)) {
-            urlref.setValue(parseAnnotationConstExprConstruct(jp));
-          } else {
-            urlref.setValue(jp.readValueAs(AbstractClientDynamicAnnotationExpression.class));
-          }
-        }
-      }
-      return urlref;
-    }
-  }
-}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/cbbe3da6/lib/client-core/src/main/java/org/apache/olingo/client/core/serialization/ClientODataDeserializerImpl.java
----------------------------------------------------------------------
diff --git a/lib/client-core/src/main/java/org/apache/olingo/client/core/serialization/ClientODataDeserializerImpl.java b/lib/client-core/src/main/java/org/apache/olingo/client/core/serialization/ClientODataDeserializerImpl.java
index 8430cff..55a02d4 100644
--- a/lib/client-core/src/main/java/org/apache/olingo/client/core/serialization/ClientODataDeserializerImpl.java
+++ b/lib/client-core/src/main/java/org/apache/olingo/client/core/serialization/ClientODataDeserializerImpl.java
@@ -29,7 +29,7 @@ import org.apache.olingo.client.api.serialization.ClientODataDeserializer;
 import org.apache.olingo.client.core.data.JSONServiceDocumentDeserializer;
 import org.apache.olingo.client.core.data.XMLServiceDocumentDeserializer;
 import org.apache.olingo.client.core.edm.xml.ClientEdmx;
-import org.apache.olingo.client.core.edm.xml.ClientXMLMetadata;
+import org.apache.olingo.client.core.edm.ClientXMLMetadata;
 import org.apache.olingo.commons.api.data.Delta;
 import org.apache.olingo.commons.api.data.Entity;
 import org.apache.olingo.commons.api.data.EntityCollection;

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/cbbe3da6/lib/client-core/src/test/java/org/apache/olingo/client/core/uri/URIEscapeTest.java
----------------------------------------------------------------------
diff --git a/lib/client-core/src/test/java/org/apache/olingo/client/core/uri/URIEscapeTest.java b/lib/client-core/src/test/java/org/apache/olingo/client/core/uri/URIEscapeTest.java
index 4854887..2245a14 100644
--- a/lib/client-core/src/test/java/org/apache/olingo/client/core/uri/URIEscapeTest.java
+++ b/lib/client-core/src/test/java/org/apache/olingo/client/core/uri/URIEscapeTest.java
@@ -27,12 +27,12 @@ import java.util.Calendar;
 import java.util.Collections;
 import java.util.TimeZone;
 
-import org.apache.olingo.client.core.edm.xml.ClientEnumType;
 import org.apache.olingo.commons.api.Constants;
 import org.apache.olingo.commons.api.edm.EdmEnumType;
 import org.apache.olingo.commons.api.edm.FullQualifiedName;
 import org.apache.olingo.commons.api.edm.geo.Geospatial;
 import org.apache.olingo.commons.api.edm.geo.Point;
+import org.apache.olingo.commons.api.edm.provider.EnumType;
 import org.apache.olingo.commons.core.edm.EdmEnumTypeImpl;
 import org.junit.Test;
 
@@ -51,7 +51,7 @@ public class URIEscapeTest {
   @Test
   public void _enum() throws UnsupportedEncodingException {
     final EdmEnumType pattern =
-        new EdmEnumTypeImpl(null, new FullQualifiedName("Sales", "Pattern"), new ClientEnumType());
+        new EdmEnumTypeImpl(null, new FullQualifiedName("Sales", "Pattern"), new EnumType());
 
     assertEquals("Sales.Pattern'Yellow'", URIUtils.escape( pattern.toUriLiteral("Yellow")));
   }

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/cbbe3da6/lib/client-core/src/test/java/org/apache/olingo/client/core/uri/v4/FilterFactoryTest.java
----------------------------------------------------------------------
diff --git a/lib/client-core/src/test/java/org/apache/olingo/client/core/uri/v4/FilterFactoryTest.java b/lib/client-core/src/test/java/org/apache/olingo/client/core/uri/v4/FilterFactoryTest.java
index 5edd2cf..aa94a80 100644
--- a/lib/client-core/src/test/java/org/apache/olingo/client/core/uri/v4/FilterFactoryTest.java
+++ b/lib/client-core/src/test/java/org/apache/olingo/client/core/uri/v4/FilterFactoryTest.java
@@ -30,10 +30,10 @@ import org.apache.olingo.client.api.uri.FilterArgFactory;
 import org.apache.olingo.client.api.uri.FilterFactory;
 import org.apache.olingo.client.api.uri.URIFilter;
 import org.apache.olingo.client.core.AbstractTest;
-import org.apache.olingo.client.core.edm.xml.ClientEnumType;
 import org.apache.olingo.commons.api.Constants;
 import org.apache.olingo.commons.api.edm.EdmEnumType;
 import org.apache.olingo.commons.api.edm.FullQualifiedName;
+import org.apache.olingo.commons.api.edm.provider.EnumType;
 import org.apache.olingo.commons.core.edm.EdmEnumTypeImpl;
 import org.junit.Test;
 
@@ -55,7 +55,7 @@ public class FilterFactoryTest extends AbstractTest {
   @Test
   public void has() {
     final EdmEnumType pattern =
-        new EdmEnumTypeImpl(null, new FullQualifiedName("Sales", "Pattern"), new ClientEnumType());
+        new EdmEnumTypeImpl(null, new FullQualifiedName("Sales", "Pattern"), new EnumType());
     final URIFilter filter = getFilterFactory().has(getFilterArgFactory().property("style"), pattern, "Yellow");
 
     assertEquals("(style has Sales.Pattern'Yellow')", filter.build());

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/cbbe3da6/lib/client-core/src/test/java/org/apache/olingo/client/core/v4/MetadataTest.java
----------------------------------------------------------------------
diff --git a/lib/client-core/src/test/java/org/apache/olingo/client/core/v4/MetadataTest.java b/lib/client-core/src/test/java/org/apache/olingo/client/core/v4/MetadataTest.java
index bb29eaa..19b6881 100644
--- a/lib/client-core/src/test/java/org/apache/olingo/client/core/v4/MetadataTest.java
+++ b/lib/client-core/src/test/java/org/apache/olingo/client/core/v4/MetadataTest.java
@@ -29,8 +29,6 @@ import java.util.List;
 import org.apache.olingo.client.api.ODataClient;
 import org.apache.olingo.client.api.edm.xml.XMLMetadata;
 import org.apache.olingo.client.core.AbstractTest;
-import org.apache.olingo.client.core.edm.xml.annotation.ClientConstantAnnotationExpression;
-import org.apache.olingo.client.core.edm.xml.annotation.ClientPath;
 import org.apache.olingo.commons.api.Constants;
 import org.apache.olingo.commons.api.edm.Edm;
 import org.apache.olingo.commons.api.edm.EdmAction;
@@ -63,6 +61,7 @@ import org.apache.olingo.commons.api.edm.provider.Term;
 import org.apache.olingo.commons.api.edm.provider.annotation.Apply;
 import org.apache.olingo.commons.api.edm.provider.annotation.Collection;
 import org.apache.olingo.commons.api.edm.provider.annotation.ConstantAnnotationExpression;
+import org.apache.olingo.commons.api.edm.provider.annotation.Path;
 import org.apache.olingo.commons.api.edm.provider.annotation.TwoParamsOpDynamicAnnotationExpression;
 import org.apache.olingo.commons.api.edm.provider.annotation.UrlRef;
 import org.apache.olingo.commons.api.format.ODataFormat;
@@ -297,18 +296,16 @@ public class MetadataTest extends AbstractTest {
     assertEquals(Constants.CANONICAL_FUNCTION_CONCAT, apply.getFunction());
     assertEquals(3, apply.getParameters().size());
 
-    final ClientPath firstArg = new ClientPath();
-    firstArg.setValue("Name");
-    assertEquals(firstArg, apply.getParameters().get(0));
+    Path path = (Path) apply.getParameters().get(0);
+    assertEquals("Name", path.getValue());
 
-    final ConstantAnnotationExpression secondArg = new ClientConstantAnnotationExpression();
-    secondArg.setType(ConstantAnnotationExpression.Type.String);
-    secondArg.setValue(" in ");
-    assertEquals(secondArg, apply.getParameters().get(1));
+    ConstantAnnotationExpression expression =
+        (ConstantAnnotationExpression) apply.getParameters().get(1);
+    assertEquals(" in ", expression.getValue());
+    assertEquals(ConstantAnnotationExpression.Type.String, expression.getType());
 
-    final ClientPath thirdArg = new ClientPath();
-    thirdArg.setValue("Address/CountryName");
-    assertEquals(thirdArg, apply.getParameters().get(2));
+    Path thirdArg = (Path) apply.getParameters().get(2);
+    assertEquals("Address/CountryName", thirdArg.getValue());
 
     // Check Tags
     final Annotation tags = metadata.getSchema(0).getAnnotationGroup("ODataDemo.Product").


[48/50] [abbrv] olingo-odata4 git commit: [OLINGO-564] first step for common -> client extraction

Posted by mi...@apache.org.
http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/17152920/fit/src/test/java/org/apache/olingo/fit/v4/DeltaTestITCase.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/v4/DeltaTestITCase.java b/fit/src/test/java/org/apache/olingo/fit/v4/DeltaTestITCase.java
index 1a7bfe0..976c621 100644
--- a/fit/src/test/java/org/apache/olingo/fit/v4/DeltaTestITCase.java
+++ b/fit/src/test/java/org/apache/olingo/fit/v4/DeltaTestITCase.java
@@ -20,9 +20,9 @@ package org.apache.olingo.fit.v4;
 
 import org.apache.olingo.client.api.communication.request.retrieve.ODataDeltaRequest;
 import org.apache.olingo.client.api.communication.request.retrieve.ODataEntitySetRequest;
-import org.apache.olingo.commons.api.domain.ClientDelta;
-import org.apache.olingo.commons.api.domain.ClientEntitySet;
-import org.apache.olingo.commons.api.domain.ClientProperty;
+import org.apache.olingo.client.api.domain.ClientDelta;
+import org.apache.olingo.client.api.domain.ClientEntitySet;
+import org.apache.olingo.client.api.domain.ClientProperty;
 import org.apache.olingo.commons.api.format.ODataFormat;
 import org.junit.Test;
 

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/17152920/fit/src/test/java/org/apache/olingo/fit/v4/DerivedTypeTestITCase.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/v4/DerivedTypeTestITCase.java b/fit/src/test/java/org/apache/olingo/fit/v4/DerivedTypeTestITCase.java
index 087ef8e..42b5beb 100644
--- a/fit/src/test/java/org/apache/olingo/fit/v4/DerivedTypeTestITCase.java
+++ b/fit/src/test/java/org/apache/olingo/fit/v4/DerivedTypeTestITCase.java
@@ -30,10 +30,10 @@ import org.apache.olingo.client.api.communication.request.retrieve.ODataEntityRe
 import org.apache.olingo.client.api.communication.request.retrieve.ODataEntitySetRequest;
 import org.apache.olingo.client.api.communication.response.ODataEntityCreateResponse;
 import org.apache.olingo.client.api.uri.URIBuilder;
-import org.apache.olingo.commons.api.domain.ClientComplexValue;
-import org.apache.olingo.commons.api.domain.ClientEntity;
-import org.apache.olingo.commons.api.domain.ClientEntitySet;
-import org.apache.olingo.commons.api.domain.ClientValuable;
+import org.apache.olingo.client.api.domain.ClientComplexValue;
+import org.apache.olingo.client.api.domain.ClientEntity;
+import org.apache.olingo.client.api.domain.ClientEntitySet;
+import org.apache.olingo.client.api.domain.ClientValuable;
 import org.apache.olingo.commons.api.edm.EdmPrimitiveTypeKind;
 import org.apache.olingo.commons.api.edm.FullQualifiedName;
 import org.apache.olingo.commons.api.format.ODataFormat;

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/17152920/fit/src/test/java/org/apache/olingo/fit/v4/EntityCreateTestITCase.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/v4/EntityCreateTestITCase.java b/fit/src/test/java/org/apache/olingo/fit/v4/EntityCreateTestITCase.java
index 5ad4407..8aedbe7 100644
--- a/fit/src/test/java/org/apache/olingo/fit/v4/EntityCreateTestITCase.java
+++ b/fit/src/test/java/org/apache/olingo/fit/v4/EntityCreateTestITCase.java
@@ -22,10 +22,10 @@ import org.apache.commons.lang3.RandomUtils;
 import org.apache.olingo.client.api.communication.request.cud.ODataEntityCreateRequest;
 import org.apache.olingo.client.api.communication.response.ODataDeleteResponse;
 import org.apache.olingo.client.api.communication.response.ODataEntityCreateResponse;
-import org.apache.olingo.commons.api.domain.ClientEntity;
-import org.apache.olingo.commons.api.domain.ClientEntitySet;
-import org.apache.olingo.commons.api.domain.ClientInlineEntitySet;
-import org.apache.olingo.commons.api.domain.ClientLink;
+import org.apache.olingo.client.api.domain.ClientEntity;
+import org.apache.olingo.client.api.domain.ClientEntitySet;
+import org.apache.olingo.client.api.domain.ClientInlineEntitySet;
+import org.apache.olingo.client.api.domain.ClientLink;
 import org.apache.olingo.commons.api.edm.EdmPrimitiveTypeException;
 import org.apache.olingo.commons.api.edm.EdmPrimitiveTypeKind;
 import org.apache.olingo.commons.api.edm.FullQualifiedName;

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/17152920/fit/src/test/java/org/apache/olingo/fit/v4/EntityRetrieveTestITCase.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/v4/EntityRetrieveTestITCase.java b/fit/src/test/java/org/apache/olingo/fit/v4/EntityRetrieveTestITCase.java
index 8b47d38..21f9be2 100644
--- a/fit/src/test/java/org/apache/olingo/fit/v4/EntityRetrieveTestITCase.java
+++ b/fit/src/test/java/org/apache/olingo/fit/v4/EntityRetrieveTestITCase.java
@@ -32,13 +32,13 @@ import org.apache.olingo.client.api.communication.response.ODataRawResponse;
 import org.apache.olingo.client.api.communication.response.ODataRetrieveResponse;
 import org.apache.olingo.client.api.uri.URIBuilder;
 import org.apache.olingo.commons.api.data.ResWrap;
-import org.apache.olingo.commons.api.domain.ClientEntity;
-import org.apache.olingo.commons.api.domain.ClientEntitySet;
-import org.apache.olingo.commons.api.domain.ClientProperty;
-import org.apache.olingo.commons.api.domain.ClientInlineEntity;
-import org.apache.olingo.commons.api.domain.ClientInlineEntitySet;
-import org.apache.olingo.commons.api.domain.ClientLink;
-import org.apache.olingo.commons.api.domain.ClientLinkType;
+import org.apache.olingo.client.api.domain.ClientEntity;
+import org.apache.olingo.client.api.domain.ClientEntitySet;
+import org.apache.olingo.client.api.domain.ClientProperty;
+import org.apache.olingo.client.api.domain.ClientInlineEntity;
+import org.apache.olingo.client.api.domain.ClientInlineEntitySet;
+import org.apache.olingo.client.api.domain.ClientLink;
+import org.apache.olingo.client.api.domain.ClientLinkType;
 import org.apache.olingo.commons.api.edm.EdmPrimitiveTypeException;
 import org.apache.olingo.commons.api.format.ODataFormat;
 import org.junit.Test;

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/17152920/fit/src/test/java/org/apache/olingo/fit/v4/EntitySetTestITCase.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/v4/EntitySetTestITCase.java b/fit/src/test/java/org/apache/olingo/fit/v4/EntitySetTestITCase.java
index 65f54e5..3e001b0 100644
--- a/fit/src/test/java/org/apache/olingo/fit/v4/EntitySetTestITCase.java
+++ b/fit/src/test/java/org/apache/olingo/fit/v4/EntitySetTestITCase.java
@@ -28,8 +28,8 @@ import org.apache.olingo.client.api.domain.ODataEntitySetIterator;
 import org.apache.olingo.client.api.uri.URIBuilder;
 import org.apache.olingo.client.core.uri.URIUtils;
 import org.apache.olingo.commons.api.data.ResWrap;
-import org.apache.olingo.commons.api.domain.ClientEntity;
-import org.apache.olingo.commons.api.domain.ClientEntitySet;
+import org.apache.olingo.client.api.domain.ClientEntity;
+import org.apache.olingo.client.api.domain.ClientEntitySet;
 import org.apache.olingo.commons.api.format.ODataFormat;
 import org.junit.Test;
 

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/17152920/fit/src/test/java/org/apache/olingo/fit/v4/EntityUpdateTestITCase.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/v4/EntityUpdateTestITCase.java b/fit/src/test/java/org/apache/olingo/fit/v4/EntityUpdateTestITCase.java
index 2b47267..5eb9c69 100644
--- a/fit/src/test/java/org/apache/olingo/fit/v4/EntityUpdateTestITCase.java
+++ b/fit/src/test/java/org/apache/olingo/fit/v4/EntityUpdateTestITCase.java
@@ -32,8 +32,8 @@ import org.apache.olingo.client.api.communication.request.cud.ODataReferenceAddi
 import org.apache.olingo.client.api.communication.request.cud.UpdateType;
 import org.apache.olingo.client.api.communication.response.ODataEntityUpdateResponse;
 import org.apache.olingo.client.api.communication.response.ODataReferenceAddingResponse;
-import org.apache.olingo.commons.api.domain.ClientEntity;
-import org.apache.olingo.commons.api.domain.ClientLink;
+import org.apache.olingo.client.api.domain.ClientEntity;
+import org.apache.olingo.client.api.domain.ClientLink;
 import org.apache.olingo.commons.api.edm.EdmPrimitiveTypeException;
 import org.apache.olingo.commons.api.edm.EdmPrimitiveTypeKind;
 import org.apache.olingo.commons.api.edm.FullQualifiedName;

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/17152920/fit/src/test/java/org/apache/olingo/fit/v4/ErrorResponseTestITCase.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/v4/ErrorResponseTestITCase.java b/fit/src/test/java/org/apache/olingo/fit/v4/ErrorResponseTestITCase.java
index a69df67..8cdd2db 100644
--- a/fit/src/test/java/org/apache/olingo/fit/v4/ErrorResponseTestITCase.java
+++ b/fit/src/test/java/org/apache/olingo/fit/v4/ErrorResponseTestITCase.java
@@ -19,8 +19,8 @@
 package org.apache.olingo.fit.v4;
 
 import org.apache.olingo.client.api.communication.ODataClientErrorException;
-import org.apache.olingo.commons.api.domain.ClientError;
-import org.apache.olingo.commons.api.domain.ClientErrorDetail;
+import org.apache.olingo.commons.api.domain.ODataError;
+import org.apache.olingo.commons.api.domain.ODataErrorDetail;
 import org.apache.olingo.commons.api.format.ODataFormat;
 import org.junit.Test;
 
@@ -42,10 +42,10 @@ public class ErrorResponseTestITCase extends AbstractTestITCase {
       read(ODataFormat.JSON, readURI);
       fail("should have got exception");
     } catch (Exception ex) {
-      final ClientError err = ((ODataClientErrorException) ex).getODataError();
+      final ODataError err = ((ODataClientErrorException) ex).getODataError();
 
       // verify details
-      final ClientErrorDetail detail = err.getDetails().get(0);
+      final ODataErrorDetail detail = err.getDetails().get(0);
       assertEquals("Code should be correct", "301", detail.getCode());
       assertEquals("Target should be correct", "$search", detail.getTarget());
       assertEquals("Message should be correct", "$search query option not supported", detail.getMessage());

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/17152920/fit/src/test/java/org/apache/olingo/fit/v4/FilterFactoryTestITCase.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/v4/FilterFactoryTestITCase.java b/fit/src/test/java/org/apache/olingo/fit/v4/FilterFactoryTestITCase.java
index 74e510a..8e3fcc2 100644
--- a/fit/src/test/java/org/apache/olingo/fit/v4/FilterFactoryTestITCase.java
+++ b/fit/src/test/java/org/apache/olingo/fit/v4/FilterFactoryTestITCase.java
@@ -23,8 +23,8 @@ import org.apache.olingo.client.api.uri.FilterArgFactory;
 import org.apache.olingo.client.api.uri.FilterFactory;
 import org.apache.olingo.client.api.uri.URIBuilder;
 import org.apache.olingo.client.api.uri.URIFilter;
-import org.apache.olingo.commons.api.domain.ClientEntity;
-import org.apache.olingo.commons.api.domain.ClientEntitySet;
+import org.apache.olingo.client.api.domain.ClientEntity;
+import org.apache.olingo.client.api.domain.ClientEntitySet;
 import org.apache.olingo.commons.api.format.ODataFormat;
 import org.junit.Test;
 

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/17152920/fit/src/test/java/org/apache/olingo/fit/v4/JSONFormatConformanceTestITCase.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/v4/JSONFormatConformanceTestITCase.java b/fit/src/test/java/org/apache/olingo/fit/v4/JSONFormatConformanceTestITCase.java
index b45cf5a..c061fd2 100644
--- a/fit/src/test/java/org/apache/olingo/fit/v4/JSONFormatConformanceTestITCase.java
+++ b/fit/src/test/java/org/apache/olingo/fit/v4/JSONFormatConformanceTestITCase.java
@@ -29,12 +29,12 @@ import org.apache.olingo.client.api.communication.response.ODataRetrieveResponse
 import org.apache.olingo.commons.api.data.Entity;
 import org.apache.olingo.commons.api.data.EntityCollection;
 import org.apache.olingo.commons.api.data.ResWrap;
-import org.apache.olingo.commons.api.domain.ClientAnnotation;
-import org.apache.olingo.commons.api.domain.ClientEntity;
-import org.apache.olingo.commons.api.domain.ClientEntitySet;
-import org.apache.olingo.commons.api.domain.ClientLink;
-import org.apache.olingo.commons.api.domain.ClientLinkType;
-import org.apache.olingo.commons.api.domain.ClientProperty;
+import org.apache.olingo.client.api.domain.ClientAnnotation;
+import org.apache.olingo.client.api.domain.ClientEntity;
+import org.apache.olingo.client.api.domain.ClientEntitySet;
+import org.apache.olingo.client.api.domain.ClientLink;
+import org.apache.olingo.client.api.domain.ClientLinkType;
+import org.apache.olingo.client.api.domain.ClientProperty;
 import org.apache.olingo.commons.api.edm.EdmPrimitiveTypeException;
 import org.apache.olingo.commons.api.edm.EdmPrimitiveTypeKind;
 import org.apache.olingo.commons.api.format.ODataFormat;

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/17152920/fit/src/test/java/org/apache/olingo/fit/v4/KeyAsSegmentTestITCase.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/v4/KeyAsSegmentTestITCase.java b/fit/src/test/java/org/apache/olingo/fit/v4/KeyAsSegmentTestITCase.java
index 835d7a3..bd6ca5e 100644
--- a/fit/src/test/java/org/apache/olingo/fit/v4/KeyAsSegmentTestITCase.java
+++ b/fit/src/test/java/org/apache/olingo/fit/v4/KeyAsSegmentTestITCase.java
@@ -24,8 +24,8 @@ import org.apache.olingo.client.api.communication.request.retrieve.ODataEntityRe
 import org.apache.olingo.client.api.communication.response.ODataEntityUpdateResponse;
 import org.apache.olingo.client.api.communication.response.ODataRetrieveResponse;
 import org.apache.olingo.client.api.uri.URIBuilder;
-import org.apache.olingo.commons.api.domain.ClientEntity;
-import org.apache.olingo.commons.api.domain.ClientProperty;
+import org.apache.olingo.client.api.domain.ClientEntity;
+import org.apache.olingo.client.api.domain.ClientProperty;
 import org.apache.olingo.commons.api.edm.FullQualifiedName;
 import org.apache.olingo.commons.api.format.ODataFormat;
 import org.junit.AfterClass;

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/17152920/fit/src/test/java/org/apache/olingo/fit/v4/MediaEntityTestITCase.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/v4/MediaEntityTestITCase.java b/fit/src/test/java/org/apache/olingo/fit/v4/MediaEntityTestITCase.java
index 2b19064..a1d4da3 100644
--- a/fit/src/test/java/org/apache/olingo/fit/v4/MediaEntityTestITCase.java
+++ b/fit/src/test/java/org/apache/olingo/fit/v4/MediaEntityTestITCase.java
@@ -36,8 +36,8 @@ import org.apache.olingo.client.api.communication.response.ODataMediaEntityUpdat
 import org.apache.olingo.client.api.communication.response.ODataRetrieveResponse;
 import org.apache.olingo.client.api.uri.URIBuilder;
 import org.apache.olingo.client.core.ODataClientFactory;
-import org.apache.olingo.commons.api.domain.ClientEntity;
-import org.apache.olingo.commons.api.domain.ClientValuable;
+import org.apache.olingo.client.api.domain.ClientEntity;
+import org.apache.olingo.client.api.domain.ClientValuable;
 import org.apache.olingo.commons.api.edm.EdmPrimitiveTypeException;
 import org.apache.olingo.commons.api.edm.EdmPrimitiveTypeKind;
 import org.apache.olingo.commons.api.edm.FullQualifiedName;

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/17152920/fit/src/test/java/org/apache/olingo/fit/v4/MetadataTestITCase.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/v4/MetadataTestITCase.java b/fit/src/test/java/org/apache/olingo/fit/v4/MetadataTestITCase.java
index 4a5d6f5..c591394 100644
--- a/fit/src/test/java/org/apache/olingo/fit/v4/MetadataTestITCase.java
+++ b/fit/src/test/java/org/apache/olingo/fit/v4/MetadataTestITCase.java
@@ -67,8 +67,7 @@ public class MetadataTestITCase extends AbstractTestITCase {
     assertNotNull(record);
     assertEquals(3, record.getPropertyValues().size());
     assertTrue(record.getPropertyValues().get(0).getValue().isConstant());
-    assertTrue(record.getPropertyValues().get(0).getValue().asConstant().getValue().asPrimitive().
-        toCastValue(Boolean.class));
+    assertTrue((Boolean) record.getPropertyValues().get(0).getValue().asConstant().getValue().asPrimitive());
     assertTrue(record.getPropertyValues().get(1).getValue().asDynamic().isCollection());
     assertEquals(1, record.getPropertyValues().get(1).getValue().asDynamic().asCollection().getItems().size());
     assertTrue(record.getPropertyValues().get(1).getValue().asDynamic().asCollection().getItems().get(0).isDynamic());
@@ -134,7 +133,7 @@ public class MetadataTestITCase extends AbstractTestITCase {
     final EdmAnnotation requiresTypeInScale = edm.getAnnotation(
         scale.getFullQualifiedName(), edm.getTerm(new FullQualifiedName("Core.RequiresType")));
     assertNotNull(requiresTypeInScale);
-    assertEquals("Edm.Decimal", requiresTypeInScale.getExpression().asConstant().getValue().toString());
+    assertEquals("Edm.Decimal", requiresTypeInScale.getExpression().asConstant().toString());
 
     // 3. capabilities
     final EdmTerm deleteRestrictions = edm.getTerm(new FullQualifiedName("Capabilities.DeleteRestrictions"));

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/17152920/fit/src/test/java/org/apache/olingo/fit/v4/OAuth2TestITCase.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/v4/OAuth2TestITCase.java b/fit/src/test/java/org/apache/olingo/fit/v4/OAuth2TestITCase.java
index 44b7eca..6af12fa 100644
--- a/fit/src/test/java/org/apache/olingo/fit/v4/OAuth2TestITCase.java
+++ b/fit/src/test/java/org/apache/olingo/fit/v4/OAuth2TestITCase.java
@@ -28,7 +28,7 @@ import org.apache.olingo.client.api.communication.request.retrieve.ODataEntityRe
 import org.apache.olingo.client.api.communication.response.ODataRetrieveResponse;
 import org.apache.olingo.client.api.uri.URIBuilder;
 import org.apache.olingo.client.core.ODataClientFactory;
-import org.apache.olingo.commons.api.domain.ClientEntity;
+import org.apache.olingo.client.api.domain.ClientEntity;
 import org.apache.olingo.commons.api.format.ODataFormat;
 import org.junit.AfterClass;
 import org.junit.BeforeClass;

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/17152920/fit/src/test/java/org/apache/olingo/fit/v4/OpenTypeTestITCase.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/v4/OpenTypeTestITCase.java b/fit/src/test/java/org/apache/olingo/fit/v4/OpenTypeTestITCase.java
index ad9b0a6..f6c7235 100644
--- a/fit/src/test/java/org/apache/olingo/fit/v4/OpenTypeTestITCase.java
+++ b/fit/src/test/java/org/apache/olingo/fit/v4/OpenTypeTestITCase.java
@@ -30,8 +30,8 @@ import org.apache.olingo.client.api.communication.request.cud.ODataEntityCreateR
 import org.apache.olingo.client.api.communication.response.ODataDeleteResponse;
 import org.apache.olingo.client.api.communication.response.ODataEntityCreateResponse;
 import org.apache.olingo.client.api.uri.URIBuilder;
-import org.apache.olingo.commons.api.domain.ClientComplexValue;
-import org.apache.olingo.commons.api.domain.ClientEntity;
+import org.apache.olingo.client.api.domain.ClientComplexValue;
+import org.apache.olingo.client.api.domain.ClientEntity;
 import org.apache.olingo.commons.api.edm.Edm;
 import org.apache.olingo.commons.api.edm.EdmPrimitiveTypeKind;
 import org.apache.olingo.commons.api.edm.EdmSchema;

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/17152920/fit/src/test/java/org/apache/olingo/fit/v4/OperationImportInvokeTestITCase.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/v4/OperationImportInvokeTestITCase.java b/fit/src/test/java/org/apache/olingo/fit/v4/OperationImportInvokeTestITCase.java
index 4c0775e..10dda83 100644
--- a/fit/src/test/java/org/apache/olingo/fit/v4/OperationImportInvokeTestITCase.java
+++ b/fit/src/test/java/org/apache/olingo/fit/v4/OperationImportInvokeTestITCase.java
@@ -28,14 +28,14 @@ import java.util.Map;
 
 import org.apache.olingo.client.api.communication.request.invoke.ODataInvokeRequest;
 import org.apache.olingo.client.api.communication.request.invoke.ClientNoContent;
-import org.apache.olingo.commons.api.domain.ClientCollectionValue;
-import org.apache.olingo.commons.api.domain.ClientComplexValue;
-import org.apache.olingo.commons.api.domain.ClientEntity;
-import org.apache.olingo.commons.api.domain.ClientEntitySet;
-import org.apache.olingo.commons.api.domain.ClientEnumValue;
-import org.apache.olingo.commons.api.domain.ClientPrimitiveValue;
-import org.apache.olingo.commons.api.domain.ClientProperty;
-import org.apache.olingo.commons.api.domain.ClientValue;
+import org.apache.olingo.client.api.domain.ClientCollectionValue;
+import org.apache.olingo.client.api.domain.ClientComplexValue;
+import org.apache.olingo.client.api.domain.ClientEntity;
+import org.apache.olingo.client.api.domain.ClientEntitySet;
+import org.apache.olingo.client.api.domain.ClientEnumValue;
+import org.apache.olingo.client.api.domain.ClientPrimitiveValue;
+import org.apache.olingo.client.api.domain.ClientProperty;
+import org.apache.olingo.client.api.domain.ClientValue;
 import org.apache.olingo.commons.api.edm.EdmPrimitiveTypeException;
 import org.apache.olingo.commons.api.format.ODataFormat;
 import org.junit.Test;

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/17152920/fit/src/test/java/org/apache/olingo/fit/v4/PropertyTestITCase.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/v4/PropertyTestITCase.java b/fit/src/test/java/org/apache/olingo/fit/v4/PropertyTestITCase.java
index f942e1c..f26c54b 100644
--- a/fit/src/test/java/org/apache/olingo/fit/v4/PropertyTestITCase.java
+++ b/fit/src/test/java/org/apache/olingo/fit/v4/PropertyTestITCase.java
@@ -34,9 +34,9 @@ import org.apache.olingo.client.api.communication.response.ODataEntityCreateResp
 import org.apache.olingo.client.api.communication.response.ODataPropertyUpdateResponse;
 import org.apache.olingo.client.api.communication.response.ODataRetrieveResponse;
 import org.apache.olingo.client.api.uri.URIBuilder;
-import org.apache.olingo.commons.api.domain.ClientEntity;
-import org.apache.olingo.commons.api.domain.ClientProperty;
-import org.apache.olingo.commons.api.domain.ClientValuable;
+import org.apache.olingo.client.api.domain.ClientEntity;
+import org.apache.olingo.client.api.domain.ClientProperty;
+import org.apache.olingo.client.api.domain.ClientValuable;
 import org.apache.olingo.commons.api.format.ODataFormat;
 import org.apache.olingo.commons.api.http.HttpMethod;
 import org.junit.Test;

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/17152920/fit/src/test/java/org/apache/olingo/fit/v4/PropertyValueTestITCase.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/v4/PropertyValueTestITCase.java b/fit/src/test/java/org/apache/olingo/fit/v4/PropertyValueTestITCase.java
index 6038654..5d05227 100644
--- a/fit/src/test/java/org/apache/olingo/fit/v4/PropertyValueTestITCase.java
+++ b/fit/src/test/java/org/apache/olingo/fit/v4/PropertyValueTestITCase.java
@@ -28,9 +28,9 @@ import org.apache.olingo.client.api.communication.ODataClientErrorException;
 import org.apache.olingo.client.api.communication.request.retrieve.ODataPropertyRequest;
 import org.apache.olingo.client.api.communication.request.retrieve.ODataValueRequest;
 import org.apache.olingo.client.api.uri.URIBuilder;
-import org.apache.olingo.commons.api.domain.ClientPrimitiveValue;
-import org.apache.olingo.commons.api.domain.ClientProperty;
-import org.apache.olingo.commons.api.domain.ClientValuable;
+import org.apache.olingo.client.api.domain.ClientPrimitiveValue;
+import org.apache.olingo.client.api.domain.ClientProperty;
+import org.apache.olingo.client.api.domain.ClientValuable;
 import org.apache.olingo.commons.api.edm.EdmPrimitiveTypeException;
 import org.apache.olingo.commons.api.format.ODataFormat;
 import org.junit.Test;

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/17152920/fit/src/test/java/org/apache/olingo/fit/v4/QueryOptionsTestITCase.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/v4/QueryOptionsTestITCase.java b/fit/src/test/java/org/apache/olingo/fit/v4/QueryOptionsTestITCase.java
index 046baa9..6d17940 100644
--- a/fit/src/test/java/org/apache/olingo/fit/v4/QueryOptionsTestITCase.java
+++ b/fit/src/test/java/org/apache/olingo/fit/v4/QueryOptionsTestITCase.java
@@ -23,9 +23,9 @@ import org.apache.olingo.client.api.communication.request.retrieve.ODataEntitySe
 import org.apache.olingo.client.api.communication.response.ODataRetrieveResponse;
 import org.apache.olingo.client.api.uri.QueryOption;
 import org.apache.olingo.client.api.uri.URIBuilder;
-import org.apache.olingo.commons.api.domain.ClientEntity;
-import org.apache.olingo.commons.api.domain.ClientEntitySet;
-import org.apache.olingo.commons.api.domain.ClientInlineEntitySet;
+import org.apache.olingo.client.api.domain.ClientEntity;
+import org.apache.olingo.client.api.domain.ClientEntitySet;
+import org.apache.olingo.client.api.domain.ClientInlineEntitySet;
 import org.apache.olingo.commons.api.edm.EdmPrimitiveTypeException;
 import org.apache.olingo.commons.api.format.ODataFormat;
 import org.junit.Test;

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/17152920/fit/src/test/java/org/apache/olingo/fit/v4/ServiceDocumentTestITCase.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/v4/ServiceDocumentTestITCase.java b/fit/src/test/java/org/apache/olingo/fit/v4/ServiceDocumentTestITCase.java
index 402b30f..c9418fa 100644
--- a/fit/src/test/java/org/apache/olingo/fit/v4/ServiceDocumentTestITCase.java
+++ b/fit/src/test/java/org/apache/olingo/fit/v4/ServiceDocumentTestITCase.java
@@ -20,7 +20,7 @@ package org.apache.olingo.fit.v4;
 
 import org.apache.olingo.client.api.communication.request.retrieve.ODataServiceDocumentRequest;
 import org.apache.olingo.client.api.communication.response.ODataRetrieveResponse;
-import org.apache.olingo.commons.api.domain.ClientServiceDocument;
+import org.apache.olingo.client.api.domain.ClientServiceDocument;
 import org.apache.olingo.commons.api.format.ODataFormat;
 import org.junit.Test;
 

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/17152920/fit/src/test/java/org/apache/olingo/fit/v4/SingletonTestITCase.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/v4/SingletonTestITCase.java b/fit/src/test/java/org/apache/olingo/fit/v4/SingletonTestITCase.java
index 8883c96..ecb5699 100644
--- a/fit/src/test/java/org/apache/olingo/fit/v4/SingletonTestITCase.java
+++ b/fit/src/test/java/org/apache/olingo/fit/v4/SingletonTestITCase.java
@@ -24,9 +24,9 @@ import org.apache.olingo.client.api.communication.request.cud.UpdateType;
 import org.apache.olingo.client.api.communication.request.retrieve.ODataEntityRequest;
 import org.apache.olingo.client.api.communication.response.ODataEntityUpdateResponse;
 import org.apache.olingo.client.api.uri.URIBuilder;
-import org.apache.olingo.commons.api.domain.ClientAnnotation;
-import org.apache.olingo.commons.api.domain.ClientSingleton;
-import org.apache.olingo.commons.api.domain.ClientValuable;
+import org.apache.olingo.client.api.domain.ClientAnnotation;
+import org.apache.olingo.client.api.domain.ClientSingleton;
+import org.apache.olingo.client.api.domain.ClientValuable;
 import org.apache.olingo.commons.api.edm.EdmPrimitiveTypeException;
 import org.apache.olingo.commons.api.edm.FullQualifiedName;
 import org.apache.olingo.commons.api.format.ODataFormat;

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/17152920/lib/client-api/src/main/java/org/apache/olingo/client/api/ODataClient.java
----------------------------------------------------------------------
diff --git a/lib/client-api/src/main/java/org/apache/olingo/client/api/ODataClient.java b/lib/client-api/src/main/java/org/apache/olingo/client/api/ODataClient.java
index 04e01ba..214ab98 100644
--- a/lib/client-api/src/main/java/org/apache/olingo/client/api/ODataClient.java
+++ b/lib/client-api/src/main/java/org/apache/olingo/client/api/ODataClient.java
@@ -32,7 +32,7 @@ import org.apache.olingo.client.api.serialization.ODataWriter;
 import org.apache.olingo.client.api.uri.FilterFactory;
 import org.apache.olingo.client.api.uri.SearchFactory;
 import org.apache.olingo.client.api.uri.URIBuilder;
-import org.apache.olingo.commons.api.domain.ClientObjectFactory;
+import org.apache.olingo.client.api.domain.ClientObjectFactory;
 import org.apache.olingo.commons.api.edm.constants.ODataServiceVersion;
 import org.apache.olingo.commons.api.format.ODataFormat;
 import org.apache.olingo.commons.api.serialization.ODataSerializer;

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/17152920/lib/client-api/src/main/java/org/apache/olingo/client/api/communication/ODataClientErrorException.java
----------------------------------------------------------------------
diff --git a/lib/client-api/src/main/java/org/apache/olingo/client/api/communication/ODataClientErrorException.java b/lib/client-api/src/main/java/org/apache/olingo/client/api/communication/ODataClientErrorException.java
index 218c6e3..178241a 100644
--- a/lib/client-api/src/main/java/org/apache/olingo/client/api/communication/ODataClientErrorException.java
+++ b/lib/client-api/src/main/java/org/apache/olingo/client/api/communication/ODataClientErrorException.java
@@ -21,12 +21,12 @@ package org.apache.olingo.client.api.communication;
 import org.apache.commons.lang3.StringUtils;
 import org.apache.http.StatusLine;
 import org.apache.olingo.commons.api.ODataRuntimeException;
-import org.apache.olingo.commons.api.domain.ClientError;
+import org.apache.olingo.commons.api.domain.ODataError;
 
 /**
  * Represents a client error in OData.
  *
- * @see ClientError
+ * @see ODataError
  */
 public class ODataClientErrorException extends ODataRuntimeException {
 
@@ -34,7 +34,7 @@ public class ODataClientErrorException extends ODataRuntimeException {
 
   private final StatusLine statusLine;
 
-  private final ClientError error;
+  private final ODataError error;
 
   /**
    * Constructor.
@@ -54,7 +54,7 @@ public class ODataClientErrorException extends ODataRuntimeException {
    * @param statusLine request status info.
    * @param error OData error to be wrapped.
    */
-  public ODataClientErrorException(final StatusLine statusLine, final ClientError error) {
+  public ODataClientErrorException(final StatusLine statusLine, final ODataError error) {
     super(error == null
             ? statusLine.toString()
             : (StringUtils.isBlank(error.getCode()) ? StringUtils.EMPTY : "(" + error.getCode() + ") ")
@@ -78,7 +78,7 @@ public class ODataClientErrorException extends ODataRuntimeException {
    *
    * @return OData error.
    */
-  public ClientError getODataError() {
+  public ODataError getODataError() {
     return error;
   }
 }

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/17152920/lib/client-api/src/main/java/org/apache/olingo/client/api/communication/request/cud/CUDRequestFactory.java
----------------------------------------------------------------------
diff --git a/lib/client-api/src/main/java/org/apache/olingo/client/api/communication/request/cud/CUDRequestFactory.java b/lib/client-api/src/main/java/org/apache/olingo/client/api/communication/request/cud/CUDRequestFactory.java
index 73c3f1f..05537e9 100644
--- a/lib/client-api/src/main/java/org/apache/olingo/client/api/communication/request/cud/CUDRequestFactory.java
+++ b/lib/client-api/src/main/java/org/apache/olingo/client/api/communication/request/cud/CUDRequestFactory.java
@@ -24,10 +24,10 @@ import java.net.URI;
 import org.apache.olingo.client.api.communication.request.streamed.ODataMediaEntityCreateRequest;
 import org.apache.olingo.client.api.communication.request.streamed.ODataMediaEntityUpdateRequest;
 import org.apache.olingo.client.api.communication.request.streamed.ODataStreamUpdateRequest;
-import org.apache.olingo.commons.api.domain.ClientEntity;
-import org.apache.olingo.commons.api.domain.ClientPrimitiveValue;
-import org.apache.olingo.commons.api.domain.ClientProperty;
-import org.apache.olingo.commons.api.domain.ClientSingleton;
+import org.apache.olingo.client.api.domain.ClientEntity;
+import org.apache.olingo.client.api.domain.ClientPrimitiveValue;
+import org.apache.olingo.client.api.domain.ClientProperty;
+import org.apache.olingo.client.api.domain.ClientSingleton;
 
 public interface CUDRequestFactory {
 

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/17152920/lib/client-api/src/main/java/org/apache/olingo/client/api/communication/request/cud/ODataEntityCreateRequest.java
----------------------------------------------------------------------
diff --git a/lib/client-api/src/main/java/org/apache/olingo/client/api/communication/request/cud/ODataEntityCreateRequest.java b/lib/client-api/src/main/java/org/apache/olingo/client/api/communication/request/cud/ODataEntityCreateRequest.java
index 3799357..43bea54 100644
--- a/lib/client-api/src/main/java/org/apache/olingo/client/api/communication/request/cud/ODataEntityCreateRequest.java
+++ b/lib/client-api/src/main/java/org/apache/olingo/client/api/communication/request/cud/ODataEntityCreateRequest.java
@@ -21,7 +21,7 @@ package org.apache.olingo.client.api.communication.request.cud;
 import org.apache.olingo.client.api.communication.request.ODataBasicRequest;
 import org.apache.olingo.client.api.communication.request.ODataBatchableRequest;
 import org.apache.olingo.client.api.communication.response.ODataEntityCreateResponse;
-import org.apache.olingo.commons.api.domain.ClientEntity;
+import org.apache.olingo.client.api.domain.ClientEntity;
 
 /**
  * This interface describes an OData create request.

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/17152920/lib/client-api/src/main/java/org/apache/olingo/client/api/communication/request/cud/ODataEntityUpdateRequest.java
----------------------------------------------------------------------
diff --git a/lib/client-api/src/main/java/org/apache/olingo/client/api/communication/request/cud/ODataEntityUpdateRequest.java b/lib/client-api/src/main/java/org/apache/olingo/client/api/communication/request/cud/ODataEntityUpdateRequest.java
index fa51265..b3bc2f7 100644
--- a/lib/client-api/src/main/java/org/apache/olingo/client/api/communication/request/cud/ODataEntityUpdateRequest.java
+++ b/lib/client-api/src/main/java/org/apache/olingo/client/api/communication/request/cud/ODataEntityUpdateRequest.java
@@ -21,7 +21,7 @@ package org.apache.olingo.client.api.communication.request.cud;
 import org.apache.olingo.client.api.communication.request.ODataBasicRequest;
 import org.apache.olingo.client.api.communication.request.ODataBatchableRequest;
 import org.apache.olingo.client.api.communication.response.ODataEntityUpdateResponse;
-import org.apache.olingo.commons.api.domain.ClientEntity;
+import org.apache.olingo.client.api.domain.ClientEntity;
 
 /**
  * This class implements an OData update request.

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/17152920/lib/client-api/src/main/java/org/apache/olingo/client/api/communication/request/invoke/ClientNoContent.java
----------------------------------------------------------------------
diff --git a/lib/client-api/src/main/java/org/apache/olingo/client/api/communication/request/invoke/ClientNoContent.java b/lib/client-api/src/main/java/org/apache/olingo/client/api/communication/request/invoke/ClientNoContent.java
index 948570a..82bb7f3 100644
--- a/lib/client-api/src/main/java/org/apache/olingo/client/api/communication/request/invoke/ClientNoContent.java
+++ b/lib/client-api/src/main/java/org/apache/olingo/client/api/communication/request/invoke/ClientNoContent.java
@@ -18,7 +18,7 @@
  */
 package org.apache.olingo.client.api.communication.request.invoke;
 
-import org.apache.olingo.commons.api.domain.ClientInvokeResult;
+import org.apache.olingo.client.api.domain.ClientInvokeResult;
 
 /**
  * Marker class for invoke with no return type.

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/17152920/lib/client-api/src/main/java/org/apache/olingo/client/api/communication/request/invoke/EdmEnabledInvokeRequestFactory.java
----------------------------------------------------------------------
diff --git a/lib/client-api/src/main/java/org/apache/olingo/client/api/communication/request/invoke/EdmEnabledInvokeRequestFactory.java b/lib/client-api/src/main/java/org/apache/olingo/client/api/communication/request/invoke/EdmEnabledInvokeRequestFactory.java
index cf993f2..5293f7d 100644
--- a/lib/client-api/src/main/java/org/apache/olingo/client/api/communication/request/invoke/EdmEnabledInvokeRequestFactory.java
+++ b/lib/client-api/src/main/java/org/apache/olingo/client/api/communication/request/invoke/EdmEnabledInvokeRequestFactory.java
@@ -21,8 +21,8 @@ package org.apache.olingo.client.api.communication.request.invoke;
 import java.net.URI;
 import java.util.Map;
 
-import org.apache.olingo.commons.api.domain.ClientInvokeResult;
-import org.apache.olingo.commons.api.domain.ClientValue;
+import org.apache.olingo.client.api.domain.ClientInvokeResult;
+import org.apache.olingo.client.api.domain.ClientValue;
 import org.apache.olingo.commons.api.edm.FullQualifiedName;
 
 public interface EdmEnabledInvokeRequestFactory extends InvokeRequestFactory {

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/17152920/lib/client-api/src/main/java/org/apache/olingo/client/api/communication/request/invoke/InvokeRequestFactory.java
----------------------------------------------------------------------
diff --git a/lib/client-api/src/main/java/org/apache/olingo/client/api/communication/request/invoke/InvokeRequestFactory.java b/lib/client-api/src/main/java/org/apache/olingo/client/api/communication/request/invoke/InvokeRequestFactory.java
index 247042f..7a3f301 100644
--- a/lib/client-api/src/main/java/org/apache/olingo/client/api/communication/request/invoke/InvokeRequestFactory.java
+++ b/lib/client-api/src/main/java/org/apache/olingo/client/api/communication/request/invoke/InvokeRequestFactory.java
@@ -21,8 +21,8 @@ package org.apache.olingo.client.api.communication.request.invoke;
 import java.net.URI;
 import java.util.Map;
 
-import org.apache.olingo.commons.api.domain.ClientInvokeResult;
-import org.apache.olingo.commons.api.domain.ClientValue;
+import org.apache.olingo.client.api.domain.ClientInvokeResult;
+import org.apache.olingo.client.api.domain.ClientValue;
 import org.apache.olingo.commons.api.http.HttpMethod;
 
 /**

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/17152920/lib/client-api/src/main/java/org/apache/olingo/client/api/communication/request/invoke/ODataInvokeRequest.java
----------------------------------------------------------------------
diff --git a/lib/client-api/src/main/java/org/apache/olingo/client/api/communication/request/invoke/ODataInvokeRequest.java b/lib/client-api/src/main/java/org/apache/olingo/client/api/communication/request/invoke/ODataInvokeRequest.java
index 3ff05bb..8344f74 100644
--- a/lib/client-api/src/main/java/org/apache/olingo/client/api/communication/request/invoke/ODataInvokeRequest.java
+++ b/lib/client-api/src/main/java/org/apache/olingo/client/api/communication/request/invoke/ODataInvokeRequest.java
@@ -22,8 +22,8 @@ import java.util.Map;
 
 import org.apache.olingo.client.api.communication.request.ODataBasicRequest;
 import org.apache.olingo.client.api.communication.response.ODataInvokeResponse;
-import org.apache.olingo.commons.api.domain.ClientInvokeResult;
-import org.apache.olingo.commons.api.domain.ClientValue;
+import org.apache.olingo.client.api.domain.ClientInvokeResult;
+import org.apache.olingo.client.api.domain.ClientValue;
 
 /**
  * This class implements an OData invoke operation request.

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/17152920/lib/client-api/src/main/java/org/apache/olingo/client/api/communication/request/retrieve/ODataDeltaRequest.java
----------------------------------------------------------------------
diff --git a/lib/client-api/src/main/java/org/apache/olingo/client/api/communication/request/retrieve/ODataDeltaRequest.java b/lib/client-api/src/main/java/org/apache/olingo/client/api/communication/request/retrieve/ODataDeltaRequest.java
index ea028d3..2ac9f37 100644
--- a/lib/client-api/src/main/java/org/apache/olingo/client/api/communication/request/retrieve/ODataDeltaRequest.java
+++ b/lib/client-api/src/main/java/org/apache/olingo/client/api/communication/request/retrieve/ODataDeltaRequest.java
@@ -18,7 +18,7 @@
  */
 package org.apache.olingo.client.api.communication.request.retrieve;
 
-import org.apache.olingo.commons.api.domain.ClientDelta;
+import org.apache.olingo.client.api.domain.ClientDelta;
 
 /**
  * Describes an OData retrieve request returning a delta object.

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/17152920/lib/client-api/src/main/java/org/apache/olingo/client/api/communication/request/retrieve/ODataEntityRequest.java
----------------------------------------------------------------------
diff --git a/lib/client-api/src/main/java/org/apache/olingo/client/api/communication/request/retrieve/ODataEntityRequest.java b/lib/client-api/src/main/java/org/apache/olingo/client/api/communication/request/retrieve/ODataEntityRequest.java
index c96e417..a0a1830 100644
--- a/lib/client-api/src/main/java/org/apache/olingo/client/api/communication/request/retrieve/ODataEntityRequest.java
+++ b/lib/client-api/src/main/java/org/apache/olingo/client/api/communication/request/retrieve/ODataEntityRequest.java
@@ -18,7 +18,7 @@
  */
 package org.apache.olingo.client.api.communication.request.retrieve;
 
-import org.apache.olingo.commons.api.domain.ClientEntity;
+import org.apache.olingo.client.api.domain.ClientEntity;
 
 /**
  * Describes an OData retrieve query request returning a single entity.

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/17152920/lib/client-api/src/main/java/org/apache/olingo/client/api/communication/request/retrieve/ODataEntitySetIteratorRequest.java
----------------------------------------------------------------------
diff --git a/lib/client-api/src/main/java/org/apache/olingo/client/api/communication/request/retrieve/ODataEntitySetIteratorRequest.java b/lib/client-api/src/main/java/org/apache/olingo/client/api/communication/request/retrieve/ODataEntitySetIteratorRequest.java
index a00525b..4b3f05e 100644
--- a/lib/client-api/src/main/java/org/apache/olingo/client/api/communication/request/retrieve/ODataEntitySetIteratorRequest.java
+++ b/lib/client-api/src/main/java/org/apache/olingo/client/api/communication/request/retrieve/ODataEntitySetIteratorRequest.java
@@ -19,8 +19,8 @@
 package org.apache.olingo.client.api.communication.request.retrieve;
 
 import org.apache.olingo.client.api.domain.ODataEntitySetIterator;
-import org.apache.olingo.commons.api.domain.ClientEntity;
-import org.apache.olingo.commons.api.domain.ClientEntitySet;
+import org.apache.olingo.client.api.domain.ClientEntity;
+import org.apache.olingo.client.api.domain.ClientEntitySet;
 
 /**
  * This class implements an OData EntitySet query request.

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/17152920/lib/client-api/src/main/java/org/apache/olingo/client/api/communication/request/retrieve/ODataEntitySetRequest.java
----------------------------------------------------------------------
diff --git a/lib/client-api/src/main/java/org/apache/olingo/client/api/communication/request/retrieve/ODataEntitySetRequest.java b/lib/client-api/src/main/java/org/apache/olingo/client/api/communication/request/retrieve/ODataEntitySetRequest.java
index 31accd5..d1c4f13 100644
--- a/lib/client-api/src/main/java/org/apache/olingo/client/api/communication/request/retrieve/ODataEntitySetRequest.java
+++ b/lib/client-api/src/main/java/org/apache/olingo/client/api/communication/request/retrieve/ODataEntitySetRequest.java
@@ -18,7 +18,7 @@
  */
 package org.apache.olingo.client.api.communication.request.retrieve;
 
-import org.apache.olingo.commons.api.domain.ClientEntitySet;
+import org.apache.olingo.client.api.domain.ClientEntitySet;
 
 /**
  * This interface describes an OData EntitySet query request.

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/17152920/lib/client-api/src/main/java/org/apache/olingo/client/api/communication/request/retrieve/ODataPropertyRequest.java
----------------------------------------------------------------------
diff --git a/lib/client-api/src/main/java/org/apache/olingo/client/api/communication/request/retrieve/ODataPropertyRequest.java b/lib/client-api/src/main/java/org/apache/olingo/client/api/communication/request/retrieve/ODataPropertyRequest.java
index fd02f03..6727ee0 100644
--- a/lib/client-api/src/main/java/org/apache/olingo/client/api/communication/request/retrieve/ODataPropertyRequest.java
+++ b/lib/client-api/src/main/java/org/apache/olingo/client/api/communication/request/retrieve/ODataPropertyRequest.java
@@ -18,7 +18,7 @@
  */
 package org.apache.olingo.client.api.communication.request.retrieve;
 
-import org.apache.olingo.commons.api.domain.ClientProperty;
+import org.apache.olingo.client.api.domain.ClientProperty;
 
 /**
  * This class implements an OData entity property query request.

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/17152920/lib/client-api/src/main/java/org/apache/olingo/client/api/communication/request/retrieve/ODataServiceDocumentRequest.java
----------------------------------------------------------------------
diff --git a/lib/client-api/src/main/java/org/apache/olingo/client/api/communication/request/retrieve/ODataServiceDocumentRequest.java b/lib/client-api/src/main/java/org/apache/olingo/client/api/communication/request/retrieve/ODataServiceDocumentRequest.java
index 44d04f9..64c23e0 100644
--- a/lib/client-api/src/main/java/org/apache/olingo/client/api/communication/request/retrieve/ODataServiceDocumentRequest.java
+++ b/lib/client-api/src/main/java/org/apache/olingo/client/api/communication/request/retrieve/ODataServiceDocumentRequest.java
@@ -18,7 +18,7 @@
  */
 package org.apache.olingo.client.api.communication.request.retrieve;
 
-import org.apache.olingo.commons.api.domain.ClientServiceDocument;
+import org.apache.olingo.client.api.domain.ClientServiceDocument;
 
 /**
  * This class implements an OData service document request.

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/17152920/lib/client-api/src/main/java/org/apache/olingo/client/api/communication/request/retrieve/ODataValueRequest.java
----------------------------------------------------------------------
diff --git a/lib/client-api/src/main/java/org/apache/olingo/client/api/communication/request/retrieve/ODataValueRequest.java b/lib/client-api/src/main/java/org/apache/olingo/client/api/communication/request/retrieve/ODataValueRequest.java
index 2b24591..1f66756 100644
--- a/lib/client-api/src/main/java/org/apache/olingo/client/api/communication/request/retrieve/ODataValueRequest.java
+++ b/lib/client-api/src/main/java/org/apache/olingo/client/api/communication/request/retrieve/ODataValueRequest.java
@@ -18,7 +18,7 @@
  */
 package org.apache.olingo.client.api.communication.request.retrieve;
 
-import org.apache.olingo.commons.api.domain.ClientPrimitiveValue;
+import org.apache.olingo.client.api.domain.ClientPrimitiveValue;
 
 /**
  * This class implements an OData entity property value query request.

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/17152920/lib/client-api/src/main/java/org/apache/olingo/client/api/communication/request/retrieve/RetrieveRequestFactory.java
----------------------------------------------------------------------
diff --git a/lib/client-api/src/main/java/org/apache/olingo/client/api/communication/request/retrieve/RetrieveRequestFactory.java b/lib/client-api/src/main/java/org/apache/olingo/client/api/communication/request/retrieve/RetrieveRequestFactory.java
index 04c5dfb..04733f6 100644
--- a/lib/client-api/src/main/java/org/apache/olingo/client/api/communication/request/retrieve/RetrieveRequestFactory.java
+++ b/lib/client-api/src/main/java/org/apache/olingo/client/api/communication/request/retrieve/RetrieveRequestFactory.java
@@ -20,10 +20,10 @@ package org.apache.olingo.client.api.communication.request.retrieve;
 
 import java.net.URI;
 
-import org.apache.olingo.commons.api.domain.ClientEntity;
-import org.apache.olingo.commons.api.domain.ClientEntitySet;
-import org.apache.olingo.commons.api.domain.ClientProperty;
-import org.apache.olingo.commons.api.domain.ClientSingleton;
+import org.apache.olingo.client.api.domain.ClientEntity;
+import org.apache.olingo.client.api.domain.ClientEntitySet;
+import org.apache.olingo.client.api.domain.ClientProperty;
+import org.apache.olingo.client.api.domain.ClientSingleton;
 
 public interface RetrieveRequestFactory {
 

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/17152920/lib/client-api/src/main/java/org/apache/olingo/client/api/communication/request/streamed/MediaEntityCreateStreamManager.java
----------------------------------------------------------------------
diff --git a/lib/client-api/src/main/java/org/apache/olingo/client/api/communication/request/streamed/MediaEntityCreateStreamManager.java b/lib/client-api/src/main/java/org/apache/olingo/client/api/communication/request/streamed/MediaEntityCreateStreamManager.java
index 1ef2493..57b42a7 100644
--- a/lib/client-api/src/main/java/org/apache/olingo/client/api/communication/request/streamed/MediaEntityCreateStreamManager.java
+++ b/lib/client-api/src/main/java/org/apache/olingo/client/api/communication/request/streamed/MediaEntityCreateStreamManager.java
@@ -20,7 +20,7 @@ package org.apache.olingo.client.api.communication.request.streamed;
 
 import org.apache.olingo.client.api.communication.request.ODataPayloadManager;
 import org.apache.olingo.client.api.communication.response.ODataMediaEntityCreateResponse;
-import org.apache.olingo.commons.api.domain.ClientEntity;
+import org.apache.olingo.client.api.domain.ClientEntity;
 
 /**
  * Media entity payload object.

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/17152920/lib/client-api/src/main/java/org/apache/olingo/client/api/communication/request/streamed/MediaEntityUpdateStreamManager.java
----------------------------------------------------------------------
diff --git a/lib/client-api/src/main/java/org/apache/olingo/client/api/communication/request/streamed/MediaEntityUpdateStreamManager.java b/lib/client-api/src/main/java/org/apache/olingo/client/api/communication/request/streamed/MediaEntityUpdateStreamManager.java
index cf4bdd0..d876b16 100644
--- a/lib/client-api/src/main/java/org/apache/olingo/client/api/communication/request/streamed/MediaEntityUpdateStreamManager.java
+++ b/lib/client-api/src/main/java/org/apache/olingo/client/api/communication/request/streamed/MediaEntityUpdateStreamManager.java
@@ -20,7 +20,7 @@ package org.apache.olingo.client.api.communication.request.streamed;
 
 import org.apache.olingo.client.api.communication.request.ODataPayloadManager;
 import org.apache.olingo.client.api.communication.response.ODataMediaEntityUpdateResponse;
-import org.apache.olingo.commons.api.domain.ClientEntity;
+import org.apache.olingo.client.api.domain.ClientEntity;
 
 /**
  * Media entity payload object.

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/17152920/lib/client-api/src/main/java/org/apache/olingo/client/api/communication/request/streamed/ODataMediaEntityCreateRequest.java
----------------------------------------------------------------------
diff --git a/lib/client-api/src/main/java/org/apache/olingo/client/api/communication/request/streamed/ODataMediaEntityCreateRequest.java b/lib/client-api/src/main/java/org/apache/olingo/client/api/communication/request/streamed/ODataMediaEntityCreateRequest.java
index 93570e5..3596643 100644
--- a/lib/client-api/src/main/java/org/apache/olingo/client/api/communication/request/streamed/ODataMediaEntityCreateRequest.java
+++ b/lib/client-api/src/main/java/org/apache/olingo/client/api/communication/request/streamed/ODataMediaEntityCreateRequest.java
@@ -20,7 +20,7 @@ package org.apache.olingo.client.api.communication.request.streamed;
 
 import org.apache.olingo.client.api.communication.request.ODataBatchableRequest;
 import org.apache.olingo.client.api.communication.response.ODataMediaEntityCreateResponse;
-import org.apache.olingo.commons.api.domain.ClientEntity;
+import org.apache.olingo.client.api.domain.ClientEntity;
 
 /**
  * This class implements an OData Media Entity create request. Get instance by using ODataStreamedRequestFactory.

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/17152920/lib/client-api/src/main/java/org/apache/olingo/client/api/communication/request/streamed/ODataMediaEntityUpdateRequest.java
----------------------------------------------------------------------
diff --git a/lib/client-api/src/main/java/org/apache/olingo/client/api/communication/request/streamed/ODataMediaEntityUpdateRequest.java b/lib/client-api/src/main/java/org/apache/olingo/client/api/communication/request/streamed/ODataMediaEntityUpdateRequest.java
index e50620c..8029b5a 100644
--- a/lib/client-api/src/main/java/org/apache/olingo/client/api/communication/request/streamed/ODataMediaEntityUpdateRequest.java
+++ b/lib/client-api/src/main/java/org/apache/olingo/client/api/communication/request/streamed/ODataMediaEntityUpdateRequest.java
@@ -20,7 +20,7 @@ package org.apache.olingo.client.api.communication.request.streamed;
 
 import org.apache.olingo.client.api.communication.request.ODataBatchableRequest;
 import org.apache.olingo.client.api.communication.response.ODataMediaEntityUpdateResponse;
-import org.apache.olingo.commons.api.domain.ClientEntity;
+import org.apache.olingo.client.api.domain.ClientEntity;
 
 /**
  * This class implements an OData Media Entity create request. Get instance by using ODataStreamedRequestFactory.

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/17152920/lib/client-api/src/main/java/org/apache/olingo/client/api/communication/response/ODataEntityCreateResponse.java
----------------------------------------------------------------------
diff --git a/lib/client-api/src/main/java/org/apache/olingo/client/api/communication/response/ODataEntityCreateResponse.java b/lib/client-api/src/main/java/org/apache/olingo/client/api/communication/response/ODataEntityCreateResponse.java
index 5816e71..24135fd 100644
--- a/lib/client-api/src/main/java/org/apache/olingo/client/api/communication/response/ODataEntityCreateResponse.java
+++ b/lib/client-api/src/main/java/org/apache/olingo/client/api/communication/response/ODataEntityCreateResponse.java
@@ -18,7 +18,7 @@
  */
 package org.apache.olingo.client.api.communication.response;
 
-import org.apache.olingo.commons.api.domain.ClientEntity;
+import org.apache.olingo.client.api.domain.ClientEntity;
 
 /**
  * This interface describes the response to an OData entity create request.

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/17152920/lib/client-api/src/main/java/org/apache/olingo/client/api/communication/response/ODataEntityUpdateResponse.java
----------------------------------------------------------------------
diff --git a/lib/client-api/src/main/java/org/apache/olingo/client/api/communication/response/ODataEntityUpdateResponse.java b/lib/client-api/src/main/java/org/apache/olingo/client/api/communication/response/ODataEntityUpdateResponse.java
index 1f7f86d..084fc80 100644
--- a/lib/client-api/src/main/java/org/apache/olingo/client/api/communication/response/ODataEntityUpdateResponse.java
+++ b/lib/client-api/src/main/java/org/apache/olingo/client/api/communication/response/ODataEntityUpdateResponse.java
@@ -18,7 +18,7 @@
  */
 package org.apache.olingo.client.api.communication.response;
 
-import org.apache.olingo.commons.api.domain.ClientEntity;
+import org.apache.olingo.client.api.domain.ClientEntity;
 
 /**
  * This class implements the response to an OData update request.

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/17152920/lib/client-api/src/main/java/org/apache/olingo/client/api/communication/response/ODataInvokeResponse.java
----------------------------------------------------------------------
diff --git a/lib/client-api/src/main/java/org/apache/olingo/client/api/communication/response/ODataInvokeResponse.java b/lib/client-api/src/main/java/org/apache/olingo/client/api/communication/response/ODataInvokeResponse.java
index 96ae840..401714b 100644
--- a/lib/client-api/src/main/java/org/apache/olingo/client/api/communication/response/ODataInvokeResponse.java
+++ b/lib/client-api/src/main/java/org/apache/olingo/client/api/communication/response/ODataInvokeResponse.java
@@ -18,7 +18,7 @@
  */
 package org.apache.olingo.client.api.communication.response;
 
-import org.apache.olingo.commons.api.domain.ClientInvokeResult;
+import org.apache.olingo.client.api.domain.ClientInvokeResult;
 
 /**
  * This class implements a response to a specific invoke request.

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/17152920/lib/client-api/src/main/java/org/apache/olingo/client/api/communication/response/ODataMediaEntityCreateResponse.java
----------------------------------------------------------------------
diff --git a/lib/client-api/src/main/java/org/apache/olingo/client/api/communication/response/ODataMediaEntityCreateResponse.java b/lib/client-api/src/main/java/org/apache/olingo/client/api/communication/response/ODataMediaEntityCreateResponse.java
index 2b5141d..3ca6db2 100644
--- a/lib/client-api/src/main/java/org/apache/olingo/client/api/communication/response/ODataMediaEntityCreateResponse.java
+++ b/lib/client-api/src/main/java/org/apache/olingo/client/api/communication/response/ODataMediaEntityCreateResponse.java
@@ -18,7 +18,7 @@
  */
 package org.apache.olingo.client.api.communication.response;
 
-import org.apache.olingo.commons.api.domain.ClientEntity;
+import org.apache.olingo.client.api.domain.ClientEntity;
 
 /**
  * This class implements the response to an OData media entity create request.

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/17152920/lib/client-api/src/main/java/org/apache/olingo/client/api/communication/response/ODataMediaEntityUpdateResponse.java
----------------------------------------------------------------------
diff --git a/lib/client-api/src/main/java/org/apache/olingo/client/api/communication/response/ODataMediaEntityUpdateResponse.java b/lib/client-api/src/main/java/org/apache/olingo/client/api/communication/response/ODataMediaEntityUpdateResponse.java
index a22eebd..64dd965 100644
--- a/lib/client-api/src/main/java/org/apache/olingo/client/api/communication/response/ODataMediaEntityUpdateResponse.java
+++ b/lib/client-api/src/main/java/org/apache/olingo/client/api/communication/response/ODataMediaEntityUpdateResponse.java
@@ -18,7 +18,7 @@
  */
 package org.apache.olingo.client.api.communication.response;
 
-import org.apache.olingo.commons.api.domain.ClientEntity;
+import org.apache.olingo.client.api.domain.ClientEntity;
 
 /**
  * This class implements the response to an Odata media entity update request.

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/17152920/lib/client-api/src/main/java/org/apache/olingo/client/api/communication/response/ODataPropertyUpdateResponse.java
----------------------------------------------------------------------
diff --git a/lib/client-api/src/main/java/org/apache/olingo/client/api/communication/response/ODataPropertyUpdateResponse.java b/lib/client-api/src/main/java/org/apache/olingo/client/api/communication/response/ODataPropertyUpdateResponse.java
index 0739e37..7e2f511 100644
--- a/lib/client-api/src/main/java/org/apache/olingo/client/api/communication/response/ODataPropertyUpdateResponse.java
+++ b/lib/client-api/src/main/java/org/apache/olingo/client/api/communication/response/ODataPropertyUpdateResponse.java
@@ -18,7 +18,7 @@
  */
 package org.apache.olingo.client.api.communication.response;
 
-import org.apache.olingo.commons.api.domain.ClientProperty;
+import org.apache.olingo.client.api.domain.ClientProperty;
 
 /**
  * This class implements the response to an OData update entity property request.

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/17152920/lib/client-api/src/main/java/org/apache/olingo/client/api/communication/response/ODataValueUpdateResponse.java
----------------------------------------------------------------------
diff --git a/lib/client-api/src/main/java/org/apache/olingo/client/api/communication/response/ODataValueUpdateResponse.java b/lib/client-api/src/main/java/org/apache/olingo/client/api/communication/response/ODataValueUpdateResponse.java
index c921c44..8077eea 100644
--- a/lib/client-api/src/main/java/org/apache/olingo/client/api/communication/response/ODataValueUpdateResponse.java
+++ b/lib/client-api/src/main/java/org/apache/olingo/client/api/communication/response/ODataValueUpdateResponse.java
@@ -18,7 +18,7 @@
  */
 package org.apache.olingo.client.api.communication.response;
 
-import org.apache.olingo.commons.api.domain.ClientPrimitiveValue;
+import org.apache.olingo.client.api.domain.ClientPrimitiveValue;
 
 /**
  * This class implements the response to an OData update entity property request.

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/17152920/lib/client-api/src/main/java/org/apache/olingo/client/api/data/ServiceDocument.java
----------------------------------------------------------------------
diff --git a/lib/client-api/src/main/java/org/apache/olingo/client/api/data/ServiceDocument.java b/lib/client-api/src/main/java/org/apache/olingo/client/api/data/ServiceDocument.java
index fd8e4e6..47cbf67 100644
--- a/lib/client-api/src/main/java/org/apache/olingo/client/api/data/ServiceDocument.java
+++ b/lib/client-api/src/main/java/org/apache/olingo/client/api/data/ServiceDocument.java
@@ -18,13 +18,15 @@
  */
 package org.apache.olingo.client.api.data;
 
+import org.apache.olingo.client.api.domain.ClientServiceDocument;
+
 import java.net.URI;
 import java.util.List;
 
 /**
  * REST resource for an <tt>ODataServiceDocument</tt>.
  *
- * @see org.apache.olingo.commons.api.domain.ClientServiceDocument
+ * @see ClientServiceDocument
  */
 public interface ServiceDocument {
 

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/17152920/lib/client-api/src/main/java/org/apache/olingo/client/api/domain/AbstractClientPayload.java
----------------------------------------------------------------------
diff --git a/lib/client-api/src/main/java/org/apache/olingo/client/api/domain/AbstractClientPayload.java b/lib/client-api/src/main/java/org/apache/olingo/client/api/domain/AbstractClientPayload.java
new file mode 100644
index 0000000..994bea4
--- /dev/null
+++ b/lib/client-api/src/main/java/org/apache/olingo/client/api/domain/AbstractClientPayload.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.client.api.domain;
+
+import java.net.URI;
+
+/**
+ * OData entity.
+ */
+public abstract class AbstractClientPayload extends ClientItem {
+
+  /**
+   * Context URL.
+   */
+  private URI contextURL;
+
+  public AbstractClientPayload(final String name) {
+    super(name);
+  }
+
+  /**
+   * The context URL describes the content of the payload. It consists of the canonical metadata document URL and a
+   * fragment identifying the relevant portion of the metadata document.
+   * 
+   * @return context URL.
+   */
+  public URI getContextURL() {
+    return contextURL;
+  }
+
+  public void setContextURL(final URI contextURL) {
+    this.contextURL = contextURL;
+  }
+}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/17152920/lib/client-api/src/main/java/org/apache/olingo/client/api/domain/AbstractClientValue.java
----------------------------------------------------------------------
diff --git a/lib/client-api/src/main/java/org/apache/olingo/client/api/domain/AbstractClientValue.java b/lib/client-api/src/main/java/org/apache/olingo/client/api/domain/AbstractClientValue.java
new file mode 100644
index 0000000..dca1904
--- /dev/null
+++ b/lib/client-api/src/main/java/org/apache/olingo/client/api/domain/AbstractClientValue.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.client.api.domain;
+
+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;
+
+/**
+ * Abstract representation of an OData entity property value.
+ */
+public abstract class AbstractClientValue implements ClientValue {
+
+  /**
+   * Type name;
+   */
+  private final String typeName;
+
+  public AbstractClientValue(final String typeName) {
+    this.typeName = typeName;
+  }
+
+  @Override
+  public String getTypeName() {
+    return typeName;
+  }
+
+  /**
+   * Check is is a primitive value.
+   * 
+   * @return 'TRUE' if primitive; 'FALSE' otherwise.
+   */
+  @Override
+  public boolean isPrimitive() {
+    return (this instanceof ClientPrimitiveValue);
+  }
+
+  /**
+   * Casts to primitive value.
+   * 
+   * @return primitive value.
+   */
+  @Override
+  public ClientPrimitiveValue asPrimitive() {
+    return isPrimitive() ? (ClientPrimitiveValue) this : null;
+  }
+
+  /**
+   * Check is is a complex value.
+   * 
+   * @return 'TRUE' if complex; 'FALSE' otherwise.
+   */
+  @Override
+  public boolean isComplex() {
+    return (this instanceof ClientComplexValue);
+  }
+
+  /**
+   * Casts to complex value.
+   * 
+   * @return complex value.
+   */
+  @Override
+  public ClientComplexValue asComplex() {
+    return isComplex() ? (ClientComplexValue) this : null;
+  }
+
+  /**
+   * Check is is a collection value.
+   * 
+   * @return 'TRUE' if collection; 'FALSE' otherwise.
+   */
+  @Override
+  public boolean isCollection() {
+    return (this instanceof ClientCollectionValue);
+  }
+
+  /**
+   * Casts to collection value.
+   * 
+   * @return collection value.
+   */
+  @SuppressWarnings("unchecked")
+  @Override
+  public <OV extends ClientValue> ClientCollectionValue<OV> asCollection() {
+    return isCollection() ? (ClientCollectionValue<OV>) this : null;
+  }
+
+  @Override
+  public boolean equals(final Object obj) {
+    return EqualsBuilder.reflectionEquals(this, obj);
+  }
+
+  @Override
+  public int hashCode() {
+    return HashCodeBuilder.reflectionHashCode(this);
+  }
+
+  @Override
+  public String toString() {
+    return ReflectionToStringBuilder.toString(this, ToStringStyle.MULTI_LINE_STYLE);
+  }
+}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/17152920/lib/client-api/src/main/java/org/apache/olingo/client/api/domain/ClientAnnotatable.java
----------------------------------------------------------------------
diff --git a/lib/client-api/src/main/java/org/apache/olingo/client/api/domain/ClientAnnotatable.java b/lib/client-api/src/main/java/org/apache/olingo/client/api/domain/ClientAnnotatable.java
new file mode 100644
index 0000000..7da9677
--- /dev/null
+++ b/lib/client-api/src/main/java/org/apache/olingo/client/api/domain/ClientAnnotatable.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.client.api.domain;
+
+import java.util.List;
+
+public interface ClientAnnotatable {
+
+  List<ClientAnnotation> getAnnotations();
+}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/17152920/lib/client-api/src/main/java/org/apache/olingo/client/api/domain/ClientAnnotation.java
----------------------------------------------------------------------
diff --git a/lib/client-api/src/main/java/org/apache/olingo/client/api/domain/ClientAnnotation.java b/lib/client-api/src/main/java/org/apache/olingo/client/api/domain/ClientAnnotation.java
new file mode 100644
index 0000000..4034821
--- /dev/null
+++ b/lib/client-api/src/main/java/org/apache/olingo/client/api/domain/ClientAnnotation.java
@@ -0,0 +1,30 @@
+/*
+ * 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.client.api.domain;
+
+public interface ClientAnnotation extends ClientValuable {
+
+  /**
+   * Returns annotation name.
+   * 
+   * @return annotation name.
+   */
+  String getTerm();
+
+}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/17152920/lib/client-api/src/main/java/org/apache/olingo/client/api/domain/ClientCollectionValue.java
----------------------------------------------------------------------
diff --git a/lib/client-api/src/main/java/org/apache/olingo/client/api/domain/ClientCollectionValue.java b/lib/client-api/src/main/java/org/apache/olingo/client/api/domain/ClientCollectionValue.java
new file mode 100644
index 0000000..8a0078e
--- /dev/null
+++ b/lib/client-api/src/main/java/org/apache/olingo/client/api/domain/ClientCollectionValue.java
@@ -0,0 +1,57 @@
+/*
+ * 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.client.api.domain;
+
+import java.util.Collection;
+
+/**
+ * OData collection property value.
+ * 
+ * @param <OV> The actual ODataValue interface.
+ */
+public interface ClientCollectionValue<OV extends ClientValue> extends ClientValue, Iterable<OV> {
+
+  /**
+   * Adds a value to the collection.
+   * 
+   * @param value value to be added.
+   */
+  ClientCollectionValue<OV> add(ClientValue value);
+
+  /**
+   * Checks if collection is empty.
+   * 
+   * @return 'TRUE' if empty; 'FALSE' otherwise.
+   */
+  boolean isEmpty();
+
+  /**
+   * Gets collection size.
+   * 
+   * @return collection size.
+   */
+  int size();
+
+  /**
+   * Converts this instance as POJO collection.
+   * 
+   * @return this instance as POJO collection
+   */
+  Collection<Object> asJavaCollection();
+}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/17152920/lib/client-api/src/main/java/org/apache/olingo/client/api/domain/ClientComplexValue.java
----------------------------------------------------------------------
diff --git a/lib/client-api/src/main/java/org/apache/olingo/client/api/domain/ClientComplexValue.java b/lib/client-api/src/main/java/org/apache/olingo/client/api/domain/ClientComplexValue.java
new file mode 100644
index 0000000..ee4f4df
--- /dev/null
+++ b/lib/client-api/src/main/java/org/apache/olingo/client/api/domain/ClientComplexValue.java
@@ -0,0 +1,58 @@
+/*
+ * 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.client.api.domain;
+
+import java.util.Map;
+
+/**
+ * OData complex property value.
+ * 
+ */
+public interface ClientComplexValue extends ClientValue, ClientLinked, ClientAnnotatable, Iterable<ClientProperty> {
+
+  /**
+   * Adds field to the complex type.
+   * 
+   * @param field field to be added.
+   * @return this (for fluent-style calls)
+   */
+  ClientComplexValue add(ClientProperty field);
+
+  /**
+   * Gets field.
+   * 
+   * @param name name of the field to be retrieved.
+   * @return requested field.
+   */
+  ClientProperty get(String name);
+
+  /**
+   * Gets number of fields.
+   * 
+   * @return number of fields.
+   */
+  int size();
+
+  /**
+   * Converts this instance as POJO collection.
+   * 
+   * @return this instance as POJO collection
+   */
+  Map<String, Object> asJavaMap();
+}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/17152920/lib/client-api/src/main/java/org/apache/olingo/client/api/domain/ClientDeletedEntity.java
----------------------------------------------------------------------
diff --git a/lib/client-api/src/main/java/org/apache/olingo/client/api/domain/ClientDeletedEntity.java b/lib/client-api/src/main/java/org/apache/olingo/client/api/domain/ClientDeletedEntity.java
new file mode 100644
index 0000000..ff64e38
--- /dev/null
+++ b/lib/client-api/src/main/java/org/apache/olingo/client/api/domain/ClientDeletedEntity.java
@@ -0,0 +1,36 @@
+/*
+ * 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.client.api.domain;
+
+import java.net.URI;
+
+public interface ClientDeletedEntity {
+
+  enum Reason {
+
+    deleted,
+    changed
+
+  }
+
+  URI getId();
+
+  Reason getReason();
+
+}

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

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/17152920/lib/client-api/src/main/java/org/apache/olingo/client/api/domain/ClientDeltaLink.java
----------------------------------------------------------------------
diff --git a/lib/client-api/src/main/java/org/apache/olingo/client/api/domain/ClientDeltaLink.java b/lib/client-api/src/main/java/org/apache/olingo/client/api/domain/ClientDeltaLink.java
new file mode 100644
index 0000000..efef3b1
--- /dev/null
+++ b/lib/client-api/src/main/java/org/apache/olingo/client/api/domain/ClientDeltaLink.java
@@ -0,0 +1,36 @@
+/*
+ * 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.client.api.domain;
+
+import java.net.URI;
+
+public interface ClientDeltaLink extends ClientAnnotatable {
+
+  URI getSource();
+
+  void setSource(URI source);
+
+  String getRelationship();
+
+  void setRelationship(String relationship);
+
+  URI getTarget();
+
+  void setTarget(URI target);
+}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/17152920/lib/client-api/src/main/java/org/apache/olingo/client/api/domain/ClientEntity.java
----------------------------------------------------------------------
diff --git a/lib/client-api/src/main/java/org/apache/olingo/client/api/domain/ClientEntity.java b/lib/client-api/src/main/java/org/apache/olingo/client/api/domain/ClientEntity.java
new file mode 100644
index 0000000..f023bfc
--- /dev/null
+++ b/lib/client-api/src/main/java/org/apache/olingo/client/api/domain/ClientEntity.java
@@ -0,0 +1,202 @@
+/*
+ * 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.client.api.domain;
+
+import org.apache.olingo.commons.api.edm.FullQualifiedName;
+
+import java.net.URI;
+import java.util.List;
+
+/**
+ * OData entity.
+ */
+public interface ClientEntity extends ClientLinked, ClientAnnotatable, ClientInvokeResult {
+
+  /**
+   * @return the type name of this entity.
+   */
+  FullQualifiedName getTypeName();
+
+  /**
+   * @return self link.
+   */
+  URI getLink();
+
+  /**
+   * Returns OData entity edit link.
+   * 
+   * @return entity edit link.
+   */
+  URI getEditLink();
+
+  /**
+   * Sets OData entity edit link.
+   * 
+   * @param editLink edit link.
+   */
+  void setEditLink(URI editLink);
+
+  /**
+   * Gets ETag.
+   * 
+   * @return ETag.
+   */
+  String getETag();
+
+  /**
+   * Sets ETag.
+   * 
+   * @param eTag ETag.
+   */
+  void setETag(String eTag);
+
+  /**
+   * Searches for operation with given title.
+   * 
+   * @param title operation to look for
+   * @return operation if found with given title, <tt>null</tt> otherwise
+   */
+  ClientOperation getOperation(String title);
+
+  /**
+   * Gets operations.
+   * 
+   * @return operations.
+   */
+  List<ClientOperation> getOperations();
+
+  /**
+   * Searches for property with given name.
+   * 
+   * @param name property to look for
+   * @return property if found with given name, <tt>null</tt> otherwise
+   */
+  ClientProperty getProperty(String name);
+
+  /**
+   * Returns OData entity properties.
+   *
+   * @return OData entity properties.
+   */
+  List<ClientProperty> getProperties();
+
+  /**
+   * To request entity references in place of the actual entities, the client issues a GET request with /$ref appended
+   * to the resource path.
+   * <br />
+   * If the resource path does not identify an entity or a collection of entities, the service returns 404 Not Found.
+   * <br />
+   * If the resource path terminates on a collection, the response MUST be the format-specific representation of a
+   * collection of entity references pointing to the related entities. If no entities are related, the response is the
+   * format-specific representation of an empty collection.
+   * <br />
+   * If the resource path terminates on a single entity, the response MUST be the format-specific representation of an
+   * entity reference pointing to the related single entity. If the resource path terminates on a single entity and no
+   * such entity exists, the service returns 404 Not Found.
+   *
+   * @return entity reference.
+   */
+  URI getId();
+
+  /**
+   * Set id for this OData entity.
+   *
+   * @param id the if for this entity
+   */
+  void setId(URI id);
+
+  /**
+   * Gets media-edit link with given name, if available, otherwise <tt>null</tt>.
+   * 
+   * @param name candidate link name
+   * @return media-edit link with given name, if available, otherwise <tt>null</tt>
+   */
+  ClientLink getMediaEditLink(final String name);
+
+  /**
+   * Returns entity media edit links.
+   * 
+   * @return OData entity links.
+   */
+  List<ClientLink> getMediaEditLinks();
+
+  /**
+   * TRUE if read-only entity.
+   * 
+   * @return TRUE if read-only; FALSE otherwise.
+   */
+  boolean isReadOnly();
+
+  /**
+   * Checks if the current entity is a media entity.
+   * 
+   * @return 'TRUE' if media entity; 'FALSE' otherwise.
+   */
+  boolean isMediaEntity();
+
+  /**
+   * Sets media entity flag.
+   * 
+   * @param isMediaEntity media entity flag value.
+   */
+  void setMediaEntity(boolean isMediaEntity);
+
+  /**
+   * Gets media content type.
+   * 
+   * @return media content type.
+   */
+  String getMediaContentType();
+
+  /**
+   * Sets media content type.
+   * 
+   * @param mediaContentType media content type.
+   */
+  void setMediaContentType(String mediaContentType);
+
+  /**
+   * Gets media content source.
+   * 
+   * @return media content source.
+   */
+  URI getMediaContentSource();
+
+  /**
+   * Sets media content source.
+   * 
+   * @param mediaContentSource media content source.
+   */
+  void setMediaContentSource(URI mediaContentSource);
+
+  /**
+   * ETag of the binary stream represented by this media entity or named stream property.
+   * 
+   * @return media ETag value
+   */
+  String getMediaETag();
+
+  /**
+   * Set media ETag.
+   * 
+   * @param eTag media ETag value
+   */
+  void setMediaETag(String eTag);
+
+}


[38/50] [abbrv] olingo-odata4 git commit: [OLINGO-564] Renamed 'OData*' to 'Client*' classes

Posted by mi...@apache.org.
http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/c37d4da5/fit/src/test/java/org/apache/olingo/fit/tecsvc/client/ExpandWithSystemQueryOptionsITCase.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/tecsvc/client/ExpandWithSystemQueryOptionsITCase.java b/fit/src/test/java/org/apache/olingo/fit/tecsvc/client/ExpandWithSystemQueryOptionsITCase.java
index 1a6b411..38aec61 100644
--- a/fit/src/test/java/org/apache/olingo/fit/tecsvc/client/ExpandWithSystemQueryOptionsITCase.java
+++ b/fit/src/test/java/org/apache/olingo/fit/tecsvc/client/ExpandWithSystemQueryOptionsITCase.java
@@ -33,8 +33,8 @@ import org.apache.olingo.client.api.communication.request.retrieve.ODataEntitySe
 import org.apache.olingo.client.api.communication.response.ODataRetrieveResponse;
 import org.apache.olingo.client.api.uri.QueryOption;
 import org.apache.olingo.client.core.ODataClientFactory;
-import org.apache.olingo.commons.api.domain.ODataEntity;
-import org.apache.olingo.commons.api.domain.ODataEntitySet;
+import org.apache.olingo.commons.api.domain.ClientEntity;
+import org.apache.olingo.commons.api.domain.ClientEntitySet;
 import org.apache.olingo.commons.api.format.ODataFormat;
 import org.apache.olingo.commons.api.http.HttpHeader;
 import org.apache.olingo.commons.api.http.HttpStatusCode;
@@ -58,20 +58,20 @@ public class ExpandWithSystemQueryOptionsITCase extends AbstractBaseTestITCase {
     final Map<QueryOption, Object> options = new HashMap<QueryOption, Object>();
     options.put(QueryOption.FILTER, "PropertyString eq '2'");
 
-    final ODataRetrieveResponse<ODataEntitySet> response =
+    final ODataRetrieveResponse<ClientEntitySet> response =
         buildRequest(ES_TWO_KEY_NAV, NAV_PROPERTY_ET_TWO_KEY_NAV_MANY, options);
-    final List<ODataEntity> entities = response.getBody().getEntities();
+    final List<ClientEntity> entities = response.getBody().getEntities();
     assertEquals(4, entities.size());
 
-    for (final ODataEntity entity : entities) {
+    for (final ClientEntity entity : entities) {
       final Object propInt16 = entity.getProperty(PROPERTY_INT16).getPrimitiveValue().toValue();
       final Object propString = entity.getProperty(PROPERTY_STRING).getPrimitiveValue().toValue();
-      final ODataEntitySet inlineEntitySet =
+      final ClientEntitySet inlineEntitySet =
           entity.getNavigationLink(NAV_PROPERTY_ET_TWO_KEY_NAV_MANY).asInlineEntitySet().getEntitySet();
 
       if (propInt16.equals(1) && propString.equals("1")) {
         assertEquals(1, inlineEntitySet.getEntities().size());
-        final ODataEntity inlineEntity = inlineEntitySet.getEntities().get(0);
+        final ClientEntity inlineEntity = inlineEntitySet.getEntities().get(0);
 
         assertEquals(1, inlineEntity.getProperty(PROPERTY_INT16).getPrimitiveValue().toValue());
         assertEquals("2", inlineEntity.getProperty(PROPERTY_STRING).getPrimitiveValue().toValue());
@@ -79,7 +79,7 @@ public class ExpandWithSystemQueryOptionsITCase extends AbstractBaseTestITCase {
         assertEquals(0, inlineEntitySet.getEntities().size());
       } else if (propInt16.equals(2) && propString.equals("1")) {
         assertEquals(1, inlineEntitySet.getEntities().size());
-        final ODataEntity inlineEntity = inlineEntitySet.getEntities().get(0);
+        final ClientEntity inlineEntity = inlineEntitySet.getEntities().get(0);
 
         assertEquals(1, inlineEntity.getProperty(PROPERTY_INT16).getPrimitiveValue().toValue());
         assertEquals("2", inlineEntity.getProperty(PROPERTY_STRING).getPrimitiveValue().toValue());
@@ -96,21 +96,21 @@ public class ExpandWithSystemQueryOptionsITCase extends AbstractBaseTestITCase {
     final Map<QueryOption, Object> options = new HashMap<QueryOption, Object>();
     options.put(QueryOption.ORDERBY, "PropertyString desc");
 
-    final ODataRetrieveResponse<ODataEntitySet> response =
+    final ODataRetrieveResponse<ClientEntitySet> response =
         buildRequest(ES_TWO_KEY_NAV, NAV_PROPERTY_ET_TWO_KEY_NAV_MANY, options);
-    final List<ODataEntity> entities = response.getBody().getEntities();
+    final List<ClientEntity> entities = response.getBody().getEntities();
     assertEquals(4, entities.size());
 
-    for (final ODataEntity entity : entities) {
+    for (final ClientEntity entity : entities) {
       final Object propInt16 = entity.getProperty(PROPERTY_INT16).getPrimitiveValue().toValue();
       final Object propString = entity.getProperty(PROPERTY_STRING).getPrimitiveValue().toValue();
-      final ODataEntitySet inlineEntitySet =
+      final ClientEntitySet inlineEntitySet =
           entity.getNavigationLink(NAV_PROPERTY_ET_TWO_KEY_NAV_MANY).asInlineEntitySet().getEntitySet();
 
       if (propInt16.equals(1) && propString.equals("1")) {
         assertEquals(2, inlineEntitySet.getEntities().size());
-        final ODataEntity inlineEntity1 = inlineEntitySet.getEntities().get(0);
-        final ODataEntity inlineEntity2 = inlineEntitySet.getEntities().get(1);
+        final ClientEntity inlineEntity1 = inlineEntitySet.getEntities().get(0);
+        final ClientEntity inlineEntity2 = inlineEntitySet.getEntities().get(1);
 
         assertEquals(1, inlineEntity1.getProperty(PROPERTY_INT16).getPrimitiveValue().toValue());
         assertEquals("2", inlineEntity1.getProperty(PROPERTY_STRING).getPrimitiveValue().toValue());
@@ -120,30 +120,30 @@ public class ExpandWithSystemQueryOptionsITCase extends AbstractBaseTestITCase {
       }
     }
   }
-  
+
   @Test
   public void testSkip() {
     final Map<QueryOption, Object> options = new HashMap<QueryOption, Object>();
     options.put(QueryOption.SKIP, "1");
 
-    final ODataRetrieveResponse<ODataEntitySet> response =
+    final ODataRetrieveResponse<ClientEntitySet> response =
         buildRequest(ES_KEY_NAV, NAV_PROPERTY_ET_KEY_NAV_MANY, options);
-    final List<ODataEntity> entities = response.getBody().getEntities();
+    final List<ClientEntity> entities = response.getBody().getEntities();
     assertEquals(3, entities.size());
 
-    for (final ODataEntity entity : entities) {
+    for (final ClientEntity entity : entities) {
       final Object propInt16 = entity.getProperty(PROPERTY_INT16).getPrimitiveValue().toValue();
-      final ODataEntitySet inlineEntitySet =
+      final ClientEntitySet inlineEntitySet =
           entity.getNavigationLink(NAV_PROPERTY_ET_KEY_NAV_MANY).asInlineEntitySet().getEntitySet();
 
       if (propInt16.equals(1)) {
         assertEquals(1, inlineEntitySet.getEntities().size());
-        final ODataEntity inlineEntity = inlineEntitySet.getEntities().get(0);
+        final ClientEntity inlineEntity = inlineEntitySet.getEntities().get(0);
 
         assertEquals(2, inlineEntity.getProperty(PROPERTY_INT16).getPrimitiveValue().toValue());
       } else if (propInt16.equals(2)) {
         assertEquals(1, inlineEntitySet.getEntities().size());
-        final ODataEntity inlineEntity = inlineEntitySet.getEntities().get(0);
+        final ClientEntity inlineEntity = inlineEntitySet.getEntities().get(0);
 
         assertEquals(3, inlineEntity.getProperty(PROPERTY_INT16).getPrimitiveValue().toValue());
       } else if (propInt16.equals(3)) {
@@ -157,24 +157,24 @@ public class ExpandWithSystemQueryOptionsITCase extends AbstractBaseTestITCase {
     final Map<QueryOption, Object> options = new HashMap<QueryOption, Object>();
     options.put(QueryOption.TOP, "1");
 
-    final ODataRetrieveResponse<ODataEntitySet> response =
+    final ODataRetrieveResponse<ClientEntitySet> response =
         buildRequest(ES_KEY_NAV, NAV_PROPERTY_ET_KEY_NAV_MANY, options);
-    final List<ODataEntity> entities = response.getBody().getEntities();
+    final List<ClientEntity> entities = response.getBody().getEntities();
     assertEquals(3, entities.size());
 
-    for (final ODataEntity entity : entities) {
+    for (final ClientEntity entity : entities) {
       final Object propInt16 = entity.getProperty(PROPERTY_INT16).getPrimitiveValue().toValue();
-      final ODataEntitySet inlineEntitySet =
+      final ClientEntitySet inlineEntitySet =
           entity.getNavigationLink(NAV_PROPERTY_ET_KEY_NAV_MANY).asInlineEntitySet().getEntitySet();
 
       if (propInt16.equals(1)) {
         assertEquals(1, inlineEntitySet.getEntities().size());
-        final ODataEntity inlineEntity = inlineEntitySet.getEntities().get(0);
+        final ClientEntity inlineEntity = inlineEntitySet.getEntities().get(0);
 
         assertEquals(1, inlineEntity.getProperty(PROPERTY_INT16).getPrimitiveValue().toValue());
       } else if (propInt16.equals(2)) {
         assertEquals(1, inlineEntitySet.getEntities().size());
-        final ODataEntity inlineEntity = inlineEntitySet.getEntities().get(0);
+        final ClientEntity inlineEntity = inlineEntitySet.getEntities().get(0);
 
         assertEquals(2, inlineEntity.getProperty(PROPERTY_INT16).getPrimitiveValue().toValue());
       } else if (propInt16.equals(3)) {
@@ -190,20 +190,20 @@ public class ExpandWithSystemQueryOptionsITCase extends AbstractBaseTestITCase {
     options.put(QueryOption.FILTER, "PropertyInt16 eq 1");
     options.put(QueryOption.SKIP, "1");
 
-    final ODataRetrieveResponse<ODataEntitySet> response =
+    final ODataRetrieveResponse<ClientEntitySet> response =
         buildRequest(ES_TWO_KEY_NAV, NAV_PROPERTY_ET_TWO_KEY_NAV_MANY, options);
-    final List<ODataEntity> entities = response.getBody().getEntities();
+    final List<ClientEntity> entities = response.getBody().getEntities();
     assertEquals(4, entities.size());
 
-    for (final ODataEntity entity : entities) {
+    for (final ClientEntity entity : entities) {
       final Object propInt16 = entity.getProperty(PROPERTY_INT16).getPrimitiveValue().toValue();
       final Object propString = entity.getProperty(PROPERTY_STRING).getPrimitiveValue().toValue();
-      final ODataEntitySet inlineEntitySet =
+      final ClientEntitySet inlineEntitySet =
           entity.getNavigationLink(NAV_PROPERTY_ET_TWO_KEY_NAV_MANY).asInlineEntitySet().getEntitySet();
 
       if (propInt16.equals(1) && propString.equals("1")) {
         assertEquals(1, inlineEntitySet.getEntities().size());
-        final ODataEntity inlineEntity = inlineEntitySet.getEntities().get(0);
+        final ClientEntity inlineEntity = inlineEntitySet.getEntities().get(0);
 
         assertEquals(1, inlineEntity.getProperty(PROPERTY_INT16).getPrimitiveValue().toValue());
         assertEquals("2", inlineEntity.getProperty(PROPERTY_STRING).getPrimitiveValue().toValue());
@@ -231,16 +231,16 @@ public class ExpandWithSystemQueryOptionsITCase extends AbstractBaseTestITCase {
         client.newURIBuilder(SERVICE_URI).appendEntitySetSegment(ES_TWO_KEY_NAV).expandWithOptions(
             NAV_PROPERTY_ET_TWO_KEY_NAV_MANY, options).addQueryOption(QueryOption.SELECT,
             "PropertyInt16,PropertyString").build();
-    final ODataRetrieveResponse<ODataEntitySet> response =
+    final ODataRetrieveResponse<ClientEntitySet> response =
         client.getRetrieveRequestFactory().getEntitySetRequest(uri).execute();
 
-    final List<ODataEntity> entities = response.getBody().getEntities();
+    final List<ClientEntity> entities = response.getBody().getEntities();
     assertEquals(4, entities.size());
 
-    for (final ODataEntity entity : entities) {
+    for (final ClientEntity entity : entities) {
       final Object propInt16 = entity.getProperty(PROPERTY_INT16).getPrimitiveValue().toValue();
       final Object propString = entity.getProperty(PROPERTY_STRING).getPrimitiveValue().toValue();
-      final ODataEntitySet entitySet =
+      final ClientEntitySet entitySet =
           entity.getNavigationLink(NAV_PROPERTY_ET_TWO_KEY_NAV_MANY).asInlineEntitySet().getEntitySet();
 
       if (propInt16.equals(1) && propString.equals("1")) {
@@ -269,11 +269,11 @@ public class ExpandWithSystemQueryOptionsITCase extends AbstractBaseTestITCase {
 
     final URI uri = client.newURIBuilder(SERVICE_URI).appendEntitySetSegment(ES_TWO_KEY_NAV).appendKeySegment(keys)
         .expandWithOptions(NAV_PROPERTY_ET_KEY_NAV_MANY, options).build();
-    final ODataRetrieveResponse<ODataEntity> response =
+    final ODataRetrieveResponse<ClientEntity> response =
         client.getRetrieveRequestFactory().getEntityRequest(uri).execute();
     assertEquals(HttpStatusCode.OK.getStatusCode(), response.getStatusCode());
 
-    final ODataEntitySet entitySet =
+    final ClientEntitySet entitySet =
         response.getBody().getNavigationLink(NAV_PROPERTY_ET_KEY_NAV_MANY).asInlineEntitySet().getEntitySet();
     assertEquals(1, entitySet.getEntities().size());
     assertEquals(1, entitySet.getEntities().get(0).getProperty(PROPERTY_INT16).getPrimitiveValue().toValue());
@@ -284,182 +284,182 @@ public class ExpandWithSystemQueryOptionsITCase extends AbstractBaseTestITCase {
     final Map<QueryOption, Object> options = new HashMap<QueryOption, Object>();
     options.put(QueryOption.FILTER, "PropertyInt16 eq 1"
         + " and PropertyComp/PropertyComp/PropertyDuration eq duration'PT1S' and length(PropertyString) gt 4");
-    final ODataRetrieveResponse<ODataEntitySet> response =
+    final ODataRetrieveResponse<ClientEntitySet> response =
         buildRequest(ES_TWO_KEY_NAV, NAV_PROPERTY_ET_TWO_KEY_NAV_MANY, options);
-    final List<ODataEntity> entities = response.getBody().getEntities();
+    final List<ClientEntity> entities = response.getBody().getEntities();
 
     assertEquals(HttpStatusCode.OK.getStatusCode(), response.getStatusCode());
     assertEquals(4, entities.size());
   }
-  
+
   @Test
   public void testCyclicExpand() {
     // Expand entity in the following order
     // 1 => 2 => 1
-    // Entity with Key (PropertyInt16=1, PrroperyString='1') holds references to (PropertyInt16=1, PropertyString='1') 
+    // Entity with Key (PropertyInt16=1, PrroperyString='1') holds references to (PropertyInt16=1, PropertyString='1')
     // and (PropertyInt16=1, PropertyString='2')
     // Entity with Key (PropertyInt16=1, PropertyString='2') holds references to (PropertyInt16=1, PropertyString='1')
     // Define filters to select explicit the entities at any level => Circle
-    
+
     final ODataClient client = getClient();
     final Map<QueryOption, Object> options = new HashMap<QueryOption, Object>();
-    options.put(QueryOption.EXPAND, NAV_PROPERTY_ET_TWO_KEY_NAV_MANY 
-                                  + "($expand=" + NAV_PROPERTY_ET_TWO_KEY_NAV_MANY 
-                                  + "($expand=" + NAV_PROPERTY_ET_TWO_KEY_NAV_MANY + "))");
+    options.put(QueryOption.EXPAND, NAV_PROPERTY_ET_TWO_KEY_NAV_MANY
+        + "($expand=" + NAV_PROPERTY_ET_TWO_KEY_NAV_MANY
+        + "($expand=" + NAV_PROPERTY_ET_TWO_KEY_NAV_MANY + "))");
     options.put(QueryOption.FILTER, "PropertyString eq '2'");
-    
+
     final Map<String, Object> keys = new HashMap<String, Object>();
     keys.put(PROPERTY_INT16, 1);
     keys.put(PROPERTY_STRING, "1");
-    
+
     final URI uri = client.newURIBuilder(SERVICE_URI)
-                          .appendEntitySetSegment(ES_TWO_KEY_NAV)
-                          .appendKeySegment(keys)
-                          .expandWithOptions(NAV_PROPERTY_ET_TWO_KEY_NAV_MANY, options)
-                          .build();
-    
-    final ODataRetrieveResponse<ODataEntity> response = client.getRetrieveRequestFactory()
-                                                              .getEntityRequest(uri)
-                                                              .execute();
-    
+        .appendEntitySetSegment(ES_TWO_KEY_NAV)
+        .appendKeySegment(keys)
+        .expandWithOptions(NAV_PROPERTY_ET_TWO_KEY_NAV_MANY, options)
+        .build();
+
+    final ODataRetrieveResponse<ClientEntity> response = client.getRetrieveRequestFactory()
+        .getEntityRequest(uri)
+        .execute();
+
     assertEquals(HttpStatusCode.OK.getStatusCode(), response.getStatusCode());
     assertNotNull(response.getBody().getNavigationLink(NAV_PROPERTY_ET_TWO_KEY_NAV_MANY));
     assertEquals(1, response.getBody().getNavigationLink(NAV_PROPERTY_ET_TWO_KEY_NAV_MANY)
-                                      .asInlineEntitySet()
-                                      .getEntitySet()
-                                      .getEntities()
-                                      .size());
-    
-    final ODataEntity entitySecondLevel = response.getBody().getNavigationLink(NAV_PROPERTY_ET_TWO_KEY_NAV_MANY)
-                                                            .asInlineEntitySet()
-                                                            .getEntitySet()
-                                                            .getEntities()
-                                                            .get(0);
-    
+        .asInlineEntitySet()
+        .getEntitySet()
+        .getEntities()
+        .size());
+
+    final ClientEntity entitySecondLevel = response.getBody().getNavigationLink(NAV_PROPERTY_ET_TWO_KEY_NAV_MANY)
+        .asInlineEntitySet()
+        .getEntitySet()
+        .getEntities()
+        .get(0);
+
     assertEquals(1, entitySecondLevel.getProperty(PROPERTY_INT16).getPrimitiveValue().toValue());
     assertEquals("2", entitySecondLevel.getProperty(PROPERTY_STRING).getPrimitiveValue().toValue());
-    
+
     assertNotNull(entitySecondLevel.getNavigationLink(NAV_PROPERTY_ET_TWO_KEY_NAV_MANY));
     assertEquals(1, entitySecondLevel.getNavigationLink(NAV_PROPERTY_ET_TWO_KEY_NAV_MANY)
-                                     .asInlineEntitySet()
-                                     .getEntitySet()
-                                     .getEntities()
-                                     .size());
-    
-    final ODataEntity entityThirdLevel = entitySecondLevel.getNavigationLink(NAV_PROPERTY_ET_TWO_KEY_NAV_MANY)
-                                                          .asInlineEntitySet()
-                                                          .getEntitySet()
-                                                          .getEntities()
-                                                          .get(0);
-    
+        .asInlineEntitySet()
+        .getEntitySet()
+        .getEntities()
+        .size());
+
+    final ClientEntity entityThirdLevel = entitySecondLevel.getNavigationLink(NAV_PROPERTY_ET_TWO_KEY_NAV_MANY)
+        .asInlineEntitySet()
+        .getEntitySet()
+        .getEntities()
+        .get(0);
+
     assertEquals(1, entityThirdLevel.getProperty(PROPERTY_INT16).getPrimitiveValue().toValue());
     assertEquals("1", entityThirdLevel.getProperty(PROPERTY_STRING).getPrimitiveValue().toValue());
-    
+
     assertNotNull(entityThirdLevel.getNavigationLink(NAV_PROPERTY_ET_TWO_KEY_NAV_MANY));
     assertEquals(2, entityThirdLevel.getNavigationLink(NAV_PROPERTY_ET_TWO_KEY_NAV_MANY)
-                                    .asInlineEntitySet()
-                                    .getEntitySet()
-                                    .getEntities()
-                                    .size());
-    
-    final List<ODataEntity> fourthLevelEntites = entityThirdLevel.getNavigationLink(NAV_PROPERTY_ET_TWO_KEY_NAV_MANY)
-                                                                 .asInlineEntitySet()
-                                                                 .getEntitySet()
-                                                                 .getEntities();
-    
+        .asInlineEntitySet()
+        .getEntitySet()
+        .getEntities()
+        .size());
+
+    final List<ClientEntity> fourthLevelEntites = entityThirdLevel.getNavigationLink(NAV_PROPERTY_ET_TWO_KEY_NAV_MANY)
+        .asInlineEntitySet()
+        .getEntitySet()
+        .getEntities();
+
     assertEquals(1, fourthLevelEntites.get(0).getProperty(PROPERTY_INT16).getPrimitiveValue().toValue());
     assertEquals("1", fourthLevelEntites.get(0).getProperty(PROPERTY_STRING).getPrimitiveValue().toValue());
 
     assertEquals(1, fourthLevelEntites.get(1).getProperty(PROPERTY_INT16).getPrimitiveValue().toValue());
     assertEquals("2", fourthLevelEntites.get(1).getProperty(PROPERTY_STRING).getPrimitiveValue().toValue());
   }
-  
+
   @Test
   public void testSystemQueryOptionOnThirdLevel() {
     final ODataClient client = getClient();
     final Map<QueryOption, Object> options = new HashMap<QueryOption, Object>();
-    options.put(QueryOption.EXPAND, NAV_PROPERTY_ET_TWO_KEY_NAV_MANY 
-                                  + "($expand=" + NAV_PROPERTY_ET_TWO_KEY_NAV_MANY 
-                                  + "($expand=" + NAV_PROPERTY_ET_TWO_KEY_NAV_MANY 
-                                  + ";$filter=PropertyString eq '1'))");
+    options.put(QueryOption.EXPAND, NAV_PROPERTY_ET_TWO_KEY_NAV_MANY
+        + "($expand=" + NAV_PROPERTY_ET_TWO_KEY_NAV_MANY
+        + "($expand=" + NAV_PROPERTY_ET_TWO_KEY_NAV_MANY
+        + ";$filter=PropertyString eq '1'))");
     options.put(QueryOption.FILTER, "PropertyString eq '2'");
-    
+
     final Map<String, Object> keys = new HashMap<String, Object>();
     keys.put(PROPERTY_INT16, 1);
     keys.put(PROPERTY_STRING, "1");
-    
+
     final URI uri = client.newURIBuilder(SERVICE_URI)
-                          .appendEntitySetSegment(ES_TWO_KEY_NAV)
-                          .appendKeySegment(keys)
-                          .expandWithOptions(NAV_PROPERTY_ET_TWO_KEY_NAV_MANY, options)
-                          .build();
-    
-    final ODataRetrieveResponse<ODataEntity> response = client.getRetrieveRequestFactory()
-                                                              .getEntityRequest(uri)
-                                                              .execute();
-    
+        .appendEntitySetSegment(ES_TWO_KEY_NAV)
+        .appendKeySegment(keys)
+        .expandWithOptions(NAV_PROPERTY_ET_TWO_KEY_NAV_MANY, options)
+        .build();
+
+    final ODataRetrieveResponse<ClientEntity> response = client.getRetrieveRequestFactory()
+        .getEntityRequest(uri)
+        .execute();
+
     assertEquals(HttpStatusCode.OK.getStatusCode(), response.getStatusCode());
     assertNotNull(response.getBody().getNavigationLink(NAV_PROPERTY_ET_TWO_KEY_NAV_MANY));
     assertEquals(1, response.getBody().getNavigationLink(NAV_PROPERTY_ET_TWO_KEY_NAV_MANY)
-                                      .asInlineEntitySet()
-                                      .getEntitySet()
-                                      .getEntities()
-                                      .size());
-    
-    final ODataEntity entitySecondLevel = response.getBody().getNavigationLink(NAV_PROPERTY_ET_TWO_KEY_NAV_MANY)
-                                                            .asInlineEntitySet()
-                                                            .getEntitySet()
-                                                            .getEntities()
-                                                            .get(0);
-    
+        .asInlineEntitySet()
+        .getEntitySet()
+        .getEntities()
+        .size());
+
+    final ClientEntity entitySecondLevel = response.getBody().getNavigationLink(NAV_PROPERTY_ET_TWO_KEY_NAV_MANY)
+        .asInlineEntitySet()
+        .getEntitySet()
+        .getEntities()
+        .get(0);
+
     assertEquals(1, entitySecondLevel.getProperty(PROPERTY_INT16).getPrimitiveValue().toValue());
     assertEquals("2", entitySecondLevel.getProperty(PROPERTY_STRING).getPrimitiveValue().toValue());
-    
+
     assertNotNull(entitySecondLevel.getNavigationLink(NAV_PROPERTY_ET_TWO_KEY_NAV_MANY));
     assertEquals(1, entitySecondLevel.getNavigationLink(NAV_PROPERTY_ET_TWO_KEY_NAV_MANY)
-                                     .asInlineEntitySet()
-                                     .getEntitySet()
-                                     .getEntities()
-                                     .size());
-    
-    final ODataEntity entityThirdLevel = entitySecondLevel.getNavigationLink(NAV_PROPERTY_ET_TWO_KEY_NAV_MANY)
-                                                          .asInlineEntitySet()
-                                                          .getEntitySet()
-                                                          .getEntities()
-                                                          .get(0);
-    
+        .asInlineEntitySet()
+        .getEntitySet()
+        .getEntities()
+        .size());
+
+    final ClientEntity entityThirdLevel = entitySecondLevel.getNavigationLink(NAV_PROPERTY_ET_TWO_KEY_NAV_MANY)
+        .asInlineEntitySet()
+        .getEntitySet()
+        .getEntities()
+        .get(0);
+
     assertEquals(1, entityThirdLevel.getProperty(PROPERTY_INT16).getPrimitiveValue().toValue());
     assertEquals("1", entityThirdLevel.getProperty(PROPERTY_STRING).getPrimitiveValue().toValue());
-    
+
     assertNotNull(entityThirdLevel.getNavigationLink(NAV_PROPERTY_ET_TWO_KEY_NAV_MANY));
     assertEquals(1, entityThirdLevel.getNavigationLink(NAV_PROPERTY_ET_TWO_KEY_NAV_MANY)
-                                    .asInlineEntitySet()
-                                    .getEntitySet()
-                                    .getEntities()
-                                    .size());
-    
-    final List<ODataEntity> fourthLevelEntites = entityThirdLevel.getNavigationLink(NAV_PROPERTY_ET_TWO_KEY_NAV_MANY)
-                                                                 .asInlineEntitySet()
-                                                                 .getEntitySet()
-                                                                 .getEntities();
-    
+        .asInlineEntitySet()
+        .getEntitySet()
+        .getEntities()
+        .size());
+
+    final List<ClientEntity> fourthLevelEntites = entityThirdLevel.getNavigationLink(NAV_PROPERTY_ET_TWO_KEY_NAV_MANY)
+        .asInlineEntitySet()
+        .getEntitySet()
+        .getEntities();
+
     assertEquals(1, fourthLevelEntites.get(0).getProperty(PROPERTY_INT16).getPrimitiveValue().toValue());
     assertEquals("1", fourthLevelEntites.get(0).getProperty(PROPERTY_STRING).getPrimitiveValue().toValue());
   }
-  
-  private ODataRetrieveResponse<ODataEntitySet> buildRequest(final String entitySet, final String navigationProperty,
+
+  private ODataRetrieveResponse<ClientEntitySet> buildRequest(final String entitySet, final String navigationProperty,
       final Map<QueryOption, Object> expandOptions) {
     return buildRequest(entitySet, navigationProperty, expandOptions, null);
   }
 
-  private ODataRetrieveResponse<ODataEntitySet> buildRequest(final String entitySet, final String navigationProperty,
+  private ODataRetrieveResponse<ClientEntitySet> buildRequest(final String entitySet, final String navigationProperty,
       final Map<QueryOption, Object> expandOptions, final String cookie) {
     final ODataClient client = getClient();
     final URI uri = client.newURIBuilder(SERVICE_URI).appendEntitySetSegment(entitySet)
         .expandWithOptions(navigationProperty, expandOptions)
         .build();
 
-    final ODataEntitySetRequest<ODataEntitySet> request = client.getRetrieveRequestFactory().getEntitySetRequest(uri);
+    final ODataEntitySetRequest<ClientEntitySet> request = client.getRetrieveRequestFactory().getEntitySetRequest(uri);
 
     if (cookie != null) {
       request.addCustomHeader(HttpHeader.COOKIE, cookie);


[07/50] [abbrv] olingo-odata4 git commit: [OLINGO-564] Moved client edm classes

Posted by mi...@apache.org.
http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/cbbe3da6/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/ClientPath.java
----------------------------------------------------------------------
diff --git a/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/ClientPath.java b/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/ClientPath.java
new file mode 100644
index 0000000..3d790d7
--- /dev/null
+++ b/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/ClientPath.java
@@ -0,0 +1,27 @@
+/*
+ * 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.client.core.edm.xml;
+
+import org.apache.olingo.commons.api.edm.provider.annotation.Path;
+
+class ClientPath extends AbstractClientElementOrAttributeExpression implements Path {
+
+  private static final long serialVersionUID = 6020168217561402545L;
+
+}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/cbbe3da6/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/ClientProperty.java
----------------------------------------------------------------------
diff --git a/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/ClientProperty.java b/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/ClientProperty.java
index 920c383..7389d67 100644
--- a/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/ClientProperty.java
+++ b/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/ClientProperty.java
@@ -30,7 +30,7 @@ import com.fasterxml.jackson.databind.annotation.JsonDeserialize;
 import java.io.IOException;
 
 @JsonDeserialize(using = ClientProperty.PropertyDeserializer.class)
-public class ClientProperty extends Property {
+class ClientProperty extends Property {
 
   private static final long serialVersionUID = -4521766603286651372L;
 

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/cbbe3da6/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/ClientPropertyPath.java
----------------------------------------------------------------------
diff --git a/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/ClientPropertyPath.java b/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/ClientPropertyPath.java
new file mode 100644
index 0000000..b74da28
--- /dev/null
+++ b/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/ClientPropertyPath.java
@@ -0,0 +1,27 @@
+/*
+ * 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.client.core.edm.xml;
+
+import org.apache.olingo.commons.api.edm.provider.annotation.PropertyPath;
+
+class ClientPropertyPath extends AbstractClientElementOrAttributeExpression implements PropertyPath {
+
+  private static final long serialVersionUID = -9133862135834738470L;
+
+}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/cbbe3da6/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/ClientPropertyRef.java
----------------------------------------------------------------------
diff --git a/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/ClientPropertyRef.java b/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/ClientPropertyRef.java
index 82dc0b0..3f1c8e3 100644
--- a/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/ClientPropertyRef.java
+++ b/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/ClientPropertyRef.java
@@ -27,7 +27,7 @@ import org.apache.olingo.commons.api.edm.provider.PropertyRef;
 import java.io.IOException;
 
 @JsonDeserialize(using = ClientPropertyRef.PropertyRefDeserializer.class)
-public class ClientPropertyRef extends PropertyRef {
+class ClientPropertyRef extends PropertyRef {
 
   private static final long serialVersionUID = 1504095609268590326L;
 

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/cbbe3da6/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/ClientPropertyValue.java
----------------------------------------------------------------------
diff --git a/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/ClientPropertyValue.java b/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/ClientPropertyValue.java
new file mode 100644
index 0000000..9b9aa8e
--- /dev/null
+++ b/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/ClientPropertyValue.java
@@ -0,0 +1,80 @@
+/*
+ * 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.client.core.edm.xml;
+
+import com.fasterxml.jackson.core.JsonParser;
+import com.fasterxml.jackson.core.JsonToken;
+import com.fasterxml.jackson.databind.DeserializationContext;
+import org.apache.olingo.commons.api.edm.provider.annotation.AnnotationExpression;
+import org.apache.olingo.commons.api.edm.provider.annotation.PropertyValue;
+
+import com.fasterxml.jackson.databind.annotation.JsonDeserialize;
+
+import java.io.IOException;
+
+@JsonDeserialize(using = ClientPropertyValue.PropertyValueDeserializer.class)
+class ClientPropertyValue extends AbstractClientAnnotatableDynamicAnnotationExpression implements PropertyValue {
+
+  private static final long serialVersionUID = -8437649215282645228L;
+
+  private String property;
+
+  private AnnotationExpression value;
+
+  @Override
+  public String getProperty() {
+    return property;
+  }
+
+  public void setProperty(final String property) {
+    this.property = property;
+  }
+
+  @Override
+  public AnnotationExpression getValue() {
+    return value;
+  }
+
+  public void setValue(final AnnotationExpression value) {
+    this.value = value;
+  }
+
+  static class PropertyValueDeserializer extends AbstractClientEdmDeserializer<ClientPropertyValue> {
+    @Override
+    protected ClientPropertyValue doDeserialize(final JsonParser jp, final DeserializationContext ctxt)
+            throws IOException {
+      final ClientPropertyValue propValue = new ClientPropertyValue();
+      for (; jp.getCurrentToken() != JsonToken.END_OBJECT; jp.nextToken()) {
+        final JsonToken token = jp.getCurrentToken();
+        if (token == JsonToken.FIELD_NAME) {
+          if ("Property".equals(jp.getCurrentName())) {
+            propValue.setProperty(jp.nextTextValue());
+          } else if ("Annotation".equals(jp.getCurrentName())) {
+            propValue.getAnnotations().add(jp.readValueAs(ClientAnnotation.class));
+          } else if (isAnnotationConstExprConstruct(jp)) {
+            propValue.setValue(parseAnnotationConstExprConstruct(jp));
+          } else {
+            propValue.setValue(jp.readValueAs(AbstractClientDynamicAnnotationExpression.class));
+          }
+        }
+      }
+      return propValue;
+    }
+  }
+}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/cbbe3da6/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/ClientRecord.java
----------------------------------------------------------------------
diff --git a/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/ClientRecord.java b/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/ClientRecord.java
new file mode 100644
index 0000000..264adae
--- /dev/null
+++ b/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/ClientRecord.java
@@ -0,0 +1,76 @@
+/*
+ * 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.client.core.edm.xml;
+
+import java.io.IOException;
+import java.util.ArrayList;
+import java.util.List;
+
+import com.fasterxml.jackson.core.JsonParser;
+import com.fasterxml.jackson.core.JsonToken;
+import com.fasterxml.jackson.databind.DeserializationContext;
+import org.apache.olingo.commons.api.edm.provider.annotation.PropertyValue;
+import org.apache.olingo.commons.api.edm.provider.annotation.Record;
+
+import com.fasterxml.jackson.databind.annotation.JsonDeserialize;
+
+@JsonDeserialize(using = ClientRecord.RecordDeserializer.class)
+class ClientRecord extends AbstractClientAnnotatableDynamicAnnotationExpression implements Record {
+
+  private static final long serialVersionUID = 4275271751615410709L;
+
+  private String type;
+
+  private final List<PropertyValue> propertyValues = new ArrayList<PropertyValue>();
+
+  @Override
+  public String getType() {
+    return type;
+  }
+
+  public void setType(final String type) {
+    this.type = type;
+  }
+
+  @Override
+  public List<PropertyValue> getPropertyValues() {
+    return propertyValues;
+  }
+
+  static class RecordDeserializer extends AbstractClientEdmDeserializer<ClientRecord> {
+    @Override
+    protected ClientRecord doDeserialize(final JsonParser jp, final DeserializationContext ctxt)
+            throws IOException {
+      final ClientRecord record = new ClientRecord();
+      for (; jp.getCurrentToken() != JsonToken.END_OBJECT; jp.nextToken()) {
+        final JsonToken token = jp.getCurrentToken();
+        if (token == JsonToken.FIELD_NAME) {
+          if ("Type".equals(jp.getCurrentName())) {
+            record.setType(jp.nextTextValue());
+          } else if ("Annotation".equals(jp.getCurrentName())) {
+            record.getAnnotations().add(jp.readValueAs(ClientAnnotation.class));
+          } else {
+            record.getPropertyValues().add(jp.readValueAs(ClientPropertyValue.class));
+          }
+        }
+      }
+      return record;
+    }
+  }
+}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/cbbe3da6/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/ClientReference.java
----------------------------------------------------------------------
diff --git a/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/ClientReference.java b/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/ClientReference.java
index a989ba3..a172405 100644
--- a/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/ClientReference.java
+++ b/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/ClientReference.java
@@ -35,7 +35,7 @@ import org.apache.olingo.commons.api.edm.provider.Annotation;
 import com.fasterxml.jackson.databind.annotation.JsonDeserialize;
 
 @JsonDeserialize(using = ClientReference.ReferenceDeserializer.class)
-public class ClientReference extends AbstractEdmItem implements Reference {
+class ClientReference extends AbstractEdmItem implements Reference {
 
   private static final long serialVersionUID = 7720274712545267654L;
 

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/cbbe3da6/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/ClientReferentialConstraint.java
----------------------------------------------------------------------
diff --git a/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/ClientReferentialConstraint.java b/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/ClientReferentialConstraint.java
index 9524e74..04b554d 100644
--- a/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/ClientReferentialConstraint.java
+++ b/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/ClientReferentialConstraint.java
@@ -27,7 +27,7 @@ import org.apache.olingo.commons.api.edm.provider.ReferentialConstraint;
 import java.io.IOException;
 
 @JsonDeserialize(using = ClientReferentialConstraint.ReferentialConstraintDeserializer.class)
-public class ClientReferentialConstraint extends ReferentialConstraint {
+class ClientReferentialConstraint extends ReferentialConstraint {
 
   private static final long serialVersionUID = -5822115908069878139L;
 

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/cbbe3da6/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/ClientReturnType.java
----------------------------------------------------------------------
diff --git a/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/ClientReturnType.java b/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/ClientReturnType.java
index 587a189..987d374 100644
--- a/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/ClientReturnType.java
+++ b/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/ClientReturnType.java
@@ -30,7 +30,7 @@ import com.fasterxml.jackson.databind.annotation.JsonDeserialize;
 import java.io.IOException;
 
 @JsonDeserialize(using = ClientReturnType.ReturnTypeDeserializer.class)
-public class ClientReturnType extends ReturnType {
+class ClientReturnType extends ReturnType {
 
   private static final long serialVersionUID = 6261092793901735110L;
 

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/cbbe3da6/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/ClientSchema.java
----------------------------------------------------------------------
diff --git a/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/ClientSchema.java b/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/ClientSchema.java
index 46e76cd..5846b36 100644
--- a/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/ClientSchema.java
+++ b/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/ClientSchema.java
@@ -28,7 +28,7 @@ import com.fasterxml.jackson.databind.annotation.JsonDeserialize;
 import java.io.IOException;
 
 @JsonDeserialize(using = ClientSchema.SchemaDeserializer.class)
-public class ClientSchema extends Schema {
+class ClientSchema extends Schema {
 
   private static final long serialVersionUID = 1911087363912024939L;
 

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/cbbe3da6/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/ClientSingleton.java
----------------------------------------------------------------------
diff --git a/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/ClientSingleton.java b/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/ClientSingleton.java
index efe25ea..cba4b32 100644
--- a/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/ClientSingleton.java
+++ b/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/ClientSingleton.java
@@ -28,7 +28,7 @@ import com.fasterxml.jackson.databind.annotation.JsonDeserialize;
 import java.io.IOException;
 
 @JsonDeserialize(using = ClientSingleton.SingletonDeserializer.class)
-public class ClientSingleton extends Singleton {
+class ClientSingleton extends Singleton {
 
   private static final long serialVersionUID = 1656749615107151921L;
 

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/cbbe3da6/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/ClientTerm.java
----------------------------------------------------------------------
diff --git a/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/ClientTerm.java b/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/ClientTerm.java
index b343ee9..ed78e03 100644
--- a/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/ClientTerm.java
+++ b/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/ClientTerm.java
@@ -32,7 +32,7 @@ import java.io.IOException;
 import java.util.Arrays;
 
 @JsonDeserialize(using = ClientTerm.TermDeserializer.class)
-public class ClientTerm extends Term {
+class ClientTerm extends Term {
 
   private static final long serialVersionUID = -8350072064720586186L;
 

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/cbbe3da6/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/ClientTwoParamsOpDynamicAnnotationExpression.java
----------------------------------------------------------------------
diff --git a/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/ClientTwoParamsOpDynamicAnnotationExpression.java b/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/ClientTwoParamsOpDynamicAnnotationExpression.java
new file mode 100644
index 0000000..8ce3167
--- /dev/null
+++ b/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/ClientTwoParamsOpDynamicAnnotationExpression.java
@@ -0,0 +1,62 @@
+/*
+ * 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.client.core.edm.xml;
+
+import org.apache.olingo.commons.api.edm.provider.annotation.DynamicAnnotationExpression;
+import org.apache.olingo.commons.api.edm.provider.annotation.TwoParamsOpDynamicAnnotationExpression;
+
+class ClientTwoParamsOpDynamicAnnotationExpression
+        extends AbstractClientDynamicAnnotationExpression implements TwoParamsOpDynamicAnnotationExpression {
+
+  private static final long serialVersionUID = 6241842185452451946L;
+
+  private Type type;
+
+  private DynamicAnnotationExpression left;
+
+  private DynamicAnnotationExpression right;
+
+  @Override
+  public Type getType() {
+    return type;
+  }
+
+  public void setType(final Type type) {
+    this.type = type;
+  }
+
+  @Override
+  public DynamicAnnotationExpression getLeftExpression() {
+    return left;
+  }
+
+  public void setLeftExpression(final DynamicAnnotationExpression left) {
+    this.left = left;
+  }
+
+  @Override
+  public DynamicAnnotationExpression getRightExpression() {
+    return right;
+  }
+
+  public void setRightExpression(final DynamicAnnotationExpression right) {
+    this.right = right;
+  }
+
+}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/cbbe3da6/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/ClientTypeDefinition.java
----------------------------------------------------------------------
diff --git a/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/ClientTypeDefinition.java b/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/ClientTypeDefinition.java
index 87e2bb8..e0dd12b 100644
--- a/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/ClientTypeDefinition.java
+++ b/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/ClientTypeDefinition.java
@@ -30,7 +30,7 @@ import com.fasterxml.jackson.databind.annotation.JsonDeserialize;
 import java.io.IOException;
 
 @JsonDeserialize(using = ClientTypeDefinition.TypeDefinitionDeserializer.class)
-public class ClientTypeDefinition extends TypeDefinition {
+class ClientTypeDefinition extends TypeDefinition {
 
   private static final long serialVersionUID = -902407149079419602L;
 

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/cbbe3da6/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/ClientUrlRef.java
----------------------------------------------------------------------
diff --git a/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/ClientUrlRef.java b/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/ClientUrlRef.java
new file mode 100644
index 0000000..053a52e
--- /dev/null
+++ b/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/ClientUrlRef.java
@@ -0,0 +1,65 @@
+/*
+ * 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.client.core.edm.xml;
+
+import com.fasterxml.jackson.core.JsonParser;
+import com.fasterxml.jackson.core.JsonToken;
+import com.fasterxml.jackson.databind.DeserializationContext;
+import org.apache.olingo.commons.api.edm.provider.annotation.AnnotationExpression;
+import org.apache.olingo.commons.api.edm.provider.annotation.UrlRef;
+
+import com.fasterxml.jackson.databind.annotation.JsonDeserialize;
+
+import java.io.IOException;
+
+@JsonDeserialize(using = ClientUrlRef.UrlRefDeserializer.class)
+class ClientUrlRef extends AbstractClientDynamicAnnotationExpression implements UrlRef {
+
+  private static final long serialVersionUID = -7693224811739000440L;
+
+  private AnnotationExpression value;
+
+  @Override
+  public AnnotationExpression getValue() {
+    return value;
+  }
+
+  public void setValue(final AnnotationExpression value) {
+    this.value = value;
+  }
+
+  static class UrlRefDeserializer extends AbstractClientEdmDeserializer<ClientUrlRef> {
+    @Override
+    protected ClientUrlRef doDeserialize(final JsonParser jp, final DeserializationContext ctxt)
+            throws IOException {
+      final ClientUrlRef urlref = new ClientUrlRef();
+      for (; jp.getCurrentToken() != JsonToken.END_OBJECT; jp.nextToken()) {
+        final JsonToken token = jp.getCurrentToken();
+        if (token == JsonToken.FIELD_NAME) {
+          if (isAnnotationConstExprConstruct(jp)) {
+            urlref.setValue(parseAnnotationConstExprConstruct(jp));
+          } else {
+            urlref.setValue(jp.readValueAs(AbstractClientDynamicAnnotationExpression.class));
+          }
+        }
+      }
+      return urlref;
+    }
+  }
+}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/cbbe3da6/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/ClientXMLMetadata.java
----------------------------------------------------------------------
diff --git a/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/ClientXMLMetadata.java b/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/ClientXMLMetadata.java
deleted file mode 100644
index 680e622..0000000
--- a/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/ClientXMLMetadata.java
+++ /dev/null
@@ -1,75 +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.client.core.edm.xml;
-
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
-
-import org.apache.commons.lang3.StringUtils;
-import org.apache.olingo.client.api.edm.xml.Edmx;
-import org.apache.olingo.client.api.edm.xml.Reference;
-import org.apache.olingo.client.api.edm.xml.XMLMetadata;
-import org.apache.olingo.commons.api.edm.provider.AbstractEdmItem;
-import org.apache.olingo.commons.api.edm.provider.Schema;
-
-/**
- * Entry point for access information about EDM metadata.
- */
-public class ClientXMLMetadata extends AbstractEdmItem implements XMLMetadata {
-
-  private static final long serialVersionUID = 6025723060298454901L;
-  protected final Edmx edmx;
-
-  public ClientXMLMetadata(final Edmx edmx) {
-    this.edmx = edmx;
-  }
-
-  @Override
-  public List<Schema> getSchemas() {
-    return this.edmx.getDataServices().getSchemas();
-  }
-
-  @Override
-  public Schema getSchema(final int index) {
-    return getSchemas().get(index);
-  }
-
-  @Override
-  public Schema getSchema(final String key) {
-    return getSchemaByNsOrAlias().get(key);
-  }
-
-  @Override
-  public Map<String, Schema> getSchemaByNsOrAlias() {
-    final Map<String, Schema> schemaByNsOrAlias = new HashMap<String, Schema>();
-    for (Schema schema : getSchemas()) {
-      schemaByNsOrAlias.put(schema.getNamespace(), schema);
-      if (StringUtils.isNotBlank(schema.getAlias())) {
-        schemaByNsOrAlias.put(schema.getAlias(), schema);
-      }
-    }
-    return schemaByNsOrAlias;
-  }
-
-  @Override
-  public List<Reference> getReferences() {
-    return this.edmx.getReferences();
-  }
-}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/cbbe3da6/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/annotation/AbstractClientAnnotatableDynamicAnnotationExpression.java
----------------------------------------------------------------------
diff --git a/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/annotation/AbstractClientAnnotatableDynamicAnnotationExpression.java b/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/annotation/AbstractClientAnnotatableDynamicAnnotationExpression.java
deleted file mode 100644
index 2f020c7..0000000
--- a/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/annotation/AbstractClientAnnotatableDynamicAnnotationExpression.java
+++ /dev/null
@@ -1,38 +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.client.core.edm.xml.annotation;
-
-import java.util.ArrayList;
-import java.util.List;
-
-import org.apache.olingo.commons.api.edm.provider.Annotatable;
-import org.apache.olingo.commons.api.edm.provider.Annotation;
-
-abstract class AbstractClientAnnotatableDynamicAnnotationExpression
-        extends AbstractClientDynamicAnnotationExpression implements Annotatable {
-
-  private static final long serialVersionUID = -450668773857358139L;
-
-  private final List<Annotation> annotations = new ArrayList<Annotation>();
-
-  @Override
-  public List<Annotation> getAnnotations() {
-    return annotations;
-  }
-}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/cbbe3da6/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/annotation/AbstractClientAnnotationExpression.java
----------------------------------------------------------------------
diff --git a/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/annotation/AbstractClientAnnotationExpression.java b/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/annotation/AbstractClientAnnotationExpression.java
deleted file mode 100644
index 18761be..0000000
--- a/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/annotation/AbstractClientAnnotationExpression.java
+++ /dev/null
@@ -1,49 +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.client.core.edm.xml.annotation;
-
-import org.apache.olingo.commons.api.edm.provider.AbstractEdmItem;
-import org.apache.olingo.commons.api.edm.provider.annotation.AnnotationExpression;
-import org.apache.olingo.commons.api.edm.provider.annotation.ConstantAnnotationExpression;
-import org.apache.olingo.commons.api.edm.provider.annotation.DynamicAnnotationExpression;
-
-public abstract class AbstractClientAnnotationExpression extends AbstractEdmItem implements AnnotationExpression {
-
-  private static final long serialVersionUID = -4238652997159205377L;
-
-  @Override
-  public boolean isConstant() {
-    return this instanceof ConstantAnnotationExpression;
-  }
-
-  @Override
-  public ConstantAnnotationExpression asConstant() {
-    return isConstant() ? (ConstantAnnotationExpression) this : null;
-  }
-
-  @Override
-  public boolean isDynamic() {
-    return this instanceof DynamicAnnotationExpression;
-  }
-
-  @Override
-  public DynamicAnnotationExpression asDynamic() {
-    return isDynamic() ? (DynamicAnnotationExpression) this : null;
-  }
-}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/cbbe3da6/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/annotation/AbstractClientDynamicAnnotationExpression.java
----------------------------------------------------------------------
diff --git a/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/annotation/AbstractClientDynamicAnnotationExpression.java b/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/annotation/AbstractClientDynamicAnnotationExpression.java
deleted file mode 100644
index 82e2d9f..0000000
--- a/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/annotation/AbstractClientDynamicAnnotationExpression.java
+++ /dev/null
@@ -1,357 +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.client.core.edm.xml.annotation;
-
-import com.fasterxml.jackson.core.JsonLocation;
-import com.fasterxml.jackson.core.JsonParseException;
-import com.fasterxml.jackson.core.JsonParser;
-import com.fasterxml.jackson.core.JsonToken;
-import com.fasterxml.jackson.databind.DeserializationContext;
-import org.apache.commons.lang3.ArrayUtils;
-import org.apache.commons.lang3.ClassUtils;
-import org.apache.olingo.client.core.edm.xml.AbstractClientEdmDeserializer;
-import org.apache.olingo.commons.api.edm.provider.annotation.AnnotationPath;
-import org.apache.olingo.commons.api.edm.provider.annotation.Apply;
-import org.apache.olingo.commons.api.edm.provider.annotation.Cast;
-import org.apache.olingo.commons.api.edm.provider.annotation.Collection;
-import org.apache.olingo.commons.api.edm.provider.annotation.DynamicAnnotationExpression;
-import org.apache.olingo.commons.api.edm.provider.annotation.If;
-import org.apache.olingo.commons.api.edm.provider.annotation.IsOf;
-import org.apache.olingo.commons.api.edm.provider.annotation.LabeledElement;
-import org.apache.olingo.commons.api.edm.provider.annotation.LabeledElementReference;
-import org.apache.olingo.commons.api.edm.provider.annotation.NavigationPropertyPath;
-import org.apache.olingo.commons.api.edm.provider.annotation.Not;
-import org.apache.olingo.commons.api.edm.provider.annotation.Null;
-import org.apache.olingo.commons.api.edm.provider.annotation.Path;
-import org.apache.olingo.commons.api.edm.provider.annotation.PropertyPath;
-import org.apache.olingo.commons.api.edm.provider.annotation.PropertyValue;
-import org.apache.olingo.commons.api.edm.provider.annotation.Record;
-import org.apache.olingo.commons.api.edm.provider.annotation.TwoParamsOpDynamicAnnotationExpression;
-import org.apache.olingo.commons.api.edm.provider.annotation.UrlRef;
-
-import com.fasterxml.jackson.databind.annotation.JsonDeserialize;
-
-import java.io.IOException;
-
-@JsonDeserialize(using = AbstractClientDynamicAnnotationExpression.DynamicAnnotationExpressionDeserializer.class)
-public abstract class AbstractClientDynamicAnnotationExpression
-        extends AbstractClientAnnotationExpression implements DynamicAnnotationExpression {
-
-  private static final long serialVersionUID = 1093411847477874348L;
-
-  @Override
-  public boolean isNot() {
-    return this instanceof Not;
-  }
-
-  @Override
-  public Not asNot() {
-    return isNot() ? (Not) this : null;
-
-  }
-
-  @Override
-  public boolean isTwoParamsOp() {
-    return this instanceof TwoParamsOpDynamicAnnotationExpression;
-  }
-
-  @Override
-  public TwoParamsOpDynamicAnnotationExpression asTwoParamsOp() {
-    return isTwoParamsOp() ? (TwoParamsOpDynamicAnnotationExpression) this : null;
-  }
-
-  @Override
-  public boolean isAnnotationPath() {
-    return this instanceof AnnotationPath;
-  }
-
-  @Override
-  public AnnotationPath asAnnotationPath() {
-    return isAnnotationPath() ? (AnnotationPath) this : null;
-  }
-
-  @Override
-  public boolean isApply() {
-    return this instanceof Apply;
-  }
-
-  @Override
-  public Apply asApply() {
-    return isApply() ? (Apply) this : null;
-  }
-
-  @Override
-  public boolean isCast() {
-    return this instanceof Cast;
-  }
-
-  @Override
-  public Cast asCast() {
-    return isCast() ? (Cast) this : null;
-  }
-
-  @Override
-  public boolean isCollection() {
-    return this instanceof Collection;
-  }
-
-  @Override
-  public Collection asCollection() {
-    return isCollection() ? (Collection) this : null;
-  }
-
-  @Override
-  public boolean isIf() {
-    return this instanceof If;
-  }
-
-  @Override
-  public If asIf() {
-    return isIf() ? (If) this : null;
-  }
-
-  @Override
-  public boolean isIsOf() {
-    return this instanceof IsOf;
-  }
-
-  @Override
-  public IsOf asIsOf() {
-    return isIsOf() ? (IsOf) this : null;
-  }
-
-  @Override
-  public boolean isLabeledElement() {
-    return this instanceof LabeledElement;
-  }
-
-  @Override
-  public LabeledElement asLabeledElement() {
-    return isLabeledElement() ? (LabeledElement) this : null;
-  }
-
-  @Override
-  public boolean isLabeledElementReference() {
-    return this instanceof LabeledElementReference;
-  }
-
-  @Override
-  public LabeledElementReference asLabeledElementReference() {
-    return isLabeledElementReference() ? (LabeledElementReference) this : null;
-  }
-
-  @Override
-  public boolean isNull() {
-    return this instanceof Null;
-  }
-
-  @Override
-  public Null asNull() {
-    return isNull() ? (Null) this : null;
-  }
-
-  @Override
-  public boolean isNavigationPropertyPath() {
-    return this instanceof NavigationPropertyPath;
-  }
-
-  @Override
-  public NavigationPropertyPath asNavigationPropertyPath() {
-    return isNavigationPropertyPath() ? (NavigationPropertyPath) this : null;
-  }
-
-  @Override
-  public boolean isPath() {
-    return this instanceof Path;
-  }
-
-  @Override
-  public Path asPath() {
-    return isPath() ? (Path) this : null;
-  }
-
-  @Override
-  public boolean isPropertyPath() {
-    return this instanceof PropertyPath;
-  }
-
-  @Override
-  public PropertyPath asPropertyPath() {
-    return isPropertyPath() ? (PropertyPath) this : null;
-  }
-
-  @Override
-  public boolean isPropertyValue() {
-    return this instanceof PropertyValue;
-  }
-
-  @Override
-  public PropertyValue asPropertyValue() {
-    return isPropertyValue() ? (PropertyValue) this : null;
-  }
-
-  @Override
-  public boolean isRecord() {
-    return this instanceof Record;
-  }
-
-  @Override
-  public Record asRecord() {
-    return isRecord() ? (Record) this : null;
-  }
-
-  @Override
-  public boolean isUrlRef() {
-    return this instanceof UrlRef;
-  }
-
-  @Override
-  public UrlRef asUrlRef() {
-    return isUrlRef() ? (UrlRef) this : null;
-  }
-
-  static class DynamicAnnotationExpressionDeserializer
-          extends AbstractClientEdmDeserializer<AbstractClientDynamicAnnotationExpression> {
-
-    private static final String[] EL_OR_ATTR = {
-            AnnotationPath.class.getSimpleName(), NavigationPropertyPath.class.getSimpleName(),
-            Path.class.getSimpleName(), PropertyPath.class.getSimpleName()
-    };
-
-    private static final String APPLY = Apply.class.getSimpleName();
-    private static final String CAST = Cast.class.getSimpleName();
-    private static final String COLLECTION = Collection.class.getSimpleName();
-    private static final String IF = If.class.getSimpleName();
-    private static final String IS_OF = IsOf.class.getSimpleName();
-    private static final String LABELED_ELEMENT = LabeledElement.class.getSimpleName();
-    private static final String NULL = Null.class.getSimpleName();
-    private static final String RECORD = Record.class.getSimpleName();
-    private static final String URL_REF = UrlRef.class.getSimpleName();
-
-    private AbstractClientElementOrAttributeExpression getElementOrAttributeExpression(final String simpleClassName)
-            throws JsonParseException {
-
-      try {
-        @SuppressWarnings("unchecked")
-        Class<? extends AbstractClientElementOrAttributeExpression> elOrAttrClass =
-                (Class<? extends AbstractClientElementOrAttributeExpression>) ClassUtils.getClass(
-                        getClass().getPackage().getName() + ".Client" + simpleClassName);
-        return elOrAttrClass.newInstance();
-      } catch (Exception e) {
-        throw new JsonParseException("Could not instantiate " + simpleClassName, JsonLocation.NA, e);
-      }
-    }
-
-    private AbstractClientAnnotationExpression parseConstOrEnumExpression(final JsonParser jp) throws IOException {
-      AbstractClientAnnotationExpression result;
-      if (isAnnotationConstExprConstruct(jp)) {
-        result = parseAnnotationConstExprConstruct(jp);
-      } else {
-        result = jp.readValueAs(AbstractClientDynamicAnnotationExpression.class);
-      }
-      jp.nextToken();
-
-      return result;
-    }
-
-    @Override
-    protected AbstractClientDynamicAnnotationExpression doDeserialize(final JsonParser jp,
-        final DeserializationContext ctxt) throws IOException {
-
-      AbstractClientDynamicAnnotationExpression expression = null;
-
-      if ("Not".equals(jp.getCurrentName())) {
-        final ClientNot not = new ClientNot();
-
-        jp.nextToken();
-        //Search for field name
-        while (jp.getCurrentToken() != JsonToken.FIELD_NAME) {
-          jp.nextToken();
-        }
-        not.setExpression(jp.readValueAs(AbstractClientDynamicAnnotationExpression.class));
-        //Search for end object
-        while (jp.getCurrentToken() != JsonToken.END_OBJECT || !jp.getCurrentName().equals("Not")) {
-          jp.nextToken();
-        }
-
-        expression = not;
-      } else if (TwoParamsOpDynamicAnnotationExpression.Type.fromString(jp.getCurrentName()) != null) {
-        final ClientTwoParamsOpDynamicAnnotationExpression dynExprDoubleParamOp =
-                new ClientTwoParamsOpDynamicAnnotationExpression();
-        dynExprDoubleParamOp.setType(TwoParamsOpDynamicAnnotationExpression.Type.fromString(jp.getCurrentName()));
-
-        jp.nextToken();
-        //Search for field name
-        while (jp.getCurrentToken() != JsonToken.FIELD_NAME) {
-          jp.nextToken();
-        }
-        dynExprDoubleParamOp.setLeftExpression(jp.readValueAs(AbstractClientDynamicAnnotationExpression.class));
-        dynExprDoubleParamOp.setRightExpression(jp.readValueAs(AbstractClientDynamicAnnotationExpression.class));
-        //Search for expression
-        while (jp.getCurrentToken() != JsonToken.END_OBJECT || !jp.getCurrentName().equals(dynExprDoubleParamOp
-                .getType().name())) {
-          jp.nextToken();
-        }
-
-        expression = dynExprDoubleParamOp;
-      } else if (ArrayUtils.contains(EL_OR_ATTR, jp.getCurrentName())) {
-        final AbstractClientElementOrAttributeExpression elOrAttr =
-            getElementOrAttributeExpression(jp.getCurrentName());
-        elOrAttr.setValue(jp.nextTextValue());
-        expression = elOrAttr;
-      } else if (APPLY.equals(jp.getCurrentName())) {
-        jp.nextToken();
-        expression = jp.readValueAs(ClientApply.class);
-      } else if (CAST.equals(jp.getCurrentName())) {
-        jp.nextToken();
-        expression = jp.readValueAs(ClientCast.class);
-      } else if (COLLECTION.equals(jp.getCurrentName())) {
-        jp.nextToken();
-        expression = jp.readValueAs(ClientCollection.class);
-      } else if (IF.equals(jp.getCurrentName())) {
-        jp.nextToken();
-        jp.nextToken();
-
-        final ClientIf ifImpl = new ClientIf();
-        ifImpl.setGuard(parseConstOrEnumExpression(jp));
-        ifImpl.setThen(parseConstOrEnumExpression(jp));
-        ifImpl.setElse(parseConstOrEnumExpression(jp));
-
-        expression = ifImpl;
-      } else if (IS_OF.equals(jp.getCurrentName())) {
-        jp.nextToken();
-        expression = jp.readValueAs(ClientIsOf.class);
-      } else if (LABELED_ELEMENT.equals(jp.getCurrentName())) {
-        jp.nextToken();
-        expression = jp.readValueAs(ClientLabeledElement.class);
-      } else if (NULL.equals(jp.getCurrentName())) {
-        jp.nextToken();
-        expression = jp.readValueAs(ClientNull.class);
-      } else if (RECORD.equals(jp.getCurrentName())) {
-        jp.nextToken();
-        expression = jp.readValueAs(ClientRecord.class);
-      } else if (URL_REF.equals(jp.getCurrentName())) {
-        jp.nextToken();
-        expression = jp.readValueAs(ClientUrlRef.class);
-      }
-
-      return expression;
-    }
-  }
-}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/cbbe3da6/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/annotation/AbstractClientElementOrAttributeExpression.java
----------------------------------------------------------------------
diff --git a/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/annotation/AbstractClientElementOrAttributeExpression.java b/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/annotation/AbstractClientElementOrAttributeExpression.java
deleted file mode 100644
index 34601fd..0000000
--- a/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/annotation/AbstractClientElementOrAttributeExpression.java
+++ /dev/null
@@ -1,37 +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.client.core.edm.xml.annotation;
-
-/**
- * Groups dynamic expressions that may be provided using element notation or attribute notation.
- */
-abstract class AbstractClientElementOrAttributeExpression extends AbstractClientDynamicAnnotationExpression {
-
-  private static final long serialVersionUID = 1588336268773032932L;
-
-  private String value;
-
-  public String getValue() {
-    return value;
-  }
-
-  public void setValue(final String value) {
-    this.value = value;
-  }
-}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/cbbe3da6/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/annotation/ClientAnnotationPath.java
----------------------------------------------------------------------
diff --git a/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/annotation/ClientAnnotationPath.java b/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/annotation/ClientAnnotationPath.java
deleted file mode 100644
index 1787708..0000000
--- a/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/annotation/ClientAnnotationPath.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.client.core.edm.xml.annotation;
-
-import org.apache.olingo.commons.api.edm.provider.annotation.AnnotationPath;
-
-public class ClientAnnotationPath extends AbstractClientElementOrAttributeExpression implements AnnotationPath {
-
-  private static final long serialVersionUID = 5360735207353494466L;
-
-}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/cbbe3da6/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/annotation/ClientApply.java
----------------------------------------------------------------------
diff --git a/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/annotation/ClientApply.java b/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/annotation/ClientApply.java
deleted file mode 100644
index c731036..0000000
--- a/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/annotation/ClientApply.java
+++ /dev/null
@@ -1,82 +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.client.core.edm.xml.annotation;
-
-import java.io.IOException;
-import java.util.ArrayList;
-import java.util.List;
-
-import com.fasterxml.jackson.core.JsonParser;
-import com.fasterxml.jackson.core.JsonToken;
-import com.fasterxml.jackson.databind.DeserializationContext;
-import org.apache.olingo.client.core.edm.xml.AbstractClientEdmDeserializer;
-import org.apache.olingo.client.core.edm.xml.ClientAnnotation;
-import org.apache.olingo.commons.api.edm.provider.annotation.AnnotationExpression;
-import org.apache.olingo.commons.api.edm.provider.annotation.Apply;
-
-import com.fasterxml.jackson.databind.annotation.JsonDeserialize;
-
-@JsonDeserialize(using = ClientApply.ApplyDeserializer.class)
-public class ClientApply extends AbstractClientAnnotatableDynamicAnnotationExpression implements Apply {
-
-  private static final long serialVersionUID = 4358398303405059879L;
-
-  private String function;
-
-  private final List<AnnotationExpression> parameters = new ArrayList<AnnotationExpression>();
-
-  @Override
-  public String getFunction() {
-    return function;
-  }
-
-  public void setFunction(final String function) {
-    this.function = function;
-  }
-
-  @Override
-  public List<AnnotationExpression> getParameters() {
-    return parameters;
-  }
-
-  static class ApplyDeserializer extends AbstractClientEdmDeserializer<ClientApply> {
-
-    @Override
-    protected ClientApply doDeserialize(final JsonParser jp, final DeserializationContext ctxt)
-            throws IOException {
-      final ClientApply apply = new ClientApply();
-      for (; jp.getCurrentToken() != JsonToken.END_OBJECT; jp.nextToken()) {
-        final JsonToken token = jp.getCurrentToken();
-        if (token == JsonToken.FIELD_NAME) {
-          if ("Function".equals(jp.getCurrentName())) {
-            apply.setFunction(jp.nextTextValue());
-          } else if ("Annotation".equals(jp.getCurrentName())) {
-            apply.getAnnotations().add(jp.readValueAs(ClientAnnotation.class));
-          } else if (isAnnotationConstExprConstruct(jp)) {
-            apply.getParameters().add(parseAnnotationConstExprConstruct(jp));
-          } else {
-            apply.getParameters().add(jp.readValueAs(AbstractClientDynamicAnnotationExpression.class));
-          }
-        }
-      }
-
-      return apply;
-    }
-  }
-}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/cbbe3da6/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/annotation/ClientCast.java
----------------------------------------------------------------------
diff --git a/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/annotation/ClientCast.java b/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/annotation/ClientCast.java
deleted file mode 100644
index f8eb827..0000000
--- a/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/annotation/ClientCast.java
+++ /dev/null
@@ -1,139 +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.client.core.edm.xml.annotation;
-
-import com.fasterxml.jackson.core.JsonParser;
-import com.fasterxml.jackson.core.JsonToken;
-import com.fasterxml.jackson.databind.DeserializationContext;
-import org.apache.olingo.client.core.edm.xml.AbstractClientEdmDeserializer;
-import org.apache.olingo.client.core.edm.xml.ClientAnnotation;
-import org.apache.olingo.commons.api.edm.geo.SRID;
-import org.apache.olingo.commons.api.edm.provider.annotation.Cast;
-import org.apache.olingo.commons.api.edm.provider.annotation.DynamicAnnotationExpression;
-
-import com.fasterxml.jackson.databind.annotation.JsonDeserialize;
-
-import java.io.IOException;
-
-@JsonDeserialize(using = ClientCast.CastDeserializer.class)
-public class ClientCast extends AbstractClientAnnotatableDynamicAnnotationExpression implements Cast {
-
-  private static final long serialVersionUID = 3312415984116005313L;
-
-  private String type;
-
-  private Integer maxLength;
-
-  private Integer precision;
-
-  private Integer scale;
-
-  private SRID srid;
-
-  private DynamicAnnotationExpression value;
-
-  @Override
-  public String getType() {
-    return type;
-  }
-
-  public void setType(final String type) {
-    this.type = type;
-  }
-
-  @Override
-  public Integer getMaxLength() {
-    return maxLength;
-  }
-
-  public void setMaxLength(final Integer maxLength) {
-    this.maxLength = maxLength;
-  }
-
-  @Override
-  public Integer getPrecision() {
-    return precision;
-  }
-
-  public void setPrecision(final Integer precision) {
-    this.precision = precision;
-  }
-
-  @Override
-  public Integer getScale() {
-    return scale;
-  }
-
-  public void setScale(final Integer scale) {
-    this.scale = scale;
-  }
-
-  @Override
-  public SRID getSrid() {
-    return srid;
-  }
-
-  public void setSrid(final SRID srid) {
-    this.srid = srid;
-  }
-
-  @Override
-  public DynamicAnnotationExpression getValue() {
-    return value;
-  }
-
-  public void setValue(final DynamicAnnotationExpression value) {
-    this.value = value;
-  }
-
-  static class CastDeserializer extends AbstractClientEdmDeserializer<ClientCast> {
-
-    @Override
-    protected ClientCast doDeserialize(final JsonParser jp, final DeserializationContext ctxt)
-            throws IOException {
-      final ClientCast cast = new ClientCast();
-      for (; jp.getCurrentToken() != JsonToken.END_OBJECT; jp.nextToken()) {
-        final JsonToken token = jp.getCurrentToken();
-        if (token == JsonToken.FIELD_NAME) {
-          if ("Type".equals(jp.getCurrentName())) {
-            cast.setType(jp.nextTextValue());
-          } else if ("Annotation".equals(jp.getCurrentName())) {
-            cast.getAnnotations().add(jp.readValueAs(ClientAnnotation.class));
-          } else if ("MaxLength".equals(jp.getCurrentName())) {
-            final String maxLenght = jp.nextTextValue();
-            cast.setMaxLength(maxLenght.equalsIgnoreCase("max") ? Integer.MAX_VALUE : Integer.valueOf(maxLenght));
-          } else if ("Precision".equals(jp.getCurrentName())) {
-            cast.setPrecision(Integer.valueOf(jp.nextTextValue()));
-          } else if ("Scale".equals(jp.getCurrentName())) {
-            final String scale = jp.nextTextValue();
-            cast.setScale(scale.equalsIgnoreCase("variable") ? 0 : Integer.valueOf(scale));
-          } else if ("SRID".equals(jp.getCurrentName())) {
-            final String srid = jp.nextTextValue();
-            if (srid != null) {
-              cast.setSrid(SRID.valueOf(srid));
-            }
-          } else {
-            cast.setValue(jp.readValueAs(AbstractClientDynamicAnnotationExpression.class));
-          }
-        }
-      }
-      return cast;
-    }
-  }
-}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/cbbe3da6/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/annotation/ClientCollection.java
----------------------------------------------------------------------
diff --git a/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/annotation/ClientCollection.java b/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/annotation/ClientCollection.java
deleted file mode 100644
index 83419a3..0000000
--- a/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/annotation/ClientCollection.java
+++ /dev/null
@@ -1,65 +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.client.core.edm.xml.annotation;
-
-import java.io.IOException;
-import java.util.ArrayList;
-import java.util.List;
-
-import com.fasterxml.jackson.core.JsonParser;
-import com.fasterxml.jackson.core.JsonToken;
-import com.fasterxml.jackson.databind.DeserializationContext;
-import org.apache.olingo.client.core.edm.xml.AbstractClientEdmDeserializer;
-import org.apache.olingo.commons.api.edm.provider.annotation.AnnotationExpression;
-import org.apache.olingo.commons.api.edm.provider.annotation.Collection;
-
-import com.fasterxml.jackson.databind.annotation.JsonDeserialize;
-
-@JsonDeserialize(using = ClientCollection.CollectionDeserializer.class)
-public class ClientCollection extends AbstractClientDynamicAnnotationExpression implements Collection {
-
-  private static final long serialVersionUID = -724749123749715643L;
-
-  private final List<AnnotationExpression> items = new ArrayList<AnnotationExpression>();
-
-  @Override
-  public List<AnnotationExpression> getItems() {
-    return items;
-  }
-
-  static class CollectionDeserializer extends AbstractClientEdmDeserializer<ClientCollection> {
-    @Override
-    protected ClientCollection doDeserialize(final JsonParser jp, final DeserializationContext ctxt)
-            throws IOException {
-      final ClientCollection collection = new ClientCollection();
-      for (; jp.getCurrentToken() != JsonToken.END_OBJECT; jp.nextToken()) {
-        final JsonToken token = jp.getCurrentToken();
-        if (token == JsonToken.FIELD_NAME) {
-          if (isAnnotationConstExprConstruct(jp)) {
-            collection.getItems().add(parseAnnotationConstExprConstruct(jp));
-          } else {
-            collection.getItems().add(jp.readValueAs(AbstractClientDynamicAnnotationExpression.class));
-          }
-        }
-      }
-
-      return collection;
-    }
-  }
-}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/cbbe3da6/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/annotation/ClientConstantAnnotationExpression.java
----------------------------------------------------------------------
diff --git a/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/annotation/ClientConstantAnnotationExpression.java b/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/annotation/ClientConstantAnnotationExpression.java
deleted file mode 100644
index 13d9e72..0000000
--- a/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/annotation/ClientConstantAnnotationExpression.java
+++ /dev/null
@@ -1,52 +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.client.core.edm.xml.annotation;
-
-import org.apache.olingo.commons.api.edm.provider.annotation.ConstantAnnotationExpression;
-
-public class ClientConstantAnnotationExpression
-        extends AbstractClientAnnotationExpression implements ConstantAnnotationExpression {
-
-  private static final long serialVersionUID = 5618680702707972904L;
-
-  private Type type;
-
-  private String value;
-
-  @Override
-  public Type getType() {
-    return type;
-  }
-
-  @Override
-  public void setType(final Type type) {
-    this.type = type;
-  }
-
-  @Override
-  public String getValue() {
-    return value;
-  }
-
-  @Override
-  public void setValue(final String value) {
-    this.value = value;
-  }
-
-}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/cbbe3da6/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/annotation/ClientIf.java
----------------------------------------------------------------------
diff --git a/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/annotation/ClientIf.java b/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/annotation/ClientIf.java
deleted file mode 100644
index 4795f14..0000000
--- a/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/annotation/ClientIf.java
+++ /dev/null
@@ -1,61 +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.client.core.edm.xml.annotation;
-
-import org.apache.olingo.commons.api.edm.provider.annotation.AnnotationExpression;
-import org.apache.olingo.commons.api.edm.provider.annotation.If;
-
-public class ClientIf extends AbstractClientAnnotatableDynamicAnnotationExpression implements If {
-
-  private static final long serialVersionUID = -8571383625077590656L;
-
-  private AnnotationExpression guard;
-
-  private AnnotationExpression _then;
-
-  private AnnotationExpression _else;
-
-  @Override
-  public AnnotationExpression getGuard() {
-    return guard;
-  }
-
-  public void setGuard(final AnnotationExpression guard) {
-    this.guard = guard;
-  }
-
-  @Override
-  public AnnotationExpression getThen() {
-    return _then;
-  }
-
-  public void setThen(final AnnotationExpression _then) {
-    this._then = _then;
-  }
-
-  @Override
-  public AnnotationExpression getElse() {
-    return _else;
-  }
-
-  public void setElse(final AnnotationExpression _else) {
-    this._else = _else;
-  }
-
-}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/cbbe3da6/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/annotation/ClientIsOf.java
----------------------------------------------------------------------
diff --git a/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/annotation/ClientIsOf.java b/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/annotation/ClientIsOf.java
deleted file mode 100644
index ed13dbc..0000000
--- a/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/annotation/ClientIsOf.java
+++ /dev/null
@@ -1,138 +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.client.core.edm.xml.annotation;
-
-import com.fasterxml.jackson.core.JsonParser;
-import com.fasterxml.jackson.core.JsonToken;
-import com.fasterxml.jackson.databind.DeserializationContext;
-import org.apache.olingo.client.core.edm.xml.AbstractClientEdmDeserializer;
-import org.apache.olingo.client.core.edm.xml.ClientAnnotation;
-import org.apache.olingo.commons.api.edm.geo.SRID;
-import org.apache.olingo.commons.api.edm.provider.annotation.DynamicAnnotationExpression;
-import org.apache.olingo.commons.api.edm.provider.annotation.IsOf;
-
-import com.fasterxml.jackson.databind.annotation.JsonDeserialize;
-
-import java.io.IOException;
-
-@JsonDeserialize(using = ClientIsOf.IsOfDeserializer.class)
-public class ClientIsOf extends AbstractClientAnnotatableDynamicAnnotationExpression implements IsOf {
-
-  private static final long serialVersionUID = -893355856129761174L;
-
-  private String type;
-
-  private Integer maxLength;
-
-  private Integer precision;
-
-  private Integer scale;
-
-  private SRID srid;
-
-  private DynamicAnnotationExpression value;
-
-  @Override
-  public String getType() {
-    return type;
-  }
-
-  public void setType(final String type) {
-    this.type = type;
-  }
-
-  @Override
-  public Integer getMaxLength() {
-    return maxLength;
-  }
-
-  public void setMaxLength(final Integer maxLength) {
-    this.maxLength = maxLength;
-  }
-
-  @Override
-  public Integer getPrecision() {
-    return precision;
-  }
-
-  public void setPrecision(final Integer precision) {
-    this.precision = precision;
-  }
-
-  @Override
-  public Integer getScale() {
-    return scale;
-  }
-
-  public void setScale(final Integer scale) {
-    this.scale = scale;
-  }
-
-  @Override
-  public SRID getSrid() {
-    return srid;
-  }
-
-  public void setSrid(final SRID srid) {
-    this.srid = srid;
-  }
-
-  @Override
-  public DynamicAnnotationExpression getValue() {
-    return value;
-  }
-
-  public void setValue(final DynamicAnnotationExpression value) {
-    this.value = value;
-  }
-
-  static class IsOfDeserializer extends AbstractClientEdmDeserializer<ClientIsOf> {
-    @Override
-    protected ClientIsOf doDeserialize(final JsonParser jp, final DeserializationContext ctxt)
-            throws IOException {
-      final ClientIsOf isof = new ClientIsOf();
-      for (; jp.getCurrentToken() != JsonToken.END_OBJECT; jp.nextToken()) {
-        final JsonToken token = jp.getCurrentToken();
-        if (token == JsonToken.FIELD_NAME) {
-          if ("Type".equals(jp.getCurrentName())) {
-            isof.setType(jp.nextTextValue());
-          } else if ("Annotation".equals(jp.getCurrentName())) {
-            isof.getAnnotations().add(jp.readValueAs(ClientAnnotation.class));
-          } else if ("MaxLength".equals(jp.getCurrentName())) {
-            final String maxLenght = jp.nextTextValue();
-            isof.setMaxLength(maxLenght.equalsIgnoreCase("max") ? Integer.MAX_VALUE : Integer.valueOf(maxLenght));
-          } else if ("Precision".equals(jp.getCurrentName())) {
-            isof.setPrecision(Integer.valueOf(jp.nextTextValue()));
-          } else if ("Scale".equals(jp.getCurrentName())) {
-            final String scale = jp.nextTextValue();
-            isof.setScale(scale.equalsIgnoreCase("variable") ? 0 : Integer.valueOf(scale));
-          } else if ("SRID".equals(jp.getCurrentName())) {
-            final String srid = jp.nextTextValue();
-            if (srid != null) {
-              isof.setSrid(SRID.valueOf(srid));
-            }
-          } else {
-            isof.setValue(jp.readValueAs(AbstractClientDynamicAnnotationExpression.class));
-          }
-        }
-      }
-      return isof;
-    }
-  }
-}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/cbbe3da6/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/annotation/ClientLabeledElement.java
----------------------------------------------------------------------
diff --git a/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/annotation/ClientLabeledElement.java b/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/annotation/ClientLabeledElement.java
deleted file mode 100644
index 3273585..0000000
--- a/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/annotation/ClientLabeledElement.java
+++ /dev/null
@@ -1,81 +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.client.core.edm.xml.annotation;
-
-import com.fasterxml.jackson.core.JsonParser;
-import com.fasterxml.jackson.core.JsonToken;
-import com.fasterxml.jackson.databind.DeserializationContext;
-import org.apache.olingo.client.core.edm.xml.AbstractClientEdmDeserializer;
-import org.apache.olingo.client.core.edm.xml.ClientAnnotation;
-import org.apache.olingo.commons.api.edm.provider.annotation.DynamicAnnotationExpression;
-import org.apache.olingo.commons.api.edm.provider.annotation.LabeledElement;
-
-import com.fasterxml.jackson.databind.annotation.JsonDeserialize;
-
-import java.io.IOException;
-
-@JsonDeserialize(using = ClientLabeledElement.LabeledElementDeserializer.class)
-public class ClientLabeledElement
-        extends AbstractClientAnnotatableDynamicAnnotationExpression implements LabeledElement {
-
-  private static final long serialVersionUID = 4909387630253341824L;
-
-  private String name;
-
-  private DynamicAnnotationExpression value;
-
-  @Override
-  public String getName() {
-    return name;
-  }
-
-  public void setName(final String name) {
-    this.name = name;
-  }
-
-  @Override
-  public DynamicAnnotationExpression getValue() {
-    return value;
-  }
-
-  public void setValue(final DynamicAnnotationExpression value) {
-    this.value = value;
-  }
-
-  static class LabeledElementDeserializer extends AbstractClientEdmDeserializer<ClientLabeledElement> {
-    @Override
-    protected ClientLabeledElement doDeserialize(final JsonParser jp, final DeserializationContext ctxt)
-            throws IOException {
-      final ClientLabeledElement element = new ClientLabeledElement();
-      for (; jp.getCurrentToken() != JsonToken.END_OBJECT; jp.nextToken()) {
-        final JsonToken token = jp.getCurrentToken();
-        if (token == JsonToken.FIELD_NAME) {
-          if ("Name".equals(jp.getCurrentName())) {
-            element.setName(jp.nextTextValue());
-          } else if ("Annotation".equals(jp.getCurrentName())) {
-            element.getAnnotations().add(jp.readValueAs(ClientAnnotation.class));
-          } else {
-            element.setValue(jp.readValueAs(AbstractClientDynamicAnnotationExpression.class));
-          }
-        }
-      }
-      return element;
-    }
-  }
-}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/cbbe3da6/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/annotation/ClientLabeledElementReference.java
----------------------------------------------------------------------
diff --git a/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/annotation/ClientLabeledElementReference.java b/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/annotation/ClientLabeledElementReference.java
deleted file mode 100644
index fd19270..0000000
--- a/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/annotation/ClientLabeledElementReference.java
+++ /dev/null
@@ -1,28 +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.client.core.edm.xml.annotation;
-
-import org.apache.olingo.commons.api.edm.provider.annotation.LabeledElementReference;
-
-public class ClientLabeledElementReference
-        extends AbstractClientElementOrAttributeExpression implements LabeledElementReference {
-
-  private static final long serialVersionUID = 7560525604021670529L;
-
-}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/cbbe3da6/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/annotation/ClientNavigationPropertyPath.java
----------------------------------------------------------------------
diff --git a/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/annotation/ClientNavigationPropertyPath.java b/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/annotation/ClientNavigationPropertyPath.java
deleted file mode 100644
index b7be32e..0000000
--- a/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/annotation/ClientNavigationPropertyPath.java
+++ /dev/null
@@ -1,28 +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.client.core.edm.xml.annotation;
-
-import org.apache.olingo.commons.api.edm.provider.annotation.NavigationPropertyPath;
-
-public class ClientNavigationPropertyPath extends AbstractClientElementOrAttributeExpression
-    implements NavigationPropertyPath {
-
-  private static final long serialVersionUID = 879840502446301312L;
-
-}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/cbbe3da6/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/annotation/ClientNot.java
----------------------------------------------------------------------
diff --git a/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/annotation/ClientNot.java b/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/annotation/ClientNot.java
deleted file mode 100644
index a85c052..0000000
--- a/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/annotation/ClientNot.java
+++ /dev/null
@@ -1,39 +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.client.core.edm.xml.annotation;
-
-import org.apache.olingo.commons.api.edm.provider.annotation.DynamicAnnotationExpression;
-import org.apache.olingo.commons.api.edm.provider.annotation.Not;
-
-public class ClientNot extends AbstractClientDynamicAnnotationExpression implements Not {
-
-  private static final long serialVersionUID = -437788415922966812L;
-
-  private DynamicAnnotationExpression expression;
-
-  @Override
-  public DynamicAnnotationExpression getExpression() {
-    return expression;
-  }
-
-  public void setExpression(final DynamicAnnotationExpression expression) {
-    this.expression = expression;
-  }
-
-}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/cbbe3da6/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/annotation/ClientNull.java
----------------------------------------------------------------------
diff --git a/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/annotation/ClientNull.java b/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/annotation/ClientNull.java
deleted file mode 100644
index d8d5de1..0000000
--- a/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/annotation/ClientNull.java
+++ /dev/null
@@ -1,53 +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.client.core.edm.xml.annotation;
-
-import com.fasterxml.jackson.core.JsonParser;
-import com.fasterxml.jackson.core.JsonToken;
-import com.fasterxml.jackson.databind.DeserializationContext;
-import org.apache.olingo.client.core.edm.xml.AbstractClientEdmDeserializer;
-import org.apache.olingo.client.core.edm.xml.ClientAnnotation;
-import org.apache.olingo.commons.api.edm.provider.annotation.Null;
-
-import com.fasterxml.jackson.databind.annotation.JsonDeserialize;
-
-import java.io.IOException;
-
-@JsonDeserialize(using = ClientNull.NullDeserializer.class)
-public class ClientNull extends AbstractClientAnnotatableDynamicAnnotationExpression implements Null {
-
-  private static final long serialVersionUID = -3148516847180393142L;
-
-  static class NullDeserializer extends AbstractClientEdmDeserializer<ClientNull> {
-    @Override
-    protected ClientNull doDeserialize(final JsonParser jp, final DeserializationContext ctxt)
-            throws IOException {
-      final ClientNull _null = new ClientNull();
-      for (; jp.getCurrentToken() != JsonToken.END_OBJECT; jp.nextToken()) {
-        final JsonToken token = jp.getCurrentToken();
-        if (token == JsonToken.FIELD_NAME) {
-          if ("Annotation".equals(jp.getCurrentName())) {
-            _null.getAnnotations().add(jp.readValueAs(ClientAnnotation.class));
-          }
-        }
-      }
-      return _null;
-    }
-  }
-}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/cbbe3da6/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/annotation/ClientPath.java
----------------------------------------------------------------------
diff --git a/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/annotation/ClientPath.java b/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/annotation/ClientPath.java
deleted file mode 100644
index 6dd5518..0000000
--- a/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/annotation/ClientPath.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.client.core.edm.xml.annotation;
-
-import org.apache.olingo.commons.api.edm.provider.annotation.Path;
-
-public class ClientPath extends AbstractClientElementOrAttributeExpression implements Path {
-
-  private static final long serialVersionUID = 6020168217561402545L;
-
-}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/cbbe3da6/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/annotation/ClientPropertyPath.java
----------------------------------------------------------------------
diff --git a/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/annotation/ClientPropertyPath.java b/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/annotation/ClientPropertyPath.java
deleted file mode 100644
index e4804fe..0000000
--- a/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/annotation/ClientPropertyPath.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.client.core.edm.xml.annotation;
-
-import org.apache.olingo.commons.api.edm.provider.annotation.PropertyPath;
-
-public class ClientPropertyPath extends AbstractClientElementOrAttributeExpression implements PropertyPath {
-
-  private static final long serialVersionUID = -9133862135834738470L;
-
-}


[36/50] [abbrv] olingo-odata4 git commit: [OLINGO-564] Renamed 'OData*' to 'Client*' classes

Posted by mi...@apache.org.
http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/c37d4da5/fit/src/test/java/org/apache/olingo/fit/tecsvc/client/OrderBySystemQueryITCase.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/tecsvc/client/OrderBySystemQueryITCase.java b/fit/src/test/java/org/apache/olingo/fit/tecsvc/client/OrderBySystemQueryITCase.java
index e55a9f1..629f856 100644
--- a/fit/src/test/java/org/apache/olingo/fit/tecsvc/client/OrderBySystemQueryITCase.java
+++ b/fit/src/test/java/org/apache/olingo/fit/tecsvc/client/OrderBySystemQueryITCase.java
@@ -27,9 +27,9 @@ import org.apache.olingo.client.api.communication.ODataClientErrorException;
 import org.apache.olingo.client.api.communication.request.retrieve.ODataEntitySetRequest;
 import org.apache.olingo.client.api.communication.response.ODataRetrieveResponse;
 import org.apache.olingo.client.core.ODataClientFactory;
-import org.apache.olingo.commons.api.domain.ODataEntity;
-import org.apache.olingo.commons.api.domain.ODataEntitySet;
-import org.apache.olingo.commons.api.domain.ODataValuable;
+import org.apache.olingo.commons.api.domain.ClientEntity;
+import org.apache.olingo.commons.api.domain.ClientEntitySet;
+import org.apache.olingo.commons.api.domain.ClientValuable;
 import org.apache.olingo.commons.api.format.ODataFormat;
 import org.apache.olingo.commons.api.http.HttpStatusCode;
 import org.apache.olingo.fit.AbstractBaseTestITCase;
@@ -47,97 +47,98 @@ public class OrderBySystemQueryITCase extends AbstractBaseTestITCase {
 
   @AfterClass
   public static void tearDownAfterClass() throws Exception {
-    //no teardown needed
+    // no teardown needed
   }
 
   @Test
   public void testSimpleOrderBy() {
-    ODataRetrieveResponse<ODataEntitySet> response = null;
+    ODataRetrieveResponse<ClientEntitySet> response = null;
 
     response = sendRequest(ES_ALL_PRIM, "PropertyDate");
     assertEquals(3, response.getBody().getEntities().size());
 
-    ODataEntity oDataEntity = response.getBody().getEntities().get(0);
-    assertEquals("0", ((ODataValuable) oDataEntity.getProperty("PropertyInt16")).getValue().toString());
+    ClientEntity clientEntity = response.getBody().getEntities().get(0);
+    assertEquals("0", ((ClientValuable) clientEntity.getProperty("PropertyInt16")).getValue().toString());
 
-    oDataEntity = response.getBody().getEntities().get(1);
-    assertEquals("32767", ((ODataValuable) oDataEntity.getProperty("PropertyInt16")).getValue().toString());
+    clientEntity = response.getBody().getEntities().get(1);
+    assertEquals("32767", ((ClientValuable) clientEntity.getProperty("PropertyInt16")).getValue().toString());
 
-    oDataEntity = response.getBody().getEntities().get(2);
-    assertEquals("-32768", ((ODataValuable) oDataEntity.getProperty("PropertyInt16")).getValue().toString());
+    clientEntity = response.getBody().getEntities().get(2);
+    assertEquals("-32768", ((ClientValuable) clientEntity.getProperty("PropertyInt16")).getValue().toString());
   }
 
   @Test
   public void testSimpleOrderByDecending() {
-    ODataRetrieveResponse<ODataEntitySet> response = null;
+    ODataRetrieveResponse<ClientEntitySet> response = null;
 
     response = sendRequest(ES_ALL_PRIM, "PropertyDate desc");
     assertEquals(3, response.getBody().getEntities().size());
 
-    ODataEntity oDataEntity = response.getBody().getEntities().get(0);
-    assertEquals("-32768", ((ODataValuable) oDataEntity.getProperty("PropertyInt16")).getValue().toString());
+    ClientEntity clientEntity = response.getBody().getEntities().get(0);
+    assertEquals("-32768", ((ClientValuable) clientEntity.getProperty("PropertyInt16")).getValue().toString());
 
-    oDataEntity = response.getBody().getEntities().get(1);
-    assertEquals("32767", ((ODataValuable) oDataEntity.getProperty("PropertyInt16")).getValue().toString());
+    clientEntity = response.getBody().getEntities().get(1);
+    assertEquals("32767", ((ClientValuable) clientEntity.getProperty("PropertyInt16")).getValue().toString());
 
-    oDataEntity = response.getBody().getEntities().get(2);
-    assertEquals("0", ((ODataValuable) oDataEntity.getProperty("PropertyInt16")).getValue().toString());
+    clientEntity = response.getBody().getEntities().get(2);
+    assertEquals("0", ((ClientValuable) clientEntity.getProperty("PropertyInt16")).getValue().toString());
   }
 
   @Test
   public void testMultipleOrderBy() {
-    final ODataRetrieveResponse<ODataEntitySet> response = sendRequest(ES_ALL_PRIM, "PropertyByte, PropertyInt16");
+    final ODataRetrieveResponse<ClientEntitySet> response = sendRequest(ES_ALL_PRIM, "PropertyByte, PropertyInt16");
     assertEquals(3, response.getBody().getEntities().size());
 
-    ODataEntity oDataEntity = response.getBody().getEntities().get(0);
-    assertEquals("-32768", ((ODataValuable) oDataEntity.getProperty("PropertyInt16")).getValue().toString());
+    ClientEntity clientEntity = response.getBody().getEntities().get(0);
+    assertEquals("-32768", ((ClientValuable) clientEntity.getProperty("PropertyInt16")).getValue().toString());
 
-    oDataEntity = response.getBody().getEntities().get(1);
-    assertEquals("0", ((ODataValuable) oDataEntity.getProperty("PropertyInt16")).getValue().toString());
+    clientEntity = response.getBody().getEntities().get(1);
+    assertEquals("0", ((ClientValuable) clientEntity.getProperty("PropertyInt16")).getValue().toString());
 
-    oDataEntity = response.getBody().getEntities().get(2);
-    assertEquals("32767", ((ODataValuable) oDataEntity.getProperty("PropertyInt16")).getValue().toString());
+    clientEntity = response.getBody().getEntities().get(2);
+    assertEquals("32767", ((ClientValuable) clientEntity.getProperty("PropertyInt16")).getValue().toString());
   }
 
   @Test
   public void testMultipleOrderByDecending() {
-    final ODataRetrieveResponse<ODataEntitySet> response = sendRequest(ES_ALL_PRIM, "PropertyByte, PropertyInt16 desc");
+    final ODataRetrieveResponse<ClientEntitySet> response =
+        sendRequest(ES_ALL_PRIM, "PropertyByte, PropertyInt16 desc");
     assertEquals(3, response.getBody().getEntities().size());
 
-    ODataEntity oDataEntity = response.getBody().getEntities().get(0);
-    assertEquals("0", ((ODataValuable) oDataEntity.getProperty("PropertyInt16")).getValue().toString());
+    ClientEntity clientEntity = response.getBody().getEntities().get(0);
+    assertEquals("0", ((ClientValuable) clientEntity.getProperty("PropertyInt16")).getValue().toString());
 
-    oDataEntity = response.getBody().getEntities().get(1);
-    assertEquals("-32768", ((ODataValuable) oDataEntity.getProperty("PropertyInt16")).getValue().toString());
+    clientEntity = response.getBody().getEntities().get(1);
+    assertEquals("-32768", ((ClientValuable) clientEntity.getProperty("PropertyInt16")).getValue().toString());
 
-    oDataEntity = response.getBody().getEntities().get(2);
-    assertEquals("32767", ((ODataValuable) oDataEntity.getProperty("PropertyInt16")).getValue().toString());
+    clientEntity = response.getBody().getEntities().get(2);
+    assertEquals("32767", ((ClientValuable) clientEntity.getProperty("PropertyInt16")).getValue().toString());
   }
 
   @Test
   public void testOrderByWithNull() {
-    final ODataRetrieveResponse<ODataEntitySet> response = sendRequest(ES_TWO_PRIM, "PropertyString");
+    final ODataRetrieveResponse<ClientEntitySet> response = sendRequest(ES_TWO_PRIM, "PropertyString");
     assertEquals(4, response.getBody().getEntities().size());
 
-    ODataEntity oDataEntity = response.getBody().getEntities().get(0);
-    assertEquals("-32766", ((ODataValuable) oDataEntity.getProperty("PropertyInt16")).getValue().toString());
+    ClientEntity clientEntity = response.getBody().getEntities().get(0);
+    assertEquals("-32766", ((ClientValuable) clientEntity.getProperty("PropertyInt16")).getValue().toString());
 
-    oDataEntity = response.getBody().getEntities().get(1);
-    assertEquals("32766", ((ODataValuable) oDataEntity.getProperty("PropertyInt16")).getValue().toString());
+    clientEntity = response.getBody().getEntities().get(1);
+    assertEquals("32766", ((ClientValuable) clientEntity.getProperty("PropertyInt16")).getValue().toString());
 
-    oDataEntity = response.getBody().getEntities().get(2);
-    assertEquals("-365", ((ODataValuable) oDataEntity.getProperty("PropertyInt16")).getValue().toString());
+    clientEntity = response.getBody().getEntities().get(2);
+    assertEquals("-365", ((ClientValuable) clientEntity.getProperty("PropertyInt16")).getValue().toString());
 
-    oDataEntity = response.getBody().getEntities().get(3);
-    assertEquals("32767", ((ODataValuable) oDataEntity.getProperty("PropertyInt16")).getValue().toString());
+    clientEntity = response.getBody().getEntities().get(3);
+    assertEquals("32767", ((ClientValuable) clientEntity.getProperty("PropertyInt16")).getValue().toString());
   }
 
   @Test
   public void testOrderByInvalidExpression() {
-    fail(ES_TWO_PRIM, "PropertyString add 10", HttpStatusCode.BAD_REQUEST);   
+    fail(ES_TWO_PRIM, "PropertyString add 10", HttpStatusCode.BAD_REQUEST);
   }
 
-  private ODataRetrieveResponse<ODataEntitySet> sendRequest(String entitySet, String orderByString) {
+  private ODataRetrieveResponse<ClientEntitySet> sendRequest(String entitySet, String orderByString) {
     final ODataClient client = getClient();
 
     final URI uri =
@@ -146,7 +147,7 @@ public class OrderBySystemQueryITCase extends AbstractBaseTestITCase {
             .orderBy(orderByString)
             .build();
 
-    ODataEntitySetRequest<ODataEntitySet> request = client.getRetrieveRequestFactory().getEntitySetRequest(uri);
+    ODataEntitySetRequest<ClientEntitySet> request = client.getRetrieveRequestFactory().getEntitySetRequest(uri);
 
     return request.execute();
   }
@@ -159,7 +160,7 @@ public class OrderBySystemQueryITCase extends AbstractBaseTestITCase {
       assertEquals(errorCode.getStatusCode(), e.getStatusLine().getStatusCode());
     }
   }
-  
+
   @Override
   protected ODataClient getClient() {
     ODataClient odata = ODataClientFactory.getClient();

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/c37d4da5/fit/src/test/java/org/apache/olingo/fit/tecsvc/client/PrimitiveComplexITCase.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/tecsvc/client/PrimitiveComplexITCase.java b/fit/src/test/java/org/apache/olingo/fit/tecsvc/client/PrimitiveComplexITCase.java
index 253b482..892cdd5 100644
--- a/fit/src/test/java/org/apache/olingo/fit/tecsvc/client/PrimitiveComplexITCase.java
+++ b/fit/src/test/java/org/apache/olingo/fit/tecsvc/client/PrimitiveComplexITCase.java
@@ -1,18 +1,18 @@
-/* 
+/*
  * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
+ * or more contributor license agreements. See the NOTICE file
  * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
+ * 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
- *
+ * 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
+ * KIND, either express or implied. See the License for the
  * specific language governing permissions and limitations
  * under the License.
  */
@@ -36,8 +36,8 @@ import org.apache.olingo.client.api.communication.request.retrieve.ODataValueReq
 import org.apache.olingo.client.api.communication.response.ODataDeleteResponse;
 import org.apache.olingo.client.api.communication.response.ODataRetrieveResponse;
 import org.apache.olingo.client.core.ODataClientFactory;
-import org.apache.olingo.commons.api.domain.ODataPrimitiveValue;
-import org.apache.olingo.commons.api.domain.ODataProperty;
+import org.apache.olingo.commons.api.domain.ClientPrimitiveValue;
+import org.apache.olingo.commons.api.domain.ClientProperty;
 import org.apache.olingo.commons.api.format.ContentType;
 import org.apache.olingo.commons.api.format.ODataFormat;
 import org.apache.olingo.commons.api.http.HttpHeader;
@@ -52,20 +52,20 @@ public class PrimitiveComplexITCase extends AbstractBaseTestITCase {
 
   @Test
   public void readSimpleProperty() throws Exception {
-    ODataPropertyRequest<ODataProperty> request = getClient().getRetrieveRequestFactory()
+    ODataPropertyRequest<ClientProperty> request = getClient().getRetrieveRequestFactory()
         .getPropertyRequest(getClient().newURIBuilder(SERVICE_URI)
             .appendEntitySetSegment("ESTwoPrim")
             .appendKeySegment(32766)
             .appendPropertySegment("PropertyString")
             .build());
-    
+
     assertNotNull(request);
 
-    ODataRetrieveResponse<ODataProperty> response = request.execute();
+    ODataRetrieveResponse<ClientProperty> response = request.execute();
     assertEquals(HttpStatusCode.OK.getStatusCode(), response.getStatusCode());
     assertThat(response.getContentType(), containsString(ContentType.APPLICATION_JSON.toContentTypeString()));
 
-    final ODataProperty property = response.getBody();
+    final ClientProperty property = response.getBody();
     assertNotNull(property);
     assertNotNull(property.getPrimitiveValue());
     assertEquals("Test String1", property.getPrimitiveValue().toValue());
@@ -73,18 +73,18 @@ public class PrimitiveComplexITCase extends AbstractBaseTestITCase {
 
   @Test
   public void readSimplePropertyContextURL() throws Exception {
-    ODataPropertyRequest<ODataProperty> request = getClient().getRetrieveRequestFactory()
+    ODataPropertyRequest<ClientProperty> request = getClient().getRetrieveRequestFactory()
         .getPropertyRequest(getClient().newURIBuilder(SERVICE_URI)
             .appendEntitySetSegment("ESTwoPrim")
             .appendKeySegment(32766)
             .appendPropertySegment("PropertyString")
             .build());
-    ODataRetrieveResponse<ODataProperty> response = request.execute();
-    String expectedResult = 
+    ODataRetrieveResponse<ClientProperty> response = request.execute();
+    String expectedResult =
         "{\"@odata.context\":\"$metadata#ESTwoPrim(32766)/PropertyString\"," +
-        "\"value\":\"Test String1\"}";
-    assertEquals(expectedResult, IOUtils.toString(response.getRawResponse(), "UTF-8"));    
-  }  
+            "\"value\":\"Test String1\"}";
+    assertEquals(expectedResult, IOUtils.toString(response.getRawResponse(), "UTF-8"));
+  }
 
   @Test
   public void deletePrimitive() throws Exception {
@@ -97,7 +97,7 @@ public class PrimitiveComplexITCase extends AbstractBaseTestITCase {
 
     // Check that the property is really gone.
     // This check has to be in the same session in order to access the same data provider.
-    ODataPropertyRequest<ODataProperty> propertyRequest = getClient().getRetrieveRequestFactory()
+    ODataPropertyRequest<ClientProperty> propertyRequest = getClient().getRetrieveRequestFactory()
         .getPropertyRequest(uri);
     propertyRequest.addCustomHeader(HttpHeader.COOKIE, response.getHeader(HttpHeader.SET_COOKIE).iterator().next());
     assertEquals(HttpStatusCode.NO_CONTENT.getStatusCode(), propertyRequest.execute().getStatusCode());
@@ -122,12 +122,12 @@ public class PrimitiveComplexITCase extends AbstractBaseTestITCase {
 
     // Check that the property is not gone but empty now.
     // This check has to be in the same session in order to access the same data provider.
-    ODataPropertyRequest<ODataProperty> request = getClient().getRetrieveRequestFactory()
+    ODataPropertyRequest<ClientProperty> request = getClient().getRetrieveRequestFactory()
         .getPropertyRequest(uri);
     request.addCustomHeader(HttpHeader.COOKIE, response.getHeader(HttpHeader.SET_COOKIE).iterator().next());
-    final ODataRetrieveResponse<ODataProperty> propertyResponse = request.execute();
+    final ODataRetrieveResponse<ClientProperty> propertyResponse = request.execute();
     assertEquals(HttpStatusCode.OK.getStatusCode(), propertyResponse.getStatusCode());
-    final ODataProperty property = propertyResponse.getBody();
+    final ClientProperty property = propertyResponse.getBody();
     assertNotNull(property);
     assertNotNull(property.getCollectionValue());
     assertTrue(property.getCollectionValue().isEmpty());
@@ -135,36 +135,36 @@ public class PrimitiveComplexITCase extends AbstractBaseTestITCase {
 
   @Test
   public void readComplexProperty() throws Exception {
-    ODataPropertyRequest<ODataProperty> request = getClient().getRetrieveRequestFactory()
+    ODataPropertyRequest<ClientProperty> request = getClient().getRetrieveRequestFactory()
         .getPropertyRequest(getClient().newURIBuilder(SERVICE_URI)
             .appendEntitySetSegment("ESMixPrimCollComp")
             .appendKeySegment(7)
             .appendPropertySegment("PropertyComp")
-            .build());    
-    ODataRetrieveResponse<ODataProperty> response = request.execute();
+            .build());
+    ODataRetrieveResponse<ClientProperty> response = request.execute();
     assertEquals(HttpStatusCode.OK.getStatusCode(), response.getStatusCode());
     assertThat(response.getContentType(), containsString(ContentType.APPLICATION_JSON.toContentTypeString()));
 
-    final ODataProperty property = response.getBody();
+    final ClientProperty property = response.getBody();
     assertNotNull(property);
     assertNotNull(property.getComplexValue());
-    assertEquals("TEST B", property.getComplexValue().get("PropertyString").getPrimitiveValue().toValue());   
-  }  
+    assertEquals("TEST B", property.getComplexValue().get("PropertyString").getPrimitiveValue().toValue());
+  }
 
   @Test
   public void readComplexPropertyContextURL() throws Exception {
-    ODataPropertyRequest<ODataProperty> request = getClient().getRetrieveRequestFactory()
+    ODataPropertyRequest<ClientProperty> request = getClient().getRetrieveRequestFactory()
         .getPropertyRequest(getClient().newURIBuilder(SERVICE_URI)
             .appendEntitySetSegment("ESMixPrimCollComp")
             .appendKeySegment(7)
             .appendPropertySegment("PropertyComp")
-            .build());    
-    ODataRetrieveResponse<ODataProperty> response = request.execute();
-    String expectedResult = 
+            .build());
+    ODataRetrieveResponse<ClientProperty> response = request.execute();
+    String expectedResult =
         "{\"@odata.context\":\"$metadata#ESMixPrimCollComp(7)/PropertyComp\"," +
-        "\"PropertyInt16\":222,\"PropertyString\":\"TEST B\"}";
-    assertEquals(expectedResult, IOUtils.toString(response.getRawResponse(), "UTF-8"));    
-  }  
+            "\"PropertyInt16\":222,\"PropertyString\":\"TEST B\"}";
+    assertEquals(expectedResult, IOUtils.toString(response.getRawResponse(), "UTF-8"));
+  }
 
   @Test
   public void deleteComplex() throws Exception {
@@ -177,7 +177,7 @@ public class PrimitiveComplexITCase extends AbstractBaseTestITCase {
 
     // Check that the property is really gone.
     // This check has to be in the same session in order to access the same data provider.
-    ODataPropertyRequest<ODataProperty> propertyRequest = getClient().getRetrieveRequestFactory()
+    ODataPropertyRequest<ClientProperty> propertyRequest = getClient().getRetrieveRequestFactory()
         .getPropertyRequest(uri);
     propertyRequest.addCustomHeader(HttpHeader.COOKIE, response.getHeader(HttpHeader.SET_COOKIE).iterator().next());
     assertEquals(HttpStatusCode.NO_CONTENT.getStatusCode(), propertyRequest.execute().getStatusCode());
@@ -185,15 +185,15 @@ public class PrimitiveComplexITCase extends AbstractBaseTestITCase {
 
   @Test
   public void readUnknownProperty() throws Exception {
-    ODataPropertyRequest<ODataProperty> request = getClient().getRetrieveRequestFactory()
+    ODataPropertyRequest<ClientProperty> request = getClient().getRetrieveRequestFactory()
         .getPropertyRequest(getClient().newURIBuilder(SERVICE_URI)
             .appendEntitySetSegment("ESTwoPrim")
             .appendKeySegment(32766)
             .appendPropertySegment("Unknown")
             .build());
     try {
-     request.execute();
-     fail("Expected exception not thrown!");
+      request.execute();
+      fail("Expected exception not thrown!");
     } catch (final ODataClientErrorException e) {
       assertEquals(HttpStatusCode.NOT_FOUND.getStatusCode(), e.getStatusLine().getStatusCode());
     }
@@ -201,15 +201,15 @@ public class PrimitiveComplexITCase extends AbstractBaseTestITCase {
 
   @Test
   public void readNoContentProperty() throws Exception {
-    ODataPropertyRequest<ODataProperty> request = getClient().getRetrieveRequestFactory()
+    ODataPropertyRequest<ClientProperty> request = getClient().getRetrieveRequestFactory()
         .getPropertyRequest(getClient().newURIBuilder(SERVICE_URI)
             .appendEntitySetSegment("ESTwoPrim")
             .appendKeySegment(-32766)
             .appendPropertySegment("PropertyString")
-            .build());    
-    ODataRetrieveResponse<ODataProperty> response = request.execute();
+            .build());
+    ODataRetrieveResponse<ClientProperty> response = request.execute();
     assertEquals(HttpStatusCode.NO_CONTENT.getStatusCode(), response.getStatusCode());
-  }   
+  }
 
   @Test
   public void readPropertyValue() throws Exception {
@@ -220,9 +220,9 @@ public class PrimitiveComplexITCase extends AbstractBaseTestITCase {
             .appendPropertySegment("PropertyString")
             .appendValueSegment()
             .build());
-    ODataRetrieveResponse<ODataPrimitiveValue> response = request.execute();
+    ODataRetrieveResponse<ClientPrimitiveValue> response = request.execute();
     assertEquals("Test String1", response.getBody().toValue());
-  }   
+  }
 
   @Override
   protected ODataClient getClient() {

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/c37d4da5/fit/src/test/java/org/apache/olingo/fit/tecsvc/client/SystemQueryOptionITCase.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/tecsvc/client/SystemQueryOptionITCase.java b/fit/src/test/java/org/apache/olingo/fit/tecsvc/client/SystemQueryOptionITCase.java
index d014086..995925b 100644
--- a/fit/src/test/java/org/apache/olingo/fit/tecsvc/client/SystemQueryOptionITCase.java
+++ b/fit/src/test/java/org/apache/olingo/fit/tecsvc/client/SystemQueryOptionITCase.java
@@ -28,8 +28,8 @@ import org.apache.olingo.client.api.communication.ODataClientErrorException;
 import org.apache.olingo.client.api.communication.response.ODataRetrieveResponse;
 import org.apache.olingo.client.api.uri.QueryOption;
 import org.apache.olingo.client.core.ODataClientFactory;
-import org.apache.olingo.commons.api.domain.ODataEntity;
-import org.apache.olingo.commons.api.domain.ODataEntitySet;
+import org.apache.olingo.commons.api.domain.ClientEntity;
+import org.apache.olingo.commons.api.domain.ClientEntitySet;
 import org.apache.olingo.commons.api.format.ODataFormat;
 import org.apache.olingo.commons.api.http.HttpStatusCode;
 import org.apache.olingo.fit.AbstractBaseTestITCase;
@@ -50,7 +50,7 @@ public class SystemQueryOptionITCase extends AbstractBaseTestITCase {
         .addQueryOption(QueryOption.COUNT, "true")
         .build();
 
-    ODataRetrieveResponse<ODataEntitySet> response = client.getRetrieveRequestFactory()
+    ODataRetrieveResponse<ClientEntitySet> response = client.getRetrieveRequestFactory()
         .getEntitySetRequest(uri)
         .execute();
 
@@ -66,7 +66,7 @@ public class SystemQueryOptionITCase extends AbstractBaseTestITCase {
         .addQueryOption(QueryOption.COUNT, "true")
         .build();
 
-    ODataRetrieveResponse<ODataEntitySet> response = client.getRetrieveRequestFactory()
+    ODataRetrieveResponse<ClientEntitySet> response = client.getRetrieveRequestFactory()
         .getEntitySetRequest(uri)
         .execute();
 
@@ -82,14 +82,14 @@ public class SystemQueryOptionITCase extends AbstractBaseTestITCase {
         .addQueryOption(QueryOption.TOP, new Integer(5).toString())
         .build();
 
-    ODataRetrieveResponse<ODataEntitySet> response = client.getRetrieveRequestFactory()
+    ODataRetrieveResponse<ClientEntitySet> response = client.getRetrieveRequestFactory()
         .getEntitySetRequest(uri)
         .execute();
 
     assertEquals(5, response.getBody().getEntities().size());
 
     for (int i = 0; i < 5; i++) {
-      ODataEntity entity = response.getBody().getEntities().get(i);
+      ClientEntity entity = response.getBody().getEntities().get(i);
       assertEquals(new Integer(i + 1).toString(), entity.getProperty(PROPERTY_INT16).getValue().toString());
     }
   }
@@ -102,14 +102,14 @@ public class SystemQueryOptionITCase extends AbstractBaseTestITCase {
         .addQueryOption(QueryOption.SKIP, new Integer(5).toString())
         .build();
 
-    ODataRetrieveResponse<ODataEntitySet> response = client.getRetrieveRequestFactory()
+    ODataRetrieveResponse<ClientEntitySet> response = client.getRetrieveRequestFactory()
         .getEntitySetRequest(uri)
         .execute();
 
     assertEquals(10, response.getBody().getEntities().size());
 
     for (int i = 0; i < 10; i++) {
-      ODataEntity entity = response.getBody().getEntities().get(i);
+      ClientEntity entity = response.getBody().getEntities().get(i);
       assertEquals(new Integer(i + 6).toString(), entity.getProperty(PROPERTY_INT16).getValue().toString());
     }
   }
@@ -123,7 +123,7 @@ public class SystemQueryOptionITCase extends AbstractBaseTestITCase {
         .addQueryOption(QueryOption.SKIP, new Integer(503).toString())
         .build();
 
-    ODataRetrieveResponse<ODataEntitySet> response = client.getRetrieveRequestFactory()
+    ODataRetrieveResponse<ClientEntitySet> response = client.getRetrieveRequestFactory()
         .getEntitySetRequest(uri)
         .execute();
 
@@ -138,7 +138,7 @@ public class SystemQueryOptionITCase extends AbstractBaseTestITCase {
         .addQueryOption(QueryOption.SKIP, new Integer(10000).toString())
         .build();
 
-    ODataRetrieveResponse<ODataEntitySet> response = client.getRetrieveRequestFactory()
+    ODataRetrieveResponse<ClientEntitySet> response = client.getRetrieveRequestFactory()
         .getEntitySetRequest(uri)
         .execute();
 
@@ -157,7 +157,7 @@ public class SystemQueryOptionITCase extends AbstractBaseTestITCase {
         .addQueryOption(QueryOption.TOP, new Integer(43).toString()) // 102, 101, ...., 59
         .build();
 
-    ODataRetrieveResponse<ODataEntitySet> response = client.getRetrieveRequestFactory()
+    ODataRetrieveResponse<ClientEntitySet> response = client.getRetrieveRequestFactory()
         .getEntitySetRequest(uri)
         .execute();
 
@@ -168,7 +168,7 @@ public class SystemQueryOptionITCase extends AbstractBaseTestITCase {
 
     // Check first 10 entities
     for (int i = 0; i < 10; i++) {
-      ODataEntity entity = response.getBody().getEntities().get(i);
+      ClientEntity entity = response.getBody().getEntities().get(i);
       assertEquals(new Integer(id).toString(), entity.getProperty(PROPERTY_INT16).getValue().toString());
       id--;
     }
@@ -179,7 +179,7 @@ public class SystemQueryOptionITCase extends AbstractBaseTestITCase {
       assertEquals(Integer.valueOf(105), response.getBody().getCount());
       assertEquals(10, response.getBody().getEntities().size());
       for (int i = 0; i < 10; i++) {
-        ODataEntity entity = response.getBody().getEntities().get(i);
+        ClientEntity entity = response.getBody().getEntities().get(i);
         assertEquals(new Integer(id).toString(), entity.getProperty(PROPERTY_INT16).getValue().toString());
         id--;
       }
@@ -190,7 +190,7 @@ public class SystemQueryOptionITCase extends AbstractBaseTestITCase {
     assertEquals(Integer.valueOf(105), response.getBody().getCount());
     assertEquals(3, response.getBody().getEntities().size());
     for (int i = 0; i < 3; i++) {
-      ODataEntity entity = response.getBody().getEntities().get(i);
+      ClientEntity entity = response.getBody().getEntities().get(i);
       assertEquals(new Integer(id).toString(), entity.getProperty(PROPERTY_INT16).getValue().toString());
       id--;
     }
@@ -206,7 +206,7 @@ public class SystemQueryOptionITCase extends AbstractBaseTestITCase {
         .appendEntitySetSegment(ES_SERVER_SIDE_PAGING)
         .build();
 
-    ODataRetrieveResponse<ODataEntitySet> response = client.getRetrieveRequestFactory()
+    ODataRetrieveResponse<ClientEntitySet> response = client.getRetrieveRequestFactory()
         .getEntitySetRequest(uri)
         .execute();
 
@@ -233,7 +233,7 @@ public class SystemQueryOptionITCase extends AbstractBaseTestITCase {
         .addQueryOption(QueryOption.COUNT, Boolean.TRUE.toString())
         .build();
 
-    ODataRetrieveResponse<ODataEntitySet> response = client.getRetrieveRequestFactory()
+    ODataRetrieveResponse<ClientEntitySet> response = client.getRetrieveRequestFactory()
         .getEntitySetRequest(uri)
         .execute();
 
@@ -241,7 +241,7 @@ public class SystemQueryOptionITCase extends AbstractBaseTestITCase {
     URI nextLink = response.getBody().getNext();
     assertEquals("http://localhost:9080/odata-server-tecsvc/odata.svc/ESServerSidePaging?%24count=true&%24skiptoken=1",
         nextLink.toASCIIString());
-    
+
     int token = 1;
     while (nextLink != null) {
       token++;
@@ -252,13 +252,14 @@ public class SystemQueryOptionITCase extends AbstractBaseTestITCase {
           .execute();
 
       nextLink = response.getBody().getNext();
-      if(nextLink != null) {
-      assertEquals(
-          "http://localhost:9080/odata-server-tecsvc/odata.svc/ESServerSidePaging?%24count=true&%24skiptoken=" + token,
-          nextLink.toASCIIString());
+      if (nextLink != null) {
+        assertEquals(
+            "http://localhost:9080/odata-server-tecsvc/odata.svc/ESServerSidePaging?%24count=true&%24skiptoken="
+                + token,
+            nextLink.toASCIIString());
       }
     }
-    
+
     assertEquals(50 + 1, token);
   }
 
@@ -272,7 +273,7 @@ public class SystemQueryOptionITCase extends AbstractBaseTestITCase {
         .build();
 
     try {
-      ODataRetrieveResponse<ODataEntitySet> response = client.getRetrieveRequestFactory()
+      ODataRetrieveResponse<ClientEntitySet> response = client.getRetrieveRequestFactory()
           .getEntitySetRequest(uri)
           .execute();
       fail();
@@ -290,7 +291,7 @@ public class SystemQueryOptionITCase extends AbstractBaseTestITCase {
         .addQueryOption(QueryOption.TOP, new Integer(-5).toString())
         .build();
     try {
-      ODataRetrieveResponse<ODataEntitySet> response = client.getRetrieveRequestFactory()
+      ODataRetrieveResponse<ClientEntitySet> response = client.getRetrieveRequestFactory()
           .getEntitySetRequest(uri)
           .execute();
       fail();

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/c37d4da5/fit/src/test/java/org/apache/olingo/fit/v4/AbstractTestITCase.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/v4/AbstractTestITCase.java b/fit/src/test/java/org/apache/olingo/fit/v4/AbstractTestITCase.java
index 7b83811..8a4bcdc 100644
--- a/fit/src/test/java/org/apache/olingo/fit/v4/AbstractTestITCase.java
+++ b/fit/src/test/java/org/apache/olingo/fit/v4/AbstractTestITCase.java
@@ -1,18 +1,18 @@
-/* 
+/*
  * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
+ * or more contributor license agreements. See the NOTICE file
  * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
+ * 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
- *
+ * 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
+ * KIND, either express or implied. See the License for the
  * specific language governing permissions and limitations
  * under the License.
  */
@@ -26,15 +26,15 @@ import org.apache.olingo.client.api.communication.request.retrieve.ODataEntityRe
 import org.apache.olingo.client.api.communication.response.ODataDeleteResponse;
 import org.apache.olingo.client.api.communication.response.ODataRetrieveResponse;
 import org.apache.olingo.client.core.ODataClientFactory;
-import org.apache.olingo.commons.api.domain.ODataCollectionValue;
-import org.apache.olingo.commons.api.domain.ODataEntity;
-import org.apache.olingo.commons.api.domain.ODataProperty;
-import org.apache.olingo.commons.api.domain.ODataValue;
+import org.apache.olingo.commons.api.domain.ClientCollectionValue;
+import org.apache.olingo.commons.api.domain.ClientEntity;
+import org.apache.olingo.commons.api.domain.ClientProperty;
+import org.apache.olingo.commons.api.domain.ClientValue;
 import org.apache.olingo.commons.api.edm.EdmPrimitiveTypeKind;
 import org.apache.olingo.commons.api.edm.FullQualifiedName;
 import org.apache.olingo.commons.api.format.ContentType;
 import org.apache.olingo.commons.api.format.ODataFormat;
-import org.apache.olingo.commons.core.domain.ODataEntityImpl;
+import org.apache.olingo.commons.core.domain.ClientEntityImpl;
 import org.apache.olingo.fit.AbstractBaseTestITCase;
 import org.junit.BeforeClass;
 
@@ -98,12 +98,12 @@ public abstract class AbstractTestITCase extends AbstractBaseTestITCase {
     return client;
   }
 
-  protected ODataEntity read(final ODataFormat format, final URI editLink) {
-    final ODataEntityRequest<ODataEntity> req = getClient().getRetrieveRequestFactory().getEntityRequest(editLink);
+  protected ClientEntity read(final ODataFormat format, final URI editLink) {
+    final ODataEntityRequest<ClientEntity> req = getClient().getRetrieveRequestFactory().getEntityRequest(editLink);
     req.setFormat(format);
 
-    final ODataRetrieveResponse<ODataEntity> res = req.execute();
-    final ODataEntity entity = res.getBody();
+    final ODataRetrieveResponse<ClientEntity> res = req.execute();
+    final ClientEntity entity = res.getBody();
 
     assertNotNull(entity);
 
@@ -115,57 +115,57 @@ public abstract class AbstractTestITCase extends AbstractBaseTestITCase {
   }
 
   protected void createAndDeleteOrder(final String serviceRoot, final ODataFormat format, final int id) {
-    final ODataEntity order = new ODataEntityImpl(
-            new FullQualifiedName("Microsoft.Test.OData.Services.ODataWCFService.Order"));
+    final ClientEntity order = new ClientEntityImpl(
+        new FullQualifiedName("Microsoft.Test.OData.Services.ODataWCFService.Order"));
 
-    final ODataProperty orderId = getClient().getObjectFactory().newPrimitiveProperty("OrderID",
-            getClient().getObjectFactory().newPrimitiveValueBuilder().buildInt32(id));
+    final ClientProperty orderId = getClient().getObjectFactory().newPrimitiveProperty("OrderID",
+        getClient().getObjectFactory().newPrimitiveValueBuilder().buildInt32(id));
     order.getProperties().add(orderId);
 
     Calendar dateTime = Calendar.getInstance(TimeZone.getTimeZone("GMT"));
     dateTime.set(2011, 2, 4, 16, 3, 57);
-    final ODataProperty orderDate = getClient().getObjectFactory().newPrimitiveProperty("OrderDate",
-            getClient().getObjectFactory().newPrimitiveValueBuilder()
+    final ClientProperty orderDate = getClient().getObjectFactory().newPrimitiveProperty("OrderDate",
+        getClient().getObjectFactory().newPrimitiveValueBuilder()
             .setType(EdmPrimitiveTypeKind.DateTimeOffset).setValue(dateTime).build());
     order.getProperties().add(orderDate);
 
-    final ODataProperty shelfLife = getClient().getObjectFactory().newPrimitiveProperty("ShelfLife",
-            getClient().getObjectFactory().newPrimitiveValueBuilder().
+    final ClientProperty shelfLife = getClient().getObjectFactory().newPrimitiveProperty("ShelfLife",
+        getClient().getObjectFactory().newPrimitiveValueBuilder().
             setType(EdmPrimitiveTypeKind.Duration).setValue(BigDecimal.TEN.scaleByPowerOfTen(7)).build());
     order.getProperties().add(shelfLife);
 
-    final ODataCollectionValue<ODataValue> orderShelfLifesValue = getClient().getObjectFactory().
-            newCollectionValue("Collection(Duration)");
+    final ClientCollectionValue<ClientValue> orderShelfLifesValue = getClient().getObjectFactory().
+        newCollectionValue("Collection(Duration)");
     orderShelfLifesValue.add(getClient().getObjectFactory().newPrimitiveValueBuilder().
-            setType(EdmPrimitiveTypeKind.Duration).setValue(new BigDecimal("0.0000001")).build());
+        setType(EdmPrimitiveTypeKind.Duration).setValue(new BigDecimal("0.0000001")).build());
     orderShelfLifesValue.add(getClient().getObjectFactory().newPrimitiveValueBuilder().
-            setType(EdmPrimitiveTypeKind.Duration).setValue(new BigDecimal("0.0000002")).build());
-    final ODataProperty orderShelfLifes = getClient().getObjectFactory().
-            newCollectionProperty("OrderShelfLifes", orderShelfLifesValue);
+        setType(EdmPrimitiveTypeKind.Duration).setValue(new BigDecimal("0.0000002")).build());
+    final ClientProperty orderShelfLifes = getClient().getObjectFactory().
+        newCollectionProperty("OrderShelfLifes", orderShelfLifesValue);
     order.getProperties().add(orderShelfLifes);
 
-    final ODataEntityCreateRequest<ODataEntity> req = getClient().getCUDRequestFactory().getEntityCreateRequest(
-            getClient().newURIBuilder(serviceRoot).
+    final ODataEntityCreateRequest<ClientEntity> req = getClient().getCUDRequestFactory().getEntityCreateRequest(
+        getClient().newURIBuilder(serviceRoot).
             appendEntitySetSegment("Orders").build(), order);
     req.setFormat(format);
-    final ODataEntity created = req.execute().getBody();
+    final ClientEntity created = req.execute().getBody();
     assertNotNull(created);
     assertEquals(2, created.getProperty("OrderShelfLifes").getCollectionValue().size());
 
-    if(format == ODataFormat.JSON_NO_METADATA) {
+    if (format == ODataFormat.JSON_NO_METADATA) {
       assertEquals(0, created.getNavigationLinks().size());
       assertNull(created.getEditLink());
-    } else if(format == ODataFormat.JSON_FULL_METADATA) {
+    } else if (format == ODataFormat.JSON_FULL_METADATA) {
       assertEquals(3, created.getNavigationLinks().size());
       assertThat(created.getTypeName().getNamespace(), is("Microsoft.Test.OData.Services.ODataWCFService"));
       assertThat(created.getEditLink().toASCIIString(), startsWith("http://localhost:9080/stub/StaticService"));
-    } else if(format == ODataFormat.JSON || format == ODataFormat.APPLICATION_JSON) {
+    } else if (format == ODataFormat.JSON || format == ODataFormat.APPLICATION_JSON) {
       assertEquals(0, created.getNavigationLinks().size());
       assertNull(created.getEditLink());
     }
 
     final URI deleteURI = getClient().newURIBuilder(serviceRoot).
-            appendEntitySetSegment("Orders").appendKeySegment(id).build();
+        appendEntitySetSegment("Orders").appendKeySegment(id).build();
     final ODataDeleteRequest deleteReq = getClient().getCUDRequestFactory().getDeleteRequest(deleteURI);
     final ODataDeleteResponse deleteRes = deleteReq.execute();
     assertEquals(204, deleteRes.getStatusCode());

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/c37d4da5/fit/src/test/java/org/apache/olingo/fit/v4/AsyncTestITCase.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/v4/AsyncTestITCase.java b/fit/src/test/java/org/apache/olingo/fit/v4/AsyncTestITCase.java
index 1008de9..3e9a85f 100644
--- a/fit/src/test/java/org/apache/olingo/fit/v4/AsyncTestITCase.java
+++ b/fit/src/test/java/org/apache/olingo/fit/v4/AsyncTestITCase.java
@@ -1,18 +1,18 @@
-/* 
+/*
  * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
+ * or more contributor license agreements. See the NOTICE file
  * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
+ * 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
- *
+ * 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
+ * KIND, either express or implied. See the License for the
  * specific language governing permissions and limitations
  * under the License.
  */
@@ -24,11 +24,11 @@ import org.apache.olingo.client.api.communication.request.retrieve.ODataEntitySe
 import org.apache.olingo.client.api.communication.response.AsyncResponseWrapper;
 import org.apache.olingo.client.api.communication.response.ODataRetrieveResponse;
 import org.apache.olingo.client.api.uri.URIBuilder;
-import org.apache.olingo.commons.api.domain.ODataEntity;
-import org.apache.olingo.commons.api.domain.ODataProperty;
-import org.apache.olingo.commons.api.domain.ODataEntitySet;
-import org.apache.olingo.commons.api.domain.ODataInlineEntity;
-import org.apache.olingo.commons.api.domain.ODataLink;
+import org.apache.olingo.commons.api.domain.ClientEntity;
+import org.apache.olingo.commons.api.domain.ClientProperty;
+import org.apache.olingo.commons.api.domain.ClientEntitySet;
+import org.apache.olingo.commons.api.domain.ClientInlineEntity;
+import org.apache.olingo.commons.api.domain.ClientLink;
 import org.apache.olingo.commons.api.format.ODataFormat;
 import org.junit.Test;
 
@@ -48,7 +48,7 @@ public class AsyncTestITCase extends AbstractTestITCase {
   public void clientAsync() throws InterruptedException, ExecutionException {
     final URIBuilder uriBuilder = client.newURIBuilder(testStaticServiceRootURL).
         appendEntitySetSegment("Customers");
-    final Future<ODataRetrieveResponse<ODataEntitySet>> futureRes =
+    final Future<ODataRetrieveResponse<ClientEntitySet>> futureRes =
         client.getRetrieveRequestFactory().getEntitySetRequest(uriBuilder.build()).asyncExecute();
     assertNotNull(futureRes);
 
@@ -56,7 +56,7 @@ public class AsyncTestITCase extends AbstractTestITCase {
       Thread.sleep(1000L);
     }
 
-    final ODataRetrieveResponse<ODataEntitySet> res = futureRes.get();
+    final ODataRetrieveResponse<ClientEntitySet> res = futureRes.get();
     assertNotNull(res);
     assertEquals(200, res.getStatusCode());
     assertFalse(res.getBody().getEntities().isEmpty());
@@ -66,18 +66,19 @@ public class AsyncTestITCase extends AbstractTestITCase {
     final URIBuilder uriBuilder = client.newURIBuilder(testStaticServiceRootURL).
         appendEntitySetSegment("Customers").appendKeySegment(1).expand("Company");
 
-    final ODataEntityRequest<ODataEntity> req = client.getRetrieveRequestFactory().getEntityRequest(uriBuilder.build());
+    final ODataEntityRequest<ClientEntity> req =
+        client.getRetrieveRequestFactory().getEntityRequest(uriBuilder.build());
     req.setFormat(format);
 
-    final AsyncRequestWrapper<ODataRetrieveResponse<ODataEntity>> async =
-        client.getAsyncRequestFactory().<ODataRetrieveResponse<ODataEntity>> getAsyncRequestWrapper(req);
+    final AsyncRequestWrapper<ODataRetrieveResponse<ClientEntity>> async =
+        client.getAsyncRequestFactory().<ODataRetrieveResponse<ClientEntity>> getAsyncRequestWrapper(req);
 
-    final AsyncResponseWrapper<ODataRetrieveResponse<ODataEntity>> responseWrapper = async.execute();
+    final AsyncResponseWrapper<ODataRetrieveResponse<ClientEntity>> responseWrapper = async.execute();
 
     assertFalse(responseWrapper.isPreferenceApplied());
 
-    final ODataRetrieveResponse<ODataEntity> res = responseWrapper.getODataResponse();
-    final ODataEntity entity = res.getBody();
+    final ODataRetrieveResponse<ClientEntity> res = responseWrapper.getODataResponse();
+    final ClientEntity entity = res.getBody();
 
     assertNotNull(entity);
     assertEquals("Microsoft.Test.OData.Services.ODataWCFService.Customer", entity.getTypeName().toString());
@@ -92,12 +93,12 @@ public class AsyncTestITCase extends AbstractTestITCase {
 
     boolean found = false;
 
-    for (ODataLink link : entity.getNavigationLinks()) {
-      if (link instanceof ODataInlineEntity) {
-        final ODataEntity inline = ((ODataInlineEntity) link).getEntity();
+    for (ClientLink link : entity.getNavigationLinks()) {
+      if (link instanceof ClientInlineEntity) {
+        final ClientEntity inline = ((ClientInlineEntity) link).getEntity();
         assertNotNull(inline);
 
-        final List<? extends ODataProperty> properties = inline.getProperties();
+        final List<? extends ClientProperty> properties = inline.getProperties();
         assertEquals(5, properties.size());
 
         assertTrue(properties.get(0).getName().equals("CompanyID")
@@ -133,21 +134,21 @@ public class AsyncTestITCase extends AbstractTestITCase {
     final URIBuilder uriBuilder = client.newURIBuilder(testStaticServiceRootURL).
         appendEntitySetSegment("async").appendEntitySetSegment("Orders");
 
-    final ODataEntitySetRequest<ODataEntitySet> req =
+    final ODataEntitySetRequest<ClientEntitySet> req =
         client.getRetrieveRequestFactory().getEntitySetRequest(uriBuilder.build());
     req.setFormat(format);
 
-    final AsyncRequestWrapper<ODataRetrieveResponse<ODataEntitySet>> async =
-        client.getAsyncRequestFactory().<ODataRetrieveResponse<ODataEntitySet>> getAsyncRequestWrapper(req);
+    final AsyncRequestWrapper<ODataRetrieveResponse<ClientEntitySet>> async =
+        client.getAsyncRequestFactory().<ODataRetrieveResponse<ClientEntitySet>> getAsyncRequestWrapper(req);
     async.callback(URI.create("http://client.service.it/callback/endpoint"));
 
-    final AsyncResponseWrapper<ODataRetrieveResponse<ODataEntitySet>> responseWrapper = async.execute();
+    final AsyncResponseWrapper<ODataRetrieveResponse<ClientEntitySet>> responseWrapper = async.execute();
 
     assertTrue(responseWrapper.isPreferenceApplied());
     assertTrue(responseWrapper.isDone());
 
-    final ODataRetrieveResponse<ODataEntitySet> res = responseWrapper.getODataResponse();
-    final ODataEntitySet entitySet = res.getBody();
+    final ODataRetrieveResponse<ClientEntitySet> res = responseWrapper.getODataResponse();
+    final ClientEntitySet entitySet = res.getBody();
 
     assertFalse(entitySet.getEntities().isEmpty());
   }

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/c37d4da5/fit/src/test/java/org/apache/olingo/fit/v4/AuthBatchTestITCase.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/v4/AuthBatchTestITCase.java b/fit/src/test/java/org/apache/olingo/fit/v4/AuthBatchTestITCase.java
index 53a4106..a76e97a 100644
--- a/fit/src/test/java/org/apache/olingo/fit/v4/AuthBatchTestITCase.java
+++ b/fit/src/test/java/org/apache/olingo/fit/v4/AuthBatchTestITCase.java
@@ -1,18 +1,18 @@
-/* 
+/*
  * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
+ * or more contributor license agreements. See the NOTICE file
  * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
+ * 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
- *
+ * 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
+ * KIND, either express or implied. See the License for the
  * specific language governing permissions and limitations
  * under the License.
  */
@@ -31,7 +31,7 @@ import org.apache.olingo.client.api.http.HttpClientException;
 import org.apache.olingo.client.api.uri.URIBuilder;
 import org.apache.olingo.client.core.ODataClientFactory;
 import org.apache.olingo.client.core.http.BasicAuthHttpClientFactory;
-import org.apache.olingo.commons.api.domain.ODataEntity;
+import org.apache.olingo.commons.api.domain.ClientEntity;
 import org.apache.olingo.commons.api.edm.EdmPrimitiveTypeException;
 import org.apache.olingo.commons.api.edm.FullQualifiedName;
 import org.apache.olingo.commons.api.format.ContentType;
@@ -83,7 +83,7 @@ public class AuthBatchTestITCase extends AbstractTestITCase {
     targetURI.appendEntitySetSegment("Customers").appendKeySegment(1);
 
     // create new request
-    ODataEntityRequest<ODataEntity> queryReq = client.getRetrieveRequestFactory().getEntityRequest(targetURI.build());
+    ODataEntityRequest<ClientEntity> queryReq = client.getRetrieveRequestFactory().getEntityRequest(targetURI.build());
     queryReq.setFormat(ODataFormat.JSON);
 
     streamManager.addRequest(queryReq);
@@ -98,7 +98,7 @@ public class AuthBatchTestITCase extends AbstractTestITCase {
     targetURI = client.newURIBuilder(baseURL).appendEntitySetSegment("Customers").appendKeySegment(1);
     final URI editLink = targetURI.build();
 
-    final ODataEntity patch = client.getObjectFactory().newEntity(
+    final ClientEntity patch = client.getObjectFactory().newEntity(
         new FullQualifiedName("Microsoft.Test.OData.Services.ODataWCFService.Customer"));
     patch.setEditLink(editLink);
 
@@ -106,7 +106,7 @@ public class AuthBatchTestITCase extends AbstractTestITCase {
         "LastName",
         client.getObjectFactory().newPrimitiveValueBuilder().buildString("new last name")));
 
-    final ODataEntityUpdateRequest<ODataEntity> changeReq =
+    final ODataEntityUpdateRequest<ClientEntity> changeReq =
         client.getCUDRequestFactory().getEntityUpdateRequest(UpdateType.PATCH, patch);
     changeReq.setFormat(ODataFormat.JSON_FULL_METADATA);
 

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/c37d4da5/fit/src/test/java/org/apache/olingo/fit/v4/BatchTestITCase.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/v4/BatchTestITCase.java b/fit/src/test/java/org/apache/olingo/fit/v4/BatchTestITCase.java
index be26830..880dd95 100644
--- a/fit/src/test/java/org/apache/olingo/fit/v4/BatchTestITCase.java
+++ b/fit/src/test/java/org/apache/olingo/fit/v4/BatchTestITCase.java
@@ -1,18 +1,18 @@
-/* 
+/*
  * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
+ * or more contributor license agreements. See the NOTICE file
  * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
+ * 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
- *
+ * 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
+ * KIND, either express or implied. See the License for the
  * specific language governing permissions and limitations
  * under the License.
  */
@@ -46,8 +46,8 @@ import org.apache.olingo.client.core.communication.request.batch.ODataSingleResp
 import org.apache.olingo.client.core.communication.request.retrieve.ODataEntityRequestImpl;
 import org.apache.olingo.client.core.communication.request.retrieve.ODataEntityRequestImpl.ODataEntityResponseImpl;
 import org.apache.olingo.client.core.uri.URIUtils;
-import org.apache.olingo.commons.api.domain.ODataEntity;
-import org.apache.olingo.commons.api.domain.ODataEntitySet;
+import org.apache.olingo.commons.api.domain.ClientEntity;
+import org.apache.olingo.commons.api.domain.ClientEntitySet;
 import org.apache.olingo.commons.api.edm.EdmPrimitiveTypeException;
 import org.apache.olingo.commons.api.edm.EdmPrimitiveTypeKind;
 import org.apache.olingo.commons.api.edm.FullQualifiedName;
@@ -122,7 +122,7 @@ public class BatchTestITCase extends AbstractTestITCase {
     final ODataChangeset changeset = payload.addChangeset();
 
     URIBuilder targetURI;
-    ODataEntityCreateRequest<ODataEntity> createReq;
+    ODataEntityCreateRequest<ClientEntity> createReq;
 
     targetURI = client.newURIBuilder(testStaticServiceRootURL).appendEntitySetSegment("Orders");
     for (int i = 1; i <= 2; i++) {
@@ -158,7 +158,7 @@ public class BatchTestITCase extends AbstractTestITCase {
     assertEquals(404, res.getStatusCode());
     assertEquals("Not Found", res.getStatusMessage());
     assertEquals(Integer.valueOf(3), Integer.valueOf(
-            res.getHeader(ODataBatchConstants.CHANGESET_CONTENT_ID_NAME).iterator().next()));
+        res.getHeader(ODataBatchConstants.CHANGESET_CONTENT_ID_NAME).iterator().next()));
 
     assertFalse(retitem.hasNext());
     assertFalse(iter.hasNext());
@@ -192,7 +192,7 @@ public class BatchTestITCase extends AbstractTestITCase {
     targetURI.appendEntitySetSegment("UnexistingEntitySet").appendKeySegment(1);
 
     // create new request
-    ODataEntityRequest<ODataEntity> queryReq = client.getRetrieveRequestFactory().getEntityRequest(targetURI.build());
+    ODataEntityRequest<ClientEntity> queryReq = client.getRetrieveRequestFactory().getEntityRequest(targetURI.build());
     queryReq.setFormat(ODataFormat.JSON);
 
     streamManager.addRequest(queryReq);
@@ -247,13 +247,13 @@ public class BatchTestITCase extends AbstractTestITCase {
     final BatchManager streamManager = request.payloadManager();
 
     final ODataChangeset changeset = streamManager.addChangeset();
-    ODataEntity order = newOrder(20);
+    ClientEntity order = newOrder(20);
 
     final URIBuilder uriBuilder = client.newURIBuilder(testStaticServiceRootURL).appendEntitySetSegment("Orders");
 
     // add create request
-    final ODataEntityCreateRequest<ODataEntity> createReq =
-            client.getCUDRequestFactory().getEntityCreateRequest(uriBuilder.build(), order);
+    final ODataEntityCreateRequest<ClientEntity> createReq =
+        client.getCUDRequestFactory().getEntityCreateRequest(uriBuilder.build(), order);
 
     changeset.addRequest(createReq);
 
@@ -261,10 +261,10 @@ public class BatchTestITCase extends AbstractTestITCase {
     int createRequestRef = changeset.getLastContentId();
 
     // add update request: link CustomerInfo(17) to the new customer
-    final ODataEntity customerChanges = client.getObjectFactory().newEntity(order.getTypeName());
+    final ClientEntity customerChanges = client.getObjectFactory().newEntity(order.getTypeName());
     customerChanges.addLink(client.getObjectFactory().newEntitySetNavigationLink(
-            "OrderDetails",
-            client.newURIBuilder(testStaticServiceRootURL).appendEntitySetSegment("OrderDetails").
+        "OrderDetails",
+        client.newURIBuilder(testStaticServiceRootURL).appendEntitySetSegment("OrderDetails").
             appendKeySegment(new HashMap<String, Object>() {
               private static final long serialVersionUID = 3109256773218160485L;
 
@@ -274,8 +274,8 @@ public class BatchTestITCase extends AbstractTestITCase {
               }
             }).build()));
 
-    final ODataEntityUpdateRequest<ODataEntity> updateReq = client.getCUDRequestFactory().getEntityUpdateRequest(
-            URI.create("$" + createRequestRef), UpdateType.PATCH, customerChanges);
+    final ODataEntityUpdateRequest<ClientEntity> updateReq = client.getCUDRequestFactory().getEntityUpdateRequest(
+        URI.create("$" + createRequestRef), UpdateType.PATCH, customerChanges);
 
     changeset.addRequest(updateReq);
 
@@ -295,12 +295,12 @@ public class BatchTestITCase extends AbstractTestITCase {
     assertEquals(201, res.getStatusCode());
     assertTrue(res instanceof ODataEntityCreateResponse);
 
-    order = ((ODataEntityCreateResponse<ODataEntity>) res).getBody();
-    final ODataEntitySetRequest<ODataEntitySet> req = client.getRetrieveRequestFactory().getEntitySetRequest(
-            URIUtils.getURI(testStaticServiceRootURL, order.getEditLink().toASCIIString() + "/OrderDetails"));
+    order = ((ODataEntityCreateResponse<ClientEntity>) res).getBody();
+    final ODataEntitySetRequest<ClientEntitySet> req = client.getRetrieveRequestFactory().getEntitySetRequest(
+        URIUtils.getURI(testStaticServiceRootURL, order.getEditLink().toASCIIString() + "/OrderDetails"));
 
     assertEquals(Integer.valueOf(7),
-            req.execute().getBody().getEntities().get(0).getProperty("OrderID").getPrimitiveValue().
+        req.execute().getBody().getEntities().get(0).getProperty("OrderID").getPrimitiveValue().
             toCastValue(Integer.class));
 
     res = chgitem.next();
@@ -309,13 +309,13 @@ public class BatchTestITCase extends AbstractTestITCase {
 
     // clean ...
     assertEquals(204, client.getCUDRequestFactory().getDeleteRequest(
-            URIUtils.getURI(testStaticServiceRootURL, order.getEditLink().toASCIIString())).execute().
-            getStatusCode());
+        URIUtils.getURI(testStaticServiceRootURL, order.getEditLink().toASCIIString())).execute().
+        getStatusCode());
 
     try {
       client.getRetrieveRequestFactory().getEntityRequest(
-              URIUtils.getURI(testStaticServiceRootURL, order.getEditLink().toASCIIString())).
-              execute().getBody();
+          URIUtils.getURI(testStaticServiceRootURL, order.getEditLink().toASCIIString())).
+          execute().getBody();
       fail();
     } catch (Exception e) {
       // ignore
@@ -336,10 +336,10 @@ public class BatchTestITCase extends AbstractTestITCase {
     // prepare URI
     URIBuilder targetURI = client.newURIBuilder(testStaticServiceRootURL);
     targetURI.appendEntitySetSegment("Customers").appendKeySegment(1).
-            expand("Orders").select("PersonID,Orders/OrderID");
+        expand("Orders").select("PersonID,Orders/OrderID");
 
     // create new request
-    ODataEntityRequest<ODataEntity> queryReq = client.getRetrieveRequestFactory().getEntityRequest(targetURI.build());
+    ODataEntityRequest<ClientEntity> queryReq = client.getRetrieveRequestFactory().getEntityRequest(targetURI.build());
     queryReq.setFormat(ODataFormat.JSON);
 
     streamManager.addRequest(queryReq);
@@ -350,9 +350,9 @@ public class BatchTestITCase extends AbstractTestITCase {
     // -------------------------------------------
     // prepare URI
     targetURI = client.newURIBuilder(testStaticServiceRootURL).appendEntitySetSegment("Orders");
-    final ODataEntity original = newOrder(2000);
-    final ODataEntityCreateRequest<ODataEntity> createReq =
-            client.getCUDRequestFactory().getEntityCreateRequest(targetURI.build(), original);
+    final ClientEntity original = newOrder(2000);
+    final ODataEntityCreateRequest<ClientEntity> createReq =
+        client.getCUDRequestFactory().getEntityCreateRequest(targetURI.build(), original);
     createReq.setFormat(ODataFormat.JSON);
     streamManager.addRequest(createReq);
     // -------------------------------------------
@@ -382,15 +382,15 @@ public class BatchTestITCase extends AbstractTestITCase {
     assertEquals(201, res.getStatusCode());
     assertEquals("Created", res.getStatusMessage());
 
-    final ODataEntityCreateResponse<ODataEntity> entres = (ODataEntityCreateResponse<ODataEntity>) res;
-    final ODataEntity entity = entres.getBody();
+    final ODataEntityCreateResponse<ClientEntity> entres = (ODataEntityCreateResponse<ClientEntity>) res;
+    final ClientEntity entity = entres.getBody();
     assertEquals(2000, entity.getProperty("OrderID").getPrimitiveValue().toCastValue(Integer.class).intValue());
 
     assertFalse(iter.hasNext());
   }
 
   @Test
-  @SuppressWarnings({"unchecked", "rawtypes"})
+  @SuppressWarnings({ "unchecked", "rawtypes" })
   public void batchRequest() throws EdmPrimitiveTypeException {
     // create your request
     final ODataBatchRequest request = client.getBatchRequestFactory().getBatchRequest(testStaticServiceRootURL);
@@ -406,7 +406,7 @@ public class BatchTestITCase extends AbstractTestITCase {
     targetURI.appendEntitySetSegment("Customers").appendKeySegment(1);
 
     // create new request
-    ODataEntityRequest<ODataEntity> queryReq = client.getRetrieveRequestFactory().getEntityRequest(targetURI.build());
+    ODataEntityRequest<ClientEntity> queryReq = client.getRetrieveRequestFactory().getEntityRequest(targetURI.build());
     queryReq.setFormat(ODataFormat.JSON);
 
     streamManager.addRequest(queryReq);
@@ -421,25 +421,25 @@ public class BatchTestITCase extends AbstractTestITCase {
     targetURI = client.newURIBuilder(testStaticServiceRootURL).appendEntitySetSegment("Customers").appendKeySegment(1);
     final URI editLink = targetURI.build();
 
-    final ODataEntity patch = client.getObjectFactory().newEntity(
-            new FullQualifiedName("Microsoft.Test.OData.Services.ODataWCFService.Customer"));
+    final ClientEntity patch = client.getObjectFactory().newEntity(
+        new FullQualifiedName("Microsoft.Test.OData.Services.ODataWCFService.Customer"));
     patch.setEditLink(editLink);
 
     patch.getProperties().add(client.getObjectFactory().newPrimitiveProperty(
-            "LastName",
-            client.getObjectFactory().newPrimitiveValueBuilder().buildString("new last name")));
+        "LastName",
+        client.getObjectFactory().newPrimitiveValueBuilder().buildString("new last name")));
 
-    final ODataEntityUpdateRequest<ODataEntity> changeReq =
-            client.getCUDRequestFactory().getEntityUpdateRequest(UpdateType.PATCH, patch);
+    final ODataEntityUpdateRequest<ClientEntity> changeReq =
+        client.getCUDRequestFactory().getEntityUpdateRequest(UpdateType.PATCH, patch);
     changeReq.setFormat(ODataFormat.JSON_FULL_METADATA);
 
     changeset.addRequest(changeReq);
 
     // Create Order into the changeset
     targetURI = client.newURIBuilder(testStaticServiceRootURL).appendEntitySetSegment("Orders");
-    final ODataEntity original = newOrder(1000);
-    final ODataEntityCreateRequest<ODataEntity> createReq =
-            client.getCUDRequestFactory().getEntityCreateRequest(targetURI.build(), original);
+    final ClientEntity original = newOrder(1000);
+    final ODataEntityCreateRequest<ClientEntity> createReq =
+        client.getCUDRequestFactory().getEntityCreateRequest(targetURI.build(), original);
     createReq.setFormat(ODataFormat.JSON);
     changeset.addRequest(createReq);
     // -------------------------------------------
@@ -471,10 +471,10 @@ public class BatchTestITCase extends AbstractTestITCase {
     assertEquals(200, res.getStatusCode());
     assertEquals("OK", res.getStatusMessage());
 
-    ODataEntityRequestImpl<ODataEntity>.ODataEntityResponseImpl entres =
-            (ODataEntityRequestImpl.ODataEntityResponseImpl) res;
+    ODataEntityRequestImpl<ClientEntity>.ODataEntityResponseImpl entres =
+        (ODataEntityRequestImpl.ODataEntityResponseImpl) res;
 
-    ODataEntity entity = entres.getBody();
+    ClientEntity entity = entres.getBody();
     assertEquals(1, entity.getProperty("PersonID").getPrimitiveValue().toCastValue(Integer.class), 0);
 
     // retrieve the second item (ODataChangeset)
@@ -492,7 +492,7 @@ public class BatchTestITCase extends AbstractTestITCase {
     assertEquals(201, res.getStatusCode());
     assertEquals("Created", res.getStatusMessage());
 
-    final ODataEntityCreateResponse<ODataEntity> createres = (ODataEntityCreateResponse<ODataEntity>) res;
+    final ODataEntityCreateResponse<ClientEntity> createres = (ODataEntityCreateResponse<ClientEntity>) res;
     entity = createres.getBody();
     assertEquals(new Integer(1000), entity.getProperty("OrderID").getPrimitiveValue().toCastValue(Integer.class));
 
@@ -517,7 +517,7 @@ public class BatchTestITCase extends AbstractTestITCase {
   public void async() {
     // create your request
     final ODataBatchRequest request = client.getBatchRequestFactory().getBatchRequest(
-            URI.create(testStaticServiceRootURL + "/async/").normalize().toASCIIString());
+        URI.create(testStaticServiceRootURL + "/async/").normalize().toASCIIString());
     request.setAccept(ACCEPT);
 
     final AsyncBatchRequestWrapper async = client.getAsyncRequestFactory().getAsyncBatchRequestWrapper(request);
@@ -530,7 +530,7 @@ public class BatchTestITCase extends AbstractTestITCase {
     targetURI.appendEntitySetSegment("People").appendKeySegment(5);
 
     // create new request
-    ODataEntityRequest<ODataEntity> queryReq = client.getRetrieveRequestFactory().getEntityRequest(targetURI.build());
+    ODataEntityRequest<ClientEntity> queryReq = client.getRetrieveRequestFactory().getEntityRequest(targetURI.build());
     queryReq.setFormat(ODataFormat.JSON);
 
     async.addRetrieve(queryReq);
@@ -636,22 +636,22 @@ public class BatchTestITCase extends AbstractTestITCase {
     }
   }
 
-  private ODataEntity newOrder(final int id) {
-    final ODataEntity order = getClient().getObjectFactory().
-            newEntity(new FullQualifiedName("Microsoft.Test.OData.Services.ODataWCFService.Order"));
+  private ClientEntity newOrder(final int id) {
+    final ClientEntity order = getClient().getObjectFactory().
+        newEntity(new FullQualifiedName("Microsoft.Test.OData.Services.ODataWCFService.Order"));
 
     order.getProperties().add(getClient().getObjectFactory().newPrimitiveProperty("OrderID",
-            getClient().getObjectFactory().newPrimitiveValueBuilder().buildInt32(id)));
+        getClient().getObjectFactory().newPrimitiveValueBuilder().buildInt32(id)));
     order.getProperties().add(getClient().getObjectFactory().newPrimitiveProperty("OrderDate",
-            getClient().getObjectFactory().newPrimitiveValueBuilder().
+        getClient().getObjectFactory().newPrimitiveValueBuilder().
             setType(EdmPrimitiveTypeKind.DateTimeOffset).setValue(Calendar.getInstance()).build()));
     order.getProperties().add(getClient().getObjectFactory().newPrimitiveProperty("ShelfLife",
-            getClient().getObjectFactory().newPrimitiveValueBuilder().
+        getClient().getObjectFactory().newPrimitiveValueBuilder().
             setType(EdmPrimitiveTypeKind.Duration).setValue(new BigDecimal("0.0000002")).build()));
     order.getProperties().add(getClient().getObjectFactory().newCollectionProperty("OrderShelfLifes",
-            getClient().getObjectFactory().newCollectionValue(EdmPrimitiveTypeKind.Duration.name()).add(
-                    getClient().getObjectFactory().newPrimitiveValueBuilder().setType(EdmPrimitiveTypeKind.Duration).
-                    setValue(new BigDecimal("0.0000002")).build())));
+        getClient().getObjectFactory().newCollectionValue(EdmPrimitiveTypeKind.Duration.name()).add(
+            getClient().getObjectFactory().newPrimitiveValueBuilder().setType(EdmPrimitiveTypeKind.Duration).
+                setValue(new BigDecimal("0.0000002")).build())));
 
     return order;
   }


[37/50] [abbrv] olingo-odata4 git commit: [OLINGO-564] Renamed 'OData*' to 'Client*' classes

Posted by mi...@apache.org.
http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/c37d4da5/fit/src/test/java/org/apache/olingo/fit/tecsvc/client/FilterSystemQueryITCase.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/tecsvc/client/FilterSystemQueryITCase.java b/fit/src/test/java/org/apache/olingo/fit/tecsvc/client/FilterSystemQueryITCase.java
index 16529dd..383b709 100644
--- a/fit/src/test/java/org/apache/olingo/fit/tecsvc/client/FilterSystemQueryITCase.java
+++ b/fit/src/test/java/org/apache/olingo/fit/tecsvc/client/FilterSystemQueryITCase.java
@@ -30,10 +30,10 @@ import org.apache.olingo.client.api.communication.request.retrieve.ODataEntitySe
 import org.apache.olingo.client.api.communication.response.ODataEntityCreateResponse;
 import org.apache.olingo.client.api.communication.response.ODataRetrieveResponse;
 import org.apache.olingo.client.core.ODataClientFactory;
-import org.apache.olingo.commons.api.domain.ODataEntity;
-import org.apache.olingo.commons.api.domain.ODataEntitySet;
-import org.apache.olingo.commons.api.domain.ODataObjectFactory;
-import org.apache.olingo.commons.api.domain.ODataValuable;
+import org.apache.olingo.commons.api.domain.ClientEntity;
+import org.apache.olingo.commons.api.domain.ClientEntitySet;
+import org.apache.olingo.commons.api.domain.ClientObjectFactory;
+import org.apache.olingo.commons.api.domain.ClientValuable;
 import org.apache.olingo.commons.api.edm.FullQualifiedName;
 import org.apache.olingo.commons.api.format.ODataFormat;
 import org.apache.olingo.commons.api.http.HttpHeader;
@@ -53,100 +53,100 @@ public class FilterSystemQueryITCase extends AbstractBaseTestITCase {
 
   @AfterClass
   public static void tearDownAfterClass() throws Exception {
-    //Nothing here.
+    // Nothing here.
   }
 
   @Test
   public void testTimeOfDayLiteral() {
-    ODataRetrieveResponse<ODataEntitySet> result = sendRequest(ES_ALL_PRIM, "PropertyTimeOfDay eq 03:26:05");
+    ODataRetrieveResponse<ClientEntitySet> result = sendRequest(ES_ALL_PRIM, "PropertyTimeOfDay eq 03:26:05");
     assertEquals(1, result.getBody().getEntities().size());
 
-    ODataEntity oDataEntity = result.getBody().getEntities().get(0);
-    assertEquals("32767", ((ODataValuable) oDataEntity.getProperty("PropertyInt16")).getValue().toString());
+    ClientEntity clientEntity = result.getBody().getEntities().get(0);
+    assertEquals("32767", ((ClientValuable) clientEntity.getProperty("PropertyInt16")).getValue().toString());
   }
 
   @Test
   public void testBooleanLiteral() {
-    ODataRetrieveResponse<ODataEntitySet> response = sendRequest(ES_ALL_PRIM, "PropertyBoolean eq false");
+    ODataRetrieveResponse<ClientEntitySet> response = sendRequest(ES_ALL_PRIM, "PropertyBoolean eq false");
     assertEquals(2, response.getBody().getEntities().size());
 
-    ODataEntity oDataEntity = response.getBody().getEntities().get(0);
-    assertEquals("-32768", ((ODataValuable) oDataEntity.getProperty("PropertyInt16")).getValue().toString());
-    oDataEntity = response.getBody().getEntities().get(1);
-    assertEquals("0", ((ODataValuable) oDataEntity.getProperty("PropertyInt16")).getValue().toString());
+    ClientEntity clientEntity = response.getBody().getEntities().get(0);
+    assertEquals("-32768", ((ClientValuable) clientEntity.getProperty("PropertyInt16")).getValue().toString());
+    clientEntity = response.getBody().getEntities().get(1);
+    assertEquals("0", ((ClientValuable) clientEntity.getProperty("PropertyInt16")).getValue().toString());
 
     response = sendRequest(ES_ALL_PRIM, "PropertyBoolean eq true");
     assertEquals(1, response.getBody().getEntities().size());
 
-    oDataEntity = response.getBody().getEntities().get(0);
-    assertEquals("32767", ((ODataValuable) oDataEntity.getProperty("PropertyInt16")).getValue().toString());
+    clientEntity = response.getBody().getEntities().get(0);
+    assertEquals("32767", ((ClientValuable) clientEntity.getProperty("PropertyInt16")).getValue().toString());
   }
 
   @Test
   public void testDateLiteral() {
-    ODataRetrieveResponse<ODataEntitySet> result = sendRequest(ES_ALL_PRIM, "PropertyDate eq 2012-12-03");
+    ODataRetrieveResponse<ClientEntitySet> result = sendRequest(ES_ALL_PRIM, "PropertyDate eq 2012-12-03");
     assertEquals(1, result.getBody().getEntities().size());
 
-    ODataEntity oDataEntity = result.getBody().getEntities().get(0);
-    assertEquals("32767", ((ODataValuable) oDataEntity.getProperty("PropertyInt16")).getValue().toString());
+    ClientEntity clientEntity = result.getBody().getEntities().get(0);
+    assertEquals("32767", ((ClientValuable) clientEntity.getProperty("PropertyInt16")).getValue().toString());
   }
 
   @Test
   public void testDateTimeOffsetLiteral() {
-    ODataRetrieveResponse<ODataEntitySet> result =
+    ODataRetrieveResponse<ClientEntitySet> result =
         sendRequest(ES_ALL_PRIM, "PropertyDateTimeOffset eq 2012-12-03T07:16:23Z");
     assertEquals(1, result.getBody().getEntities().size());
 
-    ODataEntity oDataEntity = result.getBody().getEntities().get(0);
-    assertEquals("32767", ((ODataValuable) oDataEntity.getProperty("PropertyInt16")).getValue().toString());
+    ClientEntity clientEntity = result.getBody().getEntities().get(0);
+    assertEquals("32767", ((ClientValuable) clientEntity.getProperty("PropertyInt16")).getValue().toString());
   }
 
   @Test
   public void testInt64Literal() {
     long value = Integer.MAX_VALUE + 1L;
-    ODataRetrieveResponse<ODataEntitySet> result =
+    ODataRetrieveResponse<ClientEntitySet> result =
         sendRequest(ES_ALL_PRIM, "PropertyInt64 gt " + value);
     assertEquals(1, result.getBody().getEntities().size());
 
-    ODataEntity oDataEntity = result.getBody().getEntities().get(0);
-    assertEquals("32767", ((ODataValuable) oDataEntity.getProperty("PropertyInt16")).getValue().toString());
+    ClientEntity clientEntity = result.getBody().getEntities().get(0);
+    assertEquals("32767", ((ClientValuable) clientEntity.getProperty("PropertyInt16")).getValue().toString());
   }
 
   @Test
   public void testDoubleLiteral() {
     Double value = -17900000000000000000.0;
 
-    ODataRetrieveResponse<ODataEntitySet> result =
+    ODataRetrieveResponse<ClientEntitySet> result =
         sendRequest(ES_ALL_PRIM, "PropertyDouble le " + value.toString());
     assertEquals(1, result.getBody().getEntities().size());
 
-    ODataEntity oDataEntity = result.getBody().getEntities().get(0);
-    assertEquals("32767", ((ODataValuable) oDataEntity.getProperty("PropertyInt16")).getValue().toString());
+    ClientEntity clientEntity = result.getBody().getEntities().get(0);
+    assertEquals("32767", ((ClientValuable) clientEntity.getProperty("PropertyInt16")).getValue().toString());
   }
 
   @Test
   public void testSimpleEq() {
-    ODataRetrieveResponse<ODataEntitySet> result = sendRequest(ES_TWO_KEY_NAV, "PropertyInt16 eq 1");
+    ODataRetrieveResponse<ClientEntitySet> result = sendRequest(ES_TWO_KEY_NAV, "PropertyInt16 eq 1");
 
     assertEquals(2, result.getBody().getEntities().size());
-    ODataEntity oDataEntity = result.getBody().getEntities().get(0);
-    assertEquals("1", ((ODataValuable) oDataEntity.getProperty("PropertyInt16")).getValue().toString());
-    assertEquals("1", ((ODataValuable) oDataEntity.getProperty("PropertyString")).getValue().toString());
+    ClientEntity clientEntity = result.getBody().getEntities().get(0);
+    assertEquals("1", ((ClientValuable) clientEntity.getProperty("PropertyInt16")).getValue().toString());
+    assertEquals("1", ((ClientValuable) clientEntity.getProperty("PropertyString")).getValue().toString());
 
-    oDataEntity = result.getBody().getEntities().get(1);
-    assertEquals("1", ((ODataValuable) oDataEntity.getProperty("PropertyInt16")).getValue().toString());
-    assertEquals("2", ((ODataValuable) oDataEntity.getProperty("PropertyString")).getValue().toString());
+    clientEntity = result.getBody().getEntities().get(1);
+    assertEquals("1", ((ClientValuable) clientEntity.getProperty("PropertyInt16")).getValue().toString());
+    assertEquals("2", ((ClientValuable) clientEntity.getProperty("PropertyString")).getValue().toString());
   }
 
   @Test
   public void testBinaryIntegerOperations() {
-    ODataRetrieveResponse<ODataEntitySet> result =
+    ODataRetrieveResponse<ClientEntitySet> result =
         sendRequest(ES_TWO_KEY_NAV, "PropertyInt16 add 1 eq (1 sub 3) div 2 mul 3 add 7");
 
     assertEquals(1, result.getBody().getEntities().size());
-    ODataEntity oDataEntity = result.getBody().getEntities().get(0);
-    assertEquals("3", ((ODataValuable) oDataEntity.getProperty("PropertyInt16")).getValue().toString());
-    assertEquals("1", ((ODataValuable) oDataEntity.getProperty("PropertyString")).getValue().toString());
+    ClientEntity clientEntity = result.getBody().getEntities().get(0);
+    assertEquals("3", ((ClientValuable) clientEntity.getProperty("PropertyInt16")).getValue().toString());
+    assertEquals("1", ((ClientValuable) clientEntity.getProperty("PropertyString")).getValue().toString());
   }
 
   @Test
@@ -161,47 +161,47 @@ public class FilterSystemQueryITCase extends AbstractBaseTestITCase {
         .filter(filter)
         .build();
 
-    final ODataRetrieveResponse<ODataEntitySet> response = client.getRetrieveRequestFactory()
+    final ODataRetrieveResponse<ClientEntitySet> response = client.getRetrieveRequestFactory()
         .getEntitySetRequest(uri).execute();
 
     assertEquals(1, response.getBody().getEntities().size());
-    ODataEntity oDataEntity = response.getBody().getEntities().get(0);
+    ClientEntity clientEntity = response.getBody().getEntities().get(0);
 
-    assertEquals("32767", ((ODataValuable) oDataEntity.getProperty("PropertyInt16")).getValue().toString());
+    assertEquals("32767", ((ClientValuable) clientEntity.getProperty("PropertyInt16")).getValue().toString());
   }
 
   @Test
   public void testStringProperty() {
-    ODataRetrieveResponse<ODataEntitySet> result = sendRequest(ES_TWO_KEY_NAV, "PropertyString eq '2'");
+    ODataRetrieveResponse<ClientEntitySet> result = sendRequest(ES_TWO_KEY_NAV, "PropertyString eq '2'");
 
     assertEquals(1, result.getBody().getEntities().size());
-    ODataEntity oDataEntity = result.getBody().getEntities().get(0);
-    assertEquals("2", ((ODataValuable) oDataEntity.getProperty("PropertyString")).getValue().toString());
+    ClientEntity clientEntity = result.getBody().getEntities().get(0);
+    assertEquals("2", ((ClientValuable) clientEntity.getProperty("PropertyString")).getValue().toString());
   }
 
   @Test
   public void testBooleanOperator() {
-    ODataRetrieveResponse<ODataEntitySet> result =
+    ODataRetrieveResponse<ClientEntitySet> result =
         sendRequest(ES_TWO_KEY_NAV, "PropertyString eq '2' and PropertyInt16 eq 1");
     assertEquals(1, result.getBody().getEntities().size());
-    ODataEntity oDataEntity = result.getBody().getEntities().get(0);
-    assertEquals("2", ((ODataValuable) oDataEntity.getProperty("PropertyString")).getValue().toString());
-    assertEquals("1", ((ODataValuable) oDataEntity.getProperty("PropertyInt16")).getValue().toString());
+    ClientEntity clientEntity = result.getBody().getEntities().get(0);
+    assertEquals("2", ((ClientValuable) clientEntity.getProperty("PropertyString")).getValue().toString());
+    assertEquals("1", ((ClientValuable) clientEntity.getProperty("PropertyInt16")).getValue().toString());
 
     result = sendRequest(ES_TWO_KEY_NAV, "PropertyString eq '2' or PropertyInt16 eq 1");
     assertEquals(2, result.getBody().getEntities().size());
-    oDataEntity = result.getBody().getEntities().get(0);
-    assertEquals("1", ((ODataValuable) oDataEntity.getProperty("PropertyString")).getValue().toString());
-    assertEquals("1", ((ODataValuable) oDataEntity.getProperty("PropertyInt16")).getValue().toString());
+    clientEntity = result.getBody().getEntities().get(0);
+    assertEquals("1", ((ClientValuable) clientEntity.getProperty("PropertyString")).getValue().toString());
+    assertEquals("1", ((ClientValuable) clientEntity.getProperty("PropertyInt16")).getValue().toString());
 
-    oDataEntity = result.getBody().getEntities().get(1);
-    assertEquals("2", ((ODataValuable) oDataEntity.getProperty("PropertyString")).getValue().toString());
-    assertEquals("1", ((ODataValuable) oDataEntity.getProperty("PropertyInt16")).getValue().toString());
+    clientEntity = result.getBody().getEntities().get(1);
+    assertEquals("2", ((ClientValuable) clientEntity.getProperty("PropertyString")).getValue().toString());
+    assertEquals("1", ((ClientValuable) clientEntity.getProperty("PropertyInt16")).getValue().toString());
   }
 
   @Test
   public void testBooleanOperatorWithNull() {
-    ODataRetrieveResponse<ODataEntitySet> result = sendRequest(ES_TWO_KEY_NAV, "PropertyInt16 eq null");
+    ODataRetrieveResponse<ClientEntitySet> result = sendRequest(ES_TWO_KEY_NAV, "PropertyInt16 eq null");
     assertEquals(0, result.getBody().getEntities().size());
 
     result = sendRequest(ES_TWO_KEY_NAV, "null eq null");
@@ -213,7 +213,7 @@ public class FilterSystemQueryITCase extends AbstractBaseTestITCase {
 
   @Test
   public void testUnaryWithNullLiterals() {
-    ODataRetrieveResponse<ODataEntitySet> result =
+    ODataRetrieveResponse<ClientEntitySet> result =
         sendRequest(ES_TWO_KEY_NAV, "PropertyComp/PropertyComp/PropertyBoolean eq not null");
     assertEquals(0, result.getBody().getEntities().size());
 
@@ -230,7 +230,7 @@ public class FilterSystemQueryITCase extends AbstractBaseTestITCase {
   @Test
   public void testMethodCallsWithNull() {
     // One representative of "stringFuntion" "residue class"
-    ODataRetrieveResponse<ODataEntitySet> result =
+    ODataRetrieveResponse<ClientEntitySet> result =
         sendRequest(ES_ALL_PRIM, "endswith(PropertyString, null) eq null"); // null eq null => true
     assertEquals(3, result.getBody().getEntities().size());
 
@@ -251,13 +251,13 @@ public class FilterSystemQueryITCase extends AbstractBaseTestITCase {
     // See OASIS JIRA ODATA-781
 
     // -1 should be treated as 0
-    ODataRetrieveResponse<ODataEntitySet> response =
+    ODataRetrieveResponse<ClientEntitySet> response =
         sendRequest(ES_ALL_PRIM, "substring(PropertyString, -1, 1) eq 'F'");
     assertEquals(1, response.getBody().getEntities().size());
 
     assertEquals(32767, response.getBody().getEntities().get(0).getProperty("PropertyInt16").getPrimitiveValue()
         .toValue());
-    
+
     // -1 should be treated as 0, Same values substring(PropertyString, 0, 0) returns the empty String
     response = sendRequest(ES_ALL_PRIM, "substring(PropertyString, 0, -1) eq ''");
     assertEquals(3, response.getBody().getEntities().size());
@@ -283,21 +283,21 @@ public class FilterSystemQueryITCase extends AbstractBaseTestITCase {
     final String filterString = "PropertyString eq null";
 
     ODataClient client = getClient();
-    ODataObjectFactory objectFactory = client.getObjectFactory();
+    ClientObjectFactory objectFactory = client.getObjectFactory();
 
-    ODataEntity entity = objectFactory.newEntity(new FullQualifiedName("olingo.odata.test1.ETAllPrim"));
+    ClientEntity entity = objectFactory.newEntity(new FullQualifiedName("olingo.odata.test1.ETAllPrim"));
 
     entity.getProperties().add(
         objectFactory.newPrimitiveProperty("PropertyInt16", objectFactory.newPrimitiveValueBuilder()
             .buildInt16((short) 1)));
-    entity.addLink(objectFactory.newEntityNavigationLink("NavPropertyETTwoPrimOne", 
+    entity.addLink(objectFactory.newEntityNavigationLink("NavPropertyETTwoPrimOne",
         client.newURIBuilder(SERVICE_URI)
-              .appendEntitySetSegment("ESTwoPrim")
-              .appendKeySegment(32766)
-              .build()));
-    
+            .appendEntitySetSegment("ESTwoPrim")
+            .appendKeySegment(32766)
+            .build()));
+
     final URI uri = client.newURIBuilder(SERVICE_URI).appendEntitySetSegment("ESAllPrim").build();
-    ODataEntityCreateResponse<ODataEntity> createResponse =
+    ODataEntityCreateResponse<ClientEntity> createResponse =
         client.getCUDRequestFactory().getEntityCreateRequest(uri, entity).execute();
 
     final URI receiveURI =
@@ -306,17 +306,17 @@ public class FilterSystemQueryITCase extends AbstractBaseTestITCase {
             .filter(filterString)
             .build();
 
-    ODataEntitySetRequest<ODataEntitySet> filterRequest =
+    ODataEntitySetRequest<ClientEntitySet> filterRequest =
         client.getRetrieveRequestFactory().getEntitySetRequest(receiveURI);
     filterRequest.addCustomHeader(HttpHeader.COOKIE, createResponse.getHeader(HttpHeader.SET_COOKIE).iterator().next());
-    ODataRetrieveResponse<ODataEntitySet> filterResponse = filterRequest.execute();
+    ODataRetrieveResponse<ClientEntitySet> filterResponse = filterRequest.execute();
 
     assertEquals(1, filterResponse.getBody().getEntities().size());
   }
 
   @Test
   public void testNumericComparisionOperators() {
-    ODataRetrieveResponse<ODataEntitySet> result = sendRequest(ES_TWO_KEY_NAV, "PropertyInt16 ge 1");
+    ODataRetrieveResponse<ClientEntitySet> result = sendRequest(ES_TWO_KEY_NAV, "PropertyInt16 ge 1");
     assertEquals(4, result.getBody().getEntities().size());
 
     result = sendRequest(ES_TWO_KEY_NAV, "PropertyInt16 gt 1");
@@ -351,131 +351,131 @@ public class FilterSystemQueryITCase extends AbstractBaseTestITCase {
         + "PropertyComp/PropertyInt16 eq " // Complex Property
         + "5.5 mul 2"; // Single * Int16 => Single => Int16 eq Single => Single eq Single
 
-    ODataRetrieveResponse<ODataEntitySet> result = sendRequest(ES_TWO_KEY_NAV, filterString);
+    ODataRetrieveResponse<ClientEntitySet> result = sendRequest(ES_TWO_KEY_NAV, filterString);
     assertEquals(3, result.getBody().getEntities().size());
 
-    ODataEntity oDataEntity = result.getBody().getEntities().get(0);
-    assertEquals("1", ((ODataValuable) oDataEntity.getProperty("PropertyInt16")).getValue().toString());
-    assertEquals("1", ((ODataValuable) oDataEntity.getProperty("PropertyString")).getValue().toString());
-    assertEquals("11", ((ODataValuable) ((ODataValuable) oDataEntity.getProperty("PropertyComp")).getComplexValue()
+    ClientEntity clientEntity = result.getBody().getEntities().get(0);
+    assertEquals("1", ((ClientValuable) clientEntity.getProperty("PropertyInt16")).getValue().toString());
+    assertEquals("1", ((ClientValuable) clientEntity.getProperty("PropertyString")).getValue().toString());
+    assertEquals("11", ((ClientValuable) ((ClientValuable) clientEntity.getProperty("PropertyComp")).getComplexValue()
         .get("PropertyInt16")).getValue()
         .toString());
 
-    oDataEntity = result.getBody().getEntities().get(1);
-    assertEquals("1", ((ODataValuable) oDataEntity.getProperty("PropertyInt16")).getValue().toString());
-    assertEquals("2", ((ODataValuable) oDataEntity.getProperty("PropertyString")).getValue().toString());
-    assertEquals("11", ((ODataValuable) ((ODataValuable) oDataEntity.getProperty("PropertyComp")).getComplexValue()
+    clientEntity = result.getBody().getEntities().get(1);
+    assertEquals("1", ((ClientValuable) clientEntity.getProperty("PropertyInt16")).getValue().toString());
+    assertEquals("2", ((ClientValuable) clientEntity.getProperty("PropertyString")).getValue().toString());
+    assertEquals("11", ((ClientValuable) ((ClientValuable) clientEntity.getProperty("PropertyComp")).getComplexValue()
         .get("PropertyInt16")).getValue()
         .toString());
 
-    oDataEntity = result.getBody().getEntities().get(2);
-    assertEquals("3", ((ODataValuable) oDataEntity.getProperty("PropertyInt16")).getValue().toString());
-    assertEquals("1", ((ODataValuable) oDataEntity.getProperty("PropertyString")).getValue().toString());
-    assertEquals("11", ((ODataValuable) ((ODataValuable) oDataEntity.getProperty("PropertyComp")).getComplexValue()
+    clientEntity = result.getBody().getEntities().get(2);
+    assertEquals("3", ((ClientValuable) clientEntity.getProperty("PropertyInt16")).getValue().toString());
+    assertEquals("1", ((ClientValuable) clientEntity.getProperty("PropertyString")).getValue().toString());
+    assertEquals("11", ((ClientValuable) ((ClientValuable) clientEntity.getProperty("PropertyComp")).getComplexValue()
         .get("PropertyInt16")).getValue()
         .toString());
   }
 
   @Test
   public void testNotOperator() {
-    ODataRetrieveResponse<ODataEntitySet> result = sendRequest(ES_TWO_KEY_NAV, "not (PropertyInt16 eq 1)");
+    ODataRetrieveResponse<ClientEntitySet> result = sendRequest(ES_TWO_KEY_NAV, "not (PropertyInt16 eq 1)");
     assertEquals(2, result.getBody().getEntities().size());
 
-    ODataEntity oDataEntity = result.getBody().getEntities().get(0);
-    assertEquals("2", ((ODataValuable) oDataEntity.getProperty("PropertyInt16")).getValue().toString());
-    assertEquals("1", ((ODataValuable) oDataEntity.getProperty("PropertyString")).getValue().toString());
+    ClientEntity clientEntity = result.getBody().getEntities().get(0);
+    assertEquals("2", ((ClientValuable) clientEntity.getProperty("PropertyInt16")).getValue().toString());
+    assertEquals("1", ((ClientValuable) clientEntity.getProperty("PropertyString")).getValue().toString());
 
-    oDataEntity = result.getBody().getEntities().get(1);
-    assertEquals("3", ((ODataValuable) oDataEntity.getProperty("PropertyInt16")).getValue().toString());
-    assertEquals("1", ((ODataValuable) oDataEntity.getProperty("PropertyString")).getValue().toString());
+    clientEntity = result.getBody().getEntities().get(1);
+    assertEquals("3", ((ClientValuable) clientEntity.getProperty("PropertyInt16")).getValue().toString());
+    assertEquals("1", ((ClientValuable) clientEntity.getProperty("PropertyString")).getValue().toString());
   }
 
   @Test
   public void testUnaryMinusOperator() {
-    ODataRetrieveResponse<ODataEntitySet> result = sendRequest(ES_TWO_KEY_NAV, "PropertyInt16 gt -2 add - -3");
+    ODataRetrieveResponse<ClientEntitySet> result = sendRequest(ES_TWO_KEY_NAV, "PropertyInt16 gt -2 add - -3");
     assertEquals(2, result.getBody().getEntities().size());
 
-    ODataEntity oDataEntity = result.getBody().getEntities().get(0);
-    assertEquals("2", ((ODataValuable) oDataEntity.getProperty("PropertyInt16")).getValue().toString());
-    assertEquals("1", ((ODataValuable) oDataEntity.getProperty("PropertyString")).getValue().toString());
+    ClientEntity clientEntity = result.getBody().getEntities().get(0);
+    assertEquals("2", ((ClientValuable) clientEntity.getProperty("PropertyInt16")).getValue().toString());
+    assertEquals("1", ((ClientValuable) clientEntity.getProperty("PropertyString")).getValue().toString());
 
-    oDataEntity = result.getBody().getEntities().get(1);
-    assertEquals("3", ((ODataValuable) oDataEntity.getProperty("PropertyInt16")).getValue().toString());
-    assertEquals("1", ((ODataValuable) oDataEntity.getProperty("PropertyString")).getValue().toString());
+    clientEntity = result.getBody().getEntities().get(1);
+    assertEquals("3", ((ClientValuable) clientEntity.getProperty("PropertyInt16")).getValue().toString());
+    assertEquals("1", ((ClientValuable) clientEntity.getProperty("PropertyString")).getValue().toString());
   }
 
   @Test
   public void testUnaryMinusOperatorDecimal() {
-    ODataRetrieveResponse<ODataEntitySet> result = sendRequest(ES_TWO_KEY_NAV, "PropertyInt16 gt -2.0 add - -3.0");
+    ODataRetrieveResponse<ClientEntitySet> result = sendRequest(ES_TWO_KEY_NAV, "PropertyInt16 gt -2.0 add - -3.0");
     assertEquals(2, result.getBody().getEntities().size());
 
-    ODataEntity oDataEntity = result.getBody().getEntities().get(0);
-    assertEquals("2", ((ODataValuable) oDataEntity.getProperty("PropertyInt16")).getValue().toString());
-    assertEquals("1", ((ODataValuable) oDataEntity.getProperty("PropertyString")).getValue().toString());
+    ClientEntity clientEntity = result.getBody().getEntities().get(0);
+    assertEquals("2", ((ClientValuable) clientEntity.getProperty("PropertyInt16")).getValue().toString());
+    assertEquals("1", ((ClientValuable) clientEntity.getProperty("PropertyString")).getValue().toString());
 
-    oDataEntity = result.getBody().getEntities().get(1);
-    assertEquals("3", ((ODataValuable) oDataEntity.getProperty("PropertyInt16")).getValue().toString());
-    assertEquals("1", ((ODataValuable) oDataEntity.getProperty("PropertyString")).getValue().toString());
+    clientEntity = result.getBody().getEntities().get(1);
+    assertEquals("3", ((ClientValuable) clientEntity.getProperty("PropertyInt16")).getValue().toString());
+    assertEquals("1", ((ClientValuable) clientEntity.getProperty("PropertyString")).getValue().toString());
   }
 
   @Test
   public void testStringPropertyEqualsNull() {
-    ODataRetrieveResponse<ODataEntitySet> result = sendRequest(ES_TWO_KEY_NAV, "PropertyString eq null");
+    ODataRetrieveResponse<ClientEntitySet> result = sendRequest(ES_TWO_KEY_NAV, "PropertyString eq null");
     assertEquals(0, result.getBody().getEntities().size());
   }
 
   @Test
   public void testAddNullLiteral() {
-    ODataRetrieveResponse<ODataEntitySet> result = sendRequest(ES_TWO_KEY_NAV, "PropertyInt16 add null eq 1");
+    ODataRetrieveResponse<ClientEntitySet> result = sendRequest(ES_TWO_KEY_NAV, "PropertyInt16 add null eq 1");
     assertEquals(0, result.getBody().getEntities().size());
   }
 
   @Test
   public void testAddNullLiteralEqualsNull() {
-    ODataRetrieveResponse<ODataEntitySet> result = sendRequest(ES_TWO_KEY_NAV, "PropertyInt16 add null eq null");
+    ODataRetrieveResponse<ClientEntitySet> result = sendRequest(ES_TWO_KEY_NAV, "PropertyInt16 add null eq null");
     assertEquals(4, result.getBody().getEntities().size());
   }
 
   @Test
   public void testSubstringStartAndEndGiven() {
-    ODataRetrieveResponse<ODataEntitySet> result =
+    ODataRetrieveResponse<ClientEntitySet> result =
         sendRequest(ES_ALL_PRIM, "substring(PropertyString, length('First') add 1, 8) eq ('Resource')");
 
     assertEquals(1, result.getBody().getEntities().size());
 
-    ODataEntity oDataEntity = result.getBody().getEntities().get(0);
-    assertEquals("32767", ((ODataValuable) oDataEntity.getProperty("PropertyInt16")).getValue().toString());
+    ClientEntity clientEntity = result.getBody().getEntities().get(0);
+    assertEquals("32767", ((ClientValuable) clientEntity.getProperty("PropertyInt16")).getValue().toString());
   }
 
   @Test
   public void testSubstringStartGiven() {
-    ODataRetrieveResponse<ODataEntitySet> result =
+    ODataRetrieveResponse<ClientEntitySet> result =
         sendRequest(ES_TWO_KEY_NAV, "substring(PropertyComp/PropertyComp/PropertyString, 6) eq 'Value'");
 
     assertEquals(4, result.getBody().getEntities().size());
 
-    ODataEntity oDataEntity = result.getBody().getEntities().get(0);
-    assertEquals("1", ((ODataValuable) oDataEntity.getProperty("PropertyInt16")).getValue().toString());
-    assertEquals("1", ((ODataValuable) oDataEntity.getProperty("PropertyString")).getValue().toString());
+    ClientEntity clientEntity = result.getBody().getEntities().get(0);
+    assertEquals("1", ((ClientValuable) clientEntity.getProperty("PropertyInt16")).getValue().toString());
+    assertEquals("1", ((ClientValuable) clientEntity.getProperty("PropertyString")).getValue().toString());
 
-    oDataEntity = result.getBody().getEntities().get(1);
-    assertEquals("1", ((ODataValuable) oDataEntity.getProperty("PropertyInt16")).getValue().toString());
-    assertEquals("2", ((ODataValuable) oDataEntity.getProperty("PropertyString")).getValue().toString());
+    clientEntity = result.getBody().getEntities().get(1);
+    assertEquals("1", ((ClientValuable) clientEntity.getProperty("PropertyInt16")).getValue().toString());
+    assertEquals("2", ((ClientValuable) clientEntity.getProperty("PropertyString")).getValue().toString());
 
-    oDataEntity = result.getBody().getEntities().get(2);
-    assertEquals("2", ((ODataValuable) oDataEntity.getProperty("PropertyInt16")).getValue().toString());
-    assertEquals("1", ((ODataValuable) oDataEntity.getProperty("PropertyString")).getValue().toString());
+    clientEntity = result.getBody().getEntities().get(2);
+    assertEquals("2", ((ClientValuable) clientEntity.getProperty("PropertyInt16")).getValue().toString());
+    assertEquals("1", ((ClientValuable) clientEntity.getProperty("PropertyString")).getValue().toString());
 
-    oDataEntity = result.getBody().getEntities().get(3);
-    assertEquals("3", ((ODataValuable) oDataEntity.getProperty("PropertyInt16")).getValue().toString());
-    assertEquals("1", ((ODataValuable) oDataEntity.getProperty("PropertyString")).getValue().toString());
+    clientEntity = result.getBody().getEntities().get(3);
+    assertEquals("3", ((ClientValuable) clientEntity.getProperty("PropertyInt16")).getValue().toString());
+    assertEquals("1", ((ClientValuable) clientEntity.getProperty("PropertyString")).getValue().toString());
   }
 
   @Test
   @SuppressWarnings("unused")
   public void testSubstringDouble() {
     try {
-      ODataRetrieveResponse<ODataEntitySet> result =
+      ODataRetrieveResponse<ClientEntitySet> result =
           sendRequest(ES_ALL_PRIM, "substring(PropertyString, length('First')"
               + "add 1, 2.0 * 4) eq ('Resource')");
     } catch (ODataClientErrorException e) {
@@ -485,150 +485,150 @@ public class FilterSystemQueryITCase extends AbstractBaseTestITCase {
 
   @Test
   public void testYearFunctionDate() {
-    ODataRetrieveResponse<ODataEntitySet> result = sendRequest(ES_ALL_PRIM, "year(PropertyDate) eq 2015");
+    ODataRetrieveResponse<ClientEntitySet> result = sendRequest(ES_ALL_PRIM, "year(PropertyDate) eq 2015");
     assertEquals(1, result.getBody().getEntities().size());
 
-    ODataEntity oDataEntity = result.getBody().getEntities().get(0);
-    assertEquals("-32768", ((ODataValuable) oDataEntity.getProperty("PropertyInt16")).getValue().toString());
+    ClientEntity clientEntity = result.getBody().getEntities().get(0);
+    assertEquals("-32768", ((ClientValuable) clientEntity.getProperty("PropertyInt16")).getValue().toString());
   }
 
   @Test
   public void testYearFunctionDateTimeOffset() {
-    ODataRetrieveResponse<ODataEntitySet> result = sendRequest(ES_ALL_PRIM, "year(PropertyDateTimeOffset) eq 2012");
+    ODataRetrieveResponse<ClientEntitySet> result = sendRequest(ES_ALL_PRIM, "year(PropertyDateTimeOffset) eq 2012");
     assertEquals(1, result.getBody().getEntities().size());
 
-    ODataEntity oDataEntity = result.getBody().getEntities().get(0);
-    assertEquals("32767", ((ODataValuable) oDataEntity.getProperty("PropertyInt16")).getValue().toString());
+    ClientEntity clientEntity = result.getBody().getEntities().get(0);
+    assertEquals("32767", ((ClientValuable) clientEntity.getProperty("PropertyInt16")).getValue().toString());
   }
 
   @Test
   public void testMonthFunctionDateTimeOffset() {
-    ODataRetrieveResponse<ODataEntitySet> result = sendRequest(ES_ALL_PRIM, "month(PropertyDateTimeOffset) eq 12");
+    ODataRetrieveResponse<ClientEntitySet> result = sendRequest(ES_ALL_PRIM, "month(PropertyDateTimeOffset) eq 12");
     assertEquals(3, result.getBody().getEntities().size());
 
-    ODataEntity oDataEntity = result.getBody().getEntities().get(0);
-    assertEquals("32767", ((ODataValuable) oDataEntity.getProperty("PropertyInt16")).getValue().toString());
+    ClientEntity clientEntity = result.getBody().getEntities().get(0);
+    assertEquals("32767", ((ClientValuable) clientEntity.getProperty("PropertyInt16")).getValue().toString());
 
-    oDataEntity = result.getBody().getEntities().get(1);
-    assertEquals("-32768", ((ODataValuable) oDataEntity.getProperty("PropertyInt16")).getValue().toString());
+    clientEntity = result.getBody().getEntities().get(1);
+    assertEquals("-32768", ((ClientValuable) clientEntity.getProperty("PropertyInt16")).getValue().toString());
 
-    oDataEntity = result.getBody().getEntities().get(2);
-    assertEquals("0", ((ODataValuable) oDataEntity.getProperty("PropertyInt16")).getValue().toString());
+    clientEntity = result.getBody().getEntities().get(2);
+    assertEquals("0", ((ClientValuable) clientEntity.getProperty("PropertyInt16")).getValue().toString());
   }
 
   @Test
   public void testMonthFunctionDate() {
-    ODataRetrieveResponse<ODataEntitySet> result = sendRequest(ES_ALL_PRIM, "month(PropertyDate) eq 11");
+    ODataRetrieveResponse<ClientEntitySet> result = sendRequest(ES_ALL_PRIM, "month(PropertyDate) eq 11");
     assertEquals(1, result.getBody().getEntities().size());
 
-    ODataEntity oDataEntity = result.getBody().getEntities().get(0);
-    assertEquals("-32768", ((ODataValuable) oDataEntity.getProperty("PropertyInt16")).getValue().toString());
+    ClientEntity clientEntity = result.getBody().getEntities().get(0);
+    assertEquals("-32768", ((ClientValuable) clientEntity.getProperty("PropertyInt16")).getValue().toString());
   }
 
   @Test
   public void testDayFunctionDateTimeOffset() {
-    ODataRetrieveResponse<ODataEntitySet> result = sendRequest(ES_ALL_PRIM, "day(PropertyDateTimeOffset) eq 3");
+    ODataRetrieveResponse<ClientEntitySet> result = sendRequest(ES_ALL_PRIM, "day(PropertyDateTimeOffset) eq 3");
     assertEquals(3, result.getBody().getEntities().size());
 
-    ODataEntity oDataEntity = result.getBody().getEntities().get(0);
-    assertEquals("32767", ((ODataValuable) oDataEntity.getProperty("PropertyInt16")).getValue().toString());
+    ClientEntity clientEntity = result.getBody().getEntities().get(0);
+    assertEquals("32767", ((ClientValuable) clientEntity.getProperty("PropertyInt16")).getValue().toString());
 
-    oDataEntity = result.getBody().getEntities().get(1);
-    assertEquals("-32768", ((ODataValuable) oDataEntity.getProperty("PropertyInt16")).getValue().toString());
+    clientEntity = result.getBody().getEntities().get(1);
+    assertEquals("-32768", ((ClientValuable) clientEntity.getProperty("PropertyInt16")).getValue().toString());
 
-    oDataEntity = result.getBody().getEntities().get(2);
-    assertEquals("0", ((ODataValuable) oDataEntity.getProperty("PropertyInt16")).getValue().toString());
+    clientEntity = result.getBody().getEntities().get(2);
+    assertEquals("0", ((ClientValuable) clientEntity.getProperty("PropertyInt16")).getValue().toString());
   }
 
   @Test
   public void testDayFunctionDate() {
-    ODataRetrieveResponse<ODataEntitySet> result = sendRequest(ES_ALL_PRIM, "day(PropertyDate) eq 5");
+    ODataRetrieveResponse<ClientEntitySet> result = sendRequest(ES_ALL_PRIM, "day(PropertyDate) eq 5");
     assertEquals(1, result.getBody().getEntities().size());
 
-    ODataEntity oDataEntity = result.getBody().getEntities().get(0);
-    assertEquals("-32768", ((ODataValuable) oDataEntity.getProperty("PropertyInt16")).getValue().toString());
+    ClientEntity clientEntity = result.getBody().getEntities().get(0);
+    assertEquals("-32768", ((ClientValuable) clientEntity.getProperty("PropertyInt16")).getValue().toString());
   }
 
   @Test
   public void testHourFunctionDateTimeOffset() {
-    ODataRetrieveResponse<ODataEntitySet> result = sendRequest(ES_ALL_PRIM, "hour(PropertyDateTimeOffset) eq 7");
+    ODataRetrieveResponse<ClientEntitySet> result = sendRequest(ES_ALL_PRIM, "hour(PropertyDateTimeOffset) eq 7");
     assertEquals(2, result.getBody().getEntities().size());
 
-    ODataEntity oDataEntity = result.getBody().getEntities().get(0);
-    assertEquals("32767", ((ODataValuable) oDataEntity.getProperty("PropertyInt16")).getValue().toString());
+    ClientEntity clientEntity = result.getBody().getEntities().get(0);
+    assertEquals("32767", ((ClientValuable) clientEntity.getProperty("PropertyInt16")).getValue().toString());
 
-    oDataEntity = result.getBody().getEntities().get(1);
-    assertEquals("-32768", ((ODataValuable) oDataEntity.getProperty("PropertyInt16")).getValue().toString());
+    clientEntity = result.getBody().getEntities().get(1);
+    assertEquals("-32768", ((ClientValuable) clientEntity.getProperty("PropertyInt16")).getValue().toString());
   }
 
   @Test
   public void testHourFuntionTimeOfDay() {
-    ODataRetrieveResponse<ODataEntitySet> result = sendRequest(ES_ALL_PRIM, "hour(PropertyTimeOfDay) eq 3");
+    ODataRetrieveResponse<ClientEntitySet> result = sendRequest(ES_ALL_PRIM, "hour(PropertyTimeOfDay) eq 3");
     assertEquals(1, result.getBody().getEntities().size());
 
-    ODataEntity oDataEntity = result.getBody().getEntities().get(0);
-    assertEquals("32767", ((ODataValuable) oDataEntity.getProperty("PropertyInt16")).getValue().toString());
+    ClientEntity clientEntity = result.getBody().getEntities().get(0);
+    assertEquals("32767", ((ClientValuable) clientEntity.getProperty("PropertyInt16")).getValue().toString());
   }
 
   @Test
   public void testMinuteFunctionDateTimeOffset() {
-    ODataRetrieveResponse<ODataEntitySet> result = sendRequest(ES_ALL_PRIM, "minute(PropertyDateTimeOffset) eq 17");
+    ODataRetrieveResponse<ClientEntitySet> result = sendRequest(ES_ALL_PRIM, "minute(PropertyDateTimeOffset) eq 17");
     assertEquals(1, result.getBody().getEntities().size());
 
-    ODataEntity oDataEntity = result.getBody().getEntities().get(0);
-    assertEquals("-32768", ((ODataValuable) oDataEntity.getProperty("PropertyInt16")).getValue().toString());
+    ClientEntity clientEntity = result.getBody().getEntities().get(0);
+    assertEquals("-32768", ((ClientValuable) clientEntity.getProperty("PropertyInt16")).getValue().toString());
   }
 
   @Test
   public void testMinuteFuntionTimeOfDay() {
-    ODataRetrieveResponse<ODataEntitySet> result = sendRequest(ES_ALL_PRIM, "minute(PropertyTimeOfDay) eq 49");
+    ODataRetrieveResponse<ClientEntitySet> result = sendRequest(ES_ALL_PRIM, "minute(PropertyTimeOfDay) eq 49");
     assertEquals(1, result.getBody().getEntities().size());
 
-    ODataEntity oDataEntity = result.getBody().getEntities().get(0);
-    assertEquals("-32768", ((ODataValuable) oDataEntity.getProperty("PropertyInt16")).getValue().toString());
+    ClientEntity clientEntity = result.getBody().getEntities().get(0);
+    assertEquals("-32768", ((ClientValuable) clientEntity.getProperty("PropertyInt16")).getValue().toString());
   }
 
   @Test
   public void testSecondFunctionDateTimeOffset() {
-    ODataRetrieveResponse<ODataEntitySet> response = sendRequest(ES_ALL_PRIM, "second(PropertyDateTimeOffset) eq 8");
+    ODataRetrieveResponse<ClientEntitySet> response = sendRequest(ES_ALL_PRIM, "second(PropertyDateTimeOffset) eq 8");
     assertEquals(1, response.getBody().getEntities().size());
 
-    ODataEntity oDataEntity = response.getBody().getEntities().get(0);
-    assertEquals("-32768", ((ODataValuable) oDataEntity.getProperty("PropertyInt16")).getValue().toString());
+    ClientEntity clientEntity = response.getBody().getEntities().get(0);
+    assertEquals("-32768", ((ClientValuable) clientEntity.getProperty("PropertyInt16")).getValue().toString());
   }
 
   @Test
   public void testSecondFuntionTimeOfDay() {
-    ODataRetrieveResponse<ODataEntitySet> response = sendRequest(ES_ALL_PRIM, "second(PropertyTimeOfDay) eq 14");
+    ODataRetrieveResponse<ClientEntitySet> response = sendRequest(ES_ALL_PRIM, "second(PropertyTimeOfDay) eq 14");
     assertEquals(1, response.getBody().getEntities().size());
 
-    ODataEntity oDataEntity = response.getBody().getEntities().get(0);
-    assertEquals("-32768", ((ODataValuable) oDataEntity.getProperty("PropertyInt16")).getValue().toString());
+    ClientEntity clientEntity = response.getBody().getEntities().get(0);
+    assertEquals("-32768", ((ClientValuable) clientEntity.getProperty("PropertyInt16")).getValue().toString());
   }
 
   @Test
   public void testFractionalsecondsDateTimeOffset() {
-    ODataRetrieveResponse<ODataEntitySet> response =
+    ODataRetrieveResponse<ClientEntitySet> response =
         sendRequest(ES_COMP_ALL_PRIM, "fractionalseconds(PropertyComp/PropertyDateTimeOffset) eq 0.1234567");
     assertEquals(2, response.getBody().getEntities().size());
 
-    ODataEntity oDataEntity = response.getBody().getEntities().get(0);
-    assertEquals("32767", ((ODataValuable) oDataEntity.getProperty("PropertyInt16")).getValue().toString());
+    ClientEntity clientEntity = response.getBody().getEntities().get(0);
+    assertEquals("32767", ((ClientValuable) clientEntity.getProperty("PropertyInt16")).getValue().toString());
 
-    oDataEntity = response.getBody().getEntities().get(1);
-    assertEquals("0", ((ODataValuable) oDataEntity.getProperty("PropertyInt16")).getValue().toString());
+    clientEntity = response.getBody().getEntities().get(1);
+    assertEquals("0", ((ClientValuable) clientEntity.getProperty("PropertyInt16")).getValue().toString());
   }
 
   @Test
   public void testFractionalsecondsDateOfTime() {
-    ODataRetrieveResponse<ODataEntitySet> response =
+    ODataRetrieveResponse<ClientEntitySet> response =
         sendRequest(ES_ALL_PRIM, "fractionalseconds(PropertyTimeOfDay) eq 0");
     assertEquals(3, response.getBody().getEntities().size());
   }
 
   @Test
   public void testDateTimeFunctionsNull() {
-    ODataRetrieveResponse<ODataEntitySet> response;
+    ODataRetrieveResponse<ClientEntitySet> response;
 
     response = sendRequest(ES_ALL_PRIM, "year(null) eq null");
     assertEquals(3, response.getBody().getEntities().size());
@@ -651,243 +651,243 @@ public class FilterSystemQueryITCase extends AbstractBaseTestITCase {
 
   @Test
   public void testFloor() {
-    ODataRetrieveResponse<ODataEntitySet> result = sendRequest(ES_TWO_KEY_NAV, "PropertyInt16 eq floor(3.8)");
+    ODataRetrieveResponse<ClientEntitySet> result = sendRequest(ES_TWO_KEY_NAV, "PropertyInt16 eq floor(3.8)");
     assertEquals(1, result.getBody().getEntities().size());
 
-    ODataEntity oDataEntity = result.getBody().getEntities().get(0);
-    assertEquals("3", ((ODataValuable) oDataEntity.getProperty("PropertyInt16")).getValue().toString());
-    assertEquals("1", ((ODataValuable) oDataEntity.getProperty("PropertyString")).getValue().toString());
+    ClientEntity clientEntity = result.getBody().getEntities().get(0);
+    assertEquals("3", ((ClientValuable) clientEntity.getProperty("PropertyInt16")).getValue().toString());
+    assertEquals("1", ((ClientValuable) clientEntity.getProperty("PropertyString")).getValue().toString());
 
     result = sendRequest(ES_TWO_KEY_NAV, "PropertyInt16 eq floor(3.1)");
     assertEquals(1, result.getBody().getEntities().size());
 
-    oDataEntity = result.getBody().getEntities().get(0);
-    assertEquals("3", ((ODataValuable) oDataEntity.getProperty("PropertyInt16")).getValue().toString());
-    assertEquals("1", ((ODataValuable) oDataEntity.getProperty("PropertyString")).getValue().toString());
+    clientEntity = result.getBody().getEntities().get(0);
+    assertEquals("3", ((ClientValuable) clientEntity.getProperty("PropertyInt16")).getValue().toString());
+    assertEquals("1", ((ClientValuable) clientEntity.getProperty("PropertyString")).getValue().toString());
   }
 
   @Test
   public void testCeiling() {
-    ODataRetrieveResponse<ODataEntitySet> result = sendRequest(ES_TWO_KEY_NAV, "PropertyInt16 eq ceiling(2.1)");
+    ODataRetrieveResponse<ClientEntitySet> result = sendRequest(ES_TWO_KEY_NAV, "PropertyInt16 eq ceiling(2.1)");
     assertEquals(1, result.getBody().getEntities().size());
 
-    ODataEntity oDataEntity = result.getBody().getEntities().get(0);
-    assertEquals("3", ((ODataValuable) oDataEntity.getProperty("PropertyInt16")).getValue().toString());
-    assertEquals("1", ((ODataValuable) oDataEntity.getProperty("PropertyString")).getValue().toString());
+    ClientEntity clientEntity = result.getBody().getEntities().get(0);
+    assertEquals("3", ((ClientValuable) clientEntity.getProperty("PropertyInt16")).getValue().toString());
+    assertEquals("1", ((ClientValuable) clientEntity.getProperty("PropertyString")).getValue().toString());
 
     result = sendRequest(ES_TWO_KEY_NAV, "PropertyInt16 eq ceiling(2.6)");
     assertEquals(1, result.getBody().getEntities().size());
 
-    oDataEntity = result.getBody().getEntities().get(0);
-    assertEquals("3", ((ODataValuable) oDataEntity.getProperty("PropertyInt16")).getValue().toString());
-    assertEquals("1", ((ODataValuable) oDataEntity.getProperty("PropertyString")).getValue().toString());
+    clientEntity = result.getBody().getEntities().get(0);
+    assertEquals("3", ((ClientValuable) clientEntity.getProperty("PropertyInt16")).getValue().toString());
+    assertEquals("1", ((ClientValuable) clientEntity.getProperty("PropertyString")).getValue().toString());
   }
 
   @Test
   public void testRound() {
-    ODataRetrieveResponse<ODataEntitySet> result = sendRequest(ES_TWO_KEY_NAV, "PropertyInt16 eq round(2.5)");
+    ODataRetrieveResponse<ClientEntitySet> result = sendRequest(ES_TWO_KEY_NAV, "PropertyInt16 eq round(2.5)");
     assertEquals(1, result.getBody().getEntities().size());
 
-    ODataEntity oDataEntity = result.getBody().getEntities().get(0);
-    assertEquals("3", ((ODataValuable) oDataEntity.getProperty("PropertyInt16")).getValue().toString());
-    assertEquals("1", ((ODataValuable) oDataEntity.getProperty("PropertyString")).getValue().toString());
+    ClientEntity clientEntity = result.getBody().getEntities().get(0);
+    assertEquals("3", ((ClientValuable) clientEntity.getProperty("PropertyInt16")).getValue().toString());
+    assertEquals("1", ((ClientValuable) clientEntity.getProperty("PropertyString")).getValue().toString());
 
     result = sendRequest(ES_TWO_KEY_NAV, "PropertyInt16 eq round(2.4)");
     assertEquals(1, result.getBody().getEntities().size());
 
-    oDataEntity = result.getBody().getEntities().get(0);
-    assertEquals("2", ((ODataValuable) oDataEntity.getProperty("PropertyInt16")).getValue().toString());
-    assertEquals("1", ((ODataValuable) oDataEntity.getProperty("PropertyString")).getValue().toString());
+    clientEntity = result.getBody().getEntities().get(0);
+    assertEquals("2", ((ClientValuable) clientEntity.getProperty("PropertyInt16")).getValue().toString());
+    assertEquals("1", ((ClientValuable) clientEntity.getProperty("PropertyString")).getValue().toString());
 
     result = sendRequest(ES_TWO_KEY_NAV, "PropertyInt16 eq round(2.6)");
     assertEquals(1, result.getBody().getEntities().size());
 
-    oDataEntity = result.getBody().getEntities().get(0);
-    assertEquals("3", ((ODataValuable) oDataEntity.getProperty("PropertyInt16")).getValue().toString());
-    assertEquals("1", ((ODataValuable) oDataEntity.getProperty("PropertyString")).getValue().toString());
+    clientEntity = result.getBody().getEntities().get(0);
+    assertEquals("3", ((ClientValuable) clientEntity.getProperty("PropertyInt16")).getValue().toString());
+    assertEquals("1", ((ClientValuable) clientEntity.getProperty("PropertyString")).getValue().toString());
 
     result = sendRequest(ES_TWO_KEY_NAV, "PropertyInt16 eq round(3.1)");
     assertEquals(1, result.getBody().getEntities().size());
 
-    oDataEntity = result.getBody().getEntities().get(0);
-    assertEquals("3", ((ODataValuable) oDataEntity.getProperty("PropertyInt16")).getValue().toString());
-    assertEquals("1", ((ODataValuable) oDataEntity.getProperty("PropertyString")).getValue().toString());
+    clientEntity = result.getBody().getEntities().get(0);
+    assertEquals("3", ((ClientValuable) clientEntity.getProperty("PropertyInt16")).getValue().toString());
+    assertEquals("1", ((ClientValuable) clientEntity.getProperty("PropertyString")).getValue().toString());
   }
 
   @Test
   public void testEndsWith() {
-    ODataRetrieveResponse<ODataEntitySet> result = sendRequest(ES_ALL_PRIM, "endswith(PropertyString, 'values')");
+    ODataRetrieveResponse<ClientEntitySet> result = sendRequest(ES_ALL_PRIM, "endswith(PropertyString, 'values')");
     assertEquals(2, result.getBody().getEntities().size());
 
-    ODataEntity oDataEntity = result.getBody().getEntities().get(0);
-    assertEquals("32767", ((ODataValuable) oDataEntity.getProperty("PropertyInt16")).getValue().toString());
+    ClientEntity clientEntity = result.getBody().getEntities().get(0);
+    assertEquals("32767", ((ClientValuable) clientEntity.getProperty("PropertyInt16")).getValue().toString());
 
-    oDataEntity = result.getBody().getEntities().get(1);
-    assertEquals("-32768", ((ODataValuable) oDataEntity.getProperty("PropertyInt16")).getValue().toString());
+    clientEntity = result.getBody().getEntities().get(1);
+    assertEquals("-32768", ((ClientValuable) clientEntity.getProperty("PropertyInt16")).getValue().toString());
   }
 
   @Test
   public void testIndexOf() {
-    ODataRetrieveResponse<ODataEntitySet> result =
+    ODataRetrieveResponse<ClientEntitySet> result =
         sendRequest(ES_ALL_PRIM, "indexof(PropertyString, 'positive') eq 17");
     assertEquals(1, result.getBody().getEntities().size());
 
-    ODataEntity oDataEntity = result.getBody().getEntities().get(0);
-    assertEquals("32767", ((ODataValuable) oDataEntity.getProperty("PropertyInt16")).getValue().toString());
+    ClientEntity clientEntity = result.getBody().getEntities().get(0);
+    assertEquals("32767", ((ClientValuable) clientEntity.getProperty("PropertyInt16")).getValue().toString());
   }
 
   @Test
   public void testStartsWith() {
-    ODataRetrieveResponse<ODataEntitySet> result = sendRequest(ES_ALL_PRIM, "startswith(PropertyString, 'First')");
+    ODataRetrieveResponse<ClientEntitySet> result = sendRequest(ES_ALL_PRIM, "startswith(PropertyString, 'First')");
     assertEquals(1, result.getBody().getEntities().size());
 
-    ODataEntity oDataEntity = result.getBody().getEntities().get(0);
-    assertEquals("32767", ((ODataValuable) oDataEntity.getProperty("PropertyInt16")).getValue().toString());
+    ClientEntity clientEntity = result.getBody().getEntities().get(0);
+    assertEquals("32767", ((ClientValuable) clientEntity.getProperty("PropertyInt16")).getValue().toString());
   }
 
   @Test
   public void testToLower() {
-    ODataRetrieveResponse<ODataEntitySet> result =
+    ODataRetrieveResponse<ClientEntitySet> result =
         sendRequest(ES_ALL_PRIM, "contains(PropertyString, tolower('POSITIVE'))");
     assertEquals(1, result.getBody().getEntities().size());
 
-    ODataEntity oDataEntity = result.getBody().getEntities().get(0);
-    assertEquals("32767", ((ODataValuable) oDataEntity.getProperty("PropertyInt16")).getValue().toString());
+    ClientEntity clientEntity = result.getBody().getEntities().get(0);
+    assertEquals("32767", ((ClientValuable) clientEntity.getProperty("PropertyInt16")).getValue().toString());
   }
 
   @Test
   public void testToUpper() {
-    ODataRetrieveResponse<ODataEntitySet> result =
+    ODataRetrieveResponse<ClientEntitySet> result =
         sendRequest(ES_ALL_PRIM, "contains(PropertyString, concat(toupper('f'), 'irst'))");
     assertEquals(1, result.getBody().getEntities().size());
 
-    ODataEntity oDataEntity = result.getBody().getEntities().get(0);
-    assertEquals("32767", ((ODataValuable) oDataEntity.getProperty("PropertyInt16")).getValue().toString());
+    ClientEntity clientEntity = result.getBody().getEntities().get(0);
+    assertEquals("32767", ((ClientValuable) clientEntity.getProperty("PropertyInt16")).getValue().toString());
   }
 
   @Test
   public void testTrim() {
-    ODataRetrieveResponse<ODataEntitySet> result =
+    ODataRetrieveResponse<ClientEntitySet> result =
         sendRequest(ES_ALL_PRIM, "trim(substring(PropertyString, 0, 6)) eq 'First'");
     assertEquals(1, result.getBody().getEntities().size());
 
-    ODataEntity oDataEntity = result.getBody().getEntities().get(0);
-    assertEquals("32767", ((ODataValuable) oDataEntity.getProperty("PropertyInt16")).getValue().toString());
+    ClientEntity clientEntity = result.getBody().getEntities().get(0);
+    assertEquals("32767", ((ClientValuable) clientEntity.getProperty("PropertyInt16")).getValue().toString());
   }
 
   @Test
   public void testDecimalDiv() {
-    ODataRetrieveResponse<ODataEntitySet> result =
+    ODataRetrieveResponse<ClientEntitySet> result =
         sendRequest(ES_ALL_PRIM, "PropertyDouble eq 0 sub (358000 div 2)");
     assertEquals(1, result.getBody().getEntities().size());
 
-    ODataEntity oDataEntity = result.getBody().getEntities().get(0);
-    assertEquals("-32768", ((ODataValuable) oDataEntity.getProperty("PropertyInt16")).getValue().toString());
+    ClientEntity clientEntity = result.getBody().getEntities().get(0);
+    assertEquals("-32768", ((ClientValuable) clientEntity.getProperty("PropertyInt16")).getValue().toString());
   }
 
   @Test
   public void testNumericPromotionToInt64() {
-    ODataRetrieveResponse<ODataEntitySet> result =
+    ODataRetrieveResponse<ClientEntitySet> result =
         sendRequest(ES_ALL_PRIM, "PropertyInt64 eq 0");
     assertEquals(1, result.getBody().getEntities().size());
 
-    ODataEntity oDataEntity = result.getBody().getEntities().get(0);
-    assertEquals("0", ((ODataValuable) oDataEntity.getProperty("PropertyInt16")).getValue().toString());
+    ClientEntity clientEntity = result.getBody().getEntities().get(0);
+    assertEquals("0", ((ClientValuable) clientEntity.getProperty("PropertyInt16")).getValue().toString());
   }
 
   @Test
   public void castEdm64ToDouble() {
     double value = Float.MAX_VALUE + 1;
-    ODataRetrieveResponse<ODataEntitySet> result =
+    ODataRetrieveResponse<ClientEntitySet> result =
         sendRequest(ES_ALL_PRIM, "PropertyInt64 lt " + value);
     assertEquals(3, result.getBody().getEntities().size());
   }
 
   @Test
   public void testDateTimeOffsetAddDuraton() {
-    ODataRetrieveResponse<ODataEntitySet> response =
+    ODataRetrieveResponse<ClientEntitySet> response =
         sendRequest(ES_ALL_PRIM, "PropertyDateTimeOffset eq 2012-12-03T07:16:19Z add duration'PT4S'");
     assertEquals(1, response.getBody().getEntities().size());
 
-    final ODataEntity oDataEntity = response.getBody().getEntities().get(0);
-    assertEquals("32767", ((ODataValuable) oDataEntity.getProperty("PropertyInt16")).getValue().toString());
+    final ClientEntity clientEntity = response.getBody().getEntities().get(0);
+    assertEquals("32767", ((ClientValuable) clientEntity.getProperty("PropertyInt16")).getValue().toString());
   }
 
   @Test
   public void testDurrationAddDuration() {
-    ODataRetrieveResponse<ODataEntitySet> response =
+    ODataRetrieveResponse<ClientEntitySet> response =
         sendRequest(ES_ALL_PRIM, "PropertyDuration eq duration'PT2S' add duration'PT4S'");
     assertEquals(1, response.getBody().getEntities().size());
 
-    final ODataEntity oDataEntity = response.getBody().getEntities().get(0);
-    assertEquals("32767", ((ODataValuable) oDataEntity.getProperty("PropertyInt16")).getValue().toString());
+    final ClientEntity clientEntity = response.getBody().getEntities().get(0);
+    assertEquals("32767", ((ClientValuable) clientEntity.getProperty("PropertyInt16")).getValue().toString());
   }
 
   @Test
   public void testDurrationLiteral() {
-    ODataRetrieveResponse<ODataEntitySet> response =
+    ODataRetrieveResponse<ClientEntitySet> response =
         sendRequest(ES_ALL_PRIM, "PropertyDuration eq duration'P1DT'");
     assertEquals(0, response.getBody().getEntities().size());
   }
 
   @Test
   public void testDateAddDuration() {
-    ODataRetrieveResponse<ODataEntitySet> response =
+    ODataRetrieveResponse<ClientEntitySet> response =
         sendRequest(ES_ALL_PRIM, "PropertyDateTimeOffset eq 2012-12-02 add duration'P1DT7H16M23S'");
     assertEquals(1, response.getBody().getEntities().size());
 
-    final ODataEntity oDataEntity = response.getBody().getEntities().get(0);
-    assertEquals("32767", ((ODataValuable) oDataEntity.getProperty("PropertyInt16")).getValue().toString());
+    final ClientEntity clientEntity = response.getBody().getEntities().get(0);
+    assertEquals("32767", ((ClientValuable) clientEntity.getProperty("PropertyInt16")).getValue().toString());
   }
 
   @Test
   public void testDateTimeOffsetSubDuration() {
-    ODataRetrieveResponse<ODataEntitySet> response =
+    ODataRetrieveResponse<ClientEntitySet> response =
         sendRequest(ES_ALL_PRIM, "PropertyDateTimeOffset eq 2012-12-03T07:16:27Z sub duration'PT4S'");
     assertEquals(1, response.getBody().getEntities().size());
 
-    final ODataEntity oDataEntity = response.getBody().getEntities().get(0);
-    assertEquals("32767", ((ODataValuable) oDataEntity.getProperty("PropertyInt16")).getValue().toString());
+    final ClientEntity clientEntity = response.getBody().getEntities().get(0);
+    assertEquals("32767", ((ClientValuable) clientEntity.getProperty("PropertyInt16")).getValue().toString());
   }
 
   @Test
   public void testDurrationSubDuration() {
-    ODataRetrieveResponse<ODataEntitySet> response =
+    ODataRetrieveResponse<ClientEntitySet> response =
         sendRequest(ES_ALL_PRIM, "PropertyDuration sub duration'PT2S' eq duration'PT4S'");
     assertEquals(1, response.getBody().getEntities().size());
 
-    final ODataEntity oDataEntity = response.getBody().getEntities().get(0);
-    assertEquals("32767", ((ODataValuable) oDataEntity.getProperty("PropertyInt16")).getValue().toString());
+    final ClientEntity clientEntity = response.getBody().getEntities().get(0);
+    assertEquals("32767", ((ClientValuable) clientEntity.getProperty("PropertyInt16")).getValue().toString());
   }
 
   @Test
   public void testDateSubDuration() {
-    ODataRetrieveResponse<ODataEntitySet> response =
+    ODataRetrieveResponse<ClientEntitySet> response =
         sendRequest(ES_ALL_PRIM, "PropertyDateTimeOffset eq 2012-12-04 sub duration'P0DT16H43M37S'");
     assertEquals(1, response.getBody().getEntities().size());
 
-    final ODataEntity oDataEntity = response.getBody().getEntities().get(0);
-    assertEquals("32767", ((ODataValuable) oDataEntity.getProperty("PropertyInt16")).getValue().toString());
+    final ClientEntity clientEntity = response.getBody().getEntities().get(0);
+    assertEquals("32767", ((ClientValuable) clientEntity.getProperty("PropertyInt16")).getValue().toString());
   }
 
   @Test
   public void testDateSubDate() {
-    ODataRetrieveResponse<ODataEntitySet> response =
+    ODataRetrieveResponse<ClientEntitySet> response =
         sendRequest(ES_ALL_PRIM, "PropertyDuration eq 2012-12-04 sub 2012-12-04");
     assertEquals(1, response.getBody().getEntities().size());
 
-    final ODataEntity oDataEntity = response.getBody().getEntities().get(0);
-    assertEquals("0", ((ODataValuable) oDataEntity.getProperty("PropertyInt16")).getValue().toString());
+    final ClientEntity clientEntity = response.getBody().getEntities().get(0);
+    assertEquals("0", ((ClientValuable) clientEntity.getProperty("PropertyInt16")).getValue().toString());
   }
 
   @Test
   public void testDateTimeOffsetSubDateTimeOffset() {
-    ODataRetrieveResponse<ODataEntitySet> response =
+    ODataRetrieveResponse<ClientEntitySet> response =
         sendRequest(ES_ALL_PRIM, "PropertyDuration eq 2005-12-03T00:00:00Z sub 2005-12-03T00:00:00Z");
     assertEquals(1, response.getBody().getEntities().size());
 
-    final ODataEntity oDataEntity = response.getBody().getEntities().get(0);
-    assertEquals("0", ((ODataValuable) oDataEntity.getProperty("PropertyInt16")).getValue().toString());
+    final ClientEntity clientEntity = response.getBody().getEntities().get(0);
+    assertEquals("0", ((ClientValuable) clientEntity.getProperty("PropertyInt16")).getValue().toString());
   }
 
   @Test
@@ -896,7 +896,7 @@ public class FilterSystemQueryITCase extends AbstractBaseTestITCase {
      * The idea is use the largest possible number of a specific type and add a another number to force an
      * implicit conversion to an higher type
      */
-    ODataRetrieveResponse<ODataEntitySet> response;
+    ODataRetrieveResponse<ClientEntitySet> response;
 
     // SByte => Int16
     byte byteValue = Byte.MAX_VALUE; // 2 ^ 7 -1 = 127
@@ -931,8 +931,8 @@ public class FilterSystemQueryITCase extends AbstractBaseTestITCase {
     // We define a filter, which returns all entry where PropertyCompComp/PropertyComp/PropertyInt16 is equals to 1
 
     final ODataClient client = getClient();
-    final ODataObjectFactory factory = client.getObjectFactory();
-    ODataEntity newEntity = factory.newEntity(new FullQualifiedName("olingo.odata.test1", "ETKeyNav"));
+    final ClientObjectFactory factory = client.getObjectFactory();
+    ClientEntity newEntity = factory.newEntity(new FullQualifiedName("olingo.odata.test1", "ETKeyNav"));
     newEntity.getProperties().add(factory.newComplexProperty("PropertyCompCompNav", null));
     newEntity.getProperties().add(factory.newPrimitiveProperty("PropertyInt16",
         factory.newPrimitiveValueBuilder().buildInt16((short) 4)));
@@ -954,7 +954,7 @@ public class FilterSystemQueryITCase extends AbstractBaseTestITCase {
                 .add(factory.newPrimitiveProperty(
                     "PropertyString",
                     factory.newPrimitiveValueBuilder().buildString("Test2")))));
-    
+
     newEntity.addLink(factory.newEntityNavigationLink("NavPropertyETTwoKeyNavOne",
         client.newURIBuilder(SERVICE_URI)
             .appendEntitySetSegment(ES_TWO_KEY_NAV)
@@ -967,17 +967,17 @@ public class FilterSystemQueryITCase extends AbstractBaseTestITCase {
               }
             })
             .build()));
-    
+
     final URI uri = client.newURIBuilder(SERVICE_URI).appendEntitySetSegment("ESKeyNav").build();
-    ODataEntityCreateRequest<ODataEntity> request =
+    ODataEntityCreateRequest<ClientEntity> request =
         client.getCUDRequestFactory().getEntityCreateRequest(uri, newEntity);
-    ODataEntityCreateResponse<ODataEntity> response = request.execute();
+    ODataEntityCreateResponse<ClientEntity> response = request.execute();
     assertEquals(HttpStatusCode.CREATED.getStatusCode(), response.getStatusCode());
 
     final String cookie = response.getHeader(HttpHeader.SET_COOKIE).iterator().next();
 
     // Do the filter request
-    ODataRetrieveResponse<ODataEntitySet> result =
+    ODataRetrieveResponse<ClientEntitySet> result =
         sendRequest("ESKeyNav", "PropertyCompCompNav/PropertyCompNav/PropertyInt16 eq 1", cookie);
     assertEquals(3, result.getBody().getEntities().size());
 
@@ -991,11 +991,11 @@ public class FilterSystemQueryITCase extends AbstractBaseTestITCase {
     fail("ESServerSidePaging", "filter=contains(PropertyInt16, 3) eq 'hallo'", HttpStatusCode.BAD_REQUEST);
   }
 
-  private ODataRetrieveResponse<ODataEntitySet> sendRequest(String entitySet, String filterString) {
+  private ODataRetrieveResponse<ClientEntitySet> sendRequest(String entitySet, String filterString) {
     return sendRequest(entitySet, filterString, null);
   }
 
-  private ODataRetrieveResponse<ODataEntitySet> sendRequest(String entitySet, String filterString, String cookie) {
+  private ODataRetrieveResponse<ClientEntitySet> sendRequest(String entitySet, String filterString, String cookie) {
     final ODataClient client = getClient();
 
     final URI uri =
@@ -1004,7 +1004,7 @@ public class FilterSystemQueryITCase extends AbstractBaseTestITCase {
             .filter(filterString)
             .build();
 
-    ODataEntitySetRequest<ODataEntitySet> request = client.getRetrieveRequestFactory().getEntitySetRequest(uri);
+    ODataEntitySetRequest<ClientEntitySet> request = client.getRetrieveRequestFactory().getEntitySetRequest(uri);
     if (cookie != null) {
       request.addCustomHeader(HttpHeader.COOKIE, cookie);
     }

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/c37d4da5/fit/src/test/java/org/apache/olingo/fit/tecsvc/client/FunctionImportITCase.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/tecsvc/client/FunctionImportITCase.java b/fit/src/test/java/org/apache/olingo/fit/tecsvc/client/FunctionImportITCase.java
index ec3331e..9078d8f 100644
--- a/fit/src/test/java/org/apache/olingo/fit/tecsvc/client/FunctionImportITCase.java
+++ b/fit/src/test/java/org/apache/olingo/fit/tecsvc/client/FunctionImportITCase.java
@@ -1,18 +1,18 @@
-/* 
+/*
  * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
+ * or more contributor license agreements. See the NOTICE file
  * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
+ * 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
- *
+ * 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
+ * KIND, either express or implied. See the License for the
  * specific language governing permissions and limitations
  * under the License.
  */
@@ -34,11 +34,11 @@ import org.apache.olingo.client.api.communication.response.ODataInvokeResponse;
 import org.apache.olingo.client.api.communication.response.ODataRawResponse;
 import org.apache.olingo.client.api.communication.response.ODataRetrieveResponse;
 import org.apache.olingo.client.core.ODataClientFactory;
-import org.apache.olingo.commons.api.domain.ODataEntity;
-import org.apache.olingo.commons.api.domain.ODataEntitySet;
-import org.apache.olingo.commons.api.domain.ODataPrimitiveValue;
-import org.apache.olingo.commons.api.domain.ODataProperty;
-import org.apache.olingo.commons.api.domain.ODataValue;
+import org.apache.olingo.commons.api.domain.ClientEntity;
+import org.apache.olingo.commons.api.domain.ClientEntitySet;
+import org.apache.olingo.commons.api.domain.ClientPrimitiveValue;
+import org.apache.olingo.commons.api.domain.ClientProperty;
+import org.apache.olingo.commons.api.domain.ClientValue;
 import org.apache.olingo.commons.api.format.ODataFormat;
 import org.apache.olingo.commons.api.http.HttpStatusCode;
 import org.apache.olingo.fit.AbstractBaseTestITCase;
@@ -49,41 +49,41 @@ public class FunctionImportITCase extends AbstractBaseTestITCase {
 
   @Test
   public void entity() throws Exception {
-    final ODataInvokeRequest<ODataEntity> request = getClient().getInvokeRequestFactory()
+    final ODataInvokeRequest<ClientEntity> request = getClient().getInvokeRequestFactory()
         .getFunctionInvokeRequest(getClient().newURIBuilder(TecSvcConst.BASE_URI)
-            .appendOperationCallSegment("FICRTESTwoKeyNav").build(), ODataEntity.class);
+            .appendOperationCallSegment("FICRTESTwoKeyNav").build(), ClientEntity.class);
     assertNotNull(request);
 
-    final ODataInvokeResponse<ODataEntity> response = request.execute();
+    final ODataInvokeResponse<ClientEntity> response = request.execute();
     assertEquals(HttpStatusCode.OK.getStatusCode(), response.getStatusCode());
 
-    final ODataEntity entity = response.getBody();
+    final ClientEntity entity = response.getBody();
     assertNotNull(entity);
-    final ODataProperty property = entity.getProperty("PropertyInt16");
+    final ClientProperty property = entity.getProperty("PropertyInt16");
     assertNotNull(property);
     assertEquals(1, property.getPrimitiveValue().toValue());
   }
 
   @Test
   public void entityCollection() {
-    final ODataInvokeRequest<ODataEntitySet> request = getClient().getInvokeRequestFactory()
+    final ODataInvokeRequest<ClientEntitySet> request = getClient().getInvokeRequestFactory()
         .getFunctionInvokeRequest(getClient().newURIBuilder(TecSvcConst.BASE_URI)
-            .appendOperationCallSegment("FICRTCollESTwoKeyNavParam").build(), ODataEntitySet.class,
-            Collections.<String, ODataValue> singletonMap("ParameterInt16",
+            .appendOperationCallSegment("FICRTCollESTwoKeyNavParam").build(), ClientEntitySet.class,
+            Collections.<String, ClientValue> singletonMap("ParameterInt16",
                 getClient().getObjectFactory().newPrimitiveValueBuilder().buildInt32(2)));
     assertNotNull(request);
 
-    final ODataInvokeResponse<ODataEntitySet> response = request.execute();
+    final ODataInvokeResponse<ClientEntitySet> response = request.execute();
     assertEquals(HttpStatusCode.OK.getStatusCode(), response.getStatusCode());
 
-    final ODataEntitySet entitySet = response.getBody();
+    final ClientEntitySet entitySet = response.getBody();
     assertNotNull(entitySet);
-    final List<ODataEntity> entities = entitySet.getEntities();
+    final List<ClientEntity> entities = entitySet.getEntities();
     assertNotNull(entities);
     assertEquals(2, entities.size());
-    final ODataEntity entity = entities.get(1);
+    final ClientEntity entity = entities.get(1);
     assertNotNull(entity);
-    final ODataProperty property = entity.getProperty("PropertyString");
+    final ClientProperty property = entity.getProperty("PropertyString");
     assertNotNull(property);
     assertNotNull(property.getPrimitiveValue());
     assertEquals("2", property.getPrimitiveValue().toValue());
@@ -92,19 +92,19 @@ public class FunctionImportITCase extends AbstractBaseTestITCase {
   @Test
   public void entityCollectionWithAppendedKey() {
     // .../odata.svc/FICRTCollESMedia()(1)
-    final ODataInvokeRequest<ODataEntity> request = getClient().getInvokeRequestFactory()
+    final ODataInvokeRequest<ClientEntity> request = getClient().getInvokeRequestFactory()
         .getFunctionInvokeRequest(getClient().newURIBuilder(TecSvcConst.BASE_URI)
             .appendOperationCallSegment("FICRTCollESMedia")
             .appendKeySegment(getClient().getObjectFactory().newPrimitiveValueBuilder().buildInt32(1))
-            .build(), ODataEntity.class);
+            .build(), ClientEntity.class);
     assertNotNull(request);
 
-    final ODataInvokeResponse<ODataEntity> response = request.execute();
+    final ODataInvokeResponse<ClientEntity> response = request.execute();
     assertEquals(HttpStatusCode.OK.getStatusCode(), response.getStatusCode());
 
-    final ODataEntity entity = response.getBody();
+    final ClientEntity entity = response.getBody();
     assertNotNull(entity);
-    final ODataProperty property = entity.getProperty("PropertyInt16");
+    final ClientProperty property = entity.getProperty("PropertyInt16");
     assertNotNull(property);
     assertNotNull(property.getPrimitiveValue());
     assertEquals(1, property.getPrimitiveValue().toValue());
@@ -113,18 +113,18 @@ public class FunctionImportITCase extends AbstractBaseTestITCase {
   @Test
   public void entityCollectionWithAppendedKeyAndProperty() {
     // .../odata.svc/FICRTCollESMedia()(2)/PropertyInt16
-    final ODataInvokeRequest<ODataProperty> request = getClient().getInvokeRequestFactory()
+    final ODataInvokeRequest<ClientProperty> request = getClient().getInvokeRequestFactory()
         .getFunctionInvokeRequest(getClient().newURIBuilder(TecSvcConst.BASE_URI)
             .appendOperationCallSegment("FICRTCollESMedia")
             .appendKeySegment(getClient().getObjectFactory().newPrimitiveValueBuilder().buildInt32(2))
             .appendPropertySegment("PropertyInt16")
-            .build(), ODataProperty.class);
+            .build(), ClientProperty.class);
     assertNotNull(request);
 
-    final ODataInvokeResponse<ODataProperty> response = request.execute();
+    final ODataInvokeResponse<ClientProperty> response = request.execute();
     assertEquals(HttpStatusCode.OK.getStatusCode(), response.getStatusCode());
 
-    final ODataProperty property = response.getBody();
+    final ClientProperty property = response.getBody();
     assertNotNull(property);
     assertNotNull(property.getPrimitiveValue());
     assertEquals(2, property.getPrimitiveValue().toValue());
@@ -141,35 +141,35 @@ public class FunctionImportITCase extends AbstractBaseTestITCase {
 
   @Test
   public void complexWithPath() throws Exception {
-    final ODataInvokeRequest<ODataProperty> request = getClient().getInvokeRequestFactory()
+    final ODataInvokeRequest<ClientProperty> request = getClient().getInvokeRequestFactory()
         .getFunctionInvokeRequest(getClient().newURIBuilder(TecSvcConst.BASE_URI)
             .appendOperationCallSegment("FICRTCTTwoPrim").appendPropertySegment("PropertyInt16").build(),
-            ODataProperty.class);
+            ClientProperty.class);
     assertNotNull(request);
 
-    final ODataInvokeResponse<ODataProperty> response = request.execute();
+    final ODataInvokeResponse<ClientProperty> response = request.execute();
     assertEquals(HttpStatusCode.OK.getStatusCode(), response.getStatusCode());
 
-    final ODataProperty property = response.getBody();
+    final ClientProperty property = response.getBody();
     assertNotNull(property);
     assertEquals(16, property.getPrimitiveValue().toValue());
   }
 
   @Test
   public void primitiveCollection() throws Exception {
-    final ODataInvokeRequest<ODataProperty> request = getClient().getInvokeRequestFactory()
+    final ODataInvokeRequest<ClientProperty> request = getClient().getInvokeRequestFactory()
         .getFunctionInvokeRequest(getClient().newURIBuilder(TecSvcConst.BASE_URI)
-            .appendOperationCallSegment("FICRTCollString").build(), ODataProperty.class);
+            .appendOperationCallSegment("FICRTCollString").build(), ClientProperty.class);
     assertNotNull(request);
 
-    final ODataInvokeResponse<ODataProperty> response = request.execute();
+    final ODataInvokeResponse<ClientProperty> response = request.execute();
     assertEquals(HttpStatusCode.OK.getStatusCode(), response.getStatusCode());
 
-    final ODataProperty property = response.getBody();
+    final ClientProperty property = response.getBody();
     assertNotNull(property);
     assertNotNull(property.getCollectionValue());
     assertEquals(3, property.getCollectionValue().size());
-    Iterator<ODataValue> iterator = property.getCollectionValue().iterator();
+    Iterator<ClientValue> iterator = property.getCollectionValue().iterator();
     assertEquals("Employee1@company.example", iterator.next().asPrimitive().toValue());
     assertEquals("Employee2@company.example", iterator.next().asPrimitive().toValue());
     assertEquals("Employee3@company.example", iterator.next().asPrimitive().toValue());
@@ -180,7 +180,7 @@ public class FunctionImportITCase extends AbstractBaseTestITCase {
     final ODataValueRequest request = getClient().getRetrieveRequestFactory()
         .getPropertyValueRequest(getClient().newURIBuilder(TecSvcConst.BASE_URI)
             .appendOperationCallSegment("FICRTString").appendValueSegment().build());
-    final ODataRetrieveResponse<ODataPrimitiveValue> response = request.execute();
+    final ODataRetrieveResponse<ClientPrimitiveValue> response = request.execute();
     assertEquals("UFCRTString string value", response.getBody().toValue());
   }
 
@@ -190,7 +190,7 @@ public class FunctionImportITCase extends AbstractBaseTestITCase {
         .getPropertyValueRequest(getClient().newURIBuilder(TecSvcConst.BASE_URI)
             .appendOperationCallSegment("FICRTCTTwoPrim")
             .appendPropertySegment("PropertyString").appendValueSegment().build());
-    final ODataRetrieveResponse<ODataPrimitiveValue> response = request.execute();
+    final ODataRetrieveResponse<ClientPrimitiveValue> response = request.execute();
     assertEquals("UFCRTCTTwoPrim string value", response.getBody().toValue());
   }
 

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/c37d4da5/fit/src/test/java/org/apache/olingo/fit/tecsvc/client/MediaITCase.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/tecsvc/client/MediaITCase.java b/fit/src/test/java/org/apache/olingo/fit/tecsvc/client/MediaITCase.java
index 9d02810..5df211c 100644
--- a/fit/src/test/java/org/apache/olingo/fit/tecsvc/client/MediaITCase.java
+++ b/fit/src/test/java/org/apache/olingo/fit/tecsvc/client/MediaITCase.java
@@ -1,18 +1,18 @@
-/* 
+/*
  * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
+ * or more contributor license agreements. See the NOTICE file
  * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
+ * 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
- *
+ * 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
+ * KIND, either express or implied. See the License for the
  * specific language governing permissions and limitations
  * under the License.
  */
@@ -39,8 +39,8 @@ import org.apache.olingo.client.api.communication.response.ODataMediaEntityCreat
 import org.apache.olingo.client.api.communication.response.ODataMediaEntityUpdateResponse;
 import org.apache.olingo.client.api.communication.response.ODataRetrieveResponse;
 import org.apache.olingo.client.core.ODataClientFactory;
-import org.apache.olingo.commons.api.domain.ODataEntity;
-import org.apache.olingo.commons.api.domain.ODataProperty;
+import org.apache.olingo.commons.api.domain.ClientEntity;
+import org.apache.olingo.commons.api.domain.ClientProperty;
 import org.apache.olingo.commons.api.format.ContentType;
 import org.apache.olingo.commons.api.format.ODataFormat;
 import org.apache.olingo.commons.api.http.HttpHeader;
@@ -96,13 +96,13 @@ public final class MediaITCase extends AbstractBaseTestITCase {
     final ODataClient client = getClient();
     final URI uri = client.newURIBuilder(TecSvcConst.BASE_URI)
         .appendEntitySetSegment("ESMedia").appendKeySegment(4).appendValueSegment().build();
-    ODataMediaEntityUpdateRequest<ODataEntity> request =
+    ODataMediaEntityUpdateRequest<ClientEntity> request =
         client.getCUDRequestFactory().getMediaEntityUpdateRequest(uri,
             IOUtils.toInputStream("just a test"));
     request.setContentType(ContentType.TEXT_PLAIN.toContentTypeString());
     assertNotNull(request);
 
-    final ODataMediaEntityUpdateResponse<ODataEntity> response = request.payloadManager().getResponse();
+    final ODataMediaEntityUpdateResponse<ClientEntity> response = request.payloadManager().getResponse();
     assertEquals(HttpStatusCode.NO_CONTENT.getStatusCode(), response.getStatusCode());
 
     // Check that the media stream has changed.
@@ -118,19 +118,19 @@ public final class MediaITCase extends AbstractBaseTestITCase {
   @Test
   public void create() throws Exception {
     final ODataClient client = getClient();
-    ODataMediaEntityCreateRequest<ODataEntity> request =
+    ODataMediaEntityCreateRequest<ClientEntity> request =
         client.getCUDRequestFactory().getMediaEntityCreateRequest(
             client.newURIBuilder(TecSvcConst.BASE_URI).appendEntitySetSegment("ESMedia").build(),
             IOUtils.toInputStream("just a test"));
     request.setContentType(ContentType.TEXT_PLAIN.toContentTypeString());
     assertNotNull(request);
 
-    final ODataMediaEntityCreateResponse<ODataEntity> response = request.payloadManager().getResponse();
+    final ODataMediaEntityCreateResponse<ClientEntity> response = request.payloadManager().getResponse();
     assertEquals(HttpStatusCode.CREATED.getStatusCode(), response.getStatusCode());
     assertEquals(request.getURI() + "(5)", response.getHeader(HttpHeader.LOCATION).iterator().next());
-    final ODataEntity entity = response.getBody();
+    final ClientEntity entity = response.getBody();
     assertNotNull(entity);
-    final ODataProperty property = entity.getProperty("PropertyInt16");
+    final ClientProperty property = entity.getProperty("PropertyInt16");
     assertNotNull(property);
     assertNotNull(property.getPrimitiveValue());
     assertEquals(5, property.getPrimitiveValue().toValue());

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/c37d4da5/fit/src/test/java/org/apache/olingo/fit/tecsvc/client/NavigationITCase.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/tecsvc/client/NavigationITCase.java b/fit/src/test/java/org/apache/olingo/fit/tecsvc/client/NavigationITCase.java
index fedf7d9..46261b2 100644
--- a/fit/src/test/java/org/apache/olingo/fit/tecsvc/client/NavigationITCase.java
+++ b/fit/src/test/java/org/apache/olingo/fit/tecsvc/client/NavigationITCase.java
@@ -1,18 +1,18 @@
-/* 
+/*
  * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
+ * or more contributor license agreements. See the NOTICE file
  * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
+ * 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
- *
+ * 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
+ * KIND, either express or implied. See the License for the
  * specific language governing permissions and limitations
  * under the License.
  */
@@ -24,9 +24,9 @@ import static org.junit.Assert.assertNotNull;
 import org.apache.olingo.client.api.ODataClient;
 import org.apache.olingo.client.api.communication.response.ODataRetrieveResponse;
 import org.apache.olingo.client.core.ODataClientFactory;
-import org.apache.olingo.commons.api.domain.ODataEntity;
-import org.apache.olingo.commons.api.domain.ODataEntitySet;
-import org.apache.olingo.commons.api.domain.ODataProperty;
+import org.apache.olingo.commons.api.domain.ClientEntity;
+import org.apache.olingo.commons.api.domain.ClientEntitySet;
+import org.apache.olingo.commons.api.domain.ClientProperty;
 import org.apache.olingo.commons.api.format.ODataFormat;
 import org.apache.olingo.commons.api.http.HttpStatusCode;
 import org.apache.olingo.fit.AbstractBaseTestITCase;
@@ -39,7 +39,7 @@ public final class NavigationITCase extends AbstractBaseTestITCase {
 
   @Test
   public void oneLevelToEntity() throws Exception {
-    final ODataRetrieveResponse<ODataEntity> response =
+    final ODataRetrieveResponse<ClientEntity> response =
         client.getRetrieveRequestFactory().getEntityRequest(
             client.newURIBuilder(TecSvcConst.BASE_URI)
                 .appendEntitySetSegment("ESAllPrim").appendKeySegment(32767)
@@ -47,9 +47,9 @@ public final class NavigationITCase extends AbstractBaseTestITCase {
             .execute();
     assertEquals(HttpStatusCode.OK.getStatusCode(), response.getStatusCode());
 
-    final ODataEntity entity = response.getBody();
+    final ClientEntity entity = response.getBody();
     assertNotNull(entity);
-    final ODataProperty property = entity.getProperty("PropertyString");
+    final ClientProperty property = entity.getProperty("PropertyString");
     assertNotNull(property);
     assertNotNull(property.getPrimitiveValue());
     assertEquals("Test String4", property.getPrimitiveValue().toValue());
@@ -57,7 +57,7 @@ public final class NavigationITCase extends AbstractBaseTestITCase {
 
   @Test
   public void oneLevelToEntityWithKey() throws Exception {
-    final ODataRetrieveResponse<ODataEntity> response =
+    final ODataRetrieveResponse<ClientEntity> response =
         client.getRetrieveRequestFactory().getEntityRequest(
             client.newURIBuilder(TecSvcConst.BASE_URI)
                 .appendEntitySetSegment("ESAllPrim").appendKeySegment(32767)
@@ -65,9 +65,9 @@ public final class NavigationITCase extends AbstractBaseTestITCase {
             .execute();
     assertEquals(HttpStatusCode.OK.getStatusCode(), response.getStatusCode());
 
-    final ODataEntity entity = response.getBody();
+    final ClientEntity entity = response.getBody();
     assertNotNull(entity);
-    final ODataProperty property = entity.getProperty("PropertyString");
+    final ClientProperty property = entity.getProperty("PropertyString");
     assertNotNull(property);
     assertNotNull(property.getPrimitiveValue());
     assertEquals("Test String2", property.getPrimitiveValue().toValue());
@@ -75,7 +75,7 @@ public final class NavigationITCase extends AbstractBaseTestITCase {
 
   @Test
   public void twoLevelsToEntityWithKey() throws Exception {
-    final ODataRetrieveResponse<ODataEntity> response =
+    final ODataRetrieveResponse<ClientEntity> response =
         client.getRetrieveRequestFactory().getEntityRequest(
             client.newURIBuilder(TecSvcConst.BASE_URI)
                 .appendEntitySetSegment("ESTwoPrim").appendKeySegment(32767)
@@ -84,9 +84,9 @@ public final class NavigationITCase extends AbstractBaseTestITCase {
             .execute();
     assertEquals(HttpStatusCode.OK.getStatusCode(), response.getStatusCode());
 
-    final ODataEntity entity = response.getBody();
+    final ClientEntity entity = response.getBody();
     assertNotNull(entity);
-    final ODataProperty property = entity.getProperty("PropertyString");
+    final ClientProperty property = entity.getProperty("PropertyString");
     assertNotNull(property);
     assertNotNull(property.getPrimitiveValue());
     assertEquals("Test String2", property.getPrimitiveValue().toValue());
@@ -94,7 +94,7 @@ public final class NavigationITCase extends AbstractBaseTestITCase {
 
   @Test
   public void twoLevelsToEntitySet() throws Exception {
-    final ODataRetrieveResponse<ODataEntitySet> response =
+    final ODataRetrieveResponse<ClientEntitySet> response =
         client.getRetrieveRequestFactory().getEntitySetRequest(
             client.newURIBuilder(TecSvcConst.BASE_URI)
                 .appendEntitySetSegment("ESTwoPrim").appendKeySegment(32767)
@@ -103,12 +103,12 @@ public final class NavigationITCase extends AbstractBaseTestITCase {
             .execute();
     assertEquals(HttpStatusCode.OK.getStatusCode(), response.getStatusCode());
 
-    final ODataEntitySet entitySet = response.getBody();
+    final ClientEntitySet entitySet = response.getBody();
     assertNotNull(entitySet);
     assertEquals(1, entitySet.getEntities().size());
-    final ODataEntity entity = entitySet.getEntities().get(0);
+    final ClientEntity entity = entitySet.getEntities().get(0);
     assertNotNull(entity);
-    final ODataProperty property = entity.getProperty("PropertyString");
+    final ClientProperty property = entity.getProperty("PropertyString");
     assertNotNull(property);
     assertNotNull(property.getPrimitiveValue());
     assertEquals("Test String2", property.getPrimitiveValue().toValue());
@@ -116,7 +116,7 @@ public final class NavigationITCase extends AbstractBaseTestITCase {
 
   @Test
   public void twoLevelsToProperty() throws Exception {
-    final ODataRetrieveResponse<ODataProperty> response =
+    final ODataRetrieveResponse<ClientProperty> response =
         client.getRetrieveRequestFactory().getPropertyRequest(
             client.newURIBuilder(TecSvcConst.BASE_URI)
                 .appendEntitySetSegment("ESKeyNav").appendKeySegment(1)
@@ -126,7 +126,7 @@ public final class NavigationITCase extends AbstractBaseTestITCase {
             .execute();
     assertEquals(HttpStatusCode.OK.getStatusCode(), response.getStatusCode());
 
-    final ODataProperty property = response.getBody();
+    final ClientProperty property = response.getBody();
     assertNotNull(property);
     assertNotNull(property.getPrimitiveValue());
     assertEquals(1, property.getPrimitiveValue().toValue());


[14/50] [abbrv] olingo-odata4 git commit: [OLINGO-564] Renamed 'edm.provider.*' classes

Posted by mi...@apache.org.
http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/2318953c/lib/server-core-ext/src/main/java/org/apache/olingo/server/core/MetadataParser.java
----------------------------------------------------------------------
diff --git a/lib/server-core-ext/src/main/java/org/apache/olingo/server/core/MetadataParser.java b/lib/server-core-ext/src/main/java/org/apache/olingo/server/core/MetadataParser.java
index e34a28a..660db3f 100644
--- a/lib/server-core-ext/src/main/java/org/apache/olingo/server/core/MetadataParser.java
+++ b/lib/server-core-ext/src/main/java/org/apache/olingo/server/core/MetadataParser.java
@@ -33,38 +33,38 @@ import javax.xml.stream.events.StartElement;
 import javax.xml.stream.events.XMLEvent;
 
 import org.apache.olingo.commons.api.edm.FullQualifiedName;
-import org.apache.olingo.commons.api.edm.provider.Action;
-import org.apache.olingo.commons.api.edm.provider.ActionImport;
-import org.apache.olingo.commons.api.edm.provider.ComplexType;
-import org.apache.olingo.commons.api.edm.provider.EdmProvider;
-import org.apache.olingo.commons.api.edm.provider.EntityContainer;
-import org.apache.olingo.commons.api.edm.provider.EntitySet;
-import org.apache.olingo.commons.api.edm.provider.EntityType;
-import org.apache.olingo.commons.api.edm.provider.EnumMember;
-import org.apache.olingo.commons.api.edm.provider.EnumType;
-import org.apache.olingo.commons.api.edm.provider.Function;
-import org.apache.olingo.commons.api.edm.provider.FunctionImport;
-import org.apache.olingo.commons.api.edm.provider.NavigationProperty;
-import org.apache.olingo.commons.api.edm.provider.NavigationPropertyBinding;
-import org.apache.olingo.commons.api.edm.provider.OnDelete;
-import org.apache.olingo.commons.api.edm.provider.OnDeleteAction;
-import org.apache.olingo.commons.api.edm.provider.Operation;
-import org.apache.olingo.commons.api.edm.provider.Parameter;
-import org.apache.olingo.commons.api.edm.provider.Property;
-import org.apache.olingo.commons.api.edm.provider.PropertyRef;
-import org.apache.olingo.commons.api.edm.provider.ReferentialConstraint;
-import org.apache.olingo.commons.api.edm.provider.ReturnType;
-import org.apache.olingo.commons.api.edm.provider.Schema;
-import org.apache.olingo.commons.api.edm.provider.Singleton;
-import org.apache.olingo.commons.api.edm.provider.Term;
-import org.apache.olingo.commons.api.edm.provider.TypeDefinition;
+import org.apache.olingo.commons.api.edm.provider.CsdlAction;
+import org.apache.olingo.commons.api.edm.provider.CsdlActionImport;
+import org.apache.olingo.commons.api.edm.provider.CsdlComplexType;
+import org.apache.olingo.commons.api.edm.provider.CsdlEdmProvider;
+import org.apache.olingo.commons.api.edm.provider.CsdlEntityContainer;
+import org.apache.olingo.commons.api.edm.provider.CsdlEntitySet;
+import org.apache.olingo.commons.api.edm.provider.CsdlEntityType;
+import org.apache.olingo.commons.api.edm.provider.CsdlEnumMember;
+import org.apache.olingo.commons.api.edm.provider.CsdlEnumType;
+import org.apache.olingo.commons.api.edm.provider.CsdlFunction;
+import org.apache.olingo.commons.api.edm.provider.CsdlFunctionImport;
+import org.apache.olingo.commons.api.edm.provider.CsdlNavigationProperty;
+import org.apache.olingo.commons.api.edm.provider.CsdlNavigationPropertyBinding;
+import org.apache.olingo.commons.api.edm.provider.CsdlOnDelete;
+import org.apache.olingo.commons.api.edm.provider.CsdlOnDeleteAction;
+import org.apache.olingo.commons.api.edm.provider.CsdlOperation;
+import org.apache.olingo.commons.api.edm.provider.CsdlParameter;
+import org.apache.olingo.commons.api.edm.provider.CsdlProperty;
+import org.apache.olingo.commons.api.edm.provider.CsdlPropertyRef;
+import org.apache.olingo.commons.api.edm.provider.CsdlReferentialConstraint;
+import org.apache.olingo.commons.api.edm.provider.CsdlReturnType;
+import org.apache.olingo.commons.api.edm.provider.CsdlSchema;
+import org.apache.olingo.commons.api.edm.provider.CsdlSingleton;
+import org.apache.olingo.commons.api.edm.provider.CsdlTerm;
+import org.apache.olingo.commons.api.edm.provider.CsdlTypeDefinition;
 
 /**
  * This class can convert a CSDL document into EDMProvider object
  */
 public class MetadataParser {
 
-  public EdmProvider buildEdmProvider(Reader csdl) throws XMLStreamException {
+  public CsdlEdmProvider buildEdmProvider(Reader csdl) throws XMLStreamException {
     XMLInputFactory xmlInputFactory = XMLInputFactory.newInstance();
     XMLEventReader reader = xmlInputFactory.createXMLEventReader(csdl);
 
@@ -112,18 +112,18 @@ public class MetadataParser {
   private void readSchema(XMLEventReader reader, StartElement element,
       SchemaBasedEdmProvider provider) throws XMLStreamException {
 
-    Schema schema = new Schema();
-    schema.setComplexTypes(new ArrayList<ComplexType>());
-    schema.setActions(new ArrayList<Action>());
-    schema.setEntityTypes(new ArrayList<EntityType>());
-    schema.setEnumTypes(new ArrayList<EnumType>());
-    schema.setFunctions(new ArrayList<Function>());
-    schema.setTerms(new ArrayList<Term>());
-    schema.setTypeDefinitions(new ArrayList<TypeDefinition>());
+    CsdlSchema schema = new CsdlSchema();
+    schema.setComplexTypes(new ArrayList<CsdlComplexType>());
+    schema.setActions(new ArrayList<CsdlAction>());
+    schema.setEntityTypes(new ArrayList<CsdlEntityType>());
+    schema.setEnumTypes(new ArrayList<CsdlEnumType>());
+    schema.setFunctions(new ArrayList<CsdlFunction>());
+    schema.setTerms(new ArrayList<CsdlTerm>());
+    schema.setTypeDefinitions(new ArrayList<CsdlTypeDefinition>());
 
-    new ElementReader<Schema>() {
+    new ElementReader<CsdlSchema>() {
       @Override
-      void build(XMLEventReader reader, StartElement element, Schema schema, String name)
+      void build(XMLEventReader reader, StartElement element, CsdlSchema schema, String name)
           throws XMLStreamException {
         schema.setNamespace(attr(element, "Namespace"));
         schema.setAlias(attr(element, "Alias"));
@@ -133,10 +133,10 @@ public class MetadataParser {
     provider.addSchema(schema);
   }
 
-  private void readSchemaContents(XMLEventReader reader, Schema schema) throws XMLStreamException {
-    new ElementReader<Schema>() {
+  private void readSchemaContents(XMLEventReader reader, CsdlSchema schema) throws XMLStreamException {
+    new ElementReader<CsdlSchema>() {
       @Override
-      void build(XMLEventReader reader, StartElement element, Schema schema, String name)
+      void build(XMLEventReader reader, StartElement element, CsdlSchema schema, String name)
           throws XMLStreamException {
         if (name.equals("Action")) {
           readAction(reader, element, schema);
@@ -164,11 +164,11 @@ public class MetadataParser {
         "EntityContainer", "EntityType", "EnumType", "Function", "Term", "TypeDefinition");
   }
 
-  private void readAction(XMLEventReader reader, StartElement element, Schema schema)
+  private void readAction(XMLEventReader reader, StartElement element, CsdlSchema schema)
       throws XMLStreamException {
 
-    Action action = new Action();
-    action.setParameters(new ArrayList<Parameter>());
+    CsdlAction action = new CsdlAction();
+    action.setParameters(new ArrayList<CsdlParameter>());
     action.setName(attr(element, "Name"));
     action.setBound(Boolean.parseBoolean(attr(element, "IsBound")));
     String entitySetPath = attr(element, "EntitySetPath");
@@ -196,8 +196,8 @@ public class MetadataParser {
     return false;
   }
 
-  private void readReturnType(StartElement element, Operation operation) {
-    ReturnType returnType = new ReturnType();
+  private void readReturnType(StartElement element, CsdlOperation operation) {
+    CsdlReturnType returnType = new CsdlReturnType();
     returnType.setType(readType(element));
     returnType.setCollection(isCollectionType(element));
     returnType.setNullable(Boolean.parseBoolean(attr(element, "Nullable")));
@@ -221,8 +221,8 @@ public class MetadataParser {
     operation.setReturnType(returnType);
   }
 
-  private void readParameter(StartElement element, Operation operation) {
-    Parameter parameter = new Parameter();
+  private void readParameter(StartElement element, CsdlOperation operation) {
+    CsdlParameter parameter = new CsdlParameter();
     parameter.setName(attr(element, "Name"));
     parameter.setType(readType(element));
     parameter.setCollection(isCollectionType(element));
@@ -247,8 +247,8 @@ public class MetadataParser {
     operation.getParameters().add(parameter);
   }
 
-  private TypeDefinition readTypeDefinition(StartElement element) {
-    TypeDefinition td = new TypeDefinition();
+  private CsdlTypeDefinition readTypeDefinition(StartElement element) {
+    CsdlTypeDefinition td = new CsdlTypeDefinition();
     td.setName(attr(element, "Name"));
     td.setUnderlyingType(new FullQualifiedName(attr(element, "UnderlyingType")));
     td.setUnicode(Boolean.parseBoolean(attr(element, "Unicode")));
@@ -272,8 +272,8 @@ public class MetadataParser {
     return td;
   }
 
-  private Term readTerm(StartElement element) {
-    Term term = new Term();
+  private CsdlTerm readTerm(StartElement element) {
+    CsdlTerm term = new CsdlTerm();
     term.setName(attr(element, "Name"));
     term.setType(attr(element, "Type"));
     if (attr(element, "BaseTerm") != null) {
@@ -305,10 +305,10 @@ public class MetadataParser {
     return term;
   }
 
-  private void readFunction(XMLEventReader reader, StartElement element, Schema schema)
+  private void readFunction(XMLEventReader reader, StartElement element, CsdlSchema schema)
       throws XMLStreamException {
-    Function function = new Function();
-    function.setParameters(new ArrayList<Parameter>());
+    CsdlFunction function = new CsdlFunction();
+    function.setParameters(new ArrayList<CsdlParameter>());
     function.setName(attr(element, "Name"));
     function.setBound(Boolean.parseBoolean(attr(element, "IsBound")));
     function.setComposable(Boolean.parseBoolean(attr(element, "IsComposable")));
@@ -321,11 +321,11 @@ public class MetadataParser {
     schema.getFunctions().add(function);
   }
 
-  private void readOperationParameters(XMLEventReader reader, final Operation operation)
+  private void readOperationParameters(XMLEventReader reader, final CsdlOperation operation)
       throws XMLStreamException {
-    new ElementReader<Operation>() {
+    new ElementReader<CsdlOperation>() {
       @Override
-      void build(XMLEventReader reader, StartElement element, Operation operation, String name)
+      void build(XMLEventReader reader, StartElement element, CsdlOperation operation, String name)
           throws XMLStreamException {
         if (name.equals("Parameter")) {
           readParameter(element, operation);
@@ -336,10 +336,10 @@ public class MetadataParser {
     }.read(reader, null, operation, "Parameter", "ReturnType");
   }
 
-  private void readEnumType(XMLEventReader reader, StartElement element, Schema schema)
+  private void readEnumType(XMLEventReader reader, StartElement element, CsdlSchema schema)
       throws XMLStreamException {
-    EnumType type = new EnumType();
-    type.setMembers(new ArrayList<EnumMember>());
+    CsdlEnumType type = new CsdlEnumType();
+    type.setMembers(new ArrayList<CsdlEnumMember>());
     type.setName(attr(element, "Name"));
     if (attr(element, "UnderlyingType") != null) {
       type.setUnderlyingType(new FullQualifiedName(attr(element, "UnderlyingType")));
@@ -350,13 +350,13 @@ public class MetadataParser {
     schema.getEnumTypes().add(type);
   }
 
-  private void readEnumMembers(XMLEventReader reader, StartElement element, EnumType type)
+  private void readEnumMembers(XMLEventReader reader, StartElement element, CsdlEnumType type)
       throws XMLStreamException {
-    new ElementReader<EnumType>() {
+    new ElementReader<CsdlEnumType>() {
       @Override
-      void build(XMLEventReader reader, StartElement element, EnumType type, String name)
+      void build(XMLEventReader reader, StartElement element, CsdlEnumType type, String name)
           throws XMLStreamException {
-        EnumMember member = new EnumMember();
+        CsdlEnumMember member = new CsdlEnumMember();
         member.setName(attr(element, "Name"));
         member.setValue(attr(element, "Value"));
         type.getMembers().add(member);
@@ -364,12 +364,12 @@ public class MetadataParser {
     }.read(reader, element, type, "Member");
   }
 
-  private void readEntityType(XMLEventReader reader, StartElement element, Schema schema)
+  private void readEntityType(XMLEventReader reader, StartElement element, CsdlSchema schema)
       throws XMLStreamException {
-    EntityType entityType = new EntityType();
-    entityType.setProperties(new ArrayList<Property>());
-    entityType.setNavigationProperties(new ArrayList<NavigationProperty>());
-    entityType.setKey(new ArrayList<PropertyRef>());
+    CsdlEntityType entityType = new CsdlEntityType();
+    entityType.setProperties(new ArrayList<CsdlProperty>());
+    entityType.setNavigationProperties(new ArrayList<CsdlNavigationProperty>());
+    entityType.setKey(new ArrayList<CsdlPropertyRef>());
     entityType.setName(attr(element, "Name"));
     if (attr(element, "BaseType") != null) {
       entityType.setBaseType(new FullQualifiedName(attr(element, "BaseType")));
@@ -381,11 +381,11 @@ public class MetadataParser {
     schema.getEntityTypes().add(entityType);
   }
 
-  private void readEntityProperties(XMLEventReader reader, EntityType entityType)
+  private void readEntityProperties(XMLEventReader reader, CsdlEntityType entityType)
       throws XMLStreamException {
-    new ElementReader<EntityType>() {
+    new ElementReader<CsdlEntityType>() {
       @Override
-      void build(XMLEventReader reader, StartElement element, EntityType entityType, String name)
+      void build(XMLEventReader reader, StartElement element, CsdlEntityType entityType, String name)
           throws XMLStreamException {
         if (name.equals("Property")) {
           entityType.getProperties().add(readProperty(element));
@@ -398,13 +398,13 @@ public class MetadataParser {
     }.read(reader, null, entityType, "Property", "NavigationProperty", "Key");
   }
 
-  private void readKey(XMLEventReader reader, StartElement element, EntityType entityType)
+  private void readKey(XMLEventReader reader, StartElement element, CsdlEntityType entityType)
       throws XMLStreamException {
-    new ElementReader<EntityType>() {
+    new ElementReader<CsdlEntityType>() {
       @Override
-      void build(XMLEventReader reader, StartElement element, EntityType entityType, String name)
+      void build(XMLEventReader reader, StartElement element, CsdlEntityType entityType, String name)
           throws XMLStreamException {
-        PropertyRef ref = new PropertyRef();
+        CsdlPropertyRef ref = new CsdlPropertyRef();
         ref.setName(attr(element, "Name"));
         ref.setAlias(attr(element, "Alias"));
         entityType.getKey().add(ref);
@@ -412,10 +412,10 @@ public class MetadataParser {
     }.read(reader, element, entityType, "PropertyRef");
   }
 
-  private NavigationProperty readNavigationProperty(XMLEventReader reader, StartElement element)
+  private CsdlNavigationProperty readNavigationProperty(XMLEventReader reader, StartElement element)
       throws XMLStreamException {
-    NavigationProperty property = new NavigationProperty();
-    property.setReferentialConstraints(new ArrayList<ReferentialConstraint>());
+    CsdlNavigationProperty property = new CsdlNavigationProperty();
+    property.setReferentialConstraints(new ArrayList<CsdlReferentialConstraint>());
 
     property.setName(attr(element, "Name"));
     property.setType(readType(element));
@@ -424,17 +424,17 @@ public class MetadataParser {
     property.setPartner(attr(element, "Partner"));
     property.setContainsTarget(Boolean.parseBoolean(attr(element, "ContainsTarget")));
 
-    new ElementReader<NavigationProperty>() {
+    new ElementReader<CsdlNavigationProperty>() {
       @Override
-      void build(XMLEventReader reader, StartElement element, NavigationProperty property,
+      void build(XMLEventReader reader, StartElement element, CsdlNavigationProperty property,
           String name) throws XMLStreamException {
         if (name.equals("ReferentialConstraint")) {
-          ReferentialConstraint constraint = new ReferentialConstraint();
+          CsdlReferentialConstraint constraint = new CsdlReferentialConstraint();
           constraint.setProperty(attr(element, "Property"));
           constraint.setReferencedProperty(attr(element, "ReferencedProperty"));
           property.getReferentialConstraints().add(constraint);
         } else if (name.equals("OnDelete")) {
-          property.setOnDelete(new OnDelete().setAction(OnDeleteAction.valueOf(attr(element, "Action"))));
+          property.setOnDelete(new CsdlOnDelete().setAction(CsdlOnDeleteAction.valueOf(attr(element, "Action"))));
         }
       }
     }.read(reader, element, property, "ReferentialConstraint", "OnDelete");
@@ -449,8 +449,8 @@ public class MetadataParser {
     return null;
   }
 
-  private Property readProperty(StartElement element) {
-    Property property = new Property();
+  private CsdlProperty readProperty(StartElement element) {
+    CsdlProperty property = new CsdlProperty();
     property.setName(attr(element, "Name"));
     property.setType(readType(element));
     property.setCollection(isCollectionType(element));
@@ -481,21 +481,21 @@ public class MetadataParser {
     return property;
   }
 
-  private void readEntityContainer(XMLEventReader reader, StartElement element, Schema schema)
+  private void readEntityContainer(XMLEventReader reader, StartElement element, CsdlSchema schema)
       throws XMLStreamException {
-    final EntityContainer container = new EntityContainer();
+    final CsdlEntityContainer container = new CsdlEntityContainer();
     container.setName(attr(element, "Name"));
     if (attr(element, "Extends") != null) {
       container.setExtendsContainer(attr(element, "Extends"));
     }
-    container.setActionImports(new ArrayList<ActionImport>());
-    container.setFunctionImports(new ArrayList<FunctionImport>());
-    container.setEntitySets(new ArrayList<EntitySet>());
-    container.setSingletons(new ArrayList<Singleton>());
+    container.setActionImports(new ArrayList<CsdlActionImport>());
+    container.setFunctionImports(new ArrayList<CsdlFunctionImport>());
+    container.setEntitySets(new ArrayList<CsdlEntitySet>());
+    container.setSingletons(new ArrayList<CsdlSingleton>());
 
-    new ElementReader<Schema>() {
+    new ElementReader<CsdlSchema>() {
       @Override
-      void build(XMLEventReader reader, StartElement element, Schema schema, String name)
+      void build(XMLEventReader reader, StartElement element, CsdlSchema schema, String name)
           throws XMLStreamException {
         if (name.equals("EntitySet")) {
           readEntitySet(reader, element, container);
@@ -508,8 +508,8 @@ public class MetadataParser {
         }
       }
 
-      private void readFunctionImport(StartElement element, EntityContainer container) {
-        FunctionImport functionImport = new FunctionImport();
+      private void readFunctionImport(StartElement element, CsdlEntityContainer container) {
+        CsdlFunctionImport functionImport = new CsdlFunctionImport();
         functionImport.setName(attr(element, "Name"));
         functionImport.setFunction(new FullQualifiedName(attr(element, "Function")));
         functionImport.setIncludeInServiceDocument(Boolean.parseBoolean(attr(element,
@@ -522,8 +522,8 @@ public class MetadataParser {
         container.getFunctionImports().add(functionImport);
       }
 
-      private void readActionImport(StartElement element, EntityContainer container) {
-        ActionImport actionImport = new ActionImport();
+      private void readActionImport(StartElement element, CsdlEntityContainer container) {
+        CsdlActionImport actionImport = new CsdlActionImport();
         actionImport.setName(attr(element, "Name"));
         actionImport.setAction(new FullQualifiedName(attr(element, "Action")));
 
@@ -535,35 +535,35 @@ public class MetadataParser {
       }
 
       private void readSingleton(XMLEventReader reader, StartElement element,
-          EntityContainer container) throws XMLStreamException {
-        Singleton singleton = new Singleton();
-        singleton.setNavigationPropertyBindings(new ArrayList<NavigationPropertyBinding>());
+          CsdlEntityContainer container) throws XMLStreamException {
+        CsdlSingleton singleton = new CsdlSingleton();
+        singleton.setNavigationPropertyBindings(new ArrayList<CsdlNavigationPropertyBinding>());
         singleton.setName(attr(element, "Name"));
         singleton.setType(new FullQualifiedName(attr(element, "Type")));
-        singleton.setNavigationPropertyBindings(new ArrayList<NavigationPropertyBinding>());
+        singleton.setNavigationPropertyBindings(new ArrayList<CsdlNavigationPropertyBinding>());
         readNavigationPropertyBindings(reader, element, singleton.getNavigationPropertyBindings());
         container.getSingletons().add(singleton);
       }
 
       private void readEntitySet(XMLEventReader reader, StartElement element,
-          EntityContainer container) throws XMLStreamException {
-        EntitySet entitySet = new EntitySet();
+          CsdlEntityContainer container) throws XMLStreamException {
+        CsdlEntitySet entitySet = new CsdlEntitySet();
         entitySet.setName(attr(element, "Name"));
         entitySet.setType(new FullQualifiedName(attr(element, "EntityType")));
         entitySet.setIncludeInServiceDocument(Boolean.parseBoolean(attr(element,
             "IncludeInServiceDocument")));
-        entitySet.setNavigationPropertyBindings(new ArrayList<NavigationPropertyBinding>());
+        entitySet.setNavigationPropertyBindings(new ArrayList<CsdlNavigationPropertyBinding>());
         readNavigationPropertyBindings(reader, element, entitySet.getNavigationPropertyBindings());
         container.getEntitySets().add(entitySet);
       }
 
       private void readNavigationPropertyBindings(XMLEventReader reader, StartElement element,
-          List<NavigationPropertyBinding> bindings) throws XMLStreamException {
-        new ElementReader<List<NavigationPropertyBinding>>() {
+          List<CsdlNavigationPropertyBinding> bindings) throws XMLStreamException {
+        new ElementReader<List<CsdlNavigationPropertyBinding>>() {
           @Override
           void build(XMLEventReader reader, StartElement element,
-              List<NavigationPropertyBinding> bindings, String name) throws XMLStreamException {
-            NavigationPropertyBinding binding = new NavigationPropertyBinding();
+              List<CsdlNavigationPropertyBinding> bindings, String name) throws XMLStreamException {
+            CsdlNavigationPropertyBinding binding = new CsdlNavigationPropertyBinding();
             binding.setPath(attr(element, "Path"));
             binding.setTarget(attr(element, "Target"));
             bindings.add(binding);
@@ -576,11 +576,11 @@ public class MetadataParser {
     schema.setEntityContainer(container);
   }
 
-  private void readComplexType(XMLEventReader reader, StartElement element, Schema schema)
+  private void readComplexType(XMLEventReader reader, StartElement element, CsdlSchema schema)
       throws XMLStreamException {
-    ComplexType complexType = new ComplexType();
-    complexType.setProperties(new ArrayList<Property>());
-    complexType.setNavigationProperties(new ArrayList<NavigationProperty>());
+    CsdlComplexType complexType = new CsdlComplexType();
+    complexType.setProperties(new ArrayList<CsdlProperty>());
+    complexType.setNavigationProperties(new ArrayList<CsdlNavigationProperty>());
     complexType.setName(attr(element, "Name"));
     if (attr(element, "BaseType") != null) {
       complexType.setBaseType(new FullQualifiedName(attr(element, "BaseType")));
@@ -592,11 +592,11 @@ public class MetadataParser {
     schema.getComplexTypes().add(complexType);
   }
 
-  private void readProperties(XMLEventReader reader, ComplexType complexType)
+  private void readProperties(XMLEventReader reader, CsdlComplexType complexType)
       throws XMLStreamException {
-    new ElementReader<ComplexType>() {
+    new ElementReader<CsdlComplexType>() {
       @Override
-      void build(XMLEventReader reader, StartElement element, ComplexType complexType, String name)
+      void build(XMLEventReader reader, StartElement element, CsdlComplexType complexType, String name)
           throws XMLStreamException {
         if (name.equals("Property")) {
           complexType.getProperties().add(readProperty(element));

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/2318953c/lib/server-core-ext/src/main/java/org/apache/olingo/server/core/SchemaBasedEdmProvider.java
----------------------------------------------------------------------
diff --git a/lib/server-core-ext/src/main/java/org/apache/olingo/server/core/SchemaBasedEdmProvider.java b/lib/server-core-ext/src/main/java/org/apache/olingo/server/core/SchemaBasedEdmProvider.java
index cc811c0..a35f3bc 100644
--- a/lib/server-core-ext/src/main/java/org/apache/olingo/server/core/SchemaBasedEdmProvider.java
+++ b/lib/server-core-ext/src/main/java/org/apache/olingo/server/core/SchemaBasedEdmProvider.java
@@ -24,34 +24,34 @@ import java.util.List;
 
 import org.apache.olingo.commons.api.ODataException;
 import org.apache.olingo.commons.api.edm.FullQualifiedName;
-import org.apache.olingo.commons.api.edm.provider.Action;
-import org.apache.olingo.commons.api.edm.provider.ActionImport;
-import org.apache.olingo.commons.api.edm.provider.AliasInfo;
-import org.apache.olingo.commons.api.edm.provider.Annotatable;
-import org.apache.olingo.commons.api.edm.provider.Annotations;
-import org.apache.olingo.commons.api.edm.provider.ComplexType;
-import org.apache.olingo.commons.api.edm.provider.EdmProvider;
-import org.apache.olingo.commons.api.edm.provider.EntityContainer;
-import org.apache.olingo.commons.api.edm.provider.EntityContainerInfo;
-import org.apache.olingo.commons.api.edm.provider.EntitySet;
-import org.apache.olingo.commons.api.edm.provider.EntityType;
-import org.apache.olingo.commons.api.edm.provider.EnumType;
-import org.apache.olingo.commons.api.edm.provider.Function;
-import org.apache.olingo.commons.api.edm.provider.FunctionImport;
-import org.apache.olingo.commons.api.edm.provider.Schema;
-import org.apache.olingo.commons.api.edm.provider.Singleton;
-import org.apache.olingo.commons.api.edm.provider.Term;
-import org.apache.olingo.commons.api.edm.provider.TypeDefinition;
+import org.apache.olingo.commons.api.edm.provider.CsdlAction;
+import org.apache.olingo.commons.api.edm.provider.CsdlActionImport;
+import org.apache.olingo.commons.api.edm.provider.CsdlAliasInfo;
+import org.apache.olingo.commons.api.edm.provider.CsdlAnnotatable;
+import org.apache.olingo.commons.api.edm.provider.CsdlAnnotations;
+import org.apache.olingo.commons.api.edm.provider.CsdlComplexType;
+import org.apache.olingo.commons.api.edm.provider.CsdlEdmProvider;
+import org.apache.olingo.commons.api.edm.provider.CsdlEntityContainer;
+import org.apache.olingo.commons.api.edm.provider.CsdlEntityContainerInfo;
+import org.apache.olingo.commons.api.edm.provider.CsdlEntitySet;
+import org.apache.olingo.commons.api.edm.provider.CsdlEntityType;
+import org.apache.olingo.commons.api.edm.provider.CsdlEnumType;
+import org.apache.olingo.commons.api.edm.provider.CsdlFunction;
+import org.apache.olingo.commons.api.edm.provider.CsdlFunctionImport;
+import org.apache.olingo.commons.api.edm.provider.CsdlSchema;
+import org.apache.olingo.commons.api.edm.provider.CsdlSingleton;
+import org.apache.olingo.commons.api.edm.provider.CsdlTerm;
+import org.apache.olingo.commons.api.edm.provider.CsdlTypeDefinition;
 
-public class SchemaBasedEdmProvider implements EdmProvider {
-  private final List<Schema> edmSchemas = new ArrayList<Schema>();
+public class SchemaBasedEdmProvider implements CsdlEdmProvider {
+  private final List<CsdlSchema> edmSchemas = new ArrayList<CsdlSchema>();
 
-  public void addSchema(Schema schema) {
+  public void addSchema(CsdlSchema schema) {
     this.edmSchemas.add(schema);
   }
 
-  private Schema getSchema(String ns) {
-    for (Schema s : this.edmSchemas) {
+  private CsdlSchema getSchema(String ns) {
+    for (CsdlSchema s : this.edmSchemas) {
       if (s.getNamespace().equals(ns)) {
         return s;
       }
@@ -60,12 +60,12 @@ public class SchemaBasedEdmProvider implements EdmProvider {
   }
 
   @Override
-  public EnumType getEnumType(FullQualifiedName fqn) throws ODataException {
-    Schema schema = getSchema(fqn.getNamespace());
+  public CsdlEnumType getEnumType(FullQualifiedName fqn) throws ODataException {
+    CsdlSchema schema = getSchema(fqn.getNamespace());
     if (schema != null) {
-      List<EnumType> types = schema.getEnumTypes();
+      List<CsdlEnumType> types = schema.getEnumTypes();
       if (types != null) {
-        for (EnumType type : types) {
+        for (CsdlEnumType type : types) {
           if (type.getName().equals(fqn.getName())) {
             return type;
           }
@@ -76,12 +76,12 @@ public class SchemaBasedEdmProvider implements EdmProvider {
   }
 
   @Override
-  public TypeDefinition getTypeDefinition(FullQualifiedName fqn) throws ODataException {
-    Schema schema = getSchema(fqn.getNamespace());
+  public CsdlTypeDefinition getTypeDefinition(FullQualifiedName fqn) throws ODataException {
+    CsdlSchema schema = getSchema(fqn.getNamespace());
     if (schema != null) {
-      List<TypeDefinition> types = schema.getTypeDefinitions();
+      List<CsdlTypeDefinition> types = schema.getTypeDefinitions();
       if (types != null) {
-        for (TypeDefinition type : types) {
+        for (CsdlTypeDefinition type : types) {
           if (type.getName().equals(fqn.getName())) {
             return type;
           }
@@ -92,13 +92,13 @@ public class SchemaBasedEdmProvider implements EdmProvider {
   }
 
   @Override
-  public List<Function> getFunctions(FullQualifiedName fqn) throws ODataException {
-    ArrayList<Function> foundFuncs = new ArrayList<Function>();
-    Schema schema = getSchema(fqn.getNamespace());
+  public List<CsdlFunction> getFunctions(FullQualifiedName fqn) throws ODataException {
+    ArrayList<CsdlFunction> foundFuncs = new ArrayList<CsdlFunction>();
+    CsdlSchema schema = getSchema(fqn.getNamespace());
     if (schema != null) {
-      List<Function> functions = schema.getFunctions();
+      List<CsdlFunction> functions = schema.getFunctions();
       if (functions != null) {
-        for (Function func : functions) {
+        for (CsdlFunction func : functions) {
           if (func.getName().equals(fqn.getName())) {
             foundFuncs.add(func);
           }
@@ -109,12 +109,12 @@ public class SchemaBasedEdmProvider implements EdmProvider {
   }
 
   @Override
-  public Term getTerm(FullQualifiedName fqn) throws ODataException {
-    Schema schema = getSchema(fqn.getNamespace());
+  public CsdlTerm getTerm(FullQualifiedName fqn) throws ODataException {
+    CsdlSchema schema = getSchema(fqn.getNamespace());
     if (schema != null) {
-      List<Term> terms = schema.getTerms();
+      List<CsdlTerm> terms = schema.getTerms();
       if (terms != null) {
-        for (Term term : terms) {
+        for (CsdlTerm term : terms) {
           if (term.getName().equals(fqn.getName())) {
             return term;
           }
@@ -125,12 +125,12 @@ public class SchemaBasedEdmProvider implements EdmProvider {
   }
 
   @Override
-  public EntitySet getEntitySet(FullQualifiedName fqn, String entitySetName) throws ODataException {
-    Schema schema = getSchema(fqn.getFullQualifiedNameAsString());
+  public CsdlEntitySet getEntitySet(FullQualifiedName fqn, String entitySetName) throws ODataException {
+    CsdlSchema schema = getSchema(fqn.getFullQualifiedNameAsString());
     if (schema != null) {
-      EntityContainer ec = schema.getEntityContainer();
+      CsdlEntityContainer ec = schema.getEntityContainer();
       if (ec != null && ec.getEntitySets() != null) {
-        for (EntitySet es : ec.getEntitySets()) {
+        for (CsdlEntitySet es : ec.getEntitySets()) {
           if (es.getName().equals(entitySetName)) {
             return es;
           }
@@ -141,12 +141,12 @@ public class SchemaBasedEdmProvider implements EdmProvider {
   }
 
   @Override
-  public Singleton getSingleton(FullQualifiedName fqn, String singletonName) throws ODataException {
-    Schema schema = getSchema(fqn.getFullQualifiedNameAsString());
+  public CsdlSingleton getSingleton(FullQualifiedName fqn, String singletonName) throws ODataException {
+    CsdlSchema schema = getSchema(fqn.getFullQualifiedNameAsString());
     if (schema != null) {
-      EntityContainer ec = schema.getEntityContainer();
+      CsdlEntityContainer ec = schema.getEntityContainer();
       if (ec != null && ec.getSingletons() != null) {
-        for (Singleton es : ec.getSingletons()) {
+        for (CsdlSingleton es : ec.getSingletons()) {
           if (es.getName().equals(singletonName)) {
             return es;
           }
@@ -157,13 +157,13 @@ public class SchemaBasedEdmProvider implements EdmProvider {
   }
 
   @Override
-  public ActionImport getActionImport(FullQualifiedName fqn, String actionImportName)
+  public CsdlActionImport getActionImport(FullQualifiedName fqn, String actionImportName)
       throws ODataException {
-    Schema schema = getSchema(fqn.getFullQualifiedNameAsString());
+    CsdlSchema schema = getSchema(fqn.getFullQualifiedNameAsString());
     if (schema != null) {
-      EntityContainer ec = schema.getEntityContainer();
+      CsdlEntityContainer ec = schema.getEntityContainer();
       if (ec != null && ec.getActionImports() != null) {
-        for (ActionImport es : ec.getActionImports()) {
+        for (CsdlActionImport es : ec.getActionImports()) {
           if (es.getName().equals(actionImportName)) {
             return es;
           }
@@ -174,13 +174,13 @@ public class SchemaBasedEdmProvider implements EdmProvider {
   }
 
   @Override
-  public FunctionImport getFunctionImport(FullQualifiedName fqn, String functionImportName)
+  public CsdlFunctionImport getFunctionImport(FullQualifiedName fqn, String functionImportName)
       throws ODataException {
-    Schema schema = getSchema(fqn.getFullQualifiedNameAsString());
+    CsdlSchema schema = getSchema(fqn.getFullQualifiedNameAsString());
     if (schema != null) {
-      EntityContainer ec = schema.getEntityContainer();
+      CsdlEntityContainer ec = schema.getEntityContainer();
       if (ec != null && ec.getFunctionImports() != null) {
-        for (FunctionImport es : ec.getFunctionImports()) {
+        for (CsdlFunctionImport es : ec.getFunctionImports()) {
           if (es.getName().equals(functionImportName)) {
             return es;
           }
@@ -191,11 +191,11 @@ public class SchemaBasedEdmProvider implements EdmProvider {
   }
 
   @Override
-  public EntityContainerInfo getEntityContainerInfo(FullQualifiedName fqn) throws ODataException {
-    Schema schema = null;
+  public CsdlEntityContainerInfo getEntityContainerInfo(FullQualifiedName fqn) throws ODataException {
+    CsdlSchema schema = null;
 
     if (fqn == null) {
-      for (Schema s : this.edmSchemas) {
+      for (CsdlSchema s : this.edmSchemas) {
         if (s.getEntityContainer() != null) {
           schema = s;
           break;
@@ -206,9 +206,9 @@ public class SchemaBasedEdmProvider implements EdmProvider {
     }
 
     if (schema != null) {
-      EntityContainer ec = schema.getEntityContainer();
+      CsdlEntityContainer ec = schema.getEntityContainer();
       if (ec != null) {
-        EntityContainerInfo info = new EntityContainerInfo();
+        CsdlEntityContainerInfo info = new CsdlEntityContainerInfo();
         info.setContainerName(new FullQualifiedName(schema.getNamespace()));
         if (schema.getEntityContainer().getExtendsContainer() != null) {
           info.setExtendsContainer(new FullQualifiedName(schema.getEntityContainer().getExtendsContainer()));
@@ -220,9 +220,9 @@ public class SchemaBasedEdmProvider implements EdmProvider {
   }
 
   @Override
-  public List<AliasInfo> getAliasInfos() throws ODataException {
-    Schema schema = null;
-    for (Schema s : this.edmSchemas) {
+  public List<CsdlAliasInfo> getAliasInfos() throws ODataException {
+    CsdlSchema schema = null;
+    for (CsdlSchema s : this.edmSchemas) {
       if (s.getEntityContainer() != null) {
         schema = s;
         break;
@@ -233,17 +233,17 @@ public class SchemaBasedEdmProvider implements EdmProvider {
       schema = this.edmSchemas.get(0);
     }
 
-    AliasInfo ai = new AliasInfo();
+    CsdlAliasInfo ai = new CsdlAliasInfo();
     ai.setAlias(schema.getAlias());
     ai.setNamespace(schema.getNamespace());
     return Arrays.asList(ai);
   }
 
   @Override
-  public EntityContainer getEntityContainer() throws ODataException {
+  public CsdlEntityContainer getEntityContainer() throws ODataException {
     // note that there can be many schemas, but only one needs to contain the
     // entity container in a given metadata document.
-    for (Schema s : this.edmSchemas) {
+    for (CsdlSchema s : this.edmSchemas) {
       if (s.getEntityContainer() != null) {
         return s.getEntityContainer();
       }
@@ -252,16 +252,16 @@ public class SchemaBasedEdmProvider implements EdmProvider {
   }
 
   @Override
-  public List<Schema> getSchemas() throws ODataException {
-    return new ArrayList<Schema>(this.edmSchemas);
+  public List<CsdlSchema> getSchemas() throws ODataException {
+    return new ArrayList<CsdlSchema>(this.edmSchemas);
   }
 
   @Override
-  public EntityType getEntityType(final FullQualifiedName fqn) throws ODataException {
-    Schema schema = getSchema(fqn.getNamespace());
+  public CsdlEntityType getEntityType(final FullQualifiedName fqn) throws ODataException {
+    CsdlSchema schema = getSchema(fqn.getNamespace());
     if (schema != null) {
       if (schema.getEntityTypes() != null) {
-        for (EntityType type : schema.getEntityTypes()) {
+        for (CsdlEntityType type : schema.getEntityTypes()) {
           if (type.getName().equals(fqn.getName())) {
             return type;
           }
@@ -272,11 +272,11 @@ public class SchemaBasedEdmProvider implements EdmProvider {
   }
 
   @Override
-  public ComplexType getComplexType(final FullQualifiedName fqn) throws ODataException {
-    Schema schema = getSchema(fqn.getNamespace());
+  public CsdlComplexType getComplexType(final FullQualifiedName fqn) throws ODataException {
+    CsdlSchema schema = getSchema(fqn.getNamespace());
     if (schema != null) {
       if (schema.getComplexTypes() != null) {
-        for (ComplexType type : schema.getComplexTypes()) {
+        for (CsdlComplexType type : schema.getComplexTypes()) {
           if (type.getName().equals(fqn.getName())) {
             return type;
           }
@@ -287,13 +287,13 @@ public class SchemaBasedEdmProvider implements EdmProvider {
   }
 
   @Override
-  public List<Action> getActions(final FullQualifiedName fqn) throws ODataException {
-    ArrayList<Action> actions = new ArrayList<Action>();
-    Schema schema = getSchema(fqn.getNamespace());
+  public List<CsdlAction> getActions(final FullQualifiedName fqn) throws ODataException {
+    ArrayList<CsdlAction> actions = new ArrayList<CsdlAction>();
+    CsdlSchema schema = getSchema(fqn.getNamespace());
     if (schema != null) {
-      List<Action> types = schema.getActions();
+      List<CsdlAction> types = schema.getActions();
       if (types != null) {
-        for (Action type : types) {
+        for (CsdlAction type : types) {
           if (type.getName().equals(fqn.getName())) {
             actions.add(type);
           }
@@ -304,12 +304,12 @@ public class SchemaBasedEdmProvider implements EdmProvider {
   }
 
   @Override
-  public Annotations getAnnotationsGroup(FullQualifiedName targetName) throws ODataException {
+  public CsdlAnnotations getAnnotationsGroup(FullQualifiedName targetName) throws ODataException {
     return null;
   }
 
   @Override
-  public Annotatable getAnnoatatable(FullQualifiedName annotatedName) throws ODataException {
+  public CsdlAnnotatable getAnnoatatable(FullQualifiedName annotatedName) throws ODataException {
     return null;
   }
 }

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/2318953c/lib/server-core-ext/src/test/java/org/apache/olingo/server/core/MetadataParserTest.java
----------------------------------------------------------------------
diff --git a/lib/server-core-ext/src/test/java/org/apache/olingo/server/core/MetadataParserTest.java b/lib/server-core-ext/src/test/java/org/apache/olingo/server/core/MetadataParserTest.java
index 9749a6c..10502ad 100644
--- a/lib/server-core-ext/src/test/java/org/apache/olingo/server/core/MetadataParserTest.java
+++ b/lib/server-core-ext/src/test/java/org/apache/olingo/server/core/MetadataParserTest.java
@@ -29,19 +29,19 @@ import java.util.List;
 
 import org.apache.olingo.commons.api.ODataException;
 import org.apache.olingo.commons.api.edm.FullQualifiedName;
-import org.apache.olingo.commons.api.edm.provider.Action;
-import org.apache.olingo.commons.api.edm.provider.ActionImport;
-import org.apache.olingo.commons.api.edm.provider.ComplexType;
-import org.apache.olingo.commons.api.edm.provider.EdmProvider;
-import org.apache.olingo.commons.api.edm.provider.EntitySet;
-import org.apache.olingo.commons.api.edm.provider.EntityType;
-import org.apache.olingo.commons.api.edm.provider.EnumType;
-import org.apache.olingo.commons.api.edm.provider.Function;
-import org.apache.olingo.commons.api.edm.provider.FunctionImport;
-import org.apache.olingo.commons.api.edm.provider.NavigationPropertyBinding;
-import org.apache.olingo.commons.api.edm.provider.Parameter;
-import org.apache.olingo.commons.api.edm.provider.Property;
-import org.apache.olingo.commons.api.edm.provider.Singleton;
+import org.apache.olingo.commons.api.edm.provider.CsdlAction;
+import org.apache.olingo.commons.api.edm.provider.CsdlActionImport;
+import org.apache.olingo.commons.api.edm.provider.CsdlComplexType;
+import org.apache.olingo.commons.api.edm.provider.CsdlEdmProvider;
+import org.apache.olingo.commons.api.edm.provider.CsdlEntitySet;
+import org.apache.olingo.commons.api.edm.provider.CsdlEntityType;
+import org.apache.olingo.commons.api.edm.provider.CsdlEnumType;
+import org.apache.olingo.commons.api.edm.provider.CsdlFunction;
+import org.apache.olingo.commons.api.edm.provider.CsdlFunctionImport;
+import org.apache.olingo.commons.api.edm.provider.CsdlNavigationPropertyBinding;
+import org.apache.olingo.commons.api.edm.provider.CsdlParameter;
+import org.apache.olingo.commons.api.edm.provider.CsdlProperty;
+import org.apache.olingo.commons.api.edm.provider.CsdlSingleton;
 import org.junit.Before;
 import org.junit.Test;
 
@@ -49,7 +49,7 @@ public class MetadataParserTest {
   final String NS = "Microsoft.OData.SampleService.Models.TripPin";
   final FullQualifiedName NSF = new FullQualifiedName(NS);
 
-  EdmProvider provider = null;
+  CsdlEdmProvider provider = null;
 
   @Before
   public void setUp() throws Exception {
@@ -60,7 +60,7 @@ public class MetadataParserTest {
   @Test
   public void testAction() throws ODataException {
     // test action
-    List<Action> actions = provider.getActions(new FullQualifiedName(NS, "ResetDataSource"));
+    List<CsdlAction> actions = provider.getActions(new FullQualifiedName(NS, "ResetDataSource"));
     assertNotNull(actions);
     assertEquals(1, actions.size());
   }
@@ -68,7 +68,7 @@ public class MetadataParserTest {
   @Test
   public void testFunction() throws ODataException {
     // test function
-    List<Function> functions = provider
+    List<CsdlFunction> functions = provider
         .getFunctions(new FullQualifiedName(NS, "GetFavoriteAirline"));
     assertNotNull(functions);
     assertEquals(1, functions.size());
@@ -79,7 +79,7 @@ public class MetadataParserTest {
         "person/Trips/PlanItems/Microsoft.OData.SampleService.Models.TripPin.Flight/Airline",
         functions.get(0).getEntitySetPath());
 
-    List<Parameter> parameters = functions.get(0).getParameters();
+    List<CsdlParameter> parameters = functions.get(0).getParameters();
     assertNotNull(parameters);
     assertEquals(1, parameters.size());
     assertEquals("person", parameters.get(0).getName());
@@ -95,7 +95,7 @@ public class MetadataParserTest {
   @Test
   public void testEnumType() throws ODataException {
     // test enum type
-    EnumType enumType = provider.getEnumType(new FullQualifiedName(NS, "PersonGender"));
+    CsdlEnumType enumType = provider.getEnumType(new FullQualifiedName(NS, "PersonGender"));
     assertNotNull(enumType);
     assertEquals("Male", enumType.getMembers().get(0).getName());
     assertEquals("Female", enumType.getMembers().get(1).getName());
@@ -108,7 +108,7 @@ public class MetadataParserTest {
   @Test
   public void testEntityType() throws ODataException {
     // test Entity Type
-    EntityType et = provider.getEntityType(new FullQualifiedName(NS, "Photo"));
+    CsdlEntityType et = provider.getEntityType(new FullQualifiedName(NS, "Photo"));
     assertNotNull(et);
     assertNotNull(et.getKey());
     assertEquals("Id", et.getKey().get(0).getName());
@@ -122,10 +122,10 @@ public class MetadataParserTest {
   @Test
   public void testComplexType() throws ODataException {
     // Test Complex Type
-    ComplexType ct = provider.getComplexType(new FullQualifiedName(NS, "City"));
+    CsdlComplexType ct = provider.getComplexType(new FullQualifiedName(NS, "City"));
     assertNotNull(ct);
     assertEquals(3, ct.getProperties().size());
-    Property p = ct.getProperties().get(0);
+    CsdlProperty p = ct.getProperties().get(0);
     assertEquals("CountryRegion", p.getName());
     assertEquals("Edm.String", p.getType());
     assertEquals(false, p.isNullable());
@@ -139,11 +139,11 @@ public class MetadataParserTest {
 
   @Test
   public void testEntitySet() throws Exception {
-    EntitySet es = provider.getEntitySet(NSF, "People");
+    CsdlEntitySet es = provider.getEntitySet(NSF, "People");
     assertNotNull(es);
     assertEquals("Microsoft.OData.SampleService.Models.TripPin.Person",es.getType());
 
-    List<NavigationPropertyBinding> bindings = es.getNavigationPropertyBindings();
+    List<CsdlNavigationPropertyBinding> bindings = es.getNavigationPropertyBindings();
     assertNotNull(bindings);
     assertEquals(6, bindings.size());
     assertEquals("Microsoft.OData.SampleService.Models.TripPin.Flight/From", bindings.get(2)
@@ -153,7 +153,7 @@ public class MetadataParserTest {
 
   @Test
   public void testFunctionImport() throws Exception {
-    FunctionImport fi = provider.getFunctionImport(NSF, "GetNearestAirport");
+    CsdlFunctionImport fi = provider.getFunctionImport(NSF, "GetNearestAirport");
     assertNotNull(fi);
     assertEquals("Microsoft.OData.SampleService.Models.TripPin.GetNearestAirport", fi.getFunction());
     assertEquals("Airports", fi.getEntitySet());
@@ -162,7 +162,7 @@ public class MetadataParserTest {
 
   @Test
   public void testActionImport() throws Exception {
-    ActionImport ai = provider.getActionImport(NSF, "ResetDataSource");
+    CsdlActionImport ai = provider.getActionImport(NSF, "ResetDataSource");
     assertNotNull(ai);
     assertEquals("Microsoft.OData.SampleService.Models.TripPin.ResetDataSource", ai.getAction());
     assertNull(ai.getEntitySet());
@@ -170,12 +170,12 @@ public class MetadataParserTest {
 
   @Test
   public void testSingleton() throws Exception {
-    Singleton single = this.provider.getSingleton(NSF, "Me");
+    CsdlSingleton single = this.provider.getSingleton(NSF, "Me");
     assertNotNull(single);
 
     assertEquals("Microsoft.OData.SampleService.Models.TripPin.Person",single.getType());
 
-    List<NavigationPropertyBinding> bindings = single.getNavigationPropertyBindings();
+    List<CsdlNavigationPropertyBinding> bindings = single.getNavigationPropertyBindings();
     assertNotNull(bindings);
     assertEquals(6, bindings.size());
     assertEquals("Microsoft.OData.SampleService.Models.TripPin.Flight/From", bindings.get(2).getPath());

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/2318953c/lib/server-core-ext/src/test/java/org/apache/olingo/server/core/ServiceDispatcherTest.java
----------------------------------------------------------------------
diff --git a/lib/server-core-ext/src/test/java/org/apache/olingo/server/core/ServiceDispatcherTest.java b/lib/server-core-ext/src/test/java/org/apache/olingo/server/core/ServiceDispatcherTest.java
index 6156c1b..62f91fb 100644
--- a/lib/server-core-ext/src/test/java/org/apache/olingo/server/core/ServiceDispatcherTest.java
+++ b/lib/server-core-ext/src/test/java/org/apache/olingo/server/core/ServiceDispatcherTest.java
@@ -41,7 +41,7 @@ import org.apache.http.client.methods.HttpPost;
 import org.apache.http.client.methods.HttpPut;
 import org.apache.http.entity.StringEntity;
 import org.apache.http.impl.client.DefaultHttpClient;
-import org.apache.olingo.commons.api.edm.provider.EdmProvider;
+import org.apache.olingo.commons.api.edm.provider.CsdlEdmProvider;
 import org.apache.olingo.commons.api.http.HttpMethod;
 import org.apache.olingo.server.api.OData;
 import org.apache.olingo.server.api.ODataHttpHandler;
@@ -70,9 +70,9 @@ public class ServiceDispatcherTest {
 
   public class SampleODataServlet extends HttpServlet {
     private final ServiceHandler handler; // must be stateless
-    private final EdmProvider provider; // must be stateless
+    private final CsdlEdmProvider provider; // must be stateless
 
-    public SampleODataServlet(ServiceHandler handler, EdmProvider provider) {
+    public SampleODataServlet(ServiceHandler handler, CsdlEdmProvider provider) {
       this.handler = handler;
       this.provider = provider;
     }
@@ -92,7 +92,7 @@ public class ServiceDispatcherTest {
   
   public void beforeTest(ServiceHandler serviceHandler) throws Exception {
     MetadataParser parser = new MetadataParser();
-    EdmProvider edmProvider = parser.buildEdmProvider(new FileReader(
+    CsdlEdmProvider edmProvider = parser.buildEdmProvider(new FileReader(
         "src/test/resources/trippin.xml"));
 
     File baseDir = new File(System.getProperty("java.io.tmpdir"));

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/2318953c/lib/server-core-ext/src/test/java/org/apache/olingo/server/example/TripPinServlet.java
----------------------------------------------------------------------
diff --git a/lib/server-core-ext/src/test/java/org/apache/olingo/server/example/TripPinServlet.java b/lib/server-core-ext/src/test/java/org/apache/olingo/server/example/TripPinServlet.java
index 94295cd..fbc74ef 100644
--- a/lib/server-core-ext/src/test/java/org/apache/olingo/server/example/TripPinServlet.java
+++ b/lib/server-core-ext/src/test/java/org/apache/olingo/server/example/TripPinServlet.java
@@ -29,7 +29,7 @@ import javax.servlet.http.HttpServletRequest;
 import javax.servlet.http.HttpServletResponse;
 import javax.xml.stream.XMLStreamException;
 
-import org.apache.olingo.commons.api.edm.provider.EdmProvider;
+import org.apache.olingo.commons.api.edm.provider.CsdlEdmProvider;
 import org.apache.olingo.server.api.OData;
 import org.apache.olingo.server.api.ODataHttpHandler;
 import org.apache.olingo.server.api.ServiceMetadata;
@@ -50,7 +50,7 @@ public class TripPinServlet extends HttpServlet {
   public void service(HttpServletRequest request, HttpServletResponse response) throws IOException {
     OData odata = OData4Impl.newInstance();
     MetadataParser parser = new MetadataParser();
-    EdmProvider edmProvider = null;
+    CsdlEdmProvider edmProvider = null;
 
     try {
       edmProvider = parser.buildEdmProvider(new FileReader("src/test/resources/trippin.xml"));

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/2318953c/lib/server-core/src/main/java/org/apache/olingo/server/core/ODataImpl.java
----------------------------------------------------------------------
diff --git a/lib/server-core/src/main/java/org/apache/olingo/server/core/ODataImpl.java b/lib/server-core/src/main/java/org/apache/olingo/server/core/ODataImpl.java
index 80bed2f..29931a2 100644
--- a/lib/server-core/src/main/java/org/apache/olingo/server/core/ODataImpl.java
+++ b/lib/server-core/src/main/java/org/apache/olingo/server/core/ODataImpl.java
@@ -22,7 +22,7 @@ import java.util.List;
 
 import org.apache.olingo.commons.api.edm.EdmPrimitiveType;
 import org.apache.olingo.commons.api.edm.EdmPrimitiveTypeKind;
-import org.apache.olingo.commons.api.edm.provider.EdmProvider;
+import org.apache.olingo.commons.api.edm.provider.CsdlEdmProvider;
 import org.apache.olingo.commons.api.format.ODataFormat;
 import org.apache.olingo.commons.core.edm.primitivetype.EdmPrimitiveTypeFactory;
 import org.apache.olingo.server.api.OData;
@@ -76,7 +76,7 @@ public class ODataImpl extends OData {
   }
 
   @Override
-  public ServiceMetadata createServiceMetadata(EdmProvider edmProvider, List<EdmxReference> references) {
+  public ServiceMetadata createServiceMetadata(CsdlEdmProvider edmProvider, List<EdmxReference> references) {
     return new ServiceMetadataImpl(edmProvider, references);
   }
 

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/2318953c/lib/server-core/src/main/java/org/apache/olingo/server/core/ServiceMetadataImpl.java
----------------------------------------------------------------------
diff --git a/lib/server-core/src/main/java/org/apache/olingo/server/core/ServiceMetadataImpl.java b/lib/server-core/src/main/java/org/apache/olingo/server/core/ServiceMetadataImpl.java
index ad8cbc4..86d6e5a 100644
--- a/lib/server-core/src/main/java/org/apache/olingo/server/core/ServiceMetadataImpl.java
+++ b/lib/server-core/src/main/java/org/apache/olingo/server/core/ServiceMetadataImpl.java
@@ -20,7 +20,7 @@ package org.apache.olingo.server.core;
 
 import org.apache.olingo.commons.api.edm.Edm;
 import org.apache.olingo.commons.api.edm.constants.ODataServiceVersion;
-import org.apache.olingo.commons.api.edm.provider.EdmProvider;
+import org.apache.olingo.commons.api.edm.provider.CsdlEdmProvider;
 import org.apache.olingo.commons.core.edm.EdmProviderImpl;
 import org.apache.olingo.server.api.edmx.EdmxReference;
 import org.apache.olingo.server.api.ServiceMetadata;
@@ -36,7 +36,7 @@ public class ServiceMetadataImpl implements ServiceMetadata {
   private final EdmProviderImpl edm;
   private final List<EdmxReference> references = new ArrayList<EdmxReference>();
 
-  public ServiceMetadataImpl(EdmProvider edmProvider, List<EdmxReference> references) {
+  public ServiceMetadataImpl(CsdlEdmProvider edmProvider, List<EdmxReference> references) {
     this.edm = new EdmProviderImpl(edmProvider);
     this.references.addAll(references);
   }

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/2318953c/lib/server-core/src/test/java/org/apache/olingo/server/core/edm/provider/AbstractEdmNamedTest.java
----------------------------------------------------------------------
diff --git a/lib/server-core/src/test/java/org/apache/olingo/server/core/edm/provider/AbstractEdmNamedTest.java b/lib/server-core/src/test/java/org/apache/olingo/server/core/edm/provider/AbstractEdmNamedTest.java
index efc75b7..14919b7 100644
--- a/lib/server-core/src/test/java/org/apache/olingo/server/core/edm/provider/AbstractEdmNamedTest.java
+++ b/lib/server-core/src/test/java/org/apache/olingo/server/core/edm/provider/AbstractEdmNamedTest.java
@@ -20,8 +20,8 @@ package org.apache.olingo.server.core.edm.provider;
 
 import org.apache.olingo.commons.api.edm.EdmAnnotatable;
 import org.apache.olingo.commons.api.edm.EdmNamed;
-import org.apache.olingo.commons.api.edm.provider.Annotatable;
-import org.apache.olingo.commons.api.edm.provider.Annotation;
+import org.apache.olingo.commons.api.edm.provider.CsdlAnnotatable;
+import org.apache.olingo.commons.api.edm.provider.CsdlAnnotation;
 import org.apache.olingo.commons.core.edm.AbstractEdmNamed;
 import org.junit.Test;
 
@@ -48,10 +48,10 @@ public class AbstractEdmNamedTest {
     }
   }
 
-  private class AnnoTester implements Annotatable {
+  private class AnnoTester implements CsdlAnnotatable {
     @Override
-    public List<Annotation> getAnnotations() {
-      Annotation annotation = new Annotation();
+    public List<CsdlAnnotation> getAnnotations() {
+      CsdlAnnotation annotation = new CsdlAnnotation();
       annotation.setTerm("NS.SimpleTerm");
       return Arrays.asList(annotation);
     }

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/2318953c/lib/server-core/src/test/java/org/apache/olingo/server/core/edm/provider/EdmActionImplTest.java
----------------------------------------------------------------------
diff --git a/lib/server-core/src/test/java/org/apache/olingo/server/core/edm/provider/EdmActionImplTest.java b/lib/server-core/src/test/java/org/apache/olingo/server/core/edm/provider/EdmActionImplTest.java
index a33fc6e..86bd9f4 100644
--- a/lib/server-core/src/test/java/org/apache/olingo/server/core/edm/provider/EdmActionImplTest.java
+++ b/lib/server-core/src/test/java/org/apache/olingo/server/core/edm/provider/EdmActionImplTest.java
@@ -37,9 +37,9 @@ import org.apache.olingo.commons.api.edm.EdmParameter;
 import org.apache.olingo.commons.api.edm.EdmSingleton;
 import org.apache.olingo.commons.api.edm.FullQualifiedName;
 import org.apache.olingo.commons.api.edm.constants.EdmTypeKind;
-import org.apache.olingo.commons.api.edm.provider.Action;
-import org.apache.olingo.commons.api.edm.provider.Parameter;
-import org.apache.olingo.commons.api.edm.provider.ReturnType;
+import org.apache.olingo.commons.api.edm.provider.CsdlAction;
+import org.apache.olingo.commons.api.edm.provider.CsdlParameter;
+import org.apache.olingo.commons.api.edm.provider.CsdlReturnType;
 import org.apache.olingo.commons.core.edm.EdmActionImpl;
 import org.apache.olingo.commons.core.edm.EdmProviderImpl;
 import org.junit.Before;
@@ -54,21 +54,21 @@ public class EdmActionImplTest {
   @Before
   public void setup() {
     EdmProviderImpl provider = mock(EdmProviderImpl.class);
-    List<Parameter> parameters = new ArrayList<Parameter>();
-    parameters.add(new Parameter().setName("Id").setType(new FullQualifiedName("namespace", "name")));
+    List<CsdlParameter> parameters = new ArrayList<CsdlParameter>();
+    parameters.add(new CsdlParameter().setName("Id").setType(new FullQualifiedName("namespace", "name")));
     FullQualifiedName action1Name = new FullQualifiedName("namespace", "action1");
-    Action action1 = new Action().setName("action1").setBound(true).setParameters(parameters);
+    CsdlAction action1 = new CsdlAction().setName("action1").setBound(true).setParameters(parameters);
     actionImpl1 = new EdmActionImpl(provider, action1Name, action1);
 
     FullQualifiedName action2Name = new FullQualifiedName("namespace", "action2");
     FullQualifiedName returnTypeName = new FullQualifiedName("Edm", "String");
-    ReturnType returnType = new ReturnType().setType(returnTypeName);
-    Action action2 = new Action().setName("action2").setParameters(parameters).setReturnType(returnType);
+    CsdlReturnType returnType = new CsdlReturnType().setType(returnTypeName);
+    CsdlAction action2 = new CsdlAction().setName("action2").setParameters(parameters).setReturnType(returnType);
     actionImpl2 = new EdmActionImpl(provider, action2Name, action2);
 
     FullQualifiedName action3Name = new FullQualifiedName("namespace", "action3");
-    Action action3 =
-        new Action().setName("action3").setParameters(parameters).setReturnType(returnType).setEntitySetPath(
+    CsdlAction action3 =
+        new CsdlAction().setName("action3").setParameters(parameters).setReturnType(returnType).setEntitySetPath(
             "path/Id");
     actionImpl3 = new EdmActionImpl(provider, action3Name, action3);
   }

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/2318953c/lib/server-core/src/test/java/org/apache/olingo/server/core/edm/provider/EdmActionImportImplTest.java
----------------------------------------------------------------------
diff --git a/lib/server-core/src/test/java/org/apache/olingo/server/core/edm/provider/EdmActionImportImplTest.java b/lib/server-core/src/test/java/org/apache/olingo/server/core/edm/provider/EdmActionImportImplTest.java
index a5d098d..02824f4 100644
--- a/lib/server-core/src/test/java/org/apache/olingo/server/core/edm/provider/EdmActionImportImplTest.java
+++ b/lib/server-core/src/test/java/org/apache/olingo/server/core/edm/provider/EdmActionImportImplTest.java
@@ -30,7 +30,7 @@ import org.apache.olingo.commons.api.edm.EdmEntityContainer;
 import org.apache.olingo.commons.api.edm.EdmEntitySet;
 import org.apache.olingo.commons.api.edm.EdmException;
 import org.apache.olingo.commons.api.edm.FullQualifiedName;
-import org.apache.olingo.commons.api.edm.provider.ActionImport;
+import org.apache.olingo.commons.api.edm.provider.CsdlActionImport;
 import org.apache.olingo.commons.core.edm.EdmActionImportImpl;
 import org.apache.olingo.commons.core.edm.EdmProviderImpl;
 import org.junit.Before;
@@ -51,8 +51,8 @@ public class EdmActionImportImplTest {
     FullQualifiedName actionFqn = new FullQualifiedName("namespace", "actionName");
     FullQualifiedName entityContainerFqn = new FullQualifiedName("namespace", "containerName");
     String target = entityContainerFqn.getFullQualifiedNameAsString() + "/entitySetName";
-    ActionImport providerActionImport =
-        new ActionImport().setName("actionImportName").setAction(actionFqn).setEntitySet(target);
+    CsdlActionImport providerActionImport =
+        new CsdlActionImport().setName("actionImportName").setAction(actionFqn).setEntitySet(target);
 
     EdmProviderImpl edm = mock(EdmProviderImpl.class);
     container = mock(EdmEntityContainer.class);
@@ -85,7 +85,7 @@ public class EdmActionImportImplTest {
   @Test(expected = EdmException.class)
   public void getReturnedEntitySetNonExistingContainer() {
     String target = "alias.nonexisting/Es";
-    ActionImport providerActionImport = new ActionImport().setName("actionImportName").setEntitySet(target);
+    CsdlActionImport providerActionImport = new CsdlActionImport().setName("actionImportName").setEntitySet(target);
     EdmActionImport actionImport =
         new EdmActionImportImpl(mock(EdmProviderImpl.class), container, providerActionImport);
     actionImport.getReturnedEntitySet();
@@ -94,7 +94,7 @@ public class EdmActionImportImplTest {
   @Test(expected = EdmException.class)
   public void getReturnedEntitySetNonExistingEntitySet() {
     String target = "nonExisting";
-    ActionImport providerActionImport = new ActionImport().setName("actionImportName").setEntitySet(target);
+    CsdlActionImport providerActionImport = new CsdlActionImport().setName("actionImportName").setEntitySet(target);
     EdmProviderImpl edm = mock(EdmProviderImpl.class);
     when(edm.getEntityContainer(null)).thenReturn(container);
     EdmActionImport actionImport = new EdmActionImportImpl(edm, container, providerActionImport);

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/2318953c/lib/server-core/src/test/java/org/apache/olingo/server/core/edm/provider/EdmComplexTypeImplTest.java
----------------------------------------------------------------------
diff --git a/lib/server-core/src/test/java/org/apache/olingo/server/core/edm/provider/EdmComplexTypeImplTest.java b/lib/server-core/src/test/java/org/apache/olingo/server/core/edm/provider/EdmComplexTypeImplTest.java
index 87a7723..71b8d2b 100644
--- a/lib/server-core/src/test/java/org/apache/olingo/server/core/edm/provider/EdmComplexTypeImplTest.java
+++ b/lib/server-core/src/test/java/org/apache/olingo/server/core/edm/provider/EdmComplexTypeImplTest.java
@@ -23,10 +23,10 @@ import org.apache.olingo.commons.api.edm.EdmElement;
 import org.apache.olingo.commons.api.edm.EdmException;
 import org.apache.olingo.commons.api.edm.EdmPrimitiveTypeKind;
 import org.apache.olingo.commons.api.edm.FullQualifiedName;
-import org.apache.olingo.commons.api.edm.provider.ComplexType;
-import org.apache.olingo.commons.api.edm.provider.EdmProvider;
-import org.apache.olingo.commons.api.edm.provider.NavigationProperty;
-import org.apache.olingo.commons.api.edm.provider.Property;
+import org.apache.olingo.commons.api.edm.provider.CsdlComplexType;
+import org.apache.olingo.commons.api.edm.provider.CsdlEdmProvider;
+import org.apache.olingo.commons.api.edm.provider.CsdlNavigationProperty;
+import org.apache.olingo.commons.api.edm.provider.CsdlProperty;
 import org.apache.olingo.commons.core.edm.EdmComplexTypeImpl;
 import org.apache.olingo.commons.core.edm.EdmProviderImpl;
 import org.junit.Before;
@@ -51,16 +51,16 @@ public class EdmComplexTypeImplTest {
 
   @Before
   public void setupTypes() throws Exception {
-    EdmProvider provider = mock(EdmProvider.class);
+    CsdlEdmProvider provider = mock(CsdlEdmProvider.class);
     EdmProviderImpl edm = new EdmProviderImpl(provider);
 
     FullQualifiedName baseName = new FullQualifiedName("namespace", "BaseTypeName");
-    ComplexType baseComplexType = new ComplexType();
-    List<Property> baseProperties = new ArrayList<Property>();
-    baseProperties.add(new Property().setName("prop1").setType(
+    CsdlComplexType baseComplexType = new CsdlComplexType();
+    List<CsdlProperty> baseProperties = new ArrayList<CsdlProperty>();
+    baseProperties.add(new CsdlProperty().setName("prop1").setType(
         EdmPrimitiveTypeKind.String.getFullQualifiedName()));
-    List<NavigationProperty> baseNavigationProperties = new ArrayList<NavigationProperty>();
-    baseNavigationProperties.add(new NavigationProperty().setName("nav1"));
+    List<CsdlNavigationProperty> baseNavigationProperties = new ArrayList<CsdlNavigationProperty>();
+    baseNavigationProperties.add(new CsdlNavigationProperty().setName("nav1"));
     baseComplexType.setName("BaseTypeName").setAbstract(false).setOpenType(false).setProperties(baseProperties)
         .setNavigationProperties(baseNavigationProperties);
     when(provider.getComplexType(baseName)).thenReturn(baseComplexType);
@@ -68,11 +68,11 @@ public class EdmComplexTypeImplTest {
     baseType = new EdmComplexTypeImpl(edm, baseName, baseComplexType);
 
     FullQualifiedName name = new FullQualifiedName("namespace", "typeName");
-    ComplexType complexType = new ComplexType().setBaseType(baseName);
-    List<Property> properties = new ArrayList<Property>();
-    properties.add(new Property().setName("prop2").setType(EdmPrimitiveTypeKind.String.getFullQualifiedName()));
-    List<NavigationProperty> navigationProperties = new ArrayList<NavigationProperty>();
-    navigationProperties.add(new NavigationProperty().setName("nav2"));
+    CsdlComplexType complexType = new CsdlComplexType().setBaseType(baseName);
+    List<CsdlProperty> properties = new ArrayList<CsdlProperty>();
+    properties.add(new CsdlProperty().setName("prop2").setType(EdmPrimitiveTypeKind.String.getFullQualifiedName()));
+    List<CsdlNavigationProperty> navigationProperties = new ArrayList<CsdlNavigationProperty>();
+    navigationProperties.add(new CsdlNavigationProperty().setName("nav2"));
     complexType.setName("BaseTypeName").setAbstract(false).setOpenType(false).setProperties(properties)
         .setNavigationProperties(navigationProperties);
     when(provider.getComplexType(name)).thenReturn(complexType);
@@ -83,7 +83,7 @@ public class EdmComplexTypeImplTest {
   @Test
   public void noPropertiesAndNoNavPropertiesMustNotResultInException() {
     EdmProviderImpl edm = mock(EdmProviderImpl.class);
-    ComplexType complexType = new ComplexType().setName("n");
+    CsdlComplexType complexType = new CsdlComplexType().setName("n");
     new EdmComplexTypeImpl(edm, new FullQualifiedName("n", "n"), complexType);
   }
 
@@ -155,11 +155,11 @@ public class EdmComplexTypeImplTest {
 
   @Test(expected = EdmException.class)
   public void nonExistingBaseType() throws Exception {
-    EdmProvider provider = mock(EdmProvider.class);
+    CsdlEdmProvider provider = mock(CsdlEdmProvider.class);
     EdmProviderImpl edm = new EdmProviderImpl(provider);
     FullQualifiedName typeWithNonexistingBaseTypeName = new FullQualifiedName("namespace", "typeName");
-    ComplexType complexTypeForNonexistingBaseType =
-        new ComplexType().setBaseType(new FullQualifiedName("wrong", "wrong"));
+    CsdlComplexType complexTypeForNonexistingBaseType =
+        new CsdlComplexType().setBaseType(new FullQualifiedName("wrong", "wrong"));
     complexTypeForNonexistingBaseType.setName("typeName");
     when(provider.getComplexType(typeWithNonexistingBaseTypeName)).thenReturn(complexTypeForNonexistingBaseType);
     EdmComplexTypeImpl instance =

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/2318953c/lib/server-core/src/test/java/org/apache/olingo/server/core/edm/provider/EdmEntityContainerImplTest.java
----------------------------------------------------------------------
diff --git a/lib/server-core/src/test/java/org/apache/olingo/server/core/edm/provider/EdmEntityContainerImplTest.java b/lib/server-core/src/test/java/org/apache/olingo/server/core/edm/provider/EdmEntityContainerImplTest.java
index 52713a3..471972f 100644
--- a/lib/server-core/src/test/java/org/apache/olingo/server/core/edm/provider/EdmEntityContainerImplTest.java
+++ b/lib/server-core/src/test/java/org/apache/olingo/server/core/edm/provider/EdmEntityContainerImplTest.java
@@ -37,14 +37,14 @@ import org.apache.olingo.commons.api.edm.EdmException;
 import org.apache.olingo.commons.api.edm.EdmFunctionImport;
 import org.apache.olingo.commons.api.edm.EdmSingleton;
 import org.apache.olingo.commons.api.edm.FullQualifiedName;
-import org.apache.olingo.commons.api.edm.provider.AbstractEdmProvider;
-import org.apache.olingo.commons.api.edm.provider.ActionImport;
-import org.apache.olingo.commons.api.edm.provider.EdmProvider;
-import org.apache.olingo.commons.api.edm.provider.EntityContainer;
-import org.apache.olingo.commons.api.edm.provider.EntityContainerInfo;
-import org.apache.olingo.commons.api.edm.provider.EntitySet;
-import org.apache.olingo.commons.api.edm.provider.FunctionImport;
-import org.apache.olingo.commons.api.edm.provider.Singleton;
+import org.apache.olingo.commons.api.edm.provider.CsdlAbstractEdmProvider;
+import org.apache.olingo.commons.api.edm.provider.CsdlActionImport;
+import org.apache.olingo.commons.api.edm.provider.CsdlEdmProvider;
+import org.apache.olingo.commons.api.edm.provider.CsdlEntityContainer;
+import org.apache.olingo.commons.api.edm.provider.CsdlEntityContainerInfo;
+import org.apache.olingo.commons.api.edm.provider.CsdlEntitySet;
+import org.apache.olingo.commons.api.edm.provider.CsdlFunctionImport;
+import org.apache.olingo.commons.api.edm.provider.CsdlSingleton;
 import org.apache.olingo.commons.core.edm.EdmEntityContainerImpl;
 import org.apache.olingo.commons.core.edm.EdmProviderImpl;
 import org.junit.Before;
@@ -56,10 +56,10 @@ public class EdmEntityContainerImplTest {
 
   @Before
   public void setup() {
-    EdmProvider provider = new CustomProvider();
+    CsdlEdmProvider provider = new CustomProvider();
     EdmProviderImpl edm = new EdmProviderImpl(provider);
-    EntityContainerInfo entityContainerInfo =
-        new EntityContainerInfo().setContainerName(new FullQualifiedName("space", "name"));
+    CsdlEntityContainerInfo entityContainerInfo =
+        new CsdlEntityContainerInfo().setContainerName(new FullQualifiedName("space", "name"));
     container = new EdmEntityContainerImpl(edm, provider, entityContainerInfo);
   }
 
@@ -125,15 +125,15 @@ public class EdmEntityContainerImplTest {
 
   @Test
   public void checkEdmExceptionConversion() throws Exception {
-    EdmProvider provider = mock(EdmProvider.class);
+    CsdlEdmProvider provider = mock(CsdlEdmProvider.class);
     FullQualifiedName containerName = new FullQualifiedName("space", "name");
     when(provider.getEntitySet(containerName, null)).thenThrow(new ODataException("msg"));
     when(provider.getSingleton(containerName, null)).thenThrow(new ODataException("msg"));
     when(provider.getFunctionImport(containerName, null)).thenThrow(new ODataException("msg"));
     when(provider.getActionImport(containerName, null)).thenThrow(new ODataException("msg"));
     EdmProviderImpl edm = new EdmProviderImpl(provider);
-    EntityContainerInfo entityContainerInfo =
-        new EntityContainerInfo().setContainerName(containerName);
+    CsdlEntityContainerInfo entityContainerInfo =
+        new CsdlEntityContainerInfo().setContainerName(containerName);
     EdmEntityContainer container = new EdmEntityContainerImpl(edm, provider, entityContainerInfo);
     boolean thrown = false;
     try {
@@ -232,64 +232,65 @@ public class EdmEntityContainerImplTest {
     assertNull(container.getEntitySet(null));
   }
 
-  private class CustomProvider extends AbstractEdmProvider {
+  private class CustomProvider extends CsdlAbstractEdmProvider {
     @Override
-    public EntitySet getEntitySet(final FullQualifiedName entityContainer, final String entitySetName)
+    public CsdlEntitySet getEntitySet(final FullQualifiedName entityContainer, final String entitySetName)
         throws ODataException {
       if (entitySetName != null) {
-        return new EntitySet().setName("entitySetName");
+        return new CsdlEntitySet().setName("entitySetName");
       }
       return null;
     }
 
     @Override
-    public Singleton getSingleton(final FullQualifiedName entityContainer, final String singletonName)
+    public CsdlSingleton getSingleton(final FullQualifiedName entityContainer, final String singletonName)
         throws ODataException {
       if (singletonName != null) {
-        return new Singleton().setName("singletonName");
+        return new CsdlSingleton().setName("singletonName");
       }
       return null;
     }
 
     @Override
-    public ActionImport getActionImport(final FullQualifiedName entityContainer, final String actionImportName)
+    public CsdlActionImport getActionImport(final FullQualifiedName entityContainer, final String actionImportName)
         throws ODataException {
       if (actionImportName != null) {
-        return new ActionImport().setName("actionImportName");
+        return new CsdlActionImport().setName("actionImportName");
       }
       return null;
     }
 
     @Override
-    public FunctionImport getFunctionImport(final FullQualifiedName entityContainer, final String functionImportName)
+    public CsdlFunctionImport getFunctionImport(final FullQualifiedName entityContainer,
+                                                final String functionImportName)
         throws ODataException {
       if (functionImportName != null) {
-        return new FunctionImport().setName("functionImportName");
+        return new CsdlFunctionImport().setName("functionImportName");
       }
       return null;
     }
 
     @Override
-    public EntityContainer getEntityContainer() throws ODataException {
-      EntityContainer container = new EntityContainer();
-      List<EntitySet> entitySets = new ArrayList<EntitySet>();
-      entitySets.add(new EntitySet().setName("entitySetName"));
-      entitySets.add(new EntitySet().setName("entitySetName2"));
+    public CsdlEntityContainer getEntityContainer() throws ODataException {
+      CsdlEntityContainer container = new CsdlEntityContainer();
+      List<CsdlEntitySet> entitySets = new ArrayList<CsdlEntitySet>();
+      entitySets.add(new CsdlEntitySet().setName("entitySetName"));
+      entitySets.add(new CsdlEntitySet().setName("entitySetName2"));
       container.setEntitySets(entitySets);
 
-      List<Singleton> singletons = new ArrayList<Singleton>();
-      singletons.add(new Singleton().setName("singletonName"));
-      singletons.add(new Singleton().setName("singletonName2"));
+      List<CsdlSingleton> singletons = new ArrayList<CsdlSingleton>();
+      singletons.add(new CsdlSingleton().setName("singletonName"));
+      singletons.add(new CsdlSingleton().setName("singletonName2"));
       container.setSingletons(singletons);
 
-      List<ActionImport> actionImports = new ArrayList<ActionImport>();
-      actionImports.add(new ActionImport().setName("actionImportName"));
-      actionImports.add(new ActionImport().setName("actionImportName2"));
+      List<CsdlActionImport> actionImports = new ArrayList<CsdlActionImport>();
+      actionImports.add(new CsdlActionImport().setName("actionImportName"));
+      actionImports.add(new CsdlActionImport().setName("actionImportName2"));
       container.setActionImports(actionImports);
 
-      List<FunctionImport> functionImports = new ArrayList<FunctionImport>();
-      functionImports.add(new FunctionImport().setName("functionImportName"));
-      functionImports.add(new FunctionImport().setName("functionImportName2"));
+      List<CsdlFunctionImport> functionImports = new ArrayList<CsdlFunctionImport>();
+      functionImports.add(new CsdlFunctionImport().setName("functionImportName"));
+      functionImports.add(new CsdlFunctionImport().setName("functionImportName2"));
       container.setFunctionImports(functionImports);
 
       return container;

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/2318953c/lib/server-core/src/test/java/org/apache/olingo/server/core/edm/provider/EdmEntitySetImplTest.java
----------------------------------------------------------------------
diff --git a/lib/server-core/src/test/java/org/apache/olingo/server/core/edm/provider/EdmEntitySetImplTest.java b/lib/server-core/src/test/java/org/apache/olingo/server/core/edm/provider/EdmEntitySetImplTest.java
index 0071ddd..b80e59d 100644
--- a/lib/server-core/src/test/java/org/apache/olingo/server/core/edm/provider/EdmEntitySetImplTest.java
+++ b/lib/server-core/src/test/java/org/apache/olingo/server/core/edm/provider/EdmEntitySetImplTest.java
@@ -30,12 +30,12 @@ import org.apache.olingo.commons.api.edm.EdmEntityContainer;
 import org.apache.olingo.commons.api.edm.EdmEntitySet;
 import org.apache.olingo.commons.api.edm.EdmEntityType;
 import org.apache.olingo.commons.api.edm.FullQualifiedName;
-import org.apache.olingo.commons.api.edm.provider.EdmProvider;
-import org.apache.olingo.commons.api.edm.provider.EntityContainerInfo;
-import org.apache.olingo.commons.api.edm.provider.EntitySet;
-import org.apache.olingo.commons.api.edm.provider.EntityType;
-import org.apache.olingo.commons.api.edm.provider.NavigationPropertyBinding;
-import org.apache.olingo.commons.api.edm.provider.PropertyRef;
+import org.apache.olingo.commons.api.edm.provider.CsdlEdmProvider;
+import org.apache.olingo.commons.api.edm.provider.CsdlEntityContainerInfo;
+import org.apache.olingo.commons.api.edm.provider.CsdlEntitySet;
+import org.apache.olingo.commons.api.edm.provider.CsdlEntityType;
+import org.apache.olingo.commons.api.edm.provider.CsdlNavigationPropertyBinding;
+import org.apache.olingo.commons.api.edm.provider.CsdlPropertyRef;
 import org.apache.olingo.commons.core.edm.EdmEntityContainerImpl;
 import org.apache.olingo.commons.core.edm.EdmEntitySetImpl;
 import org.apache.olingo.commons.core.edm.EdmProviderImpl;
@@ -45,27 +45,27 @@ public class EdmEntitySetImplTest {
 
   @Test
   public void entitySet() throws Exception {
-    EdmProvider provider = mock(EdmProvider.class);
+    CsdlEdmProvider provider = mock(CsdlEdmProvider.class);
     EdmProviderImpl edm = new EdmProviderImpl(provider);
 
     final FullQualifiedName typeName = new FullQualifiedName("ns", "entityType");
-    final EntityType entityTypeProvider = new EntityType()
+    final CsdlEntityType entityTypeProvider = new CsdlEntityType()
         .setName(typeName.getName())
-        .setKey(Arrays.asList(new PropertyRef().setName("Id")));
+        .setKey(Arrays.asList(new CsdlPropertyRef().setName("Id")));
     when(provider.getEntityType(typeName)).thenReturn(entityTypeProvider);
 
     final FullQualifiedName containerName = new FullQualifiedName("ns", "container");
-    final EntityContainerInfo containerInfo = new EntityContainerInfo().setContainerName(containerName);
+    final CsdlEntityContainerInfo containerInfo = new CsdlEntityContainerInfo().setContainerName(containerName);
     when(provider.getEntityContainerInfo(containerName)).thenReturn(containerInfo);
     final EdmEntityContainer entityContainer = new EdmEntityContainerImpl(edm, provider, containerInfo);
 
     final String entitySetName = "entitySet";
-    final EntitySet entitySetProvider = new EntitySet()
+    final CsdlEntitySet entitySetProvider = new CsdlEntitySet()
         .setName(entitySetName)
         .setType(typeName)
         .setIncludeInServiceDocument(true)
         .setNavigationPropertyBindings(Arrays.asList(
-            new NavigationPropertyBinding().setPath("path")
+            new CsdlNavigationPropertyBinding().setPath("path")
                 .setTarget(containerName.getFullQualifiedNameAsString() + "/" + entitySetName)));
     when(provider.getEntitySet(containerName, entitySetName)).thenReturn(entitySetProvider);
 


[16/50] [abbrv] olingo-odata4 git commit: [OLINGO-564] Renamed 'edm.provider.*' classes

Posted by mi...@apache.org.
http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/2318953c/lib/commons-api/src/main/java/org/apache/olingo/commons/api/edm/provider/EntityContainerInfo.java
----------------------------------------------------------------------
diff --git a/lib/commons-api/src/main/java/org/apache/olingo/commons/api/edm/provider/EntityContainerInfo.java b/lib/commons-api/src/main/java/org/apache/olingo/commons/api/edm/provider/EntityContainerInfo.java
deleted file mode 100644
index 8de97de..0000000
--- a/lib/commons-api/src/main/java/org/apache/olingo/commons/api/edm/provider/EntityContainerInfo.java
+++ /dev/null
@@ -1,47 +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.commons.api.edm.provider;
-
-import org.apache.olingo.commons.api.edm.FullQualifiedName;
-
-public class EntityContainerInfo {
-
-  private FullQualifiedName containerName;
-
-  private FullQualifiedName extendsContainer;
-
-  public FullQualifiedName getContainerName() {
-    return containerName;
-  }
-
-  public EntityContainerInfo setContainerName(final FullQualifiedName containerName) {
-    this.containerName = containerName;
-    return this;
-  }
-
-  public FullQualifiedName getExtendsContainer() {
-    return extendsContainer;
-  }
-
-  public EntityContainerInfo setExtendsContainer(final FullQualifiedName extendsContainer) {
-    this.extendsContainer = extendsContainer;
-    return this;
-  }
-
-}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/2318953c/lib/commons-api/src/main/java/org/apache/olingo/commons/api/edm/provider/EntitySet.java
----------------------------------------------------------------------
diff --git a/lib/commons-api/src/main/java/org/apache/olingo/commons/api/edm/provider/EntitySet.java b/lib/commons-api/src/main/java/org/apache/olingo/commons/api/edm/provider/EntitySet.java
deleted file mode 100644
index 51d28db..0000000
--- a/lib/commons-api/src/main/java/org/apache/olingo/commons/api/edm/provider/EntitySet.java
+++ /dev/null
@@ -1,64 +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.commons.api.edm.provider;
-
-import java.util.List;
-
-import org.apache.olingo.commons.api.edm.FullQualifiedName;
-
-public class EntitySet extends BindingTarget {
-
-  private static final long serialVersionUID = 5291570018480936643L;
-  
-  //Default for EntitySets is true
-  private boolean includeInServiceDocument = true;
-
-  @Override
-  public EntitySet setName(final String name) {
-    this.name = name;
-    return this;
-  }
-
-  @Override
-  public EntitySet setNavigationPropertyBindings(final List<NavigationPropertyBinding> navigationPropertyBindings) {
-    this.navigationPropertyBindings = navigationPropertyBindings;
-    return this;
-  }
-
-  @Override
-  public EntitySet setType(final String type) {
-    this.type = new FullQualifiedName(type);
-    return this;
-  }
-  
-  @Override
-  public EntitySet setType(final FullQualifiedName type) {
-    this.type = type;
-    return this;
-  }
-
-  public boolean isIncludeInServiceDocument() {
-    return includeInServiceDocument;
-  }
-
-  public EntitySet setIncludeInServiceDocument(final boolean includeInServiceDocument) {
-    this.includeInServiceDocument = includeInServiceDocument;
-    return this;
-  }
-}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/2318953c/lib/commons-api/src/main/java/org/apache/olingo/commons/api/edm/provider/EntitySetPath.java
----------------------------------------------------------------------
diff --git a/lib/commons-api/src/main/java/org/apache/olingo/commons/api/edm/provider/EntitySetPath.java b/lib/commons-api/src/main/java/org/apache/olingo/commons/api/edm/provider/EntitySetPath.java
deleted file mode 100644
index 3bc8d45..0000000
--- a/lib/commons-api/src/main/java/org/apache/olingo/commons/api/edm/provider/EntitySetPath.java
+++ /dev/null
@@ -1,44 +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.commons.api.edm.provider;
-
-public class EntitySetPath {
-
-  private String bindingParameter;
-
-  private String path;
-
-  public String getBindingParameter() {
-    return bindingParameter;
-  }
-
-  public EntitySetPath setBindingParameter(final String bindingParameter) {
-    this.bindingParameter = bindingParameter;
-    return this;
-  }
-
-  public String getPath() {
-    return path;
-  }
-
-  public EntitySetPath setPath(final String path) {
-    this.path = path;
-    return this;
-  }
-}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/2318953c/lib/commons-api/src/main/java/org/apache/olingo/commons/api/edm/provider/EntityType.java
----------------------------------------------------------------------
diff --git a/lib/commons-api/src/main/java/org/apache/olingo/commons/api/edm/provider/EntityType.java b/lib/commons-api/src/main/java/org/apache/olingo/commons/api/edm/provider/EntityType.java
deleted file mode 100644
index 9994e9e..0000000
--- a/lib/commons-api/src/main/java/org/apache/olingo/commons/api/edm/provider/EntityType.java
+++ /dev/null
@@ -1,92 +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.commons.api.edm.provider;
-
-import java.util.List;
-
-import org.apache.olingo.commons.api.edm.FullQualifiedName;
-
-public class EntityType extends StructuralType {
-
-  private static final long serialVersionUID = -1564752618679704024L;
-
-  private List<PropertyRef> key;
-
-  private boolean hasStream = false;
-
-  public boolean hasStream() {
-    return hasStream;
-  }
-
-  public EntityType setHasStream(final boolean hasStream) {
-    this.hasStream = hasStream;
-    return this;
-  }
-
-  public List<PropertyRef> getKey() {
-    return key;
-  }
-
-  public EntityType setKey(final List<PropertyRef> key) {
-    this.key = key;
-    return this;
-  }
-  
-  @Override
-  public EntityType setName(final String name) {
-    this.name = name;
-    return this;
-  }
-
-  @Override
-  public EntityType setOpenType(final boolean isOpenType) {
-    this.isOpenType = isOpenType;
-    return this;
-  }
-
-  @Override
-  public EntityType setBaseType(final String baseType) {
-    this.baseType = new FullQualifiedName(baseType);
-    return this;
-  }
- 
-  @Override
-  public EntityType setBaseType(final FullQualifiedName baseType) {
-    this.baseType = baseType;
-    return this;
-  }
-
-  @Override
-  public EntityType setAbstract(final boolean isAbstract) {
-    this.isAbstract = isAbstract;
-    return this;
-  }
-
-  @Override
-  public EntityType setProperties(final List<Property> properties) {
-    this.properties = properties;
-    return this;
-  }
-
-  @Override
-  public EntityType setNavigationProperties(final List<NavigationProperty> navigationProperties) {
-    this.navigationProperties = navigationProperties;
-    return this;
-  }
-}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/2318953c/lib/commons-api/src/main/java/org/apache/olingo/commons/api/edm/provider/EnumMember.java
----------------------------------------------------------------------
diff --git a/lib/commons-api/src/main/java/org/apache/olingo/commons/api/edm/provider/EnumMember.java b/lib/commons-api/src/main/java/org/apache/olingo/commons/api/edm/provider/EnumMember.java
deleted file mode 100644
index 2787e3f..0000000
--- a/lib/commons-api/src/main/java/org/apache/olingo/commons/api/edm/provider/EnumMember.java
+++ /dev/null
@@ -1,57 +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.commons.api.edm.provider;
-
-import java.util.ArrayList;
-import java.util.List;
-
-public class EnumMember extends AbstractEdmItem implements Named, Annotatable{
-
-  private static final long serialVersionUID = 5618984420582832094L;
-
-  private String name;
-
-  private String value;
-
-  private final List<Annotation> annotations = new ArrayList<Annotation>();
-
-  public String getName() {
-    return name;
-  }
-
-  public EnumMember setName(final String name) {
-    this.name = name;
-    return this;
-  }
-
-  public String getValue() {
-    return value;
-  }
-
-  public EnumMember setValue(final String value) {
-    this.value = value;
-    return this;
-  }
-  
-  @Override
-  public List<Annotation> getAnnotations() {
-    return annotations;
-  }
-  
-}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/2318953c/lib/commons-api/src/main/java/org/apache/olingo/commons/api/edm/provider/EnumType.java
----------------------------------------------------------------------
diff --git a/lib/commons-api/src/main/java/org/apache/olingo/commons/api/edm/provider/EnumType.java b/lib/commons-api/src/main/java/org/apache/olingo/commons/api/edm/provider/EnumType.java
deleted file mode 100644
index badf0ba..0000000
--- a/lib/commons-api/src/main/java/org/apache/olingo/commons/api/edm/provider/EnumType.java
+++ /dev/null
@@ -1,113 +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.commons.api.edm.provider;
-
-import java.util.ArrayList;
-import java.util.List;
-
-import org.apache.olingo.commons.api.edm.FullQualifiedName;
-
-public class EnumType extends AbstractEdmItem implements Named, Annotatable {
-
-  private static final long serialVersionUID = -718032622783883403L;
-
-  private String name;
-
-  private boolean isFlags;
-
-  private FullQualifiedName underlyingType;
-
-  private List<EnumMember> members = new ArrayList<EnumMember>();
-  
-  private final List<Annotation> annotations = new ArrayList<Annotation>();
-
-  public String getName() {
-    return name;
-  }
-
-  public EnumType setName(final String name) {
-    this.name = name;
-    return this;
-  }
-
-  public boolean isFlags() {
-    return isFlags;
-  }
-
-  public EnumType setFlags(final boolean isFlags) {
-    this.isFlags = isFlags;
-    return this;
-  }
-
-  public String getUnderlyingType() {
-    if(underlyingType != null){
-      return underlyingType.getFullQualifiedNameAsString();
-    }
-    return null;
-  }
-
-  public EnumType setUnderlyingType(final String underlyingType) {
-    this.underlyingType = new FullQualifiedName(underlyingType);
-    return this;
-  }
-  
-  public EnumType setUnderlyingType(final FullQualifiedName underlyingType) {
-    this.underlyingType = underlyingType;
-    return this;
-  }
-
-
-  public List<EnumMember> getMembers() {
-    return members;
-  }
-
-  public EnumMember getMember(final String name) {
-    EnumMember result = null;
-    if (getMembers() != null) {
-      for (EnumMember member : getMembers()) {
-        if (name.equals(member.getName())) {
-          result = member;
-        }
-      }
-    }
-    return result;
-  }
-
-  public EnumMember getMember(final Integer value) {
-    EnumMember result = null;
-    if (getMembers() != null) {
-      for (EnumMember member : getMembers()) {
-        if (String.valueOf(value).equals(member.getValue())) {
-          result = member;
-        }
-      }
-    }
-    return result;
-  }
-
-  public EnumType setMembers(final List<EnumMember> members) {
-    this.members = members;
-    return this;
-  }
-  
-  @Override
-  public List<Annotation> getAnnotations() {
-    return annotations;
-  }
-}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/2318953c/lib/commons-api/src/main/java/org/apache/olingo/commons/api/edm/provider/Expression.java
----------------------------------------------------------------------
diff --git a/lib/commons-api/src/main/java/org/apache/olingo/commons/api/edm/provider/Expression.java b/lib/commons-api/src/main/java/org/apache/olingo/commons/api/edm/provider/Expression.java
deleted file mode 100644
index 1784dad..0000000
--- a/lib/commons-api/src/main/java/org/apache/olingo/commons/api/edm/provider/Expression.java
+++ /dev/null
@@ -1,23 +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.commons.api.edm.provider;
-
-public class Expression {
-//TODO: Expression implementation
-}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/2318953c/lib/commons-api/src/main/java/org/apache/olingo/commons/api/edm/provider/Function.java
----------------------------------------------------------------------
diff --git a/lib/commons-api/src/main/java/org/apache/olingo/commons/api/edm/provider/Function.java b/lib/commons-api/src/main/java/org/apache/olingo/commons/api/edm/provider/Function.java
deleted file mode 100644
index 04f0521..0000000
--- a/lib/commons-api/src/main/java/org/apache/olingo/commons/api/edm/provider/Function.java
+++ /dev/null
@@ -1,67 +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.commons.api.edm.provider;
-
-import java.util.List;
-
-public class Function extends Operation {
-
-  private static final long serialVersionUID = 673858921468578957L;
-  
-  private boolean isComposable = false;
-
-  public boolean isComposable() {
-    return isComposable;
-  }
-
-  public Function setComposable(final boolean isComposable) {
-    this.isComposable = isComposable;
-    return this;
-  }
-
-  @Override
-  public Function setName(final String name) {
-    this.name = name;
-    return this;
-  }
-
-  @Override
-  public Function setBound(final boolean isBound) {
-    this.isBound = isBound;
-    return this;
-  }
-
-  @Override
-  public Function setEntitySetPath(final String entitySetPath) {
-    this.entitySetPath = entitySetPath;
-    return this;
-  }
-
-  @Override
-  public Function setParameters(final List<Parameter> parameters) {
-    this.parameters = parameters;
-    return this;
-  }
-
-  @Override
-  public Function setReturnType(final ReturnType returnType) {
-    this.returnType = returnType;
-    return this;
-  }
-}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/2318953c/lib/commons-api/src/main/java/org/apache/olingo/commons/api/edm/provider/FunctionImport.java
----------------------------------------------------------------------
diff --git a/lib/commons-api/src/main/java/org/apache/olingo/commons/api/edm/provider/FunctionImport.java b/lib/commons-api/src/main/java/org/apache/olingo/commons/api/edm/provider/FunctionImport.java
deleted file mode 100644
index 84d6789..0000000
--- a/lib/commons-api/src/main/java/org/apache/olingo/commons/api/edm/provider/FunctionImport.java
+++ /dev/null
@@ -1,77 +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.commons.api.edm.provider;
-
-import org.apache.olingo.commons.api.edm.FullQualifiedName;
-
-
-public class FunctionImport extends OperationImport {
-
-  private static final long serialVersionUID = 8479762299534736719L;
-
-  private FullQualifiedName function;
-
-  //Default include in service document is false for function imports
-  private boolean includeInServiceDocument;
-
-  @Override
-  public String getName() {
-    return name;
-  }
-
-  @Override
-  public FunctionImport setName(final String name) {
-    this.name = name;
-    return this;
-  }
-
-  @Override
-  public FunctionImport setEntitySet(final String entitySet) {
-    this.entitySet = entitySet;
-    return this;
-  }
-
-  public String getFunction() {
-    return function.getFullQualifiedNameAsString();
-  }
-  
-  public FullQualifiedName getFunctionFQN() {
-    return function;
-  }
-
-
-  public FunctionImport setFunction(final FullQualifiedName function) {
-    this.function = function;
-    return this;
-  }
-  
-  public FunctionImport setFunction(final String function) {
-    this.function = new FullQualifiedName(function);
-    return this;
-  }
-
-  public boolean isIncludeInServiceDocument() {
-    return includeInServiceDocument;
-  }
-
-  public FunctionImport setIncludeInServiceDocument(final boolean includeInServiceDocument) {
-    this.includeInServiceDocument = includeInServiceDocument;
-    return this;
-  }
-}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/2318953c/lib/commons-api/src/main/java/org/apache/olingo/commons/api/edm/provider/Mapping.java
----------------------------------------------------------------------
diff --git a/lib/commons-api/src/main/java/org/apache/olingo/commons/api/edm/provider/Mapping.java b/lib/commons-api/src/main/java/org/apache/olingo/commons/api/edm/provider/Mapping.java
deleted file mode 100644
index 472a28e..0000000
--- a/lib/commons-api/src/main/java/org/apache/olingo/commons/api/edm/provider/Mapping.java
+++ /dev/null
@@ -1,50 +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.commons.api.edm.provider;
-
-import org.apache.olingo.commons.api.edm.EdmMapping;
-
-/**
- * Content of this class does not appear within the CSDL metadata document. This class is used to perform server
- * internal mapping for edm primitive types to java types.
- */
-public class Mapping implements EdmMapping {
-
-  private Class<?> mappedJavaClass;
-
-  /**
-   * Sets the class to be used during deserialization to transform an EDM primitive type into this java class. To see
-   * which classes work for which primitive type refer to {@link org.apache.olingo.commons.api.edm.EdmPrimitiveType}.
-   * @param mappedJavaClass class to which is mapped
-   * @return this for method chaining
-   */
-  public Mapping setMappedJavaClass(Class<?> mappedJavaClass) {
-    this.mappedJavaClass = mappedJavaClass;
-    return this;
-  }
-
-  /* (non-Javadoc)
-   * @see org.apache.olingo.commons.api.edm.EdmMapping#getMappedJavaClass()
-   */
-  @Override
-  public Class<?> getMappedJavaClass() {
-    return mappedJavaClass;
-  }
-
-}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/2318953c/lib/commons-api/src/main/java/org/apache/olingo/commons/api/edm/provider/Named.java
----------------------------------------------------------------------
diff --git a/lib/commons-api/src/main/java/org/apache/olingo/commons/api/edm/provider/Named.java b/lib/commons-api/src/main/java/org/apache/olingo/commons/api/edm/provider/Named.java
deleted file mode 100644
index 6b716a6..0000000
--- a/lib/commons-api/src/main/java/org/apache/olingo/commons/api/edm/provider/Named.java
+++ /dev/null
@@ -1,26 +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.commons.api.edm.provider;
-
-import java.io.Serializable;
-
-public interface Named extends Serializable {
-
-  String getName();
-}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/2318953c/lib/commons-api/src/main/java/org/apache/olingo/commons/api/edm/provider/NavigationProperty.java
----------------------------------------------------------------------
diff --git a/lib/commons-api/src/main/java/org/apache/olingo/commons/api/edm/provider/NavigationProperty.java b/lib/commons-api/src/main/java/org/apache/olingo/commons/api/edm/provider/NavigationProperty.java
deleted file mode 100644
index bfb74b0..0000000
--- a/lib/commons-api/src/main/java/org/apache/olingo/commons/api/edm/provider/NavigationProperty.java
+++ /dev/null
@@ -1,137 +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.commons.api.edm.provider;
-
-import java.util.ArrayList;
-import java.util.List;
-
-import org.apache.olingo.commons.api.edm.FullQualifiedName;
-
-public class NavigationProperty extends AbstractEdmItem implements Named, Annotatable{
-
-  private static final long serialVersionUID = -788021920718310799L;
-
-  private String name;
-
-  private FullQualifiedName type;
-
-  private boolean isCollection;
-
-  private String partner;
-
-  private boolean containsTarget = false;
-
-  private List<ReferentialConstraint> referentialConstraints = new ArrayList<ReferentialConstraint>();
-
-  // Facets
-  private boolean nullable = true;
-
-  private OnDelete onDelete;
-  
-  private List<Annotation> annotations = new ArrayList<Annotation>();
-
-  public String getName() {
-    return name;
-  }
-
-  public boolean isCollection() {
-    return isCollection;
-  }
-
-  public NavigationProperty setCollection(final boolean isCollection) {
-    this.isCollection = isCollection;
-    return this;
-  }
-
-  public NavigationProperty setName(final String name) {
-    this.name = name;
-    return this;
-  }
-
-  public FullQualifiedName getTypeFQN() {
-    return type;
-  }
-  
-  public String getType() {
-    if(type != null){
-      return type.getFullQualifiedNameAsString();
-    }
-    return null;
-  }
-
-  public NavigationProperty setType(final FullQualifiedName type) {
-    this.type = type;
-    return this;
-  }
-  
-  public NavigationProperty setType(final String type) {
-    this.type = new FullQualifiedName(type);
-    return this;
-  }
-
-  public String getPartner() {
-    return partner;
-  }
-
-  public NavigationProperty setPartner(final String partner) {
-    this.partner = partner;
-    return this;
-  }
-
-  public boolean isContainsTarget() {
-    return containsTarget;
-  }
-
-  public NavigationProperty setContainsTarget(final boolean containsTarget) {
-    this.containsTarget = containsTarget;
-    return this;
-  }
-
-  public List<ReferentialConstraint> getReferentialConstraints() {
-    return referentialConstraints;
-  }
-
-  public NavigationProperty setReferentialConstraints(final List<ReferentialConstraint> referentialConstraints) {
-    this.referentialConstraints = referentialConstraints;
-    return this;
-  }
-
-  public Boolean isNullable() {
-    return nullable;
-  }
-
-  public NavigationProperty setNullable(final Boolean nullable) {
-    this.nullable = nullable;
-    return this;
-  }
-
-  public OnDelete getOnDelete() {
-    return onDelete;
-  }
-
-  public NavigationProperty setOnDelete(final OnDelete onDelete) {
-    this.onDelete = onDelete;
-    return this;
-  }
-  
-  @Override
-  public List<Annotation> getAnnotations() {
-    return annotations;
-  }
-}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/2318953c/lib/commons-api/src/main/java/org/apache/olingo/commons/api/edm/provider/NavigationPropertyBinding.java
----------------------------------------------------------------------
diff --git a/lib/commons-api/src/main/java/org/apache/olingo/commons/api/edm/provider/NavigationPropertyBinding.java b/lib/commons-api/src/main/java/org/apache/olingo/commons/api/edm/provider/NavigationPropertyBinding.java
deleted file mode 100644
index 1ac7d6b..0000000
--- a/lib/commons-api/src/main/java/org/apache/olingo/commons/api/edm/provider/NavigationPropertyBinding.java
+++ /dev/null
@@ -1,47 +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.commons.api.edm.provider;
-
-
-public class NavigationPropertyBinding extends AbstractEdmItem {
-
-  private static final long serialVersionUID = 770380971233808502L;
-
-  private String path;
-
-  private String target;
-
-  public String getPath() {
-    return path;
-  }
-
-  public NavigationPropertyBinding setPath(final String path) {
-    this.path = path;
-    return this;
-  }
-
-  public String getTarget() {
-    return target;
-  }
-
-  public NavigationPropertyBinding setTarget(final String target) {
-    this.target = target;
-    return this;
-  }
-}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/2318953c/lib/commons-api/src/main/java/org/apache/olingo/commons/api/edm/provider/OnDelete.java
----------------------------------------------------------------------
diff --git a/lib/commons-api/src/main/java/org/apache/olingo/commons/api/edm/provider/OnDelete.java b/lib/commons-api/src/main/java/org/apache/olingo/commons/api/edm/provider/OnDelete.java
deleted file mode 100644
index e699dbb..0000000
--- a/lib/commons-api/src/main/java/org/apache/olingo/commons/api/edm/provider/OnDelete.java
+++ /dev/null
@@ -1,38 +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.commons.api.edm.provider;
-
-
-
-public class OnDelete extends AbstractEdmItem {
-
-  private static final long serialVersionUID = -7130889202653716784L;
-
-  private OnDeleteAction action = OnDeleteAction.None;
-
-  public OnDeleteAction getAction() {
-    return action;
-  }
-
-  public OnDelete setAction(final OnDeleteAction action) {
-    this.action = action;
-    return this;
-  }
-  
-}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/2318953c/lib/commons-api/src/main/java/org/apache/olingo/commons/api/edm/provider/OnDeleteAction.java
----------------------------------------------------------------------
diff --git a/lib/commons-api/src/main/java/org/apache/olingo/commons/api/edm/provider/OnDeleteAction.java b/lib/commons-api/src/main/java/org/apache/olingo/commons/api/edm/provider/OnDeleteAction.java
deleted file mode 100644
index a5bf50b..0000000
--- a/lib/commons-api/src/main/java/org/apache/olingo/commons/api/edm/provider/OnDeleteAction.java
+++ /dev/null
@@ -1,28 +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.commons.api.edm.provider;
-
-public enum OnDeleteAction {
-
-  Cascade,
-  None,
-  SetNull,
-  SetDefault
-
-}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/2318953c/lib/commons-api/src/main/java/org/apache/olingo/commons/api/edm/provider/Operation.java
----------------------------------------------------------------------
diff --git a/lib/commons-api/src/main/java/org/apache/olingo/commons/api/edm/provider/Operation.java b/lib/commons-api/src/main/java/org/apache/olingo/commons/api/edm/provider/Operation.java
deleted file mode 100644
index 882087c..0000000
--- a/lib/commons-api/src/main/java/org/apache/olingo/commons/api/edm/provider/Operation.java
+++ /dev/null
@@ -1,92 +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.commons.api.edm.provider;
-
-import java.util.ArrayList;
-import java.util.List;
-
-public abstract class Operation extends AbstractEdmItem implements Named, Annotatable{
-
-  private static final long serialVersionUID = -3842411084067064086L;
-
-  protected String name;
-
-  protected boolean isBound = false;
-
-  protected String entitySetPath;
-
-  protected List<Parameter> parameters = new ArrayList<Parameter>();
-
-  protected ReturnType returnType;
-  
-  protected final List<Annotation> annotations = new ArrayList<Annotation>();
-
-  public String getName() {
-    return name;
-  }
-
-  public Operation setName(final String name) {
-    this.name = name;
-    return this;
-  }
-
-  public boolean isBound() {
-    return isBound;
-  }
-
-  public Operation setBound(final boolean isBound) {
-    this.isBound = isBound;
-    return this;
-  }
-
-  public String getEntitySetPath() {
-    return entitySetPath;
-  }
-
-  public Operation setEntitySetPath(final String entitySetPath) {
-    this.entitySetPath = entitySetPath;
-    return this;
-  }
-
-  public List<Parameter> getParameters() {
-    return parameters;
-  }
-  
-  public Parameter getParameter(String name) {
-    return getOneByName(name, getParameters());
-  }
-
-  public Operation setParameters(final List<Parameter> parameters) {
-    this.parameters = parameters;
-    return this;
-  }
-
-  public ReturnType getReturnType() {
-    return returnType;
-  }
-
-  public Operation setReturnType(final ReturnType returnType) {
-    this.returnType = returnType;
-    return this;
-  }
-  
-  public List<Annotation> getAnnotations() {
-    return annotations;
-  }
-}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/2318953c/lib/commons-api/src/main/java/org/apache/olingo/commons/api/edm/provider/OperationImport.java
----------------------------------------------------------------------
diff --git a/lib/commons-api/src/main/java/org/apache/olingo/commons/api/edm/provider/OperationImport.java b/lib/commons-api/src/main/java/org/apache/olingo/commons/api/edm/provider/OperationImport.java
deleted file mode 100644
index 7de9623..0000000
--- a/lib/commons-api/src/main/java/org/apache/olingo/commons/api/edm/provider/OperationImport.java
+++ /dev/null
@@ -1,54 +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.commons.api.edm.provider;
-
-import java.util.ArrayList;
-import java.util.List;
-
-public abstract class OperationImport extends AbstractEdmItem implements Named, Annotatable{
-
-  private static final long serialVersionUID = -8928186067970681061L;
-
-  protected String name;
-  protected String entitySet;
-  protected final List<Annotation> annotations = new ArrayList<Annotation>();
-
-  public String getName() {
-    return name;
-  }
-
-  public OperationImport setName(final String name) {
-    this.name = name;
-    return this;
-  }
-
-  public String getEntitySet() {
-    return entitySet;
-  }
-
-  public OperationImport setEntitySet(final String entitySet) {
-    this.entitySet = entitySet;
-    return this;
-  }
-  
-  @Override
-  public List<Annotation> getAnnotations() {
-    return annotations;
-  }
-}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/2318953c/lib/commons-api/src/main/java/org/apache/olingo/commons/api/edm/provider/Parameter.java
----------------------------------------------------------------------
diff --git a/lib/commons-api/src/main/java/org/apache/olingo/commons/api/edm/provider/Parameter.java b/lib/commons-api/src/main/java/org/apache/olingo/commons/api/edm/provider/Parameter.java
deleted file mode 100644
index fb29da2..0000000
--- a/lib/commons-api/src/main/java/org/apache/olingo/commons/api/edm/provider/Parameter.java
+++ /dev/null
@@ -1,146 +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.commons.api.edm.provider;
-
-import java.util.ArrayList;
-import java.util.List;
-
-import org.apache.olingo.commons.api.edm.FullQualifiedName;
-import org.apache.olingo.commons.api.edm.geo.SRID;
-
-public class Parameter extends AbstractEdmItem implements Named, Annotatable{
-
-  private static final long serialVersionUID = -7360900923880732015L;
-
-  private String name;
-
-  private FullQualifiedName type;
-
-  private boolean isCollection;
-
-  private Mapping mapping;
-
-  // Facets
-  private boolean nullable = true;
-
-  private Integer maxLength;
-
-  private Integer precision;
-
-  private Integer scale;
-  
-  private SRID srid;
-
-  private final List<Annotation> annotations = new ArrayList<Annotation>();
-
-  public String getName() {
-    return name;
-  }
-
-  public Parameter setName(final String name) {
-    this.name = name;
-    return this;
-  }
-
-  public String getType() {
-    return type.getFullQualifiedNameAsString();
-  }
-  
-  public FullQualifiedName getTypeFQN() {
-    return type;
-  }
-
-  public Parameter setType(final String type) {
-    this.type = new FullQualifiedName(type);
-    return this;
-  }
-  
-  public Parameter setType(final FullQualifiedName type) {
-    this.type = type;
-    return this;
-  }
-
-  public boolean isCollection() {
-    return isCollection;
-  }
-
-  public Parameter setCollection(final boolean isCollection) {
-    this.isCollection = isCollection;
-    return this;
-  }
-
-  public boolean isNullable() {
-    return nullable;
-  }
-
-  public Parameter setNullable(final boolean nullable) {
-    this.nullable = nullable;
-    return this;
-  }
-
-  public Integer getMaxLength() {
-    return maxLength;
-  }
-
-  public Parameter setMaxLength(final Integer maxLength) {
-    this.maxLength = maxLength;
-    return this;
-  }
-
-  public Integer getPrecision() {
-    return precision;
-  }
-
-  public Parameter setPrecision(final Integer precision) {
-    this.precision = precision;
-    return this;
-  }
-
-  public Integer getScale() {
-    return scale;
-  }
-
-  public Parameter setScale(final Integer scale) {
-    this.scale = scale;
-    return this;
-  }
-  
-  public SRID getSrid() {
-    return srid;
-  }
-
-  public Parameter setSrid(final SRID srid) {
-    this.srid = srid;
-    return this;
-  }
-
-  @Override
-  public List<Annotation> getAnnotations() {
-    return annotations;
-  }
-
-  public Mapping getMapping() {
-    return mapping;
-  }
-
-  public Parameter setMapping(final Mapping mapping) {
-    this.mapping = mapping;
-    return this;
-  }
-}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/2318953c/lib/commons-api/src/main/java/org/apache/olingo/commons/api/edm/provider/Property.java
----------------------------------------------------------------------
diff --git a/lib/commons-api/src/main/java/org/apache/olingo/commons/api/edm/provider/Property.java b/lib/commons-api/src/main/java/org/apache/olingo/commons/api/edm/provider/Property.java
deleted file mode 100644
index cf4e928..0000000
--- a/lib/commons-api/src/main/java/org/apache/olingo/commons/api/edm/provider/Property.java
+++ /dev/null
@@ -1,180 +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.commons.api.edm.provider;
-
-import java.util.ArrayList;
-import java.util.List;
-
-import org.apache.olingo.commons.api.edm.FullQualifiedName;
-import org.apache.olingo.commons.api.edm.geo.SRID;
-
-public class Property extends AbstractEdmItem implements Named, Annotatable{
-  
-  private static final long serialVersionUID = -4224390853690843450L;
-
-  private String name;
-
-  private String type;
-
-  private boolean collection;
-
-  private String mimeType;
-
-  private Mapping mapping;
-
-  // Facets
-  private String defaultValue;
-
-  private boolean nullable = true;
-
-  private Integer maxLength;
-
-  private Integer precision;
-
-  private Integer scale;
-
-  private boolean unicode = true;
-  
-  private SRID srid;
-
-  private List<Annotation> annotations = new ArrayList<Annotation>();
-  
-
-  public String getName() {
-    return name;
-  }
-
-  public Property setName(final String name) {
-    this.name = name;
-    return this;
-  }
-
-  public String getType() {
-    return type;
-  }
-
-  public Property setType(final String type) {
-    this.type = type;
-    return this;
-  }
-  
-  public FullQualifiedName getTypeAsFQNObject(){
-    return new FullQualifiedName(type);
-  }
-  
-  public Property setType(FullQualifiedName fqnName){
-    this.type = fqnName.getFullQualifiedNameAsString();
-    return this;
-  }
-
-  public boolean isCollection() {
-    return collection;
-  }
-
-  public Property setCollection(final boolean isCollection) {
-    collection = isCollection;
-    return this;
-  }
-
-  public String getDefaultValue() {
-    return defaultValue;
-  }
-
-  public Property setDefaultValue(final String defaultValue) {
-    this.defaultValue = defaultValue;
-    return this;
-  }
-
-  public boolean isNullable() {
-    return nullable;
-  }
-
-  public Property setNullable(final boolean nullable) {
-    this.nullable = nullable;
-    return this;
-  }
-
-  public Integer getMaxLength() {
-    return maxLength;
-  }
-
-  public Property setMaxLength(final Integer maxLength) {
-    this.maxLength = maxLength;
-    return this;
-  }
-
-  public Integer getPrecision() {
-    return precision;
-  }
-
-  public Property setPrecision(final Integer precision) {
-    this.precision = precision;
-    return this;
-  }
-
-  public Integer getScale() {
-    return scale;
-  }
-
-  public Property setScale(final Integer scale) {
-    this.scale = scale;
-    return this;
-  }
-
-  public boolean isUnicode() {
-    return unicode;
-  }
-
-  public Property setUnicode(final boolean unicode) {
-    this.unicode = unicode;
-    return this;
-  }
-
-  public String getMimeType() {
-    return mimeType;
-  }
-
-  public Property setMimeType(final String mimeType) {
-    this.mimeType = mimeType;
-    return this;
-  }
-
-  public Mapping getMapping() {
-    return mapping;
-  }
-
-  public Property setMapping(final Mapping mapping) {
-    this.mapping = mapping;
-    return this;
-  }
-
-  @Override
-  public List<Annotation> getAnnotations() {
-    return annotations;
-  }
-  
-  public Property setSrid(final SRID srid) {
-    this.srid = srid;
-    return this;
-  }
-  
-  public SRID getSrid() {
-    return srid;
-  }
-}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/2318953c/lib/commons-api/src/main/java/org/apache/olingo/commons/api/edm/provider/PropertyRef.java
----------------------------------------------------------------------
diff --git a/lib/commons-api/src/main/java/org/apache/olingo/commons/api/edm/provider/PropertyRef.java b/lib/commons-api/src/main/java/org/apache/olingo/commons/api/edm/provider/PropertyRef.java
deleted file mode 100644
index 6588aaa..0000000
--- a/lib/commons-api/src/main/java/org/apache/olingo/commons/api/edm/provider/PropertyRef.java
+++ /dev/null
@@ -1,46 +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.commons.api.edm.provider;
-
-public class PropertyRef extends AbstractEdmItem implements Named{
-
-  private static final long serialVersionUID = 9082892362895660037L;
-
-  private String name;
-
-  private String alias;
-
-  public String getName() {
-    return name;
-  }
-
-  public PropertyRef setName(final String name) {
-    this.name = name;
-    return this;
-  }
-
-  public String getAlias() {
-    return alias;
-  }
-
-  public PropertyRef setAlias(final String alias) {
-    this.alias = alias;
-    return this;
-  }
-}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/2318953c/lib/commons-api/src/main/java/org/apache/olingo/commons/api/edm/provider/ReferentialConstraint.java
----------------------------------------------------------------------
diff --git a/lib/commons-api/src/main/java/org/apache/olingo/commons/api/edm/provider/ReferentialConstraint.java b/lib/commons-api/src/main/java/org/apache/olingo/commons/api/edm/provider/ReferentialConstraint.java
deleted file mode 100644
index 72c84c1..0000000
--- a/lib/commons-api/src/main/java/org/apache/olingo/commons/api/edm/provider/ReferentialConstraint.java
+++ /dev/null
@@ -1,56 +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.commons.api.edm.provider;
-
-import java.util.ArrayList;
-import java.util.List;
-
-public class ReferentialConstraint extends AbstractEdmItem implements Annotatable {
-
-  private static final long serialVersionUID = -7467707499798840075L;
-
-  private String property;
-
-  private String referencedProperty;
-
-  private final List<Annotation> annotations = new ArrayList<Annotation>();
-
-  public String getProperty() {
-    return property;
-  }
-
-  public ReferentialConstraint setProperty(final String property) {
-    this.property = property;
-    return this;
-  }
-
-  public String getReferencedProperty() {
-    return referencedProperty;
-  }
-
-  public ReferentialConstraint setReferencedProperty(final String referencedProperty) {
-    this.referencedProperty = referencedProperty;
-    return this;
-  }
-  
-  @Override
-  public List<Annotation> getAnnotations() {
-    return annotations;
-  }
-}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/2318953c/lib/commons-api/src/main/java/org/apache/olingo/commons/api/edm/provider/ReturnType.java
----------------------------------------------------------------------
diff --git a/lib/commons-api/src/main/java/org/apache/olingo/commons/api/edm/provider/ReturnType.java b/lib/commons-api/src/main/java/org/apache/olingo/commons/api/edm/provider/ReturnType.java
deleted file mode 100644
index 1d58ae1..0000000
--- a/lib/commons-api/src/main/java/org/apache/olingo/commons/api/edm/provider/ReturnType.java
+++ /dev/null
@@ -1,114 +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.commons.api.edm.provider;
-
-import org.apache.olingo.commons.api.edm.FullQualifiedName;
-import org.apache.olingo.commons.api.edm.geo.SRID;
-
-public class ReturnType extends AbstractEdmItem{
-
-  private static final long serialVersionUID = 4816954124986010965L;
-
-  private FullQualifiedName type;
-
-  private boolean isCollection;
-
-  // facets
-  private boolean nullable = true;
-
-  private Integer maxLength;
-
-  private Integer precision;
-
-  private Integer scale;
-  
-  private SRID srid;
-
-  public String getType() {
-    return type.getFullQualifiedNameAsString();
-  }
-  
-  public FullQualifiedName getTypeFQN() {
-    return type;
-  }
-
-  public ReturnType setType(final String type) {
-    this.type = new FullQualifiedName(type);
-    return this;
-  }
-  
-  public ReturnType setType(final FullQualifiedName type) {
-    this.type = type;
-    return this;
-  }
-
-  public boolean isCollection() {
-    return isCollection;
-  }
-
-  public ReturnType setCollection(final boolean isCollection) {
-    this.isCollection = isCollection;
-    return this;
-  }
-
-  public boolean isNullable() {
-    return nullable;
-  }
-
-  public ReturnType setNullable(final boolean nullable) {
-    this.nullable = nullable;
-    return this;
-  }
-
-  public Integer getMaxLength() {
-    return maxLength;
-  }
-
-  public ReturnType setMaxLength(final Integer maxLength) {
-    this.maxLength = maxLength;
-    return this;
-  }
-
-  public Integer getPrecision() {
-    return precision;
-  }
-
-  public ReturnType setPrecision(final Integer precision) {
-    this.precision = precision;
-    return this;
-  }
-
-  public Integer getScale() {
-    return scale;
-  }
-
-  public ReturnType setScale(final Integer scale) {
-    this.scale = scale;
-    return this;
-  }
-
-  public SRID getSrid() {
-    return srid;
-  }
-
-  public ReturnType setSrid(final SRID srid) {
-    this.srid = srid;
-    return this;
-  }
-}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/2318953c/lib/commons-api/src/main/java/org/apache/olingo/commons/api/edm/provider/Schema.java
----------------------------------------------------------------------
diff --git a/lib/commons-api/src/main/java/org/apache/olingo/commons/api/edm/provider/Schema.java b/lib/commons-api/src/main/java/org/apache/olingo/commons/api/edm/provider/Schema.java
deleted file mode 100644
index 7ed2704..0000000
--- a/lib/commons-api/src/main/java/org/apache/olingo/commons/api/edm/provider/Schema.java
+++ /dev/null
@@ -1,265 +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.commons.api.edm.provider;
-
-import java.util.ArrayList;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
-
-public class Schema extends AbstractEdmItem implements Annotatable{
-  
-  private static final long serialVersionUID = -1527213201328056750L;
-
-  private String namespace;
-
-  private String alias;
-
-  private List<EnumType> enumTypes = new ArrayList<EnumType>();
-
-  private List<TypeDefinition> typeDefinitions = new ArrayList<TypeDefinition>();
-
-  private List<EntityType> entityTypes = new ArrayList<EntityType>();
-
-  private List<ComplexType> complexTypes = new ArrayList<ComplexType>();
-
-  private List<Action> actions = new ArrayList<Action>();
-
-  private List<Function> functions = new ArrayList<Function>();
-
-  private EntityContainer entityContainer;
-
-  private List<Term> terms = new ArrayList<Term>();
-  
-  private final List<Annotations> annotationGroups = new ArrayList<Annotations>();
-  
-  private final List<Annotation> annotations = new ArrayList<Annotation>();
-  
-  private Map<String, Annotatable> annotatables;
-
-
-  public String getNamespace() {
-    return namespace;
-  }
-
-  public Schema setNamespace(final String namespace) {
-    this.namespace = namespace;
-    return this;
-  }
-
-  public String getAlias() {
-    return alias;
-  }
-
-  public Schema setAlias(final String alias) {
-    this.alias = alias;
-    return this;
-  }
-  
-  public List<EnumType> getEnumTypes() {
-    return enumTypes;
-  }
-  
-  public EnumType getEnumType(final String name) {
-    return getOneByName(name, getEnumTypes());
-  }
-
-  public Schema setEnumTypes(final List<EnumType> enumTypes) {
-    this.enumTypes = enumTypes;
-    return this;
-  }
-
-  public List<TypeDefinition> getTypeDefinitions() {
-    return typeDefinitions;
-  }
-
-  public TypeDefinition getTypeDefinition(final String name) {
-    return getOneByName(name, getTypeDefinitions());
-  }
-  
-  public Schema setTypeDefinitions(final List<TypeDefinition> typeDefinitions) {
-    this.typeDefinitions = typeDefinitions;
-    return this;
-  }
-
-  public List<EntityType> getEntityTypes() {
-    return entityTypes;
-  }
-
-  public EntityType getEntityType(final String name) {
-    return getOneByName(name, getEntityTypes());
-  }
-  
-  public Schema setEntityTypes(final List<EntityType> entityTypes) {
-    this.entityTypes = entityTypes;
-    return this;
-  }
-
-  public List<ComplexType> getComplexTypes() {
-    return complexTypes;
-  }
-
-  public ComplexType getComplexType(final String name) {
-    return getOneByName(name, getComplexTypes());
-  }
-
-  public Schema setComplexTypes(final List<ComplexType> complexTypes) {
-    this.complexTypes = complexTypes;
-    return this;
-  }
-
-  public List<Action> getActions() {
-    return actions;
-  }
-
-  /**
-   * All actions with the given name
-   * @param name
-   * @return a list of actions
-   */
-  public List<Action> getActions(final String name) {
-    return getAllByName(name, getActions());
-  }
-  
-  public Schema setActions(final List<Action> actions) {
-    this.actions = actions;
-    return this;
-  }
-
-  public List<Function> getFunctions() {
-    return functions;
-  }
-  
-  /**
-   * All functions with the given name
-   * @param name
-   * @return a list of functions
-   */
-  public List<Function> getFunctions(final String name) {
-    return getAllByName(name, getFunctions());
-  }
-
-  public Schema setFunctions(final List<Function> functions) {
-    this.functions = functions;
-    return this;
-  }
-
-  public EntityContainer getEntityContainer() {
-    return entityContainer;
-  }
-
-  public Schema setEntityContainer(final EntityContainer entityContainer) {
-    this.entityContainer = entityContainer;
-    return this;
-  }
-
-  public List<Term> getTerms() {
-    return terms;
-  }
-  
-  public Term getTerm(final String name) {
-    return getOneByName(name, getTerms());
-  }
-
-
-  public Schema setTerms(final List<Term> terms) {
-    this.terms = terms;
-    return this;
-  }
-  
-  public List<Annotations> getAnnotationGroups() {
-    return annotationGroups;
-  }
-
-  public Annotations getAnnotationGroup(final String target) {
-    Annotations result = null;
-    for (Annotations annots : getAnnotationGroups()) {
-      if (target.equals(annots.getTarget())) {
-        result = annots;
-      }
-    }
-    return result;
-  }
-
-  public Annotation getAnnotation(final String term) {
-    Annotation result = null;
-    for (Annotation annot : getAnnotations()) {
-      if (term.equals(annot.getTerm())) {
-        result = annot;
-      }
-    }
-    return result;
-  }
-
-  public List<Annotation> getAnnotations() {
-    return annotations;
-  }
-  
-  public Map<String, Annotatable> getAnnotatables() {
-    if (annotatables == null) {
-      annotatables = new HashMap<String, Annotatable>();
-      for (Annotations annotationGroup : getAnnotationGroups()) {
-        annotatables.put(null, annotationGroup);
-      }
-      for (Annotation annotation : getAnnotations()) {
-        annotatables.put(annotation.getTerm(), annotation);
-      }
-      for (Action action : getActions()) {
-        annotatables.put(action.getName(), action);
-      }
-      for (ComplexType complexType : getComplexTypes()) {
-        annotatables.put(complexType.getName(), complexType);
-      }
-      for (EntityType entityType : getEntityTypes()) {
-        annotatables.put(entityType.getName(), entityType);
-      }
-      for (EnumType enumType : getEnumTypes()) {
-        annotatables.put(enumType.getName(), enumType);
-      }
-      for (Function function : getFunctions()) {
-        annotatables.put(function.getName(), function);
-      }
-      for (Term term : getTerms()) {
-        annotatables.put(term.getName(), term);
-      }
-      for (TypeDefinition typedef : getTypeDefinitions()) {
-        annotatables.put(typedef.getName(), typedef);
-      }
-      if (entityContainer != null) {
-        annotatables.put(entityContainer.getName(), entityContainer);
-        for (Annotation annotation : entityContainer.getAnnotations()) {
-          annotatables.put(annotation.getTerm(), annotation);
-        }
-        for (ActionImport actionImport : entityContainer.getActionImports()) {
-          annotatables.put(actionImport.getName(), actionImport);
-        }
-        for (FunctionImport functionImport : entityContainer.getFunctionImports()) {
-          annotatables.put(functionImport.getName(), functionImport);
-        }
-        for (EntitySet entitySet : entityContainer.getEntitySets()) {
-          annotatables.put(entitySet.getName(), entitySet);
-        }
-        for (Singleton singleton : entityContainer.getSingletons()) {
-          annotatables.put(singleton.getName(), singleton);
-        }
-      }
-    }
-    return annotatables;
-  }
-}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/2318953c/lib/commons-api/src/main/java/org/apache/olingo/commons/api/edm/provider/Singleton.java
----------------------------------------------------------------------
diff --git a/lib/commons-api/src/main/java/org/apache/olingo/commons/api/edm/provider/Singleton.java b/lib/commons-api/src/main/java/org/apache/olingo/commons/api/edm/provider/Singleton.java
deleted file mode 100644
index e2e14f4..0000000
--- a/lib/commons-api/src/main/java/org/apache/olingo/commons/api/edm/provider/Singleton.java
+++ /dev/null
@@ -1,52 +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.commons.api.edm.provider;
-
-import java.util.List;
-
-import org.apache.olingo.commons.api.edm.FullQualifiedName;
-
-public class Singleton extends BindingTarget {
-
-  private static final long serialVersionUID = -3997943079062565895L;
-
-  @Override
-  public Singleton setName(final String name) {
-    this.name = name;
-    return this;
-  }
-
-  @Override
-  public Singleton setType(final String type) {
-    this.type = new FullQualifiedName(type);
-    return this;
-  }
-  
-  @Override
-  public Singleton setType(final FullQualifiedName type) {
-    this.type = type;
-    return this;
-  }
-
-  @Override
-  public Singleton setNavigationPropertyBindings(final List<NavigationPropertyBinding> navigationPropertyBindings) {
-    this.navigationPropertyBindings = navigationPropertyBindings;
-    return this;
-  }
-}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/2318953c/lib/commons-api/src/main/java/org/apache/olingo/commons/api/edm/provider/StructuralType.java
----------------------------------------------------------------------
diff --git a/lib/commons-api/src/main/java/org/apache/olingo/commons/api/edm/provider/StructuralType.java b/lib/commons-api/src/main/java/org/apache/olingo/commons/api/edm/provider/StructuralType.java
deleted file mode 100644
index 61d70c7..0000000
--- a/lib/commons-api/src/main/java/org/apache/olingo/commons/api/edm/provider/StructuralType.java
+++ /dev/null
@@ -1,122 +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.commons.api.edm.provider;
-
-import java.util.ArrayList;
-import java.util.List;
-
-import org.apache.olingo.commons.api.edm.FullQualifiedName;
-
-public abstract class StructuralType extends AbstractEdmItem implements Named, Annotatable {
-
-  private static final long serialVersionUID = 8662852373514258646L;
-
-  protected String name;
-
-  protected boolean isOpenType = false;
-
-  protected FullQualifiedName baseType;
-
-  protected boolean isAbstract;
-
-  protected List<Property> properties = new ArrayList<Property>();
-
-  protected List<NavigationProperty> navigationProperties = new ArrayList<NavigationProperty>();
-
-  protected final List<Annotation> annotations = new ArrayList<Annotation>();
-
-  public String getName() {
-    return name;
-  }
-
-  public StructuralType setName(final String name) {
-    this.name = name;
-    return this;
-  }
-
-  public boolean isOpenType() {
-    return isOpenType;
-  }
-
-  public StructuralType setOpenType(final boolean isOpenType) {
-    this.isOpenType = isOpenType;
-    return this;
-  }
-
-  public String getBaseType() {
-    if (baseType != null) {
-      return baseType.getFullQualifiedNameAsString();
-    }
-    return null;
-  }
-
-  public FullQualifiedName getBaseTypeFQN() {
-    return baseType;
-  }
-
-  public StructuralType setBaseType(final String baseType) {
-    this.baseType = new FullQualifiedName(baseType);
-    return this;
-  }
-
-  public StructuralType setBaseType(final FullQualifiedName baseType) {
-    this.baseType = baseType;
-    return this;
-  }
-
-  public boolean isAbstract() {
-    return isAbstract;
-  }
-
-  public StructuralType setAbstract(final boolean isAbstract) {
-    this.isAbstract = isAbstract;
-    return this;
-  }
-
-  public List<Property> getProperties() {
-    return properties;
-  }
-
-  public Property getProperty(String name) {
-    return getOneByName(name, properties);
-  }
-
-  public StructuralType setProperties(final List<Property> properties) {
-    this.properties = properties;
-    return this;
-  }
-
-  public List<NavigationProperty> getNavigationProperties() {
-    return navigationProperties;
-  }
-
-  public NavigationProperty getNavigationProperty(String name) {
-    return getOneByName(name, navigationProperties);
-  }
-
-  public StructuralType setNavigationProperties(final List<NavigationProperty> navigationProperties) {
-    this.navigationProperties = navigationProperties;
-    return this;
-  }
-
-  @Override
-  public List<Annotation> getAnnotations() {
-    return annotations;
-  }
-}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/2318953c/lib/commons-api/src/main/java/org/apache/olingo/commons/api/edm/provider/Term.java
----------------------------------------------------------------------
diff --git a/lib/commons-api/src/main/java/org/apache/olingo/commons/api/edm/provider/Term.java b/lib/commons-api/src/main/java/org/apache/olingo/commons/api/edm/provider/Term.java
deleted file mode 100644
index 45b9afe..0000000
--- a/lib/commons-api/src/main/java/org/apache/olingo/commons/api/edm/provider/Term.java
+++ /dev/null
@@ -1,162 +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.commons.api.edm.provider;
-
-import java.util.ArrayList;
-import java.util.List;
-
-import org.apache.olingo.commons.api.edm.geo.SRID;
-
-public class Term extends AbstractEdmItem implements Named, Annotatable{
-
-  private static final long serialVersionUID = 3843929000407818103L;
-
-  private String name;
-
-  private String type;
-
-  private String baseTerm;
-
-  private List<String> appliesTo = new ArrayList<String>();
-
-  private boolean isCollection;
-
-  // Facets
-  private String defaultValue;
-
-  private boolean nullable = true;
-
-  private Integer maxLength;
-
-  private Integer precision;
-
-  private Integer scale;
-  
-  private SRID srid;
-
-  private List<Annotation> annotations = new ArrayList<Annotation>();
-
-  public String getName() {
-    return name;
-  }
-
-  public Term setName(final String name) {
-    this.name = name;
-    return this;
-  }
-
-  public String getType() {
-    return type;
-  }
-
-  public Term setType(final String type) {
-    this.type = type;
-    return this;
-  }
-
-  public String getBaseTerm() {
-    return baseTerm;
-  }
-
-  public Term setBaseTerm(final String baseTerm) {
-    this.baseTerm = baseTerm;
-    return this;
-  }
-
-  public List<String> getAppliesTo() {
-    return appliesTo;
-  }
-
-  public Term setAppliesTo(final List<String> appliesTo) {
-    this.appliesTo = appliesTo;
-    return this;
-  }
-
-  public boolean isCollection() {
-    return isCollection;
-  }
-
-  public Term setCollection(final boolean isCollection) {
-    this.isCollection = isCollection;
-    return this;
-  }
-
-  public String getDefaultValue() {
-    return defaultValue;
-  }
-
-  public Term setDefaultValue(final String defaultValue) {
-    this.defaultValue = defaultValue;
-    return this;
-  }
-
-  public boolean isNullable() {
-    return nullable;
-  }
-
-  public Term setNullable(final boolean nullable) {
-    this.nullable = nullable;
-    return this;
-  }
-
-  public Integer getMaxLength() {
-    return maxLength;
-  }
-
-  public Term setMaxLength(final Integer maxLength) {
-    this.maxLength = maxLength;
-    return this;
-  }
-
-  public Integer getPrecision() {
-    return precision;
-  }
-
-  public Term setPrecision(final Integer precision) {
-    this.precision = precision;
-    return this;
-  }
-
-  public Integer getScale() {
-    return scale;
-  }
-
-  public Term setScale(final Integer scale) {
-    this.scale = scale;
-    return this;
-  }
-
-  public List<Annotation> getAnnotations() {
-    return annotations;
-  }
-
-  public Term setAnnotations(final List<Annotation> annotations) {
-    this.annotations = annotations;
-    return this;
-  }
-  
-  public SRID getSrid() {
-    return srid;
-  }
-
-  public Term setSrid(final SRID srid) {
-    this.srid = srid;
-    return this;
-  }
-}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/2318953c/lib/commons-api/src/main/java/org/apache/olingo/commons/api/edm/provider/TypeDefinition.java
----------------------------------------------------------------------
diff --git a/lib/commons-api/src/main/java/org/apache/olingo/commons/api/edm/provider/TypeDefinition.java b/lib/commons-api/src/main/java/org/apache/olingo/commons/api/edm/provider/TypeDefinition.java
deleted file mode 100644
index b886b1e..0000000
--- a/lib/commons-api/src/main/java/org/apache/olingo/commons/api/edm/provider/TypeDefinition.java
+++ /dev/null
@@ -1,123 +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.commons.api.edm.provider;
-
-import java.util.ArrayList;
-import java.util.List;
-
-import org.apache.olingo.commons.api.edm.FullQualifiedName;
-import org.apache.olingo.commons.api.edm.geo.SRID;
-
-public class TypeDefinition extends AbstractEdmItem implements Named, Annotatable {
-
-  private static final long serialVersionUID = 3718980071229613048L;
-
-  private String name;
-
-  private FullQualifiedName underlyingType;
-
-  // Facets
-  private Integer maxLength;
-
-  private Integer precision;
-
-  private Integer scale;
-
-  private boolean unicode = true;
-
-  private SRID srid;
-
-  private final List<Annotation> annotations = new ArrayList<Annotation>();
-
-  public String getName() {
-    return name;
-  }
-
-  public TypeDefinition setName(final String name) {
-    this.name = name;
-    return this;
-  }
-
-  public String getUnderlyingType() {
-    if(underlyingType != null){
-      return underlyingType.getFullQualifiedNameAsString();
-    }
-    return null;
-  }
-
-  public TypeDefinition setUnderlyingType(final String underlyingType) {
-    this.underlyingType = new FullQualifiedName(underlyingType);
-    return this;
-  }
-  
-  public TypeDefinition setUnderlyingType(final FullQualifiedName underlyingType) {
-    this.underlyingType = underlyingType;
-    return this;
-  }
-
-  public Integer getMaxLength() {
-    return maxLength;
-  }
-
-  public TypeDefinition setMaxLength(final Integer maxLength) {
-    this.maxLength = maxLength;
-    return this;
-  }
-
-  public Integer getPrecision() {
-    return precision;
-  }
-
-  public TypeDefinition setPrecision(final Integer precision) {
-    this.precision = precision;
-    return this;
-  }
-
-  public Integer getScale() {
-    return scale;
-  }
-
-  public TypeDefinition setScale(final Integer scale) {
-    this.scale = scale;
-    return this;
-  }
-
-  public boolean isUnicode() {
-    return unicode;
-  }
-
-  public TypeDefinition setUnicode(final boolean unicode) {
-    this.unicode = unicode;
-    return this;
-  }
-
-  public SRID getSrid() {
-    return srid;
-  }
-
-  public TypeDefinition setSrid(final SRID srid) {
-    this.srid = srid;
-    return this;
-  }
-
-  @Override
-  public List<Annotation> getAnnotations() {
-    return annotations;
-  }
-}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/2318953c/lib/commons-api/src/main/java/org/apache/olingo/commons/api/edm/provider/annotation/Apply.java
----------------------------------------------------------------------
diff --git a/lib/commons-api/src/main/java/org/apache/olingo/commons/api/edm/provider/annotation/Apply.java b/lib/commons-api/src/main/java/org/apache/olingo/commons/api/edm/provider/annotation/Apply.java
index 0cea344..1490b89 100644
--- a/lib/commons-api/src/main/java/org/apache/olingo/commons/api/edm/provider/annotation/Apply.java
+++ b/lib/commons-api/src/main/java/org/apache/olingo/commons/api/edm/provider/annotation/Apply.java
@@ -20,9 +20,9 @@ package org.apache.olingo.commons.api.edm.provider.annotation;
 
 import java.util.List;
 
-import org.apache.olingo.commons.api.edm.provider.Annotatable;
+import org.apache.olingo.commons.api.edm.provider.CsdlAnnotatable;
 
-public interface Apply extends DynamicAnnotationExpression, Annotatable {
+public interface Apply extends DynamicAnnotationExpression, CsdlAnnotatable {
 
   String getFunction();
 

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/2318953c/lib/commons-api/src/main/java/org/apache/olingo/commons/api/edm/provider/annotation/Cast.java
----------------------------------------------------------------------
diff --git a/lib/commons-api/src/main/java/org/apache/olingo/commons/api/edm/provider/annotation/Cast.java b/lib/commons-api/src/main/java/org/apache/olingo/commons/api/edm/provider/annotation/Cast.java
index a091fe0..49011f3 100644
--- a/lib/commons-api/src/main/java/org/apache/olingo/commons/api/edm/provider/annotation/Cast.java
+++ b/lib/commons-api/src/main/java/org/apache/olingo/commons/api/edm/provider/annotation/Cast.java
@@ -19,9 +19,9 @@
 package org.apache.olingo.commons.api.edm.provider.annotation;
 
 import org.apache.olingo.commons.api.edm.geo.SRID;
-import org.apache.olingo.commons.api.edm.provider.Annotatable;
+import org.apache.olingo.commons.api.edm.provider.CsdlAnnotatable;
 
-public interface Cast extends DynamicAnnotationExpression, Annotatable {
+public interface Cast extends DynamicAnnotationExpression, CsdlAnnotatable {
 
   Integer getMaxLength();
 

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/2318953c/lib/commons-api/src/main/java/org/apache/olingo/commons/api/edm/provider/annotation/If.java
----------------------------------------------------------------------
diff --git a/lib/commons-api/src/main/java/org/apache/olingo/commons/api/edm/provider/annotation/If.java b/lib/commons-api/src/main/java/org/apache/olingo/commons/api/edm/provider/annotation/If.java
index 86661c2..e035efe 100644
--- a/lib/commons-api/src/main/java/org/apache/olingo/commons/api/edm/provider/annotation/If.java
+++ b/lib/commons-api/src/main/java/org/apache/olingo/commons/api/edm/provider/annotation/If.java
@@ -18,9 +18,9 @@
  */
 package org.apache.olingo.commons.api.edm.provider.annotation;
 
-import org.apache.olingo.commons.api.edm.provider.Annotatable;
+import org.apache.olingo.commons.api.edm.provider.CsdlAnnotatable;
 
-public interface If extends DynamicAnnotationExpression, Annotatable {
+public interface If extends DynamicAnnotationExpression, CsdlAnnotatable {
 
   AnnotationExpression getGuard();
 

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/2318953c/lib/commons-api/src/main/java/org/apache/olingo/commons/api/edm/provider/annotation/IsOf.java
----------------------------------------------------------------------
diff --git a/lib/commons-api/src/main/java/org/apache/olingo/commons/api/edm/provider/annotation/IsOf.java b/lib/commons-api/src/main/java/org/apache/olingo/commons/api/edm/provider/annotation/IsOf.java
index 6bbc6b5..c66374c 100644
--- a/lib/commons-api/src/main/java/org/apache/olingo/commons/api/edm/provider/annotation/IsOf.java
+++ b/lib/commons-api/src/main/java/org/apache/olingo/commons/api/edm/provider/annotation/IsOf.java
@@ -19,9 +19,9 @@
 package org.apache.olingo.commons.api.edm.provider.annotation;
 
 import org.apache.olingo.commons.api.edm.geo.SRID;
-import org.apache.olingo.commons.api.edm.provider.Annotatable;
+import org.apache.olingo.commons.api.edm.provider.CsdlAnnotatable;
 
-public interface IsOf extends DynamicAnnotationExpression, Annotatable {
+public interface IsOf extends DynamicAnnotationExpression, CsdlAnnotatable {
 
   Integer getMaxLength();
 

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/2318953c/lib/commons-api/src/main/java/org/apache/olingo/commons/api/edm/provider/annotation/LabeledElement.java
----------------------------------------------------------------------
diff --git a/lib/commons-api/src/main/java/org/apache/olingo/commons/api/edm/provider/annotation/LabeledElement.java b/lib/commons-api/src/main/java/org/apache/olingo/commons/api/edm/provider/annotation/LabeledElement.java
index 2f1aace..f2c5eaa 100644
--- a/lib/commons-api/src/main/java/org/apache/olingo/commons/api/edm/provider/annotation/LabeledElement.java
+++ b/lib/commons-api/src/main/java/org/apache/olingo/commons/api/edm/provider/annotation/LabeledElement.java
@@ -18,9 +18,9 @@
  */
 package org.apache.olingo.commons.api.edm.provider.annotation;
 
-import org.apache.olingo.commons.api.edm.provider.Annotatable;
+import org.apache.olingo.commons.api.edm.provider.CsdlAnnotatable;
 
-public interface LabeledElement extends DynamicAnnotationExpression, Annotatable {
+public interface LabeledElement extends DynamicAnnotationExpression, CsdlAnnotatable {
 
   String getName();
 

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/2318953c/lib/commons-api/src/main/java/org/apache/olingo/commons/api/edm/provider/annotation/Null.java
----------------------------------------------------------------------
diff --git a/lib/commons-api/src/main/java/org/apache/olingo/commons/api/edm/provider/annotation/Null.java b/lib/commons-api/src/main/java/org/apache/olingo/commons/api/edm/provider/annotation/Null.java
index 40345ee..a986fff 100644
--- a/lib/commons-api/src/main/java/org/apache/olingo/commons/api/edm/provider/annotation/Null.java
+++ b/lib/commons-api/src/main/java/org/apache/olingo/commons/api/edm/provider/annotation/Null.java
@@ -18,8 +18,8 @@
  */
 package org.apache.olingo.commons.api.edm.provider.annotation;
 
-import org.apache.olingo.commons.api.edm.provider.Annotatable;
+import org.apache.olingo.commons.api.edm.provider.CsdlAnnotatable;
 
-public interface Null extends DynamicAnnotationExpression, Annotatable {
+public interface Null extends DynamicAnnotationExpression, CsdlAnnotatable {
 //No additional methods needed for now.
 }

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/2318953c/lib/commons-api/src/main/java/org/apache/olingo/commons/api/edm/provider/annotation/PropertyValue.java
----------------------------------------------------------------------
diff --git a/lib/commons-api/src/main/java/org/apache/olingo/commons/api/edm/provider/annotation/PropertyValue.java b/lib/commons-api/src/main/java/org/apache/olingo/commons/api/edm/provider/annotation/PropertyValue.java
index acdf92e..d33ed9a 100644
--- a/lib/commons-api/src/main/java/org/apache/olingo/commons/api/edm/provider/annotation/PropertyValue.java
+++ b/lib/commons-api/src/main/java/org/apache/olingo/commons/api/edm/provider/annotation/PropertyValue.java
@@ -18,9 +18,9 @@
  */
 package org.apache.olingo.commons.api.edm.provider.annotation;
 
-import org.apache.olingo.commons.api.edm.provider.Annotatable;
+import org.apache.olingo.commons.api.edm.provider.CsdlAnnotatable;
 
-public interface PropertyValue extends DynamicAnnotationExpression, Annotatable {
+public interface PropertyValue extends DynamicAnnotationExpression, CsdlAnnotatable {
 
   String getProperty();
 

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/2318953c/lib/commons-api/src/main/java/org/apache/olingo/commons/api/edm/provider/annotation/Record.java
----------------------------------------------------------------------
diff --git a/lib/commons-api/src/main/java/org/apache/olingo/commons/api/edm/provider/annotation/Record.java b/lib/commons-api/src/main/java/org/apache/olingo/commons/api/edm/provider/annotation/Record.java
index 1344c30..10f2352 100644
--- a/lib/commons-api/src/main/java/org/apache/olingo/commons/api/edm/provider/annotation/Record.java
+++ b/lib/commons-api/src/main/java/org/apache/olingo/commons/api/edm/provider/annotation/Record.java
@@ -20,9 +20,9 @@ package org.apache.olingo.commons.api.edm.provider.annotation;
 
 import java.util.List;
 
-import org.apache.olingo.commons.api.edm.provider.Annotatable;
+import org.apache.olingo.commons.api.edm.provider.CsdlAnnotatable;
 
-public interface Record extends DynamicAnnotationExpression, Annotatable {
+public interface Record extends DynamicAnnotationExpression, CsdlAnnotatable {
 
   List<PropertyValue> getPropertyValues();
 


[12/50] [abbrv] olingo-odata4 git commit: [OLINGO-564] Renamed 'edm.provider.*' classes

Posted by mi...@apache.org.
http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/2318953c/lib/server-core/src/test/java/org/apache/olingo/server/core/edm/provider/EdmSchemaImplTest.java
----------------------------------------------------------------------
diff --git a/lib/server-core/src/test/java/org/apache/olingo/server/core/edm/provider/EdmSchemaImplTest.java b/lib/server-core/src/test/java/org/apache/olingo/server/core/edm/provider/EdmSchemaImplTest.java
index 9b08277..6dddcfc 100644
--- a/lib/server-core/src/test/java/org/apache/olingo/server/core/edm/provider/EdmSchemaImplTest.java
+++ b/lib/server-core/src/test/java/org/apache/olingo/server/core/edm/provider/EdmSchemaImplTest.java
@@ -43,23 +43,23 @@ import org.apache.olingo.commons.api.edm.EdmSchema;
 import org.apache.olingo.commons.api.edm.EdmSingleton;
 import org.apache.olingo.commons.api.edm.EdmTypeDefinition;
 import org.apache.olingo.commons.api.edm.FullQualifiedName;
-import org.apache.olingo.commons.api.edm.provider.AbstractEdmProvider;
-import org.apache.olingo.commons.api.edm.provider.Action;
-import org.apache.olingo.commons.api.edm.provider.ActionImport;
-import org.apache.olingo.commons.api.edm.provider.AliasInfo;
-import org.apache.olingo.commons.api.edm.provider.ComplexType;
-import org.apache.olingo.commons.api.edm.provider.EdmProvider;
-import org.apache.olingo.commons.api.edm.provider.EntityContainer;
-import org.apache.olingo.commons.api.edm.provider.EntityContainerInfo;
-import org.apache.olingo.commons.api.edm.provider.EntitySet;
-import org.apache.olingo.commons.api.edm.provider.EntityType;
-import org.apache.olingo.commons.api.edm.provider.EnumType;
-import org.apache.olingo.commons.api.edm.provider.Function;
-import org.apache.olingo.commons.api.edm.provider.FunctionImport;
-import org.apache.olingo.commons.api.edm.provider.Schema;
-import org.apache.olingo.commons.api.edm.provider.Singleton;
-import org.apache.olingo.commons.api.edm.provider.Term;
-import org.apache.olingo.commons.api.edm.provider.TypeDefinition;
+import org.apache.olingo.commons.api.edm.provider.CsdlAbstractEdmProvider;
+import org.apache.olingo.commons.api.edm.provider.CsdlAction;
+import org.apache.olingo.commons.api.edm.provider.CsdlActionImport;
+import org.apache.olingo.commons.api.edm.provider.CsdlAliasInfo;
+import org.apache.olingo.commons.api.edm.provider.CsdlComplexType;
+import org.apache.olingo.commons.api.edm.provider.CsdlEdmProvider;
+import org.apache.olingo.commons.api.edm.provider.CsdlEntityContainer;
+import org.apache.olingo.commons.api.edm.provider.CsdlEntityContainerInfo;
+import org.apache.olingo.commons.api.edm.provider.CsdlEntitySet;
+import org.apache.olingo.commons.api.edm.provider.CsdlEntityType;
+import org.apache.olingo.commons.api.edm.provider.CsdlEnumType;
+import org.apache.olingo.commons.api.edm.provider.CsdlFunction;
+import org.apache.olingo.commons.api.edm.provider.CsdlFunctionImport;
+import org.apache.olingo.commons.api.edm.provider.CsdlSchema;
+import org.apache.olingo.commons.api.edm.provider.CsdlSingleton;
+import org.apache.olingo.commons.api.edm.provider.CsdlTerm;
+import org.apache.olingo.commons.api.edm.provider.CsdlTypeDefinition;
 import org.apache.olingo.commons.core.edm.EdmProviderImpl;
 import org.junit.Before;
 import org.junit.Test;
@@ -71,7 +71,7 @@ public class EdmSchemaImplTest {
 
   @Before
   public void before() {
-    EdmProvider provider = new LocalProvider();
+    CsdlEdmProvider provider = new LocalProvider();
     edm = new EdmProviderImpl(provider);
     schema = edm.getSchemas().get(0);
 
@@ -79,17 +79,17 @@ public class EdmSchemaImplTest {
 
   @Test
   public void initialSchemaTest() {
-    EdmProvider provider = mock(EdmProvider.class);
+    CsdlEdmProvider provider = mock(CsdlEdmProvider.class);
     edm = new EdmProviderImpl(provider);
     edm.getSchemas();
   }
 
   @Test
   public void emptySchemaTest() throws Exception {
-    ArrayList<Schema> schemas = new ArrayList<Schema>();
-    Schema providerSchema = new Schema();
+    ArrayList<CsdlSchema> schemas = new ArrayList<CsdlSchema>();
+    CsdlSchema providerSchema = new CsdlSchema();
     schemas.add(providerSchema);
-    EdmProvider provider = mock(EdmProvider.class);
+    CsdlEdmProvider provider = mock(CsdlEdmProvider.class);
     when(provider.getSchemas()).thenReturn(schemas);
     edm = new EdmProviderImpl(provider);
     edm.getSchemas();
@@ -205,157 +205,158 @@ public class EdmSchemaImplTest {
     assertTrue(container == edm.getEntityContainer(null));
   }
 
-  private class LocalProvider extends AbstractEdmProvider {
+  private class LocalProvider extends CsdlAbstractEdmProvider {
 
     private static final String ALIAS = "alias";
     private static final String NAMESPACE = "org.namespace";
 
     @Override
-    public EnumType getEnumType(final FullQualifiedName enumTypeName) throws ODataException {
+    public CsdlEnumType getEnumType(final FullQualifiedName enumTypeName) throws ODataException {
       throw new RuntimeException("Provider must not be called in the schema case");
     }
 
     @Override
-    public TypeDefinition getTypeDefinition(final FullQualifiedName typeDefinitionName) throws ODataException {
+    public CsdlTypeDefinition getTypeDefinition(final FullQualifiedName typeDefinitionName) throws ODataException {
       throw new RuntimeException("Provider must not be called in the schema case");
     }
 
     @Override
-    public EntityType getEntityType(final FullQualifiedName entityTypeName) throws ODataException {
+    public CsdlEntityType getEntityType(final FullQualifiedName entityTypeName) throws ODataException {
       throw new RuntimeException("Provider must not be called in the schema case");
     }
 
     @Override
-    public ComplexType getComplexType(final FullQualifiedName complexTypeName) throws ODataException {
+    public CsdlComplexType getComplexType(final FullQualifiedName complexTypeName) throws ODataException {
       throw new RuntimeException("Provider must not be called in the schema case");
     }
 
     @Override
-    public List<Action> getActions(final FullQualifiedName actionName) throws ODataException {
+    public List<CsdlAction> getActions(final FullQualifiedName actionName) throws ODataException {
       throw new RuntimeException("Provider must not be called in the schema case");
     }
 
     @Override
-    public List<Function> getFunctions(final FullQualifiedName functionName) throws ODataException {
+    public List<CsdlFunction> getFunctions(final FullQualifiedName functionName) throws ODataException {
       throw new RuntimeException("Provider must not be called in the schema case");
     }
 
     @Override
-    public Term getTerm(final FullQualifiedName termName) throws ODataException {
+    public CsdlTerm getTerm(final FullQualifiedName termName) throws ODataException {
       throw new RuntimeException("Provider must not be called in the schema case");
     }
 
     @Override
-    public EntitySet getEntitySet(final FullQualifiedName entityContainer, final String entitySetName)
+    public CsdlEntitySet getEntitySet(final FullQualifiedName entityContainer, final String entitySetName)
         throws ODataException {
       throw new RuntimeException("Provider must not be called in the schema case");
     }
 
     @Override
-    public Singleton getSingleton(final FullQualifiedName entityContainer, final String singletonName)
+    public CsdlSingleton getSingleton(final FullQualifiedName entityContainer, final String singletonName)
         throws ODataException {
       throw new RuntimeException("Provider must not be called in the schema case");
     }
 
     @Override
-    public ActionImport getActionImport(final FullQualifiedName entityContainer, final String actionImportName)
+    public CsdlActionImport getActionImport(final FullQualifiedName entityContainer, final String actionImportName)
         throws ODataException {
       throw new RuntimeException("Provider must not be called in the schema case");
     }
 
     @Override
-    public FunctionImport getFunctionImport(final FullQualifiedName entityContainer, final String functionImportName)
+    public CsdlFunctionImport getFunctionImport(final FullQualifiedName entityContainer,
+                                                final String functionImportName)
         throws ODataException {
       throw new RuntimeException("Provider must not be called in the schema case");
     }
 
     @Override
-    public EntityContainerInfo getEntityContainerInfo(final FullQualifiedName entityContainerName)
+    public CsdlEntityContainerInfo getEntityContainerInfo(final FullQualifiedName entityContainerName)
         throws ODataException {
       throw new RuntimeException("Provider must not be called in the schema case");
     }
 
     @Override
-    public List<AliasInfo> getAliasInfos() throws ODataException {
+    public List<CsdlAliasInfo> getAliasInfos() throws ODataException {
       throw new RuntimeException("Provider must not be called in the schema case");
     }
 
     @Override
-    public List<Schema> getSchemas() throws ODataException {
-      Schema providerSchema = new Schema();
+    public List<CsdlSchema> getSchemas() throws ODataException {
+      CsdlSchema providerSchema = new CsdlSchema();
       providerSchema.setNamespace(NAMESPACE);
       providerSchema.setAlias(ALIAS);
-      EntityContainer container = new EntityContainer().setName("container");
+      CsdlEntityContainer container = new CsdlEntityContainer().setName("container");
 
-      List<EntitySet> entitySets = new ArrayList<EntitySet>();
-      entitySets.add(new EntitySet().setName("entitySetName")
+      List<CsdlEntitySet> entitySets = new ArrayList<CsdlEntitySet>();
+      entitySets.add(new CsdlEntitySet().setName("entitySetName")
           .setType(new FullQualifiedName(NAMESPACE, "entityType1")));
       entitySets
-          .add(new EntitySet().setName("entitySetName2").setType(new FullQualifiedName(NAMESPACE, "entityType2")));
+          .add(new CsdlEntitySet().setName("entitySetName2").setType(new FullQualifiedName(NAMESPACE, "entityType2")));
       container.setEntitySets(entitySets);
 
-      List<Singleton> singletons = new ArrayList<Singleton>();
-      singletons.add(new Singleton().setName("singletonName")
+      List<CsdlSingleton> singletons = new ArrayList<CsdlSingleton>();
+      singletons.add(new CsdlSingleton().setName("singletonName")
           .setType(new FullQualifiedName(NAMESPACE, "entityType1")));
       singletons
-          .add(new Singleton().setName("singletonName2").setType(new FullQualifiedName(NAMESPACE, "entityType2")));
+          .add(new CsdlSingleton().setName("singletonName2").setType(new FullQualifiedName(NAMESPACE, "entityType2")));
       container.setSingletons(singletons);
 
-      List<ActionImport> actionImports = new ArrayList<ActionImport>();
-      actionImports.add(new ActionImport().setName("actionImportName").setAction(
+      List<CsdlActionImport> actionImports = new ArrayList<CsdlActionImport>();
+      actionImports.add(new CsdlActionImport().setName("actionImportName").setAction(
           new FullQualifiedName(NAMESPACE, "action1")));
-      actionImports.add(new ActionImport().setName("actionImportName2").setAction(
+      actionImports.add(new CsdlActionImport().setName("actionImportName2").setAction(
           new FullQualifiedName(NAMESPACE, "action2")));
       container.setActionImports(actionImports);
 
-      List<FunctionImport> functionImports = new ArrayList<FunctionImport>();
-      functionImports.add(new FunctionImport().setName("functionImportName").setFunction(
+      List<CsdlFunctionImport> functionImports = new ArrayList<CsdlFunctionImport>();
+      functionImports.add(new CsdlFunctionImport().setName("functionImportName").setFunction(
           new FullQualifiedName(NAMESPACE, "function1")));
-      functionImports.add(new FunctionImport().setName("functionImportName2").setFunction(
+      functionImports.add(new CsdlFunctionImport().setName("functionImportName2").setFunction(
           new FullQualifiedName(NAMESPACE, "function2")));
       container.setFunctionImports(functionImports);
       providerSchema.setEntityContainer(container);
 
-      List<TypeDefinition> typeDefinitions = new ArrayList<TypeDefinition>();
-      typeDefinitions.add(new TypeDefinition().setName("typeDefinition1").setUnderlyingType(
+      List<CsdlTypeDefinition> typeDefinitions = new ArrayList<CsdlTypeDefinition>();
+      typeDefinitions.add(new CsdlTypeDefinition().setName("typeDefinition1").setUnderlyingType(
           EdmPrimitiveTypeKind.String.getFullQualifiedName()));
-      typeDefinitions.add(new TypeDefinition().setName("typeDefinition2").setUnderlyingType(
+      typeDefinitions.add(new CsdlTypeDefinition().setName("typeDefinition2").setUnderlyingType(
           EdmPrimitiveTypeKind.String.getFullQualifiedName()));
       providerSchema.setTypeDefinitions(typeDefinitions);
 
-      List<EnumType> enumTypes = new ArrayList<EnumType>();
-      enumTypes.add(new EnumType().setName("enumType1"));
-      enumTypes.add(new EnumType().setName("enumType2"));
+      List<CsdlEnumType> enumTypes = new ArrayList<CsdlEnumType>();
+      enumTypes.add(new CsdlEnumType().setName("enumType1"));
+      enumTypes.add(new CsdlEnumType().setName("enumType2"));
       providerSchema.setEnumTypes(enumTypes);
 
-      List<EntityType> entityTypes = new ArrayList<EntityType>();
-      entityTypes.add(new EntityType().setName("entityType1"));
-      entityTypes.add(new EntityType().setName("entityType2")
+      List<CsdlEntityType> entityTypes = new ArrayList<CsdlEntityType>();
+      entityTypes.add(new CsdlEntityType().setName("entityType1"));
+      entityTypes.add(new CsdlEntityType().setName("entityType2")
           .setBaseType(new FullQualifiedName(NAMESPACE, "entityType1")));
       providerSchema.setEntityTypes(entityTypes);
 
-      List<ComplexType> complexTypes = new ArrayList<ComplexType>();
-      complexTypes.add(new ComplexType().setName("complexType1"));
-      complexTypes.add(new ComplexType().setName("complexType2").setBaseType(
+      List<CsdlComplexType> complexTypes = new ArrayList<CsdlComplexType>();
+      complexTypes.add(new CsdlComplexType().setName("complexType1"));
+      complexTypes.add(new CsdlComplexType().setName("complexType2").setBaseType(
           new FullQualifiedName(NAMESPACE, "complexType1")));
       providerSchema.setComplexTypes(complexTypes);
 
-      List<Action> actions = new ArrayList<Action>();
-      actions.add(new Action().setName("action1"));
-      actions.add(new Action().setName("action2"));
+      List<CsdlAction> actions = new ArrayList<CsdlAction>();
+      actions.add(new CsdlAction().setName("action1"));
+      actions.add(new CsdlAction().setName("action2"));
       providerSchema.setActions(actions);
 
-      List<Function> functions = new ArrayList<Function>();
-      functions.add(new Function().setName("function1"));
-      functions.add(new Function().setName("function2"));
+      List<CsdlFunction> functions = new ArrayList<CsdlFunction>();
+      functions.add(new CsdlFunction().setName("function1"));
+      functions.add(new CsdlFunction().setName("function2"));
       providerSchema.setFunctions(functions);
-      ArrayList<Schema> schemas = new ArrayList<Schema>();
+      ArrayList<CsdlSchema> schemas = new ArrayList<CsdlSchema>();
       schemas.add(providerSchema);
       return schemas;
     }
 
     @Override
-    public EntityContainer getEntityContainer() throws ODataException {
+    public CsdlEntityContainer getEntityContainer() throws ODataException {
       throw new RuntimeException("Provider must not be called in the schema case");
     }
   }

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/2318953c/lib/server-core/src/test/java/org/apache/olingo/server/core/edm/provider/EdmSingletonImplTest.java
----------------------------------------------------------------------
diff --git a/lib/server-core/src/test/java/org/apache/olingo/server/core/edm/provider/EdmSingletonImplTest.java b/lib/server-core/src/test/java/org/apache/olingo/server/core/edm/provider/EdmSingletonImplTest.java
index f502e20..d1aeb20 100644
--- a/lib/server-core/src/test/java/org/apache/olingo/server/core/edm/provider/EdmSingletonImplTest.java
+++ b/lib/server-core/src/test/java/org/apache/olingo/server/core/edm/provider/EdmSingletonImplTest.java
@@ -31,12 +31,12 @@ import org.apache.olingo.commons.api.edm.EdmEntityType;
 import org.apache.olingo.commons.api.edm.EdmException;
 import org.apache.olingo.commons.api.edm.EdmSingleton;
 import org.apache.olingo.commons.api.edm.FullQualifiedName;
-import org.apache.olingo.commons.api.edm.provider.EdmProvider;
-import org.apache.olingo.commons.api.edm.provider.EntityContainerInfo;
-import org.apache.olingo.commons.api.edm.provider.EntityType;
-import org.apache.olingo.commons.api.edm.provider.NavigationPropertyBinding;
-import org.apache.olingo.commons.api.edm.provider.PropertyRef;
-import org.apache.olingo.commons.api.edm.provider.Singleton;
+import org.apache.olingo.commons.api.edm.provider.CsdlEdmProvider;
+import org.apache.olingo.commons.api.edm.provider.CsdlEntityContainerInfo;
+import org.apache.olingo.commons.api.edm.provider.CsdlEntityType;
+import org.apache.olingo.commons.api.edm.provider.CsdlNavigationPropertyBinding;
+import org.apache.olingo.commons.api.edm.provider.CsdlPropertyRef;
+import org.apache.olingo.commons.api.edm.provider.CsdlSingleton;
 import org.apache.olingo.commons.core.edm.EdmEntityContainerImpl;
 import org.apache.olingo.commons.core.edm.EdmProviderImpl;
 import org.apache.olingo.commons.core.edm.EdmSingletonImpl;
@@ -46,28 +46,28 @@ public class EdmSingletonImplTest {
 
   @Test
   public void singleton() throws Exception {
-    EdmProvider provider = mock(EdmProvider.class);
+    CsdlEdmProvider provider = mock(CsdlEdmProvider.class);
     EdmProviderImpl edm = new EdmProviderImpl(provider);
 
     final FullQualifiedName typeName = new FullQualifiedName("ns", "entityType");
-    final EntityType entityTypeProvider = new EntityType()
+    final CsdlEntityType entityTypeProvider = new CsdlEntityType()
         .setName(typeName.getName())
-        .setKey(Arrays.asList(new PropertyRef().setName("Id")));
+        .setKey(Arrays.asList(new CsdlPropertyRef().setName("Id")));
     when(provider.getEntityType(typeName)).thenReturn(entityTypeProvider);
 
     final FullQualifiedName containerName = new FullQualifiedName("ns", "container");
-    final EntityContainerInfo containerInfo = new EntityContainerInfo().setContainerName(containerName);
+    final CsdlEntityContainerInfo containerInfo = new CsdlEntityContainerInfo().setContainerName(containerName);
     when(provider.getEntityContainerInfo(containerName)).thenReturn(containerInfo);
     final EdmEntityContainer entityContainer = new EdmEntityContainerImpl(edm, provider, containerInfo);
 
     final String singletonName = "singleton";
-    final Singleton singletonProvider =
-        new Singleton()
+    final CsdlSingleton singletonProvider =
+        new CsdlSingleton()
             .setName(singletonName)
             .setType(typeName)
             .setNavigationPropertyBindings(
                 Arrays.asList(
-                    new NavigationPropertyBinding().setPath("path").setTarget(
+                    new CsdlNavigationPropertyBinding().setPath("path").setTarget(
                         containerName.getFullQualifiedNameAsString() + "/" + singletonName)));
     when(provider.getSingleton(containerName, singletonName)).thenReturn(singletonProvider);
 
@@ -85,17 +85,17 @@ public class EdmSingletonImplTest {
 
   @Test(expected = EdmException.class)
   public void wrongTarget() throws Exception {
-    EdmProvider provider = mock(EdmProvider.class);
+    CsdlEdmProvider provider = mock(CsdlEdmProvider.class);
     EdmProviderImpl edm = new EdmProviderImpl(provider);
 
     final FullQualifiedName containerName = new FullQualifiedName("ns", "container");
-    final EntityContainerInfo containerInfo = new EntityContainerInfo().setContainerName(containerName);
+    final CsdlEntityContainerInfo containerInfo = new CsdlEntityContainerInfo().setContainerName(containerName);
     when(provider.getEntityContainerInfo(containerName)).thenReturn(containerInfo);
 
     final String singletonName = "singleton";
-    final Singleton singletonProvider = new Singleton()
+    final CsdlSingleton singletonProvider = new CsdlSingleton()
         .setNavigationPropertyBindings(Arrays.asList(
-            new NavigationPropertyBinding().setPath("path")
+            new CsdlNavigationPropertyBinding().setPath("path")
                 .setTarget(containerName.getFullQualifiedNameAsString() + "/wrong")));
     when(provider.getSingleton(containerName, singletonName)).thenReturn(singletonProvider);
 
@@ -105,14 +105,14 @@ public class EdmSingletonImplTest {
 
   @Test(expected = EdmException.class)
   public void wrongTargetContainer() throws Exception {
-    EdmProvider provider = mock(EdmProvider.class);
+    CsdlEdmProvider provider = mock(CsdlEdmProvider.class);
     EdmProviderImpl edm = new EdmProviderImpl(provider);
 
     final FullQualifiedName containerName = new FullQualifiedName("ns", "container");
     final String singletonName = "singleton";
-    final Singleton singletonProvider = new Singleton()
+    final CsdlSingleton singletonProvider = new CsdlSingleton()
         .setNavigationPropertyBindings(Arrays.asList(
-            new NavigationPropertyBinding().setPath("path").setTarget("ns.wrongContainer/" + singletonName)));
+            new CsdlNavigationPropertyBinding().setPath("path").setTarget("ns.wrongContainer/" + singletonName)));
     when(provider.getSingleton(containerName, singletonName)).thenReturn(singletonProvider);
 
     final EdmSingleton singleton = new EdmSingletonImpl(edm, null, singletonProvider);
@@ -121,10 +121,10 @@ public class EdmSingletonImplTest {
 
   @Test(expected = EdmException.class)
   public void nonExsistingEntityType() throws Exception {
-    EdmProvider provider = mock(EdmProvider.class);
+    CsdlEdmProvider provider = mock(CsdlEdmProvider.class);
     EdmProviderImpl edm = new EdmProviderImpl(provider);
 
-    Singleton singleton = new Singleton().setName("name");
+    CsdlSingleton singleton = new CsdlSingleton().setName("name");
     final EdmSingleton edmSingleton = new EdmSingletonImpl(edm, null, singleton);
     edmSingleton.getEntityType();
   }

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/2318953c/lib/server-core/src/test/java/org/apache/olingo/server/core/edm/provider/EdmTypeDefinitionImplTest.java
----------------------------------------------------------------------
diff --git a/lib/server-core/src/test/java/org/apache/olingo/server/core/edm/provider/EdmTypeDefinitionImplTest.java b/lib/server-core/src/test/java/org/apache/olingo/server/core/edm/provider/EdmTypeDefinitionImplTest.java
index 845dea7..cf610c3 100644
--- a/lib/server-core/src/test/java/org/apache/olingo/server/core/edm/provider/EdmTypeDefinitionImplTest.java
+++ b/lib/server-core/src/test/java/org/apache/olingo/server/core/edm/provider/EdmTypeDefinitionImplTest.java
@@ -23,7 +23,7 @@ import org.apache.olingo.commons.api.edm.EdmPrimitiveTypeKind;
 import org.apache.olingo.commons.api.edm.EdmTypeDefinition;
 import org.apache.olingo.commons.api.edm.FullQualifiedName;
 import org.apache.olingo.commons.api.edm.constants.EdmTypeKind;
-import org.apache.olingo.commons.api.edm.provider.TypeDefinition;
+import org.apache.olingo.commons.api.edm.provider.CsdlTypeDefinition;
 import org.apache.olingo.commons.core.edm.primitivetype.EdmPrimitiveTypeFactory;
 import org.apache.olingo.commons.core.edm.EdmProviderImpl;
 import org.apache.olingo.commons.core.edm.EdmTypeDefinitionImpl;
@@ -39,8 +39,8 @@ public class EdmTypeDefinitionImplTest {
   @Test
   public void typeDefOnStringNoFacets() throws Exception {
     final FullQualifiedName typeDefName = new FullQualifiedName("namespace", "name");
-    final TypeDefinition providerTypeDef =
-        new TypeDefinition().setName("typeDef").setUnderlyingType(new FullQualifiedName("Edm", "String"));
+    final CsdlTypeDefinition providerTypeDef =
+        new CsdlTypeDefinition().setName("typeDef").setUnderlyingType(new FullQualifiedName("Edm", "String"));
     final EdmTypeDefinition typeDefImpl =
         new EdmTypeDefinitionImpl(mock(EdmProviderImpl.class), typeDefName, providerTypeDef);
 
@@ -68,8 +68,8 @@ public class EdmTypeDefinitionImplTest {
   @Test(expected = EdmException.class)
   public void invalidTypeResultsInEdmException() throws Exception {
     FullQualifiedName typeDefName = new FullQualifiedName("namespace", "name");
-    TypeDefinition providerTypeDef =
-        new TypeDefinition().setName("typeDef").setUnderlyingType(new FullQualifiedName("wrong", "wrong"));
+    CsdlTypeDefinition providerTypeDef =
+        new CsdlTypeDefinition().setName("typeDef").setUnderlyingType(new FullQualifiedName("wrong", "wrong"));
     EdmTypeDefinitionImpl def = new EdmTypeDefinitionImpl(mock(EdmProviderImpl.class), typeDefName, providerTypeDef);
     def.getUnderlyingType();
   }

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/2318953c/lib/server-core/src/test/java/org/apache/olingo/server/core/edm/provider/EdmTypeImplTest.java
----------------------------------------------------------------------
diff --git a/lib/server-core/src/test/java/org/apache/olingo/server/core/edm/provider/EdmTypeImplTest.java b/lib/server-core/src/test/java/org/apache/olingo/server/core/edm/provider/EdmTypeImplTest.java
index 5249de7..c440c9d 100644
--- a/lib/server-core/src/test/java/org/apache/olingo/server/core/edm/provider/EdmTypeImplTest.java
+++ b/lib/server-core/src/test/java/org/apache/olingo/server/core/edm/provider/EdmTypeImplTest.java
@@ -22,8 +22,8 @@ import org.apache.olingo.commons.api.edm.EdmAnnotatable;
 import org.apache.olingo.commons.api.edm.EdmType;
 import org.apache.olingo.commons.api.edm.FullQualifiedName;
 import org.apache.olingo.commons.api.edm.constants.EdmTypeKind;
-import org.apache.olingo.commons.api.edm.provider.Annotatable;
-import org.apache.olingo.commons.api.edm.provider.Annotation;
+import org.apache.olingo.commons.api.edm.provider.CsdlAnnotatable;
+import org.apache.olingo.commons.api.edm.provider.CsdlAnnotation;
 import org.apache.olingo.commons.core.edm.EdmTypeImpl;
 import org.junit.Test;
 
@@ -51,10 +51,10 @@ public class EdmTypeImplTest {
     }
   }
 
-  private class AnnoTester implements Annotatable {
+  private class AnnoTester implements CsdlAnnotatable {
     @Override
-    public List<Annotation> getAnnotations() {
-      Annotation annotation = new Annotation();
+    public List<CsdlAnnotation> getAnnotations() {
+      CsdlAnnotation annotation = new CsdlAnnotation();
       annotation.setTerm("NS.SimpleTerm");
       return Arrays.asList(annotation);
     }

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/2318953c/lib/server-core/src/test/java/org/apache/olingo/server/core/serializer/json/ComplexTypeHelper.java
----------------------------------------------------------------------
diff --git a/lib/server-core/src/test/java/org/apache/olingo/server/core/serializer/json/ComplexTypeHelper.java b/lib/server-core/src/test/java/org/apache/olingo/server/core/serializer/json/ComplexTypeHelper.java
index 4333308..567e3a5 100644
--- a/lib/server-core/src/test/java/org/apache/olingo/server/core/serializer/json/ComplexTypeHelper.java
+++ b/lib/server-core/src/test/java/org/apache/olingo/server/core/serializer/json/ComplexTypeHelper.java
@@ -28,36 +28,36 @@ import org.apache.olingo.commons.api.ODataException;
 import org.apache.olingo.commons.api.edm.EdmComplexType;
 import org.apache.olingo.commons.api.edm.EdmPrimitiveTypeKind;
 import org.apache.olingo.commons.api.edm.FullQualifiedName;
-import org.apache.olingo.commons.api.edm.provider.ComplexType;
-import org.apache.olingo.commons.api.edm.provider.EdmProvider;
-import org.apache.olingo.commons.api.edm.provider.NavigationProperty;
-import org.apache.olingo.commons.api.edm.provider.Property;
+import org.apache.olingo.commons.api.edm.provider.CsdlComplexType;
+import org.apache.olingo.commons.api.edm.provider.CsdlEdmProvider;
+import org.apache.olingo.commons.api.edm.provider.CsdlNavigationProperty;
+import org.apache.olingo.commons.api.edm.provider.CsdlProperty;
 import org.apache.olingo.commons.core.edm.EdmComplexTypeImpl;
 import org.apache.olingo.commons.core.edm.EdmProviderImpl;
 
 public class ComplexTypeHelper {
 
   public static EdmComplexType createType() throws ODataException {
-    EdmProvider provider = mock(EdmProvider.class);
+    CsdlEdmProvider provider = mock(CsdlEdmProvider.class);
     EdmProviderImpl edm = new EdmProviderImpl(provider);
 
     FullQualifiedName baseName = new FullQualifiedName("namespace", "BaseTypeName");
-    ComplexType baseComplexType = new ComplexType();
-    List<Property> baseProperties = new ArrayList<Property>();
-    baseProperties.add(new Property().setName("prop1").setType(
+    CsdlComplexType baseComplexType = new CsdlComplexType();
+    List<CsdlProperty> baseProperties = new ArrayList<CsdlProperty>();
+    baseProperties.add(new CsdlProperty().setName("prop1").setType(
         EdmPrimitiveTypeKind.String.getFullQualifiedName()));
-    List<NavigationProperty> baseNavigationProperties = new ArrayList<NavigationProperty>();
-    baseNavigationProperties.add(new NavigationProperty().setName("nav1"));
+    List<CsdlNavigationProperty> baseNavigationProperties = new ArrayList<CsdlNavigationProperty>();
+    baseNavigationProperties.add(new CsdlNavigationProperty().setName("nav1"));
     baseComplexType.setName("BaseTypeName").setAbstract(false).setOpenType(false).setProperties(baseProperties)
         .setNavigationProperties(baseNavigationProperties);
     when(provider.getComplexType(baseName)).thenReturn(baseComplexType);
 
     FullQualifiedName name = new FullQualifiedName("namespace", "typeName");
-    ComplexType complexType = new ComplexType().setBaseType(baseName);
-    List<Property> properties = new ArrayList<Property>();
-    properties.add(new Property().setName("prop2").setType(EdmPrimitiveTypeKind.String.getFullQualifiedName()));
-    List<NavigationProperty> navigationProperties = new ArrayList<NavigationProperty>();
-    navigationProperties.add(new NavigationProperty().setName("nav2"));
+    CsdlComplexType complexType = new CsdlComplexType().setBaseType(baseName);
+    List<CsdlProperty> properties = new ArrayList<CsdlProperty>();
+    properties.add(new CsdlProperty().setName("prop2").setType(EdmPrimitiveTypeKind.String.getFullQualifiedName()));
+    List<CsdlNavigationProperty> navigationProperties = new ArrayList<CsdlNavigationProperty>();
+    navigationProperties.add(new CsdlNavigationProperty().setName("nav2"));
     complexType.setName("BaseTypeName").setAbstract(false).setOpenType(false).setProperties(properties)
         .setNavigationProperties(navigationProperties);
     when(provider.getComplexType(name)).thenReturn(complexType);

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/2318953c/lib/server-core/src/test/java/org/apache/olingo/server/core/serializer/utils/ContextURLBuilderTest.java
----------------------------------------------------------------------
diff --git a/lib/server-core/src/test/java/org/apache/olingo/server/core/serializer/utils/ContextURLBuilderTest.java b/lib/server-core/src/test/java/org/apache/olingo/server/core/serializer/utils/ContextURLBuilderTest.java
index af5b421..df4ed77 100644
--- a/lib/server-core/src/test/java/org/apache/olingo/server/core/serializer/utils/ContextURLBuilderTest.java
+++ b/lib/server-core/src/test/java/org/apache/olingo/server/core/serializer/utils/ContextURLBuilderTest.java
@@ -33,10 +33,10 @@ import org.apache.olingo.commons.api.edm.EdmEntitySet;
 import org.apache.olingo.commons.api.edm.EdmEntityType;
 import org.apache.olingo.commons.api.edm.EdmPrimitiveTypeKind;
 import org.apache.olingo.commons.api.edm.FullQualifiedName;
-import org.apache.olingo.commons.api.edm.provider.ComplexType;
-import org.apache.olingo.commons.api.edm.provider.EdmProvider;
-import org.apache.olingo.commons.api.edm.provider.NavigationProperty;
-import org.apache.olingo.commons.api.edm.provider.Property;
+import org.apache.olingo.commons.api.edm.provider.CsdlComplexType;
+import org.apache.olingo.commons.api.edm.provider.CsdlEdmProvider;
+import org.apache.olingo.commons.api.edm.provider.CsdlNavigationProperty;
+import org.apache.olingo.commons.api.edm.provider.CsdlProperty;
 import org.apache.olingo.commons.core.edm.primitivetype.EdmString;
 import org.apache.olingo.commons.core.edm.EdmComplexTypeImpl;
 import org.apache.olingo.commons.core.edm.EdmProviderImpl;
@@ -175,16 +175,16 @@ public class ContextURLBuilderTest {
 
   @Test
   public void buildComplexType() throws Exception {
-    EdmProvider provider = mock(EdmProvider.class);
+    CsdlEdmProvider provider = mock(CsdlEdmProvider.class);
     EdmProviderImpl edm = new EdmProviderImpl(provider);
 
     FullQualifiedName baseName = new FullQualifiedName("namespace", "BaseTypeName");
-    ComplexType baseComplexType = new ComplexType();
-    List<Property> baseProperties = new ArrayList<Property>();
-    baseProperties.add(new Property().setName("prop1").setType(
+    CsdlComplexType baseComplexType = new CsdlComplexType();
+    List<CsdlProperty> baseProperties = new ArrayList<CsdlProperty>();
+    baseProperties.add(new CsdlProperty().setName("prop1").setType(
         EdmPrimitiveTypeKind.String.getFullQualifiedName()));
-    List<NavigationProperty> baseNavigationProperties = new ArrayList<NavigationProperty>();
-    baseNavigationProperties.add(new NavigationProperty().setName("nav1"));
+    List<CsdlNavigationProperty> baseNavigationProperties = new ArrayList<CsdlNavigationProperty>();
+    baseNavigationProperties.add(new CsdlNavigationProperty().setName("nav1"));
     baseComplexType.setName("BaseTypeName").setAbstract(false).setOpenType(false).setProperties(baseProperties)
         .setNavigationProperties(baseNavigationProperties);
     when(provider.getComplexType(baseName)).thenReturn(baseComplexType);

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/2318953c/lib/server-core/src/test/java/org/apache/olingo/server/core/serializer/xml/MetadataDocumentXmlSerializerTest.java
----------------------------------------------------------------------
diff --git a/lib/server-core/src/test/java/org/apache/olingo/server/core/serializer/xml/MetadataDocumentXmlSerializerTest.java b/lib/server-core/src/test/java/org/apache/olingo/server/core/serializer/xml/MetadataDocumentXmlSerializerTest.java
index d1b73f7..560685b 100644
--- a/lib/server-core/src/test/java/org/apache/olingo/server/core/serializer/xml/MetadataDocumentXmlSerializerTest.java
+++ b/lib/server-core/src/test/java/org/apache/olingo/server/core/serializer/xml/MetadataDocumentXmlSerializerTest.java
@@ -38,25 +38,25 @@ import org.apache.olingo.commons.api.edm.EdmComplexType;
 import org.apache.olingo.commons.api.edm.EdmPrimitiveTypeKind;
 import org.apache.olingo.commons.api.edm.EdmSchema;
 import org.apache.olingo.commons.api.edm.FullQualifiedName;
-import org.apache.olingo.commons.api.edm.provider.AbstractEdmProvider;
-import org.apache.olingo.commons.api.edm.provider.Action;
-import org.apache.olingo.commons.api.edm.provider.ActionImport;
-import org.apache.olingo.commons.api.edm.provider.AliasInfo;
-import org.apache.olingo.commons.api.edm.provider.ComplexType;
-import org.apache.olingo.commons.api.edm.provider.EdmProvider;
-import org.apache.olingo.commons.api.edm.provider.EntityContainer;
-import org.apache.olingo.commons.api.edm.provider.EntitySet;
-import org.apache.olingo.commons.api.edm.provider.EntityType;
-import org.apache.olingo.commons.api.edm.provider.EnumMember;
-import org.apache.olingo.commons.api.edm.provider.EnumType;
-import org.apache.olingo.commons.api.edm.provider.Function;
-import org.apache.olingo.commons.api.edm.provider.FunctionImport;
-import org.apache.olingo.commons.api.edm.provider.Parameter;
-import org.apache.olingo.commons.api.edm.provider.Property;
-import org.apache.olingo.commons.api.edm.provider.PropertyRef;
-import org.apache.olingo.commons.api.edm.provider.ReturnType;
-import org.apache.olingo.commons.api.edm.provider.Schema;
-import org.apache.olingo.commons.api.edm.provider.Singleton;
+import org.apache.olingo.commons.api.edm.provider.CsdlAbstractEdmProvider;
+import org.apache.olingo.commons.api.edm.provider.CsdlAction;
+import org.apache.olingo.commons.api.edm.provider.CsdlActionImport;
+import org.apache.olingo.commons.api.edm.provider.CsdlAliasInfo;
+import org.apache.olingo.commons.api.edm.provider.CsdlComplexType;
+import org.apache.olingo.commons.api.edm.provider.CsdlEdmProvider;
+import org.apache.olingo.commons.api.edm.provider.CsdlEntityContainer;
+import org.apache.olingo.commons.api.edm.provider.CsdlEntitySet;
+import org.apache.olingo.commons.api.edm.provider.CsdlEntityType;
+import org.apache.olingo.commons.api.edm.provider.CsdlEnumMember;
+import org.apache.olingo.commons.api.edm.provider.CsdlEnumType;
+import org.apache.olingo.commons.api.edm.provider.CsdlFunction;
+import org.apache.olingo.commons.api.edm.provider.CsdlFunctionImport;
+import org.apache.olingo.commons.api.edm.provider.CsdlParameter;
+import org.apache.olingo.commons.api.edm.provider.CsdlProperty;
+import org.apache.olingo.commons.api.edm.provider.CsdlPropertyRef;
+import org.apache.olingo.commons.api.edm.provider.CsdlReturnType;
+import org.apache.olingo.commons.api.edm.provider.CsdlSchema;
+import org.apache.olingo.commons.api.edm.provider.CsdlSingleton;
 import org.apache.olingo.commons.api.format.ODataFormat;
 import org.apache.olingo.commons.core.edm.EdmComplexTypeImpl;
 import org.apache.olingo.server.api.OData;
@@ -212,7 +212,7 @@ public class MetadataDocumentXmlSerializerTest {
 
   @Test
   public void aliasTest() throws Exception {
-    EdmProvider provider = new LocalProvider();
+    CsdlEdmProvider provider = new LocalProvider();
     ServiceMetadata serviceMetadata = new ServiceMetadataImpl(provider, Collections.<EdmxReference> emptyList());
     InputStream metadataStream = serializer.metadataDocument(serviceMetadata).getContent();
     String metadata = IOUtils.toString(metadataStream);
@@ -240,14 +240,14 @@ public class MetadataDocumentXmlSerializerTest {
     List<EdmComplexType> complexTypes = new ArrayList<EdmComplexType>();
 
     FullQualifiedName name = new FullQualifiedName("namespace", "ComplexType");
-    ComplexType complexType = new ComplexType();
+    CsdlComplexType complexType = new CsdlComplexType();
     complexType.setAbstract(true);
     complexType.setName(name.getName());
     complexType.setOpenType(true);
-    List<Property> properties = new ArrayList<Property>();
+    List<CsdlProperty> properties = new ArrayList<CsdlProperty>();
 
-    properties.add(new Property().setName("prop1").setType(EdmPrimitiveTypeKind.String.getFullQualifiedName()));
-    properties.add(new Property().setName("prop2").setType(EdmPrimitiveTypeKind.String.getFullQualifiedName()));
+    properties.add(new CsdlProperty().setName("prop1").setType(EdmPrimitiveTypeKind.String.getFullQualifiedName()));
+    properties.add(new CsdlProperty().setName("prop2").setType(EdmPrimitiveTypeKind.String.getFullQualifiedName()));
 
     complexType.setProperties(properties);
     EdmComplexTypeImpl c1 = new EdmComplexTypeImpl(edm, name, complexType);
@@ -263,7 +263,7 @@ public class MetadataDocumentXmlSerializerTest {
         + "</ComplexType>"));
   }
 
-  private class LocalProvider extends AbstractEdmProvider {
+  private class LocalProvider extends CsdlAbstractEdmProvider {
     private final static String nameSpace = "namespace";
 
     private final FullQualifiedName nameETAbstract = new FullQualifiedName(nameSpace, "ETAbstract");
@@ -272,11 +272,11 @@ public class MetadataDocumentXmlSerializerTest {
     private final FullQualifiedName nameInt16 = EdmPrimitiveTypeKind.Int16.getFullQualifiedName();
     private final FullQualifiedName nameString = EdmPrimitiveTypeKind.String.getFullQualifiedName();
     private final FullQualifiedName nameUARTPrimParam = new FullQualifiedName(nameSpace, "UARTPrimParam");
-    private final Property propertyInt16_NotNullable = new Property()
+    private final CsdlProperty propertyInt16_NotNullable = new CsdlProperty()
         .setName("PropertyInt16")
         .setType(nameInt16)
         .setNullable(false);
-    private final Property propertyString = new Property()
+    private final CsdlProperty propertyString = new CsdlProperty()
         .setName("PropertyString")
         .setType(nameString);
 
@@ -287,35 +287,35 @@ public class MetadataDocumentXmlSerializerTest {
     private final FullQualifiedName nameENString = new FullQualifiedName(nameSpace, "ENString");
 
     @Override
-    public List<AliasInfo> getAliasInfos() throws ODataException {
+    public List<CsdlAliasInfo> getAliasInfos() throws ODataException {
       return Arrays.asList(
-          new AliasInfo().setAlias("Alias").setNamespace(nameSpace)
+          new CsdlAliasInfo().setAlias("Alias").setNamespace(nameSpace)
           );
     }
 
     @Override
-    public EnumType getEnumType(final FullQualifiedName enumTypeName) throws ODataException {
-      return new EnumType()
+    public CsdlEnumType getEnumType(final FullQualifiedName enumTypeName) throws ODataException {
+      return new CsdlEnumType()
           .setName("ENString")
           .setFlags(true)
           .setUnderlyingType(EdmPrimitiveTypeKind.Int16.getFullQualifiedName())
           .setMembers(Arrays.asList(
-              new EnumMember().setName("String1").setValue("1")));
+              new CsdlEnumMember().setName("String1").setValue("1")));
     }
 
     @Override
-    public EntityType getEntityType(final FullQualifiedName entityTypeName) throws ODataException {
+    public CsdlEntityType getEntityType(final FullQualifiedName entityTypeName) throws ODataException {
       if (entityTypeName.equals(nameETAbstract)) {
-        return new EntityType()
+        return new CsdlEntityType()
             .setName("ETAbstract")
             .setAbstract(true)
             .setProperties(Arrays.asList(propertyString));
 
       } else if (entityTypeName.equals(nameETAbstractBase)) {
-        return new EntityType()
+        return new CsdlEntityType()
             .setName("ETAbstractBase")
             .setBaseType(nameETAbstract)
-            .setKey(Arrays.asList(new PropertyRef().setName("PropertyInt16")))
+            .setKey(Arrays.asList(new CsdlPropertyRef().setName("PropertyInt16")))
             .setProperties(Arrays.asList(
                 propertyInt16_NotNullable));
       }
@@ -323,15 +323,15 @@ public class MetadataDocumentXmlSerializerTest {
     }
 
     @Override
-    public ComplexType getComplexType(final FullQualifiedName complexTypeName) throws ODataException {
+    public CsdlComplexType getComplexType(final FullQualifiedName complexTypeName) throws ODataException {
       if (complexTypeName.equals(nameCTTwoPrim)) {
-        return new ComplexType()
+        return new CsdlComplexType()
             .setName("CTTwoPrim")
             .setProperties(Arrays.asList(propertyInt16_NotNullable, propertyString));
 
       }
       if (complexTypeName.equals(nameCTTwoPrimBase)) {
-        return new ComplexType()
+        return new CsdlComplexType()
             .setName("CTTwoPrimBase")
             .setBaseType(nameCTTwoPrim)
             .setProperties(Arrays.asList(propertyInt16_NotNullable, propertyString));
@@ -342,14 +342,14 @@ public class MetadataDocumentXmlSerializerTest {
     }
 
     @Override
-    public List<Action> getActions(final FullQualifiedName actionName) throws ODataException {
+    public List<CsdlAction> getActions(final FullQualifiedName actionName) throws ODataException {
       if (actionName.equals(nameUARTPrimParam)) {
         return Arrays.asList(
-            new Action().setName("UARTPrimParam")
+            new CsdlAction().setName("UARTPrimParam")
                 .setParameters(Arrays.asList(
-                    new Parameter().setName("ParameterInt16").setType(nameInt16)))
+                    new CsdlParameter().setName("ParameterInt16").setType(nameInt16)))
 
-                .setReturnType(new ReturnType().setType(nameString))
+                .setReturnType(new CsdlReturnType().setType(nameString))
             );
 
       }
@@ -357,14 +357,14 @@ public class MetadataDocumentXmlSerializerTest {
     }
 
     @Override
-    public List<Function> getFunctions(final FullQualifiedName functionName) throws ODataException {
+    public List<CsdlFunction> getFunctions(final FullQualifiedName functionName) throws ODataException {
       if (functionName.equals(nameUFNRTInt16)) {
         return Arrays.asList(
-            new Function()
+            new CsdlFunction()
                 .setName("UFNRTInt16")
-                .setParameters(new ArrayList<Parameter>())
+                .setParameters(new ArrayList<CsdlParameter>())
                 .setReturnType(
-                    new ReturnType().setType(nameInt16))
+                    new CsdlReturnType().setType(nameInt16))
             );
 
       }
@@ -372,10 +372,10 @@ public class MetadataDocumentXmlSerializerTest {
     }
 
     @Override
-    public EntitySet getEntitySet(final FullQualifiedName entityContainer, final String entitySetName)
+    public CsdlEntitySet getEntitySet(final FullQualifiedName entityContainer, final String entitySetName)
         throws ODataException {
       if (entitySetName.equals("ESAllPrim")) {
-        return new EntitySet()
+        return new CsdlEntitySet()
             .setName("ESAllPrim")
             .setType(nameETAbstractBase);
 
@@ -384,10 +384,10 @@ public class MetadataDocumentXmlSerializerTest {
     }
 
     @Override
-    public Singleton getSingleton(final FullQualifiedName entityContainer, final String singletonName)
+    public CsdlSingleton getSingleton(final FullQualifiedName entityContainer, final String singletonName)
         throws ODataException {
       if (singletonName.equals("SI")) {
-        return new Singleton()
+        return new CsdlSingleton()
             .setName("SI")
             .setType(nameETAbstractBase);
 
@@ -396,11 +396,11 @@ public class MetadataDocumentXmlSerializerTest {
     }
 
     @Override
-    public ActionImport getActionImport(final FullQualifiedName entityContainer, final String actionImportName)
+    public CsdlActionImport getActionImport(final FullQualifiedName entityContainer, final String actionImportName)
         throws ODataException {
       if (entityContainer.equals(nameContainer)) {
         if (actionImportName.equals("AIRTPrimParam")) {
-          return new ActionImport()
+          return new CsdlActionImport()
               .setName("AIRTPrimParam")
               .setAction(nameUARTPrimParam);
 
@@ -410,11 +410,12 @@ public class MetadataDocumentXmlSerializerTest {
     }
 
     @Override
-    public FunctionImport getFunctionImport(final FullQualifiedName entityContainer, final String functionImportName)
+    public CsdlFunctionImport getFunctionImport(final FullQualifiedName entityContainer,
+                                                final String functionImportName)
         throws ODataException {
       if (entityContainer.equals(nameContainer)) {
         if (functionImportName.equals("FINRTInt16")) {
-          return new FunctionImport()
+          return new CsdlFunctionImport()
               .setName("FINRTInt16")
               .setFunction(nameUFNRTInt16)
               .setIncludeInServiceDocument(true);
@@ -425,25 +426,25 @@ public class MetadataDocumentXmlSerializerTest {
     }
 
     @Override
-    public List<Schema> getSchemas() throws ODataException {
-      List<Schema> schemas = new ArrayList<Schema>();
-      Schema schema = new Schema();
+    public List<CsdlSchema> getSchemas() throws ODataException {
+      List<CsdlSchema> schemas = new ArrayList<CsdlSchema>();
+      CsdlSchema schema = new CsdlSchema();
       schema.setNamespace(nameSpace);
       schema.setAlias("Alias");
       schemas.add(schema);
       // EnumTypes
-      List<EnumType> enumTypes = new ArrayList<EnumType>();
+      List<CsdlEnumType> enumTypes = new ArrayList<CsdlEnumType>();
       schema.setEnumTypes(enumTypes);
       enumTypes.add(getEnumType(nameENString));
       // EntityTypes
-      List<EntityType> entityTypes = new ArrayList<EntityType>();
+      List<CsdlEntityType> entityTypes = new ArrayList<CsdlEntityType>();
       schema.setEntityTypes(entityTypes);
 
       entityTypes.add(getEntityType(nameETAbstract));
       entityTypes.add(getEntityType(nameETAbstractBase));
 
       // ComplexTypes
-      List<ComplexType> complexType = new ArrayList<ComplexType>();
+      List<CsdlComplexType> complexType = new ArrayList<CsdlComplexType>();
       schema.setComplexTypes(complexType);
       complexType.add(getComplexType(nameCTTwoPrim));
       complexType.add(getComplexType(nameCTTwoPrimBase));
@@ -451,12 +452,12 @@ public class MetadataDocumentXmlSerializerTest {
       // TypeDefinitions
 
       // Actions
-      List<Action> actions = new ArrayList<Action>();
+      List<CsdlAction> actions = new ArrayList<CsdlAction>();
       schema.setActions(actions);
       actions.addAll(getActions(nameUARTPrimParam));
 
       // Functions
-      List<Function> functions = new ArrayList<Function>();
+      List<CsdlFunction> functions = new ArrayList<CsdlFunction>();
       schema.setFunctions(functions);
 
       functions.addAll(getFunctions(nameUFNRTInt16));
@@ -468,27 +469,27 @@ public class MetadataDocumentXmlSerializerTest {
     }
 
     @Override
-    public EntityContainer getEntityContainer() throws ODataException {
-      EntityContainer container = new EntityContainer();
+    public CsdlEntityContainer getEntityContainer() throws ODataException {
+      CsdlEntityContainer container = new CsdlEntityContainer();
       container.setName("container");
 
       // EntitySets
-      List<EntitySet> entitySets = new ArrayList<EntitySet>();
+      List<CsdlEntitySet> entitySets = new ArrayList<CsdlEntitySet>();
       container.setEntitySets(entitySets);
       entitySets.add(getEntitySet(nameContainer, "ESAllPrim"));
 
       // Singletons
-      List<Singleton> singletons = new ArrayList<Singleton>();
+      List<CsdlSingleton> singletons = new ArrayList<CsdlSingleton>();
       container.setSingletons(singletons);
       singletons.add(getSingleton(nameContainer, "SI"));
 
       // ActionImports
-      List<ActionImport> actionImports = new ArrayList<ActionImport>();
+      List<CsdlActionImport> actionImports = new ArrayList<CsdlActionImport>();
       container.setActionImports(actionImports);
       actionImports.add(getActionImport(nameContainer, "AIRTPrimParam"));
 
       // FunctionImports
-      List<FunctionImport> functionImports = new ArrayList<FunctionImport>();
+      List<CsdlFunctionImport> functionImports = new ArrayList<CsdlFunctionImport>();
       container.setFunctionImports(functionImports);
       functionImports.add(getFunctionImport(nameContainer, "FINRTInt16"));
 

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/2318953c/lib/server-tecsvc/src/main/java/org/apache/olingo/server/tecsvc/provider/ActionProvider.java
----------------------------------------------------------------------
diff --git a/lib/server-tecsvc/src/main/java/org/apache/olingo/server/tecsvc/provider/ActionProvider.java b/lib/server-tecsvc/src/main/java/org/apache/olingo/server/tecsvc/provider/ActionProvider.java
index 6426327..a7ecb9f 100644
--- a/lib/server-tecsvc/src/main/java/org/apache/olingo/server/tecsvc/provider/ActionProvider.java
+++ b/lib/server-tecsvc/src/main/java/org/apache/olingo/server/tecsvc/provider/ActionProvider.java
@@ -24,9 +24,9 @@ import java.util.List;
 
 import org.apache.olingo.commons.api.ODataException;
 import org.apache.olingo.commons.api.edm.FullQualifiedName;
-import org.apache.olingo.commons.api.edm.provider.Action;
-import org.apache.olingo.commons.api.edm.provider.Parameter;
-import org.apache.olingo.commons.api.edm.provider.ReturnType;
+import org.apache.olingo.commons.api.edm.provider.CsdlAction;
+import org.apache.olingo.commons.api.edm.provider.CsdlParameter;
+import org.apache.olingo.commons.api.edm.provider.CsdlReturnType;
 
 public class ActionProvider {
 
@@ -79,176 +79,176 @@ public class ActionProvider {
       new FullQualifiedName(SchemaProvider.NAMESPACE, "UARTTwoParam");
 
 
-  public List<Action> getActions(final FullQualifiedName actionName) throws ODataException {
+  public List<CsdlAction> getActions(final FullQualifiedName actionName) throws ODataException {
     if (actionName.equals(nameUARTString)) {
       return Collections.singletonList(
-          new Action().setName(nameUARTString.getName())
-              .setReturnType(new ReturnType().setType(PropertyProvider.nameString)));
+          new CsdlAction().setName(nameUARTString.getName())
+              .setReturnType(new CsdlReturnType().setType(PropertyProvider.nameString)));
 
     } else if (actionName.equals(nameUARTCollStringTwoParam)) {
         return Collections.singletonList(
-            new Action().setName(nameUARTCollStringTwoParam.getName())
+            new CsdlAction().setName(nameUARTCollStringTwoParam.getName())
                 .setParameters(Arrays.asList(
-                    new Parameter().setName("ParameterInt16").setType(PropertyProvider.nameInt16),
-                    new Parameter().setName("ParameterDuration").setType(PropertyProvider.nameDuration)))
-                .setReturnType(new ReturnType().setType(PropertyProvider.nameString).setCollection(true)));
+                    new CsdlParameter().setName("ParameterInt16").setType(PropertyProvider.nameInt16),
+                    new CsdlParameter().setName("ParameterDuration").setType(PropertyProvider.nameDuration)))
+                .setReturnType(new CsdlReturnType().setType(PropertyProvider.nameString).setCollection(true)));
 
     } else if (actionName.equals(nameUARTCTTwoPrimParam)) {
       return Collections.singletonList(
-          new Action().setName(nameUARTCTTwoPrimParam.getName())
+          new CsdlAction().setName(nameUARTCTTwoPrimParam.getName())
               .setParameters(Collections.singletonList(
-                  new Parameter().setName("ParameterInt16").setType(PropertyProvider.nameInt16)
+                  new CsdlParameter().setName("ParameterInt16").setType(PropertyProvider.nameInt16)
                       .setNullable(false)))
               .setReturnType(
-                  new ReturnType().setType(ComplexTypeProvider.nameCTTwoPrim).setNullable(false)));
+                  new CsdlReturnType().setType(ComplexTypeProvider.nameCTTwoPrim).setNullable(false)));
       
     } else if (actionName.equals(nameUARTCollCTTwoPrimParam)) {
       return Collections.singletonList(
-          new Action().setName(nameUARTCollCTTwoPrimParam.getName())
+          new CsdlAction().setName(nameUARTCollCTTwoPrimParam.getName())
               .setParameters(Collections.singletonList(
-                  new Parameter().setName("ParameterInt16").setType(PropertyProvider.nameInt16)))
+                  new CsdlParameter().setName("ParameterInt16").setType(PropertyProvider.nameInt16)))
               .setReturnType(
-                  new ReturnType().setType(ComplexTypeProvider.nameCTTwoPrim).setCollection(true)));
+                  new CsdlReturnType().setType(ComplexTypeProvider.nameCTTwoPrim).setCollection(true)));
 
     } else if (actionName.equals(nameUARTETTwoKeyTwoPrimParam)) {
       return Collections.singletonList(
-          new Action().setName(nameUARTETTwoKeyTwoPrimParam.getName())
+          new CsdlAction().setName(nameUARTETTwoKeyTwoPrimParam.getName())
               .setParameters(Collections.singletonList(
-                  new Parameter().setName("ParameterInt16").setType(PropertyProvider.nameInt16)))
+                  new CsdlParameter().setName("ParameterInt16").setType(PropertyProvider.nameInt16)))
               .setReturnType(
-                  new ReturnType().setType(EntityTypeProvider.nameETTwoKeyTwoPrim)));
+                  new CsdlReturnType().setType(EntityTypeProvider.nameETTwoKeyTwoPrim)));
 
     } else if (actionName.equals(nameUARTCollETKeyNavParam)) {
       return Collections.singletonList(
-          new Action().setName(nameUARTCollETKeyNavParam.getName())
+          new CsdlAction().setName(nameUARTCollETKeyNavParam.getName())
               .setParameters(Collections.singletonList(
-                  new Parameter().setName("ParameterInt16").setType(PropertyProvider.nameInt16)))
+                  new CsdlParameter().setName("ParameterInt16").setType(PropertyProvider.nameInt16)))
               .setReturnType(
-                  new ReturnType().setType(EntityTypeProvider.nameETKeyNav).setCollection(true)));
+                  new CsdlReturnType().setType(EntityTypeProvider.nameETKeyNav).setCollection(true)));
 
     } else if (actionName.equals(nameUARTETAllPrimParam)) {
       return Collections.singletonList(
-          new Action().setName(nameUARTETAllPrimParam.getName())
+          new CsdlAction().setName(nameUARTETAllPrimParam.getName())
               .setParameters(Collections.singletonList(
-                  new Parameter().setName("ParameterDate").setType(PropertyProvider.nameDate)))
+                  new CsdlParameter().setName("ParameterDate").setType(PropertyProvider.nameDate)))
               .setReturnType(
-                  new ReturnType().setType(EntityTypeProvider.nameETAllPrim)));
+                  new CsdlReturnType().setType(EntityTypeProvider.nameETAllPrim)));
 
     } else if (actionName.equals(nameUARTCollETAllPrimParam)) {
       return Collections.singletonList(
-          new Action().setName(nameUARTCollETAllPrimParam.getName())
+          new CsdlAction().setName(nameUARTCollETAllPrimParam.getName())
               .setParameters(Collections.singletonList(
-                  new Parameter().setName("ParameterTimeOfDay")
+                  new CsdlParameter().setName("ParameterTimeOfDay")
                       .setType(PropertyProvider.nameTimeOfDay)))
               .setReturnType(
-                  new ReturnType().setType(EntityTypeProvider.nameETAllPrim).setCollection(true)));
+                  new CsdlReturnType().setType(EntityTypeProvider.nameETAllPrim).setCollection(true)));
 
     } else if (actionName.equals(nameUART)) {
-      return Collections.singletonList(new Action().setName(nameUART.getName()));
+      return Collections.singletonList(new CsdlAction().setName(nameUART.getName()));
 
     } else if (actionName.equals(nameUARTParam)) {
       return Collections.singletonList(
-          new Action()
+          new CsdlAction()
               .setName(nameUARTParam.getName())
               .setParameters(Collections.singletonList(
-                  new Parameter().setName("ParameterInt16").setType(PropertyProvider.nameInt16))));
+                  new CsdlParameter().setName("ParameterInt16").setType(PropertyProvider.nameInt16))));
 
     } else if (actionName.equals(nameUARTTwoParam)) {
       return Collections.singletonList(
-          new Action()
+          new CsdlAction()
               .setName(nameUARTTwoParam.getName())
               .setParameters(Arrays.asList(
-                  new Parameter().setName("ParameterInt16").setType(PropertyProvider.nameInt16),
-                  new Parameter().setName("ParameterDuration").setType(PropertyProvider.nameDuration))));
+                  new CsdlParameter().setName("ParameterInt16").setType(PropertyProvider.nameInt16),
+                  new CsdlParameter().setName("ParameterDuration").setType(PropertyProvider.nameDuration))));
 
     } else if (actionName.equals(nameBAETTwoKeyNavRTETTwoKeyNav)) {
       return Arrays.asList(
-          new Action().setName("BAETTwoKeyNavRTETTwoKeyNav")
+          new CsdlAction().setName("BAETTwoKeyNavRTETTwoKeyNav")
               .setParameters(Arrays.asList(
-                  new Parameter().setName("ParameterETTwoKeyNav").setType(EntityTypeProvider.nameETTwoKeyNav)
+                  new CsdlParameter().setName("ParameterETTwoKeyNav").setType(EntityTypeProvider.nameETTwoKeyNav)
                       .setNullable(false)))
               .setBound(true)
               .setReturnType(
-                  new ReturnType().setType(EntityTypeProvider.nameETTwoKeyNav))
+                  new CsdlReturnType().setType(EntityTypeProvider.nameETTwoKeyNav))
           ,
-          new Action().setName("BAETTwoKeyNavRTETTwoKeyNav")
+          new CsdlAction().setName("BAETTwoKeyNavRTETTwoKeyNav")
               .setParameters(Arrays.asList(
-                  new Parameter().setName("ParameterETKeyNav").setType(EntityTypeProvider.nameETKeyNav)
+                  new CsdlParameter().setName("ParameterETKeyNav").setType(EntityTypeProvider.nameETKeyNav)
                       .setNullable(false)))
               .setBound(true)
               .setReturnType(
-                  new ReturnType().setType(EntityTypeProvider.nameETTwoKeyNav))
+                  new CsdlReturnType().setType(EntityTypeProvider.nameETTwoKeyNav))
           );
 
     } else if (actionName.equals(nameBAESAllPrimRTETAllPrim)) {
       return Arrays.asList(
-          new Action().setName("BAESAllPrimRTETAllPrim")
+          new CsdlAction().setName("BAESAllPrimRTETAllPrim")
               .setParameters(Arrays.asList(
-                  new Parameter().setName("ParameterESAllPrim").setType(EntityTypeProvider.nameETAllPrim)
+                  new CsdlParameter().setName("ParameterESAllPrim").setType(EntityTypeProvider.nameETAllPrim)
                       .setCollection(true).setNullable(false)))
               .setBound(true)
               .setReturnType(
-                  new ReturnType().setType(EntityTypeProvider.nameETAllPrim)));
+                  new CsdlReturnType().setType(EntityTypeProvider.nameETAllPrim)));
 
     } else if (actionName.equals(nameBAESTwoKeyNavRTESTwoKeyNav)) {
       return Arrays.asList(
-          new Action().setName("BAESTwoKeyNavRTESTwoKeyNav")
+          new CsdlAction().setName("BAESTwoKeyNavRTESTwoKeyNav")
               .setParameters(Arrays.asList(
-                  new Parameter().setName("ParameterETTwoKeyNav").setType(EntityTypeProvider.nameETTwoKeyNav)
+                  new CsdlParameter().setName("ParameterETTwoKeyNav").setType(EntityTypeProvider.nameETTwoKeyNav)
                       .setCollection(true).setNullable(false)))
               .setBound(true)
               .setReturnType(
-                  new ReturnType().setType(EntityTypeProvider.nameETTwoKeyNav).setCollection(true)));
+                  new CsdlReturnType().setType(EntityTypeProvider.nameETTwoKeyNav).setCollection(true)));
     
     } else if(actionName.equals(nameBAESTwoKeyNavRTESKeyNav)) {
       return Arrays.asList(
-          new Action().setName("BAESTwoKeyNavRTESKeyNav")
+          new CsdlAction().setName("BAESTwoKeyNavRTESKeyNav")
           .setBound(true)
           .setEntitySetPath("BindingParam/NavPropertyETKeyNavMany")
           .setParameters(Arrays.asList(
-              new Parameter().setName("ParameterETTwoKeyNav")
+              new CsdlParameter().setName("ParameterETTwoKeyNav")
                   .setType(EntityTypeProvider.nameETTwoKeyNav)
                   .setCollection(true)
                   .setNullable(false)))
           .setReturnType(
-              new ReturnType().setType(EntityTypeProvider.nameETKeyNav).setCollection(true)));
+              new CsdlReturnType().setType(EntityTypeProvider.nameETKeyNav).setCollection(true)));
 
     } else if (actionName.equals(nameBAETBaseTwoKeyNavRTETBaseTwoKeyNav)) {
       return Arrays.asList(
-          new Action().setName("BAETBaseTwoKeyNavRTETBaseTwoKeyNav")
+          new CsdlAction().setName("BAETBaseTwoKeyNavRTETBaseTwoKeyNav")
               .setParameters(Arrays.asList(
-                  new Parameter().setName("ParameterETTwoKeyNav").setType(EntityTypeProvider.nameETBaseTwoKeyNav)
+                  new CsdlParameter().setName("ParameterETTwoKeyNav").setType(EntityTypeProvider.nameETBaseTwoKeyNav)
                       .setNullable(false)))
               .setBound(true)
               .setReturnType(
-                  new ReturnType().setType(EntityTypeProvider.nameETTwoKeyNav)));
+                  new CsdlReturnType().setType(EntityTypeProvider.nameETTwoKeyNav)));
 
     } else if (actionName.equals(nameBAETTwoBaseTwoKeyNavRTETBaseTwoKeyNav)) {
       return Arrays.asList(
-          new Action().setName("BAETTwoBaseTwoKeyNavRTETBaseTwoKeyNav")
+          new CsdlAction().setName("BAETTwoBaseTwoKeyNavRTETBaseTwoKeyNav")
               .setParameters(Arrays.asList(
-                  new Parameter().setName("ParameterETTwoBaseTwoKeyNav")
+                  new CsdlParameter().setName("ParameterETTwoBaseTwoKeyNav")
                       .setType(EntityTypeProvider.nameETTwoBaseTwoKeyNav)
                       .setNullable(false)))
               .setBound(true)
               .setReturnType(
-                  new ReturnType().setType(EntityTypeProvider.nameETBaseTwoKeyNav)));
+                  new CsdlReturnType().setType(EntityTypeProvider.nameETBaseTwoKeyNav)));
 
     } else if(actionName.equals(nameBAETAllPrimRT)) {
       return Arrays.asList(
-          new Action().setName("BAETAllPrimRT")
+          new CsdlAction().setName("BAETAllPrimRT")
               .setBound(true)
               .setParameters(Arrays.asList(
-                  new Parameter().setName("ParameterETAllPrim")
+                  new CsdlParameter().setName("ParameterETAllPrim")
                       .setNullable(false)
                       .setType(EntityTypeProvider.nameETAllPrim)
                   )));
     } else if(actionName.equals(nameBAESAllPrimRT)) {
       return Arrays.asList(
-          new Action().setName("BAESAllPrimRT")
+          new CsdlAction().setName("BAESAllPrimRT")
           .setBound(true)
           .setParameters(Arrays.asList(
-              new Parameter().setName("ParameterETAllPrim")
+              new CsdlParameter().setName("ParameterETAllPrim")
                   .setNullable(false)
                   .setCollection(true)
                   .setType(EntityTypeProvider.nameETAllPrim)

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/2318953c/lib/server-tecsvc/src/main/java/org/apache/olingo/server/tecsvc/provider/ComplexTypeProvider.java
----------------------------------------------------------------------
diff --git a/lib/server-tecsvc/src/main/java/org/apache/olingo/server/tecsvc/provider/ComplexTypeProvider.java b/lib/server-tecsvc/src/main/java/org/apache/olingo/server/tecsvc/provider/ComplexTypeProvider.java
index b8b4895..819c19f 100644
--- a/lib/server-tecsvc/src/main/java/org/apache/olingo/server/tecsvc/provider/ComplexTypeProvider.java
+++ b/lib/server-tecsvc/src/main/java/org/apache/olingo/server/tecsvc/provider/ComplexTypeProvider.java
@@ -23,9 +23,9 @@ import java.util.Arrays;
 
 import org.apache.olingo.commons.api.ODataException;
 import org.apache.olingo.commons.api.edm.FullQualifiedName;
-import org.apache.olingo.commons.api.edm.provider.ComplexType;
-import org.apache.olingo.commons.api.edm.provider.NavigationProperty;
-import org.apache.olingo.commons.api.edm.provider.Property;
+import org.apache.olingo.commons.api.edm.provider.CsdlComplexType;
+import org.apache.olingo.commons.api.edm.provider.CsdlNavigationProperty;
+import org.apache.olingo.commons.api.edm.provider.CsdlProperty;
 
 public class ComplexTypeProvider {
 
@@ -54,15 +54,15 @@ public class ComplexTypeProvider {
       "CTMixEnumDef");
   public static final FullQualifiedName nameCTNavCont = new FullQualifiedName(SchemaProvider.NAMESPACE, "CTNavCont");
 
-  public ComplexType getComplexType(final FullQualifiedName complexTypeName) throws ODataException {
+  public CsdlComplexType getComplexType(final FullQualifiedName complexTypeName) throws ODataException {
 
     if (complexTypeName.equals(nameCTPrim)) {
-      return new ComplexType()
+      return new CsdlComplexType()
           .setName("CTPrim")
           .setProperties(Arrays.asList(PropertyProvider.propertyInt16));
 
     } else if (complexTypeName.equals(nameCTAllPrim)) {
-      return new ComplexType()
+      return new CsdlComplexType()
           .setName("CTAllPrim")
           .setProperties(
               Arrays.asList(PropertyProvider.propertyString, PropertyProvider.propertyBinary,
@@ -73,7 +73,7 @@ public class ComplexTypeProvider {
                   PropertyProvider.propertyInt64, PropertyProvider.propertySByte,
                   PropertyProvider.propertyTimeOfDay_Precision));
     } else if (complexTypeName.equals(nameCTCollAllPrim)) {
-      return new ComplexType()
+      return new CsdlComplexType()
           .setName("CTCollAllPrim")
           .setProperties(
               Arrays.asList(
@@ -88,72 +88,72 @@ public class ComplexTypeProvider {
                   ));
 
     } else if (complexTypeName.equals(nameCTTwoPrim)) {
-      return new ComplexType()
+      return new CsdlComplexType()
           .setName("CTTwoPrim")
           .setProperties(Arrays.asList(PropertyProvider.propertyInt16_NotNullable,
               PropertyProvider.propertyString_NotNullable));
 
     } else if (complexTypeName.equals(nameCTCompNav)) {
-      return new ComplexType()
+      return new CsdlComplexType()
           .setName("CTCompNav")
           .setProperties(Arrays.asList(PropertyProvider.propertyString,
               PropertyProvider.propertyCompNav_CTNavFiveProp));
 
     } else if (complexTypeName.equals(nameCTMixPrimCollComp)) {
-      return new ComplexType()
+      return new CsdlComplexType()
           .setName("CTMixPrimCollComp")
           .setProperties(
               Arrays.asList(PropertyProvider.propertyInt16, PropertyProvider.collPropertyString,
                   PropertyProvider.propertyComp_CTTwoPrim, PropertyProvider.collPropertyComp_CTTwoPrim));
 
     } else if (complexTypeName.equals(nameCTBase)) {
-      return new ComplexType()
+      return new CsdlComplexType()
           .setName("CTBase")
           .setBaseType(nameCTTwoPrim)
           .setProperties(Arrays.asList(
-              new Property()
+              new CsdlProperty()
                   .setName("AdditionalPropString")
                   .setType(new FullQualifiedName("Edm", "String"))));
 
     } else if (complexTypeName.equals(nameCTTwoBase)) {
-      return new ComplexType()
+      return new CsdlComplexType()
           .setName("CTTwoBase")
           .setBaseType(nameCTBase);
 
     } else if (complexTypeName.equals(nameCTCompComp)) {
-      return new ComplexType()
+      return new CsdlComplexType()
           .setName("CTCompComp")
           .setProperties(Arrays.asList(PropertyProvider.propertyComp_CTTwoPrim));
 
     } else if (complexTypeName.equals(nameCTCompCollComp)) {
-      return new ComplexType()
+      return new CsdlComplexType()
           .setName("CTCompCollComp")
           .setProperties(Arrays.asList(PropertyProvider.collPropertyComp_CTTwoPrim));
 
     } else if (complexTypeName.equals(nameCTPrimComp)) {
-      return new ComplexType()
+      return new CsdlComplexType()
           .setName("CTPrimComp")
           .setProperties(Arrays.asList(PropertyProvider.propertyInt16, PropertyProvider.propertyComp_CTAllPrim));
 
     } else if (complexTypeName.equals(nameCTNavFiveProp)) {
-      return new ComplexType()
+      return new CsdlComplexType()
           .setName("CTNavFiveProp")
           .setProperties(Arrays.asList(PropertyProvider.propertyInt16))
           .setNavigationProperties((Arrays.asList(
               PropertyProvider.collectionNavPropertyETTwoKeyNavOne_ETTwoKeyNav,
               PropertyProvider.collectionNavPropertyETTwoKeyNavMany_ETTwoKeyNav_WithPartnerERKeyNavOne,
-              new NavigationProperty()
+              new CsdlNavigationProperty()
                   .setName("NavPropertyETMediaOne")
                   .setType(EntityTypeProvider.nameETMedia),
-              new NavigationProperty()
+              new CsdlNavigationProperty()
                   .setName("NavPropertyETMediaMany")
                   .setType(EntityTypeProvider.nameETMedia).setCollection(true)
               )));
 
     } else if (complexTypeName.equals(nameCTNavCont)) {
-      return new ComplexType()
+      return new CsdlComplexType()
           .setName("CTNavCont")
-          .setProperties(new ArrayList<Property>())
+          .setProperties(new ArrayList<CsdlProperty>())
           .setNavigationProperties(Arrays.asList(
               PropertyProvider.collectionNavPropertyETKeyNavContMany_CT_ETKeyNav,
               PropertyProvider.navPropertyETKeyNavContOne_CT_ETeyNav,
@@ -161,7 +161,7 @@ public class ComplexTypeProvider {
               PropertyProvider.navPropertyETTwoKeyNavContOne_CT_ETKeyNav));
 
     } else if (complexTypeName.equals(nameCTBasePrimCompNav)) {
-      return new ComplexType()
+      return new CsdlComplexType()
           .setName("CTBasePrimCompNav")
           .setBaseType(nameCTPrimComp)
           .setNavigationProperties(Arrays.asList(
@@ -171,12 +171,12 @@ public class ComplexTypeProvider {
               PropertyProvider.collectionNavPropertyETKeyNavMany_ETKeyNav));
 
     } else if (complexTypeName.equals(nameCTTwoBasePrimCompNav)) {
-      return new ComplexType()
+      return new CsdlComplexType()
           .setName("CTTwoBasePrimCompNav")
           .setBaseType(nameCTBasePrimCompNav);
 
     } else if (complexTypeName.equals(nameCTMixEnumDef)) {
-      return new ComplexType()
+      return new CsdlComplexType()
           .setName(nameCTMixEnumDef.getName())
           .setProperties(Arrays.asList(
               PropertyProvider.propertyEnumString_ENString_Nullable,


[09/50] [abbrv] olingo-odata4 git commit: [OLINGO-564] Renamed 'edm.provider.*' classes

Posted by mi...@apache.org.
http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/2318953c/lib/server-tecsvc/src/main/java/org/apache/olingo/server/tecsvc/provider/PropertyProvider.java
----------------------------------------------------------------------
diff --git a/lib/server-tecsvc/src/main/java/org/apache/olingo/server/tecsvc/provider/PropertyProvider.java b/lib/server-tecsvc/src/main/java/org/apache/olingo/server/tecsvc/provider/PropertyProvider.java
index db19766..c18ed9d 100644
--- a/lib/server-tecsvc/src/main/java/org/apache/olingo/server/tecsvc/provider/PropertyProvider.java
+++ b/lib/server-tecsvc/src/main/java/org/apache/olingo/server/tecsvc/provider/PropertyProvider.java
@@ -20,8 +20,8 @@ package org.apache.olingo.server.tecsvc.provider;
 
 import org.apache.olingo.commons.api.edm.EdmPrimitiveTypeKind;
 import org.apache.olingo.commons.api.edm.FullQualifiedName;
-import org.apache.olingo.commons.api.edm.provider.NavigationProperty;
-import org.apache.olingo.commons.api.edm.provider.Property;
+import org.apache.olingo.commons.api.edm.provider.CsdlNavigationProperty;
+import org.apache.olingo.commons.api.edm.provider.CsdlProperty;
 
 public class PropertyProvider {
 
@@ -50,731 +50,737 @@ public class PropertyProvider {
   public static final FullQualifiedName nameTimeOfDay = EdmPrimitiveTypeKind.TimeOfDay.getFullQualifiedName();
 
   // Primitive Properties --------------------------------------------------------------------------------------------
-  public static final Property collPropertyBinary = new Property()
+  public static final CsdlProperty collPropertyBinary = new CsdlProperty()
       .setName("CollPropertyBinary")
       .setType(nameBinary)
       .setCollection(true);
 
-  public static final Property collPropertyBinary_ExplicitNullable = new Property()
+  public static final CsdlProperty collPropertyBinary_ExplicitNullable = new CsdlProperty()
       .setName("CollPropertyBinary")
       .setType(nameBinary)
       .setNullable(true)
       .setCollection(true);
 
-  public static final Property collPropertyBinary_NotNullable = new Property()
+  public static final CsdlProperty collPropertyBinary_NotNullable = new CsdlProperty()
       .setName("CollPropertyBinary")
       .setType(nameBinary)
       .setNullable(false)
       .setCollection(true);
 
-  public static final Property collPropertyBoolean = new Property()
+  public static final CsdlProperty collPropertyBoolean = new CsdlProperty()
       .setName("CollPropertyBoolean")
       .setType(nameBoolean)
       .setCollection(true);
 
-  public static final Property collPropertyBoolean_ExplicitNullable = new Property()
+  public static final CsdlProperty collPropertyBoolean_ExplicitNullable = new CsdlProperty()
       .setName("CollPropertyBoolean")
       .setType(nameBoolean)
       .setNullable(true)
       .setCollection(true);
 
-  public static final Property collPropertyBoolean_NotNullable = new Property()
+  public static final CsdlProperty collPropertyBoolean_NotNullable = new CsdlProperty()
       .setName("CollPropertyBoolean")
       .setType(nameBoolean)
       .setNullable(true)
       .setCollection(true);
 
-  public static final Property collPropertyByte = new Property()
+  public static final CsdlProperty collPropertyByte = new CsdlProperty()
       .setName("CollPropertyByte")
       .setType(nameByte)
       .setCollection(true);
 
-  public static final Property collPropertyByte_ExplicitNullable = new Property()
+  public static final CsdlProperty collPropertyByte_ExplicitNullable = new CsdlProperty()
       .setName("CollPropertyByte")
       .setType(nameByte)
       .setNullable(true)
       .setCollection(true);
 
-  public static final Property collPropertyByte_NotNullable = new Property()
+  public static final CsdlProperty collPropertyByte_NotNullable = new CsdlProperty()
       .setName("CollPropertyByte")
       .setType(nameByte)
       .setNullable(false)
       .setCollection(true);
 
-  public static final Property collPropertyDate = new Property()
+  public static final CsdlProperty collPropertyDate = new CsdlProperty()
       .setName("CollPropertyDate")
       .setType(nameDate)
       .setCollection(true);
 
-  public static final Property collPropertyDate_ExplicitNullable = new Property()
+  public static final CsdlProperty collPropertyDate_ExplicitNullable = new CsdlProperty()
       .setName("CollPropertyDate")
       .setType(nameDate)
       .setNullable(true)
       .setCollection(true);
 
-  public static final Property collPropertyDate_NotNullable = new Property()
+  public static final CsdlProperty collPropertyDate_NotNullable = new CsdlProperty()
       .setName("CollPropertyDate")
       .setType(nameDate)
       .setNullable(false)
       .setCollection(true);
 
-  public static final Property collPropertyDateTimeOffset = new Property()
+  public static final CsdlProperty collPropertyDateTimeOffset = new CsdlProperty()
       .setName("CollPropertyDateTimeOffset")
       .setType(nameDateTimeOffset)
       .setCollection(true);
 
-  public static final Property collPropertyDateTimeOffset_ExplicitNullable = new Property()
+  public static final CsdlProperty collPropertyDateTimeOffset_ExplicitNullable = new CsdlProperty()
       .setName("CollPropertyDateTimeOffset")
       .setType(nameDateTimeOffset)
       .setNullable(true)
       .setCollection(true);
 
-  public static final Property collPropertyDateTimeOffset_NotNullable = new Property()
+  public static final CsdlProperty collPropertyDateTimeOffset_NotNullable = new CsdlProperty()
       .setName("CollPropertyDateTimeOffset")
       .setType(nameDateTimeOffset)
       .setNullable(false)
       .setCollection(true);
 
-  public static final Property collPropertyDecimal = new Property()
+  public static final CsdlProperty collPropertyDecimal = new CsdlProperty()
       .setName("CollPropertyDecimal")
       .setType(nameDecimal)
       .setCollection(true);
 
-  public static final Property collPropertyDecimal_ExplicitNullable = new Property()
+  public static final CsdlProperty collPropertyDecimal_ExplicitNullable = new CsdlProperty()
       .setName("CollPropertyDecimal")
       .setType(nameDecimal)
       .setNullable(true)
       .setCollection(true);
 
-  public static final Property collPropertyDecimal_NotNullable = new Property()
+  public static final CsdlProperty collPropertyDecimal_NotNullable = new CsdlProperty()
       .setName("CollPropertyDecimal")
       .setType(nameDecimal)
       .setNullable(false)
       .setCollection(true);
 
-  public static final Property collPropertyDouble = new Property()
+  public static final CsdlProperty collPropertyDouble = new CsdlProperty()
       .setName("CollPropertyDouble")
       .setType(nameDouble)
       .setCollection(true);
 
-  public static final Property collPropertyDouble_ExplicitNullable = new Property()
+  public static final CsdlProperty collPropertyDouble_ExplicitNullable = new CsdlProperty()
       .setName("CollPropertyDouble")
       .setType(nameDouble)
       .setNullable(true)
       .setCollection(true);
 
-  public static final Property collPropertyDouble_NotNullable = new Property()
+  public static final CsdlProperty collPropertyDouble_NotNullable = new CsdlProperty()
       .setName("CollPropertyDouble")
       .setType(nameDouble)
       .setNullable(false)
       .setCollection(true);
 
-  public static final Property collPropertyDuration = new Property()
+  public static final CsdlProperty collPropertyDuration = new CsdlProperty()
       .setName("CollPropertyDuration")
       .setType(nameDuration)
       .setCollection(true);
 
-  public static final Property collPropertyDuration_ExplicitNullable = new Property()
+  public static final CsdlProperty collPropertyDuration_ExplicitNullable = new CsdlProperty()
       .setName("CollPropertyDuration")
       .setType(nameDuration)
       .setNullable(true)
       .setCollection(true);
 
-  public static final Property collPropertyDuration_NotNullable = new Property()
+  public static final CsdlProperty collPropertyDuration_NotNullable = new CsdlProperty()
       .setName("CollPropertyDuration")
       .setType(nameDuration)
       .setNullable(false)
       .setCollection(true);
 
-  public static final Property collPropertyGuid = new Property()
+  public static final CsdlProperty collPropertyGuid = new CsdlProperty()
       .setName("CollPropertyGuid")
       .setType(nameGuid)
       .setCollection(true);
 
-  public static final Property collPropertyGuid_ExplicitNullable = new Property()
+  public static final CsdlProperty collPropertyGuid_ExplicitNullable = new CsdlProperty()
       .setName("CollPropertyGuid")
       .setType(nameGuid)
       .setNullable(true)
       .setCollection(true);
 
-  public static final Property collPropertyGuid_NotNullable = new Property()
+  public static final CsdlProperty collPropertyGuid_NotNullable = new CsdlProperty()
       .setName("CollPropertyGuid")
       .setType(nameGuid)
       .setNullable(false)
       .setCollection(true);
 
-  public static final Property collPropertyInt16 = new Property()
+  public static final CsdlProperty collPropertyInt16 = new CsdlProperty()
       .setName("CollPropertyInt16")
       .setType(nameInt16)
       .setCollection(true);
 
-  public static final Property collPropertyInt16_ExplicitNullable = new Property()
+  public static final CsdlProperty collPropertyInt16_ExplicitNullable = new CsdlProperty()
       .setName("CollPropertyInt16")
       .setType(nameInt16)
       .setNullable(true)
       .setCollection(true);
 
-  public static final Property collPropertyInt16_NotNullable = new Property()
+  public static final CsdlProperty collPropertyInt16_NotNullable = new CsdlProperty()
       .setName("CollPropertyInt16")
       .setType(nameInt16)
       .setNullable(false)
       .setCollection(true);
 
-  public static final Property collPropertyInt32 = new Property()
+  public static final CsdlProperty collPropertyInt32 = new CsdlProperty()
       .setName("CollPropertyInt32")
       .setType(nameInt32)
       .setCollection(true);
 
-  public static final Property collPropertyInt32_ExplicitNullable = new Property()
+  public static final CsdlProperty collPropertyInt32_ExplicitNullable = new CsdlProperty()
       .setName("CollPropertyInt32")
       .setType(nameInt32)
       .setNullable(true)
       .setCollection(true);
 
-  public static final Property collPropertyInt32_NotNullable = new Property()
+  public static final CsdlProperty collPropertyInt32_NotNullable = new CsdlProperty()
       .setName("CollPropertyInt32")
       .setType(nameInt32)
       .setNullable(false)
       .setCollection(true);
 
-  public static final Property collPropertyInt64 = new Property()
+  public static final CsdlProperty collPropertyInt64 = new CsdlProperty()
       .setName("CollPropertyInt64")
       .setType(nameInt64)
       .setCollection(true);
 
-  public static final Property collPropertyInt64_ExplicitNullable = new Property()
+  public static final CsdlProperty collPropertyInt64_ExplicitNullable = new CsdlProperty()
       .setName("CollPropertyInt64")
       .setType(nameInt64)
       .setNullable(true)
       .setCollection(true);
 
-  public static final Property collPropertyInt64_NotNullable = new Property()
+  public static final CsdlProperty collPropertyInt64_NotNullable = new CsdlProperty()
       .setName("CollPropertyInt64")
       .setType(nameInt64)
       .setNullable(false)
       .setCollection(true);
 
-  public static final Property collPropertySByte = new Property()
+  public static final CsdlProperty collPropertySByte = new CsdlProperty()
       .setName("CollPropertySByte")
       .setType(nameSByte)
       .setCollection(true);
 
-  public static final Property collPropertySByte_ExplicitNullable = new Property()
+  public static final CsdlProperty collPropertySByte_ExplicitNullable = new CsdlProperty()
       .setName("CollPropertySByte")
       .setType(nameSByte)
       .setNullable(true)
       .setCollection(true);
 
-  public static final Property collPropertySByte_NotNullable = new Property()
+  public static final CsdlProperty collPropertySByte_NotNullable = new CsdlProperty()
       .setName("CollPropertySByte")
       .setType(nameSByte)
       .setNullable(false)
       .setCollection(true);
 
-  public static final Property collPropertySingle = new Property()
+  public static final CsdlProperty collPropertySingle = new CsdlProperty()
       .setName("CollPropertySingle")
       .setType(nameSingle)
       .setCollection(true);
 
-  public static final Property collPropertySingle_ExplicitNullable = new Property()
+  public static final CsdlProperty collPropertySingle_ExplicitNullable = new CsdlProperty()
       .setName("CollPropertySingle")
       .setType(nameSingle)
       .setNullable(true)
       .setCollection(true);
 
-  public static final Property collPropertySingle_NotNullable = new Property()
+  public static final CsdlProperty collPropertySingle_NotNullable = new CsdlProperty()
       .setName("CollPropertySingle")
       .setType(nameSingle)
       .setNullable(false)
       .setCollection(true);
 
-  public static final Property collPropertyString = new Property()
+  public static final CsdlProperty collPropertyString = new CsdlProperty()
       .setName("CollPropertyString")
       .setType(nameString)
       .setCollection(true);
 
-  public static final Property collPropertyString_ExplicitNullable = new Property()
+  public static final CsdlProperty collPropertyString_ExplicitNullable = new CsdlProperty()
       .setName("CollPropertyString")
       .setType(nameString)
       .setNullable(true)
       .setCollection(true);
 
-  public static final Property collPropertyString_NotNullable = new Property()
+  public static final CsdlProperty collPropertyString_NotNullable = new CsdlProperty()
       .setName("CollPropertyString")
       .setType(nameString)
       .setNullable(false)
       .setCollection(true);
 
-  public static final Property collPropertyTimeOfDay = new Property()
+  public static final CsdlProperty collPropertyTimeOfDay = new CsdlProperty()
       .setName("CollPropertyTimeOfDay")
       .setType(nameTimeOfDay)
       .setCollection(true);
 
-  public static final Property collPropertyTimeOfDay_ExplicitNullable = new Property()
+  public static final CsdlProperty collPropertyTimeOfDay_ExplicitNullable = new CsdlProperty()
       .setName("CollPropertyTimeOfDay")
       .setType(nameTimeOfDay)
       .setNullable(true)
       .setCollection(true);
 
-  public static final Property collPropertyTimeOfDay_NotNullable = new Property()
+  public static final CsdlProperty collPropertyTimeOfDay_NotNullable = new CsdlProperty()
       .setName("CollPropertyTimeOfDay")
       .setType(nameTimeOfDay)
       .setNullable(false)
       .setCollection(true);
 
-  public static final Property propertyBinary = new Property()
+  public static final CsdlProperty propertyBinary = new CsdlProperty()
       .setName("PropertyBinary")
       .setType(nameBinary);
 
-  public static final Property propertyBinary_NotNullable = new Property()
+  public static final CsdlProperty propertyBinary_NotNullable = new CsdlProperty()
       .setName("PropertyBinary")
       .setType(nameBinary)
       .setNullable(false);
 
-  public static final Property propertyBinary_ExplicitNullable = new Property()
+  public static final CsdlProperty propertyBinary_ExplicitNullable = new CsdlProperty()
       .setName("PropertyBinary")
       .setType(nameBinary)
       .setNullable(true);
 
-  public static final Property propertyBoolean = new Property()
+  public static final CsdlProperty propertyBoolean = new CsdlProperty()
       .setName("PropertyBoolean")
       .setType(nameBoolean);
 
-  public static final Property propertyBoolean_NotNullable = new Property()
+  public static final CsdlProperty propertyBoolean_NotNullable = new CsdlProperty()
       .setName("PropertyBoolean")
       .setType(nameBoolean)
       .setNullable(false);
 
-  public static final Property propertyBoolean_ExplicitNullable = new Property()
+  public static final CsdlProperty propertyBoolean_ExplicitNullable = new CsdlProperty()
       .setName("PropertyBoolean")
       .setType(nameBoolean)
       .setNullable(true);
 
-  public static final Property propertyByte = new Property()
+  public static final CsdlProperty propertyByte = new CsdlProperty()
       .setName("PropertyByte")
       .setType(nameByte);
 
-  public static final Property propertyByte_NotNullable = new Property()
+  public static final CsdlProperty propertyByte_NotNullable = new CsdlProperty()
       .setName("PropertyByte")
       .setType(nameByte)
       .setNullable(false);
 
-  public static final Property propertyByte_ExplicitNullable = new Property()
+  public static final CsdlProperty propertyByte_ExplicitNullable = new CsdlProperty()
       .setName("PropertyByte")
       .setType(nameByte)
       .setNullable(true);
 
-  public static final Property propertyDate = new Property()
+  public static final CsdlProperty propertyDate = new CsdlProperty()
       .setName("PropertyDate")
       .setType(nameDate);
 
-  public static final Property propertyDate_NotNullable = new Property()
+  public static final CsdlProperty propertyDate_NotNullable = new CsdlProperty()
       .setName("PropertyDate")
       .setType(nameDate)
       .setNullable(false);
 
-  public static final Property propertyDate_ExplicitNullable = new Property()
+  public static final CsdlProperty propertyDate_ExplicitNullable = new CsdlProperty()
       .setName("PropertyDate")
       .setType(nameDate)
       .setNullable(true);
 
-  public static final Property propertyDateTimeOffset = new Property()
+  public static final CsdlProperty propertyDateTimeOffset = new CsdlProperty()
       .setName("PropertyDateTimeOffset")
       .setType(nameDateTimeOffset);
 
-  public static final Property propertyDateTimeOffset_Precision = new Property()
+  public static final CsdlProperty propertyDateTimeOffset_Precision = new CsdlProperty()
       .setName("PropertyDateTimeOffset")
       .setPrecision(12)
       .setType(nameDateTimeOffset);
 
-  public static final Property propertyDateTimeOffset_NotNullable = new Property()
+  public static final CsdlProperty propertyDateTimeOffset_NotNullable = new CsdlProperty()
       .setName("PropertyDateTimeOffset")
       .setType(nameDateTimeOffset)
       .setNullable(false);
 
-  public static final Property propertyDateTimeOffset_ExplicitNullable = new Property()
+  public static final CsdlProperty propertyDateTimeOffset_ExplicitNullable = new CsdlProperty()
       .setName("PropertyDateTimeOffset")
       .setType(nameDateTimeOffset)
       .setNullable(true);
 
-  public static final Property propertyDecimal_Scale_Precision = new Property()
+  public static final CsdlProperty propertyDecimal_Scale_Precision = new CsdlProperty()
       .setName("PropertyDecimal")
       .setScale(5)
       .setPrecision(11)
       .setType(nameDecimal);
 
-  public static final Property propertyDecimal_Scale = new Property()
+  public static final CsdlProperty propertyDecimal_Scale = new CsdlProperty()
       .setName("PropertyDecimal")
       .setScale(10)
       .setType(nameDecimal);
 
-  public static final Property propertyDecimal_NotNullable = new Property()
+  public static final CsdlProperty propertyDecimal_NotNullable = new CsdlProperty()
       .setName("PropertyDecimal")
       .setType(nameDecimal)
       .setNullable(false);
 
-  public static final Property propertyDecimal_ExplicitNullable = new Property()
+  public static final CsdlProperty propertyDecimal_ExplicitNullable = new CsdlProperty()
       .setName("PropertyDecimal")
       .setType(nameDecimal)
       .setNullable(true);
 
-  public static final Property propertyDouble = new Property()
+  public static final CsdlProperty propertyDouble = new CsdlProperty()
       .setName("PropertyDouble")
       .setType(nameDouble);
 
-  public static final Property propertyDouble_NotNullable = new Property()
+  public static final CsdlProperty propertyDouble_NotNullable = new CsdlProperty()
       .setName("PropertyDouble")
       .setType(nameDouble)
       .setNullable(false);
 
-  public static final Property propertyDouble_ExplicitNullable = new Property()
+  public static final CsdlProperty propertyDouble_ExplicitNullable = new CsdlProperty()
       .setName("PropertyDouble")
       .setType(nameDouble)
       .setNullable(true);
 
-  public static final Property propertyDuration = new Property()
+  public static final CsdlProperty propertyDuration = new CsdlProperty()
       .setName("PropertyDuration")
       .setType(nameDuration);
 
-  public static final Property propertyDuration_NotNullable = new Property()
+  public static final CsdlProperty propertyDuration_NotNullable = new CsdlProperty()
       .setName("PropertyDuration")
       .setType(nameDuration)
       .setNullable(false);
 
-  public static final Property propertyDuration_ExplicitNullable = new Property()
+  public static final CsdlProperty propertyDuration_ExplicitNullable = new CsdlProperty()
       .setName("PropertyDuration")
       .setType(nameDuration)
       .setNullable(true);
 
-  public static final Property propertyGuid = new Property()
+  public static final CsdlProperty propertyGuid = new CsdlProperty()
       .setName("PropertyGuid")
       .setType(nameGuid);
 
-  public static final Property propertyGuid_NotNullable = new Property()
+  public static final CsdlProperty propertyGuid_NotNullable = new CsdlProperty()
       .setName("PropertyGuid")
       .setType(nameGuid)
       .setNullable(false);
 
-  public static final Property propertyGuid_ExplicitNullable = new Property()
+  public static final CsdlProperty propertyGuid_ExplicitNullable = new CsdlProperty()
       .setName("PropertyGuid")
       .setType(nameGuid)
       .setNullable(true);
 
-  public static final Property propertyInt16 = new Property()
+  public static final CsdlProperty propertyInt16 = new CsdlProperty()
       .setName("PropertyInt16")
       .setType(nameInt16);
 
-  public static final Property propertyInt16_NotNullable = new Property()
+  public static final CsdlProperty propertyInt16_NotNullable = new CsdlProperty()
       .setName("PropertyInt16")
       .setType(nameInt16)
       .setNullable(false);
 
-  public static final Property propertyInt16_ExplicitNullable = new Property()
+  public static final CsdlProperty propertyInt16_ExplicitNullable = new CsdlProperty()
       .setName("PropertyInt16")
       .setType(nameInt16)
       .setNullable(true);
 
-  public static final Property propertyInt32 = new Property()
+  public static final CsdlProperty propertyInt32 = new CsdlProperty()
       .setName("PropertyInt32")
       .setType(nameInt32);
 
-  public static final Property propertyInt32_NotNullable = new Property()
+  public static final CsdlProperty propertyInt32_NotNullable = new CsdlProperty()
       .setName("PropertyInt32")
       .setType(nameInt32)
       .setNullable(false);
 
-  public static final Property propertyInt32_ExplicitNullable = new Property()
+  public static final CsdlProperty propertyInt32_ExplicitNullable = new CsdlProperty()
       .setName("PropertyInt32")
       .setType(nameInt32)
       .setNullable(true);
 
-  public static final Property propertyInt64 = new Property()
+  public static final CsdlProperty propertyInt64 = new CsdlProperty()
       .setName("PropertyInt64")
       .setType(nameInt64);
 
-  public static final Property propertyInt64_NotNullable = new Property()
+  public static final CsdlProperty propertyInt64_NotNullable = new CsdlProperty()
       .setName("PropertyInt64")
       .setType(nameInt64)
       .setNullable(false);
 
-  public static final Property propertyInt64_ExplicitNullable = new Property()
+  public static final CsdlProperty propertyInt64_ExplicitNullable = new CsdlProperty()
       .setName("PropertyInt64")
       .setType(nameInt64)
       .setNullable(true);
 
-  public static final Property propertySByte = new Property()
+  public static final CsdlProperty propertySByte = new CsdlProperty()
       .setName("PropertySByte")
       .setType(nameSByte);
 
-  public static final Property propertySByte_NotNullable = new Property()
+  public static final CsdlProperty propertySByte_NotNullable = new CsdlProperty()
       .setName("PropertySByte")
       .setType(nameSByte)
       .setNullable(false);
 
-  public static final Property propertySByte_ExplicitNullable = new Property()
+  public static final CsdlProperty propertySByte_ExplicitNullable = new CsdlProperty()
       .setName("PropertySByte")
       .setType(nameSByte)
       .setNullable(true);
 
-  public static final Property propertySingle = new Property()
+  public static final CsdlProperty propertySingle = new CsdlProperty()
       .setName("PropertySingle")
       .setType(nameSingle);
 
-  public static final Property propertySingle_NotNullable = new Property()
+  public static final CsdlProperty propertySingle_NotNullable = new CsdlProperty()
       .setName("PropertySingle")
       .setType(nameSingle)
       .setNullable(false);
 
-  public static final Property propertySingle_ExplicitNullable = new Property()
+  public static final CsdlProperty propertySingle_ExplicitNullable = new CsdlProperty()
       .setName("PropertySingle")
       .setType(nameSingle)
       .setNullable(true);
 
-  public static final Property propertyString = new Property()
+  public static final CsdlProperty propertyString = new CsdlProperty()
       .setName("PropertyString")
       .setType(nameString);
 
-  public static final Property propertyString_NotNullable = new Property()
+  public static final CsdlProperty propertyString_NotNullable = new CsdlProperty()
       .setName("PropertyString")
       .setType(nameString)
       .setNullable(false);
 
-  public static final Property propertyString_ExplicitNullable = new Property()
+  public static final CsdlProperty propertyString_ExplicitNullable = new CsdlProperty()
       .setName("PropertyString")
       .setType(nameString)
       .setNullable(true);
 
-  public static final Property propertyTimeOfDay = new Property()
+  public static final CsdlProperty propertyTimeOfDay = new CsdlProperty()
       .setName("PropertyTimeOfDay")
       .setType(nameTimeOfDay);
 
-  public static final Property propertyTimeOfDay_Precision = new Property()
+  public static final CsdlProperty propertyTimeOfDay_Precision = new CsdlProperty()
       .setName("PropertyTimeOfDay")
       .setPrecision(12)
       .setType(nameTimeOfDay);
 
-  public static final Property propertyTimeOfDay_NotNullable = new Property()
+  public static final CsdlProperty propertyTimeOfDay_NotNullable = new CsdlProperty()
       .setName("PropertyTimeOfDay")
       .setType(nameTimeOfDay)
       .setNullable(false);
 
-  public static final Property propertyTimeOfDay_ExplicitNullable = new Property()
+  public static final CsdlProperty propertyTimeOfDay_ExplicitNullable = new CsdlProperty()
       .setName("PropertyTimeOfDay")
       .setType(nameTimeOfDay)
       .setNullable(true);
 
   // Complex Properties ----------------------------------------------------------------------------------------------
-  public static final Property collPropertyComp_CTPrimComp = new Property()
+  public static final CsdlProperty collPropertyComp_CTPrimComp = new CsdlProperty()
       .setName("CollPropertyComp")
       .setType(ComplexTypeProvider.nameCTPrimComp)
       .setCollection(true);
 
-  public static final Property collPropertyComp_CTTwoPrim = new Property()
+  public static final CsdlProperty collPropertyComp_CTTwoPrim = new CsdlProperty()
       .setName("CollPropertyComp")
       .setType(ComplexTypeProvider.nameCTTwoPrim)
       .setCollection(true);
 
-  public static final Property propertyComp_CTAllPrim = new Property()
+  public static final CsdlProperty propertyComp_CTAllPrim = new CsdlProperty()
       .setName("PropertyComp")
       .setType(ComplexTypeProvider.nameCTAllPrim);
 
-  public static final Property propertyComp_CTCollAllPrim = new Property()
+  public static final CsdlProperty propertyComp_CTCollAllPrim = new CsdlProperty()
       .setName("PropertyComp")
       .setType(ComplexTypeProvider.nameCTCollAllPrim);
 
-  public static final Property propertyComp_CTCompCollComp = new Property()
+  public static final CsdlProperty propertyComp_CTCompCollComp = new CsdlProperty()
       .setName("PropertyComp")
       .setType(ComplexTypeProvider.nameCTCompCollComp);
 
-  public static final Property propertyComp_CTCompComp = new Property()
+  public static final CsdlProperty propertyComp_CTCompComp = new CsdlProperty()
       .setName("PropertyComp")
       .setType(ComplexTypeProvider.nameCTCompComp);
 
-  public static final Property propertyComp_CTNavFiveProp = new Property()
+  public static final CsdlProperty propertyComp_CTNavFiveProp = new CsdlProperty()
       .setName("PropertyComp")
       .setType(ComplexTypeProvider.nameCTNavFiveProp);
 
-  public static final Property propertyCompNav_CTNavFiveProp = new Property()
+  public static final CsdlProperty propertyCompNav_CTNavFiveProp = new CsdlProperty()
       .setName("PropertyCompNav")
       .setType(ComplexTypeProvider.nameCTNavFiveProp);
 
-  public static final Property propertyComp_CTPrimComp_NotNullable = new Property()
+  public static final CsdlProperty propertyComp_CTPrimComp_NotNullable = new CsdlProperty()
       .setName("PropertyComp")
       .setType(ComplexTypeProvider.nameCTPrimComp)
       .setNullable(false);
 
-  public static final Property propertyComp_CTTwoPrim = new Property()
+  public static final CsdlProperty propertyComp_CTTwoPrim = new CsdlProperty()
       .setName("PropertyComp")
       .setType(ComplexTypeProvider.nameCTTwoPrim);
 
-  public static final Property propertyComp_CTTwoPrim_NotNullable = new Property()
+  public static final CsdlProperty propertyComp_CTTwoPrim_NotNullable = new CsdlProperty()
       .setName("PropertyComp")
       .setType(ComplexTypeProvider.nameCTTwoPrim)
       .setNullable(false);
 
-  public static final Property propertyCompNavCont = new Property()
+  public static final CsdlProperty propertyCompNavCont = new CsdlProperty()
       .setName("PropertyCompNavCont")
       .setType(ComplexTypeProvider.nameCTNavCont);
 
-  public static final Property propertyCompAllPrim_CTAllPrim = new Property()
+  public static final CsdlProperty propertyCompAllPrim_CTAllPrim = new CsdlProperty()
       .setName("PropertyCompAllPrim")
       .setType(ComplexTypeProvider.nameCTAllPrim);
 
-  public static final Property propertyCompComp_CTCompComp = new Property()
+  public static final CsdlProperty propertyCompComp_CTCompComp = new CsdlProperty()
       .setName("PropertyCompComp")
       .setType(ComplexTypeProvider.nameCTCompComp);
 
-  public static final Property propertyCompComp_CTCompComp_NotNullable = new Property()
+  public static final CsdlProperty propertyCompComp_CTCompComp_NotNullable = new CsdlProperty()
       .setName("PropertyCompComp")
       .setType(ComplexTypeProvider.nameCTCompComp)
       .setNullable(false);
 
-  public static final Property propertyCompTwoPrim_CTTwoPrim = new Property()
+  public static final CsdlProperty propertyCompTwoPrim_CTTwoPrim = new CsdlProperty()
       .setName("PropertyCompTwoPrim")
       .setType(ComplexTypeProvider.nameCTTwoPrim);
 
-  public static final Property propertyMixedPrimCollComp_CTMixPrimCollComp = new Property()
+  public static final CsdlProperty propertyMixedPrimCollComp_CTMixPrimCollComp = new CsdlProperty()
       .setName("PropertyMixedPrimCollComp")
       .setType(ComplexTypeProvider.nameCTMixPrimCollComp);
 
-  public static final Property propertyComp_CTMixEnumTypeDefColl = new Property()
+  public static final CsdlProperty propertyComp_CTMixEnumTypeDefColl = new CsdlProperty()
       .setName("PropertyCompMixedEnumDef")
       .setType(ComplexTypeProvider.nameCTMixEnumDef);
 
-  public static final Property propertyCompColl_CTMixEnumTypeDefColl = new Property()
+  public static final CsdlProperty propertyCompColl_CTMixEnumTypeDefColl = new CsdlProperty()
       .setName("CollPropertyCompMixedEnumDef")
       .setType(ComplexTypeProvider.nameCTMixEnumDef)
       .setCollection(true);
 
   // Navigation Properties -------------------------------------------------------------------------------------------
-  public static final NavigationProperty collectionNavPropertyETKeyNavMany_ETKeyNav = new NavigationProperty()
+  public static final CsdlNavigationProperty collectionNavPropertyETKeyNavMany_ETKeyNav = new CsdlNavigationProperty()
       .setName("NavPropertyETKeyNavMany")
       .setType(EntityTypeProvider.nameETKeyNav)
       .setCollection(true);
 
-  public static final NavigationProperty collectionNavPropertyETMediaMany_ETMedia = new NavigationProperty()
+  public static final CsdlNavigationProperty collectionNavPropertyETMediaMany_ETMedia = new CsdlNavigationProperty()
       .setName("NavPropertyETMediaMany")
       .setType(EntityTypeProvider.nameETMedia)
       .setCollection(true);
 
-  public static final NavigationProperty collectionNavPropertyETTwoKeyNavMany_ETTwoKeyNav_WithPartnerERKeyNavOne =
-      new NavigationProperty()
+  public static final CsdlNavigationProperty collectionNavPropertyETTwoKeyNavMany_ETTwoKeyNav_WithPartnerERKeyNavOne =
+      new CsdlNavigationProperty()
           .setName("NavPropertyETTwoKeyNavMany")
           .setType(EntityTypeProvider.nameETTwoKeyNav)
           .setCollection(true)
           .setPartner("NavPropertyETKeyNavOne");
 
-  public static final NavigationProperty collectionNavPropertyETTwoKeyNavMany_ETTwoKeyNav = new NavigationProperty()
+  public static final CsdlNavigationProperty collectionNavPropertyETTwoKeyNavMany_ETTwoKeyNav =
+          new CsdlNavigationProperty()
       .setName("NavPropertyETTwoKeyNavMany")
       .setType(EntityTypeProvider.nameETTwoKeyNav)
       .setCollection(true);
 
-  public static final NavigationProperty collectionNavPropertyETTwoKeyNavOne_ETTwoKeyNav = new NavigationProperty()
+  public static final CsdlNavigationProperty collectionNavPropertyETTwoKeyNavOne_ETTwoKeyNav =
+          new CsdlNavigationProperty()
       .setName("NavPropertyETTwoKeyNavOne")
       .setType(EntityTypeProvider.nameETTwoKeyNav);
 
-  public static final NavigationProperty collectionNavPropertyETTwoPrimMany_ETTwoPrim = new NavigationProperty()
+  public static final CsdlNavigationProperty collectionNavPropertyETTwoPrimMany_ETTwoPrim =
+          new CsdlNavigationProperty()
       .setName("NavPropertyETTwoPrimMany")
       .setType(EntityTypeProvider.nameETTwoPrim)
       .setCollection(true);
 
-  public static final NavigationProperty collectionNavPropertyETAllPrimMany_ETAllPrim = new NavigationProperty()
+  public static final CsdlNavigationProperty collectionNavPropertyETAllPrimMany_ETAllPrim =
+          new CsdlNavigationProperty()
       .setName("NavPropertyETAllPrimMany")
       .setType(EntityTypeProvider.nameETAllPrim)
       .setCollection(true);
 
-  public static final NavigationProperty collectionNavPropertySINav = new NavigationProperty()
+  public static final CsdlNavigationProperty collectionNavPropertySINav = new CsdlNavigationProperty()
       .setName("NavPropertySINav")
       .setCollection(true)
       .setType(EntityTypeProvider.nameETTwoKeyNav);
 
-  public static final NavigationProperty collectionNavPropertyETKeyNavContMany_CT_ETKeyNav = new NavigationProperty()
+  public static final CsdlNavigationProperty collectionNavPropertyETKeyNavContMany_CT_ETKeyNav =
+          new CsdlNavigationProperty()
       .setName("NavPropertyETKeyNavContMany")
       .setCollection(true)
       .setContainsTarget(true)
       .setType(EntityTypeProvider.nameETKeyNav);
 
-  public static final NavigationProperty collectionNavPropertyETTwoKeyNavContMany_CT_ETKeyNav =
-      new NavigationProperty()
+  public static final CsdlNavigationProperty collectionNavPropertyETTwoKeyNavContMany_CT_ETKeyNav =
+      new CsdlNavigationProperty()
           .setName("NavPropertyETTwoKeyNavContMany")
           .setCollection(true)
           .setContainsTarget(true)
           .setType(EntityTypeProvider.nameETKeyNav);
 
-  public static final NavigationProperty navPropertyETKeyNavOne_ETKeyNav = new NavigationProperty()
+  public static final CsdlNavigationProperty navPropertyETKeyNavOne_ETKeyNav = new CsdlNavigationProperty()
       .setName("NavPropertyETKeyNavOne")
       .setType(EntityTypeProvider.nameETKeyNav);
 
-  public static final NavigationProperty navPropertyETMediaOne_ETMedia = new NavigationProperty()
+  public static final CsdlNavigationProperty navPropertyETMediaOne_ETMedia = new CsdlNavigationProperty()
       .setName("NavPropertyETMediaOne")
       .setType(EntityTypeProvider.nameETMedia);
 
-  public static final NavigationProperty navPropertyETKeyPrimNavOne_ETKeyPrimNav = new NavigationProperty()
+  public static final CsdlNavigationProperty navPropertyETKeyPrimNavOne_ETKeyPrimNav = new CsdlNavigationProperty()
       .setName("NavPropertyETKeyPrimNavOne")
       .setType(EntityTypeProvider.nameETKeyPrimNav);
 
-  public static final NavigationProperty navPropertyETTwoKeyNavOne_ETTwoKeyNav_NotNullable = new NavigationProperty()
+  public static final CsdlNavigationProperty navPropertyETTwoKeyNavOne_ETTwoKeyNav_NotNullable =
+          new CsdlNavigationProperty()
       .setName("NavPropertyETTwoKeyNavOne")
       .setType(EntityTypeProvider.nameETTwoKeyNav)
       .setNullable(false);
 
-  public static final NavigationProperty navPropertyETTwoKeyNavOne_ETTwoKeyNav = new NavigationProperty()
+  public static final CsdlNavigationProperty navPropertyETTwoKeyNavOne_ETTwoKeyNav = new CsdlNavigationProperty()
       .setName("NavPropertyETTwoKeyNavOne")
       .setType(EntityTypeProvider.nameETTwoKeyNav);
 
-  public static final NavigationProperty navPropertyETTwoPrimOne_ETTwoPrim = new NavigationProperty()
+  public static final CsdlNavigationProperty navPropertyETTwoPrimOne_ETTwoPrim = new CsdlNavigationProperty()
       .setName("NavPropertyETTwoPrimOne")
       .setType(EntityTypeProvider.nameETTwoPrim)
       .setNullable(false);
 
-  public static final NavigationProperty navPropertyETAllPrimOne_ETAllPrim = new NavigationProperty()
+  public static final CsdlNavigationProperty navPropertyETAllPrimOne_ETAllPrim = new CsdlNavigationProperty()
       .setName("NavPropertyETAllPrimOne")
       .setType(EntityTypeProvider.nameETAllPrim);
 
-  public static final NavigationProperty navPropertyETKeyNavContOne_CT_ETeyNav = new NavigationProperty()
+  public static final CsdlNavigationProperty navPropertyETKeyNavContOne_CT_ETeyNav = new CsdlNavigationProperty()
       .setName("NavPropertyETKeyNavContOne")
       .setContainsTarget(true)
       .setType(EntityTypeProvider.nameETKeyNav);
 
-  public static final NavigationProperty navPropertyETTwoKeyNavContOne_CT_ETKeyNav = new NavigationProperty()
+  public static final CsdlNavigationProperty navPropertyETTwoKeyNavContOne_CT_ETKeyNav = new CsdlNavigationProperty()
       .setName("NavPropertyETTwoKeyNavContOne")
       .setContainsTarget(true)
       .setType(EntityTypeProvider.nameETKeyNav);
 
-  public static final NavigationProperty navPropertyETTwoKeyNavContOneCT_ETTwoKeyNav = new NavigationProperty()
+  public static final CsdlNavigationProperty navPropertyETTwoKeyNavContOneCT_ETTwoKeyNav = new CsdlNavigationProperty()
       .setName("NavPropertyETTwoKeyNavContOne")
       .setContainsTarget(true)
       .setType(EntityTypeProvider.nameETTwoKeyNav);
 
-  public static final NavigationProperty collectionNavPropertyETTwoKeyNavContMany_CT_ETTwoKeyNav =
-      new NavigationProperty()
+  public static final CsdlNavigationProperty collectionNavPropertyETTwoKeyNavContMany_CT_ETTwoKeyNav =
+      new CsdlNavigationProperty()
           .setName("NavPropertyETTwoKeyNavContMany")
           .setContainsTarget(true)
           .setCollection(true)
           .setType(EntityTypeProvider.nameETTwoKeyNav);
 
   // EnumProperties --------------------------------------------------------------------------------------------------
-  public static final Property propertyEnumString_ENString = new Property()
+  public static final CsdlProperty propertyEnumString_ENString = new CsdlProperty()
       .setName("PropertyEnumString")
       .setType(EnumTypeProvider.nameENString)
       .setNullable(false);
 
-  public static final Property propertyEnumString_ENString_Nullable = new Property()
+  public static final CsdlProperty propertyEnumString_ENString_Nullable = new CsdlProperty()
       .setName("PropertyEnumString")
       .setType(EnumTypeProvider.nameENString);
 
-  public static final Property collPropertyEnumString_ENString = new Property()
+  public static final CsdlProperty collPropertyEnumString_ENString = new CsdlProperty()
       .setName("CollPropertyEnumString")
       .setType(EnumTypeProvider.nameENString)
       .setCollection(true);
 
   // TypeDefinition Properties ---------------------------------------------------------------------------------------
-  public static final Property propertyTypeDefinition_TDString = new Property()
+  public static final CsdlProperty propertyTypeDefinition_TDString = new CsdlProperty()
       .setName("PropertyDefString")
       .setType(TypeDefinitionProvider.nameTDString)
       .setMaxLength(15);
 
-  public static final Property collPropertyTypeDefinition_TDString = new Property()
+  public static final CsdlProperty collPropertyTypeDefinition_TDString = new CsdlProperty()
       .setName("CollPropertyDefString")
       .setType(TypeDefinitionProvider.nameTDString)
       .setMaxLength(15)

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/2318953c/lib/server-tecsvc/src/main/java/org/apache/olingo/server/tecsvc/provider/SchemaProvider.java
----------------------------------------------------------------------
diff --git a/lib/server-tecsvc/src/main/java/org/apache/olingo/server/tecsvc/provider/SchemaProvider.java b/lib/server-tecsvc/src/main/java/org/apache/olingo/server/tecsvc/provider/SchemaProvider.java
index 33f98a6..7500a5a 100644
--- a/lib/server-tecsvc/src/main/java/org/apache/olingo/server/tecsvc/provider/SchemaProvider.java
+++ b/lib/server-tecsvc/src/main/java/org/apache/olingo/server/tecsvc/provider/SchemaProvider.java
@@ -19,13 +19,13 @@
 package org.apache.olingo.server.tecsvc.provider;
 
 import org.apache.olingo.commons.api.ODataException;
-import org.apache.olingo.commons.api.edm.provider.Action;
-import org.apache.olingo.commons.api.edm.provider.ComplexType;
-import org.apache.olingo.commons.api.edm.provider.EntityType;
-import org.apache.olingo.commons.api.edm.provider.EnumType;
-import org.apache.olingo.commons.api.edm.provider.Function;
-import org.apache.olingo.commons.api.edm.provider.Schema;
-import org.apache.olingo.commons.api.edm.provider.TypeDefinition;
+import org.apache.olingo.commons.api.edm.provider.CsdlAction;
+import org.apache.olingo.commons.api.edm.provider.CsdlComplexType;
+import org.apache.olingo.commons.api.edm.provider.CsdlEntityType;
+import org.apache.olingo.commons.api.edm.provider.CsdlEnumType;
+import org.apache.olingo.commons.api.edm.provider.CsdlFunction;
+import org.apache.olingo.commons.api.edm.provider.CsdlSchema;
+import org.apache.olingo.commons.api.edm.provider.CsdlTypeDefinition;
 
 import java.util.ArrayList;
 import java.util.List;
@@ -40,25 +40,25 @@ public class SchemaProvider {
     this.prov = prov;
   }
 
-  public List<Schema> getSchemas() throws ODataException {
-    List<Schema> schemas = new ArrayList<Schema>();
-    Schema schema = new Schema();
+  public List<CsdlSchema> getSchemas() throws ODataException {
+    List<CsdlSchema> schemas = new ArrayList<CsdlSchema>();
+    CsdlSchema schema = new CsdlSchema();
     schema.setNamespace(NAMESPACE);
     schema.setAlias("Namespace1_Alias");
     schemas.add(schema);
     
     // EnumTypes
-    List<EnumType> enumTypes = new ArrayList<EnumType>();
+    List<CsdlEnumType> enumTypes = new ArrayList<CsdlEnumType>();
     schema.setEnumTypes(enumTypes);
 
     // TypeDefinitions
-    List<TypeDefinition> typeDefinitions = new ArrayList<TypeDefinition>();
+    List<CsdlTypeDefinition> typeDefinitions = new ArrayList<CsdlTypeDefinition>();
     schema.setTypeDefinitions(typeDefinitions);
     typeDefinitions.add(prov.getTypeDefinition(TypeDefinitionProvider.nameTDString));
     enumTypes.add(prov.getEnumType(EnumTypeProvider.nameENString));
     
     // EntityTypes
-    List<EntityType> entityTypes = new ArrayList<EntityType>();
+    List<CsdlEntityType> entityTypes = new ArrayList<CsdlEntityType>();
     schema.setEntityTypes(entityTypes);
 
     entityTypes.add(prov.getEntityType(EntityTypeProvider.nameETAllPrim));
@@ -90,7 +90,7 @@ public class SchemaProvider {
     
     
     // ComplexTypes
-    List<ComplexType> complexType = new ArrayList<ComplexType>();
+    List<CsdlComplexType> complexType = new ArrayList<CsdlComplexType>();
     schema.setComplexTypes(complexType);
     complexType.add(prov.getComplexType(ComplexTypeProvider.nameCTPrim));
     complexType.add(prov.getComplexType(ComplexTypeProvider.nameCTAllPrim));
@@ -111,7 +111,7 @@ public class SchemaProvider {
         
     
     // Actions
-    List<Action> actions = new ArrayList<Action>();
+    List<CsdlAction> actions = new ArrayList<CsdlAction>();
     schema.setActions(actions);
     actions.addAll(prov.getActions(ActionProvider.nameBAETTwoKeyNavRTETTwoKeyNav));
     actions.addAll(prov.getActions(ActionProvider.nameBAESAllPrimRTETAllPrim));
@@ -134,7 +134,7 @@ public class SchemaProvider {
     actions.addAll(prov.getActions(ActionProvider.nameUARTTwoParam));
 
     // Functions
-    List<Function> functions = new ArrayList<Function>();
+    List<CsdlFunction> functions = new ArrayList<CsdlFunction>();
     schema.setFunctions(functions);
 
     functions.addAll(prov.getFunctions(FunctionProvider.nameUFNRTInt16));

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/2318953c/lib/server-tecsvc/src/main/java/org/apache/olingo/server/tecsvc/provider/TypeDefinitionProvider.java
----------------------------------------------------------------------
diff --git a/lib/server-tecsvc/src/main/java/org/apache/olingo/server/tecsvc/provider/TypeDefinitionProvider.java b/lib/server-tecsvc/src/main/java/org/apache/olingo/server/tecsvc/provider/TypeDefinitionProvider.java
index 74cdbb1..3a357a2 100644
--- a/lib/server-tecsvc/src/main/java/org/apache/olingo/server/tecsvc/provider/TypeDefinitionProvider.java
+++ b/lib/server-tecsvc/src/main/java/org/apache/olingo/server/tecsvc/provider/TypeDefinitionProvider.java
@@ -20,15 +20,15 @@ package org.apache.olingo.server.tecsvc.provider;
 
 import org.apache.olingo.commons.api.edm.EdmPrimitiveTypeKind;
 import org.apache.olingo.commons.api.edm.FullQualifiedName;
-import org.apache.olingo.commons.api.edm.provider.TypeDefinition;
+import org.apache.olingo.commons.api.edm.provider.CsdlTypeDefinition;
 
 public class TypeDefinitionProvider {
 
   public static final FullQualifiedName nameTDString = new FullQualifiedName(SchemaProvider.NAMESPACE, "TDString");
 
-  public TypeDefinition getTypeDefinition(final FullQualifiedName typeDefinitionName) {
+  public CsdlTypeDefinition getTypeDefinition(final FullQualifiedName typeDefinitionName) {
     if (nameTDString.equals(typeDefinitionName)) {
-      return new TypeDefinition().setName(nameTDString.getName()).setUnderlyingType(
+      return new CsdlTypeDefinition().setName(nameTDString.getName()).setUnderlyingType(
           EdmPrimitiveTypeKind.String.getFullQualifiedName()).setMaxLength(15);
     }
     return null;

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/2318953c/lib/server-test/src/test/java/org/apache/olingo/server/core/ODataHandlerTest.java
----------------------------------------------------------------------
diff --git a/lib/server-test/src/test/java/org/apache/olingo/server/core/ODataHandlerTest.java b/lib/server-test/src/test/java/org/apache/olingo/server/core/ODataHandlerTest.java
index 0ed13fe..20eb233 100644
--- a/lib/server-test/src/test/java/org/apache/olingo/server/core/ODataHandlerTest.java
+++ b/lib/server-test/src/test/java/org/apache/olingo/server/core/ODataHandlerTest.java
@@ -39,8 +39,8 @@ import org.apache.commons.io.IOUtils;
 import org.apache.olingo.commons.api.ODataException;
 import org.apache.olingo.commons.api.edm.FullQualifiedName;
 import org.apache.olingo.commons.api.edm.constants.ODataServiceVersion;
-import org.apache.olingo.commons.api.edm.provider.AbstractEdmProvider;
-import org.apache.olingo.commons.api.edm.provider.EntitySet;
+import org.apache.olingo.commons.api.edm.provider.CsdlAbstractEdmProvider;
+import org.apache.olingo.commons.api.edm.provider.CsdlEntitySet;
 import org.apache.olingo.commons.api.format.ContentType;
 import org.apache.olingo.commons.api.format.ODataFormat;
 import org.apache.olingo.commons.api.http.HttpContentType;
@@ -223,8 +223,8 @@ public class ODataHandlerTest {
   public void uriParserExceptionResultsInRightResponseEdmCause() throws Exception {
     final OData odata = OData.newInstance();
     final ServiceMetadata serviceMetadata = odata.createServiceMetadata(
-        new AbstractEdmProvider() {
-          public EntitySet getEntitySet(final FullQualifiedName entityContainer, final String entitySetName)
+        new CsdlAbstractEdmProvider() {
+          public CsdlEntitySet getEntitySet(final FullQualifiedName entityContainer, final String entitySetName)
               throws ODataException {
             throw new ODataException("msg");
           }

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/2318953c/lib/server-test/src/test/java/org/apache/olingo/server/core/deserializer/json/ODataJsonDeserializerEntityTest.java
----------------------------------------------------------------------
diff --git a/lib/server-test/src/test/java/org/apache/olingo/server/core/deserializer/json/ODataJsonDeserializerEntityTest.java b/lib/server-test/src/test/java/org/apache/olingo/server/core/deserializer/json/ODataJsonDeserializerEntityTest.java
index 4a433c3..8c01c21 100644
--- a/lib/server-test/src/test/java/org/apache/olingo/server/core/deserializer/json/ODataJsonDeserializerEntityTest.java
+++ b/lib/server-test/src/test/java/org/apache/olingo/server/core/deserializer/json/ODataJsonDeserializerEntityTest.java
@@ -45,7 +45,7 @@ import org.apache.olingo.commons.api.edm.Edm;
 import org.apache.olingo.commons.api.edm.EdmEntityType;
 import org.apache.olingo.commons.api.edm.EdmProperty;
 import org.apache.olingo.commons.api.edm.FullQualifiedName;
-import org.apache.olingo.commons.api.edm.provider.Mapping;
+import org.apache.olingo.commons.api.edm.provider.CsdlMapping;
 import org.apache.olingo.commons.api.format.ODataFormat;
 import org.apache.olingo.commons.core.edm.primitivetype.EdmDate;
 import org.apache.olingo.commons.core.edm.primitivetype.EdmDateTimeOffset;
@@ -656,7 +656,7 @@ public class ODataJsonDeserializerEntityTest extends AbstractODataDeserializerTe
     propertyNames.add("PropertyDate");
     propertyNames.add("PropertyDateTimeOffset");
     when(entityType.getPropertyNames()).thenReturn(propertyNames);
-    Mapping mapping = new Mapping().setMappedJavaClass(Date.class);
+    CsdlMapping mapping = new CsdlMapping().setMappedJavaClass(Date.class);
 
     EdmProperty propertyDate = mock(EdmProperty.class);
     when(propertyDate.getName()).thenReturn("PropertyDate");

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/2318953c/lib/server-test/src/test/java/org/apache/olingo/server/core/uri/testutil/EdmTechTestProvider.java
----------------------------------------------------------------------
diff --git a/lib/server-test/src/test/java/org/apache/olingo/server/core/uri/testutil/EdmTechTestProvider.java b/lib/server-test/src/test/java/org/apache/olingo/server/core/uri/testutil/EdmTechTestProvider.java
index a48627d..d1b739b 100644
--- a/lib/server-test/src/test/java/org/apache/olingo/server/core/uri/testutil/EdmTechTestProvider.java
+++ b/lib/server-test/src/test/java/org/apache/olingo/server/core/uri/testutil/EdmTechTestProvider.java
@@ -21,11 +21,11 @@ package org.apache.olingo.server.core.uri.testutil;
 import org.apache.olingo.commons.api.ODataException;
 import org.apache.olingo.commons.api.edm.EdmPrimitiveTypeKind;
 import org.apache.olingo.commons.api.edm.FullQualifiedName;
-import org.apache.olingo.commons.api.edm.provider.ComplexType;
-import org.apache.olingo.commons.api.edm.provider.EntitySet;
-import org.apache.olingo.commons.api.edm.provider.EntityType;
-import org.apache.olingo.commons.api.edm.provider.Property;
-import org.apache.olingo.commons.api.edm.provider.PropertyRef;
+import org.apache.olingo.commons.api.edm.provider.CsdlComplexType;
+import org.apache.olingo.commons.api.edm.provider.CsdlEntitySet;
+import org.apache.olingo.commons.api.edm.provider.CsdlEntityType;
+import org.apache.olingo.commons.api.edm.provider.CsdlProperty;
+import org.apache.olingo.commons.api.edm.provider.CsdlPropertyRef;
 import org.apache.olingo.server.tecsvc.provider.EdmTechProvider;
 
 import java.util.Arrays;
@@ -43,20 +43,20 @@ public class EdmTechTestProvider extends EdmTechProvider {
   public static final String NAMESPACE = "olingo.odata.test1";
   public static final FullQualifiedName nameContainer = new FullQualifiedName(NAMESPACE, "Container");
 
-  Property propertyAInt16 = new Property().setName("a").setType(nameInt16);
-  Property propertyBInt16 = new Property().setName("b").setType(nameInt16);
-  Property propertyCInt16 = new Property().setName("c").setType(nameInt16);
-  Property propertyDInt16 = new Property().setName("d").setType(nameInt16);
-  Property propertyEInt16 = new Property().setName("e").setType(nameInt16);
-  Property propertyFInt16 = new Property().setName("f").setType(nameInt16);
+  CsdlProperty propertyAInt16 = new CsdlProperty().setName("a").setType(nameInt16);
+  CsdlProperty propertyBInt16 = new CsdlProperty().setName("b").setType(nameInt16);
+  CsdlProperty propertyCInt16 = new CsdlProperty().setName("c").setType(nameInt16);
+  CsdlProperty propertyDInt16 = new CsdlProperty().setName("d").setType(nameInt16);
+  CsdlProperty propertyEInt16 = new CsdlProperty().setName("e").setType(nameInt16);
+  CsdlProperty propertyFInt16 = new CsdlProperty().setName("f").setType(nameInt16);
 
   public static final FullQualifiedName nameCTabc = new FullQualifiedName(NAMESPACE, "CTabc");
   public static final FullQualifiedName nameETabc = new FullQualifiedName(NAMESPACE, "ETabc");
 
   @Override
-  public ComplexType getComplexType(final FullQualifiedName complexTypeName) throws ODataException {
+  public CsdlComplexType getComplexType(final FullQualifiedName complexTypeName) throws ODataException {
     if (complexTypeName.equals(nameCTabc)) {
-      return new ComplexType()
+      return new CsdlComplexType()
           .setName("CTabc")
           .setProperties(Arrays.asList(
               propertyAInt16, propertyBInt16, propertyCInt16,
@@ -69,10 +69,10 @@ public class EdmTechTestProvider extends EdmTechProvider {
   }
 
   @Override
-  public EntitySet getEntitySet(final FullQualifiedName entityContainer, final String name) throws ODataException {
+  public CsdlEntitySet getEntitySet(final FullQualifiedName entityContainer, final String name) throws ODataException {
     if (nameContainer.equals(entityContainer)) {
       if (name.equals("ESabc")) {
-        return new EntitySet()
+        return new CsdlEntitySet()
             .setName("ESabc")
             .setType(nameETabc);
       }
@@ -82,11 +82,11 @@ public class EdmTechTestProvider extends EdmTechProvider {
   }
 
   @Override
-  public EntityType getEntityType(final FullQualifiedName entityTypeName) throws ODataException {
-    List<PropertyRef> oneKeyPropertyInt16 = Arrays.asList(new PropertyRef().setName("a"));
+  public CsdlEntityType getEntityType(final FullQualifiedName entityTypeName) throws ODataException {
+    List<CsdlPropertyRef> oneKeyPropertyInt16 = Arrays.asList(new CsdlPropertyRef().setName("a"));
 
     if (entityTypeName.equals(nameETabc)) {
-      return new EntityType()
+      return new CsdlEntityType()
           .setName("ETabc")
           .setProperties(Arrays.asList(
               propertyAInt16, propertyBInt16, propertyCInt16,

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/2318953c/samples/server/src/main/java/org/apache/olingo/server/sample/edmprovider/CarsEdmProvider.java
----------------------------------------------------------------------
diff --git a/samples/server/src/main/java/org/apache/olingo/server/sample/edmprovider/CarsEdmProvider.java b/samples/server/src/main/java/org/apache/olingo/server/sample/edmprovider/CarsEdmProvider.java
index 8036c8f..4d3ba9d 100644
--- a/samples/server/src/main/java/org/apache/olingo/server/sample/edmprovider/CarsEdmProvider.java
+++ b/samples/server/src/main/java/org/apache/olingo/server/sample/edmprovider/CarsEdmProvider.java
@@ -25,19 +25,19 @@ import java.util.List;
 import org.apache.olingo.commons.api.ODataException;
 import org.apache.olingo.commons.api.edm.EdmPrimitiveTypeKind;
 import org.apache.olingo.commons.api.edm.FullQualifiedName;
-import org.apache.olingo.commons.api.edm.provider.AbstractEdmProvider;
-import org.apache.olingo.commons.api.edm.provider.ComplexType;
-import org.apache.olingo.commons.api.edm.provider.EntityContainer;
-import org.apache.olingo.commons.api.edm.provider.EntityContainerInfo;
-import org.apache.olingo.commons.api.edm.provider.EntitySet;
-import org.apache.olingo.commons.api.edm.provider.EntityType;
-import org.apache.olingo.commons.api.edm.provider.NavigationProperty;
-import org.apache.olingo.commons.api.edm.provider.NavigationPropertyBinding;
-import org.apache.olingo.commons.api.edm.provider.Property;
-import org.apache.olingo.commons.api.edm.provider.PropertyRef;
-import org.apache.olingo.commons.api.edm.provider.Schema;
-
-public class CarsEdmProvider extends AbstractEdmProvider {
+import org.apache.olingo.commons.api.edm.provider.CsdlAbstractEdmProvider;
+import org.apache.olingo.commons.api.edm.provider.CsdlComplexType;
+import org.apache.olingo.commons.api.edm.provider.CsdlEntityContainer;
+import org.apache.olingo.commons.api.edm.provider.CsdlEntityContainerInfo;
+import org.apache.olingo.commons.api.edm.provider.CsdlEntitySet;
+import org.apache.olingo.commons.api.edm.provider.CsdlEntityType;
+import org.apache.olingo.commons.api.edm.provider.CsdlNavigationProperty;
+import org.apache.olingo.commons.api.edm.provider.CsdlNavigationPropertyBinding;
+import org.apache.olingo.commons.api.edm.provider.CsdlProperty;
+import org.apache.olingo.commons.api.edm.provider.CsdlPropertyRef;
+import org.apache.olingo.commons.api.edm.provider.CsdlSchema;
+
+public class CarsEdmProvider extends CsdlAbstractEdmProvider {
 
   // Service Namespace
   public static final String NAMESPACE = "olingo.odata.sample";
@@ -58,39 +58,39 @@ public class CarsEdmProvider extends AbstractEdmProvider {
   public static final String ES_MANUFACTURER_NAME = "Manufacturers";
 
   @Override
-  public EntityType getEntityType(final FullQualifiedName entityTypeName) throws ODataException {
+  public CsdlEntityType getEntityType(final FullQualifiedName entityTypeName) throws ODataException {
     if (ET_CAR.equals(entityTypeName)) {
-      return new EntityType()
+      return new CsdlEntityType()
           .setName(ET_CAR.getName())
           .setKey(Arrays.asList(
-              new PropertyRef().setName("Id")))
+              new CsdlPropertyRef().setName("Id")))
           .setProperties(
               Arrays.asList(
-                  new Property().setName("Id").setType(EdmPrimitiveTypeKind.Int16.getFullQualifiedName()),
-                  new Property().setName("Model").setType(EdmPrimitiveTypeKind.String.getFullQualifiedName()),
-                  new Property().setName("ModelYear").setType(EdmPrimitiveTypeKind.String.getFullQualifiedName())
+                  new CsdlProperty().setName("Id").setType(EdmPrimitiveTypeKind.Int16.getFullQualifiedName()),
+                  new CsdlProperty().setName("Model").setType(EdmPrimitiveTypeKind.String.getFullQualifiedName()),
+                  new CsdlProperty().setName("ModelYear").setType(EdmPrimitiveTypeKind.String.getFullQualifiedName())
                       .setMaxLength(4),
-                  new Property().setName("Price").setType(EdmPrimitiveTypeKind.Decimal.getFullQualifiedName())
+                  new CsdlProperty().setName("Price").setType(EdmPrimitiveTypeKind.Decimal.getFullQualifiedName())
                       .setScale(2),
-                  new Property().setName("Currency").setType(EdmPrimitiveTypeKind.String.getFullQualifiedName())
+                  new CsdlProperty().setName("Currency").setType(EdmPrimitiveTypeKind.String.getFullQualifiedName())
                       .setMaxLength(3)
                   )
           ).setNavigationProperties(Arrays.asList(
-              new NavigationProperty().setName("Manufacturer").setType(ET_MANUFACTURER)
+              new CsdlNavigationProperty().setName("Manufacturer").setType(ET_MANUFACTURER)
               )
           );
 
     } else if (ET_MANUFACTURER.equals(entityTypeName)) {
-      return new EntityType()
+      return new CsdlEntityType()
           .setName(ET_MANUFACTURER.getName())
           .setKey(Arrays.asList(
-              new PropertyRef().setName("Id")))
+              new CsdlPropertyRef().setName("Id")))
           .setProperties(Arrays.asList(
-              new Property().setName("Id").setType(EdmPrimitiveTypeKind.Int16.getFullQualifiedName()),
-              new Property().setName("Name").setType(EdmPrimitiveTypeKind.String.getFullQualifiedName()),
-              new Property().setName("Address").setType(CT_ADDRESS))
+              new CsdlProperty().setName("Id").setType(EdmPrimitiveTypeKind.Int16.getFullQualifiedName()),
+              new CsdlProperty().setName("Name").setType(EdmPrimitiveTypeKind.String.getFullQualifiedName()),
+              new CsdlProperty().setName("Address").setType(CT_ADDRESS))
           ).setNavigationProperties(Arrays.asList(
-              new NavigationProperty().setName("Cars").setType(ET_CAR).setCollection(true)
+              new CsdlNavigationProperty().setName("Cars").setType(ET_CAR).setCollection(true)
               )
           );
     }
@@ -98,36 +98,36 @@ public class CarsEdmProvider extends AbstractEdmProvider {
     return null;
   }
 
-  public ComplexType getComplexType(final FullQualifiedName complexTypeName) throws ODataException {
+  public CsdlComplexType getComplexType(final FullQualifiedName complexTypeName) throws ODataException {
     if (CT_ADDRESS.equals(complexTypeName)) {
-      return new ComplexType().setName(CT_ADDRESS.getName()).setProperties(Arrays.asList(
-          new Property().setName("Street").setType(EdmPrimitiveTypeKind.String.getFullQualifiedName()),
-          new Property().setName("City").setType(EdmPrimitiveTypeKind.String.getFullQualifiedName()),
-          new Property().setName("ZipCode").setType(EdmPrimitiveTypeKind.String.getFullQualifiedName()),
-          new Property().setName("Country").setType(EdmPrimitiveTypeKind.String.getFullQualifiedName())
+      return new CsdlComplexType().setName(CT_ADDRESS.getName()).setProperties(Arrays.asList(
+          new CsdlProperty().setName("Street").setType(EdmPrimitiveTypeKind.String.getFullQualifiedName()),
+          new CsdlProperty().setName("City").setType(EdmPrimitiveTypeKind.String.getFullQualifiedName()),
+          new CsdlProperty().setName("ZipCode").setType(EdmPrimitiveTypeKind.String.getFullQualifiedName()),
+          new CsdlProperty().setName("Country").setType(EdmPrimitiveTypeKind.String.getFullQualifiedName())
           ));
     }
     return null;
   }
 
   @Override
-  public EntitySet getEntitySet(final FullQualifiedName entityContainer, final String entitySetName)
+  public CsdlEntitySet getEntitySet(final FullQualifiedName entityContainer, final String entitySetName)
       throws ODataException {
     if (CONTAINER_FQN.equals(entityContainer)) {
       if (ES_CARS_NAME.equals(entitySetName)) {
-        return new EntitySet()
+        return new CsdlEntitySet()
             .setName(ES_CARS_NAME)
             .setType(ET_CAR)
             .setNavigationPropertyBindings(
                 Arrays.asList(
-                    new NavigationPropertyBinding().setPath("Manufacturer").setTarget(
+                    new CsdlNavigationPropertyBinding().setPath("Manufacturer").setTarget(
                         CONTAINER_FQN.getFullQualifiedNameAsString() + "/" + ES_MANUFACTURER_NAME)));
       } else if (ES_MANUFACTURER_NAME.equals(entitySetName)) {
-        return new EntitySet()
+        return new CsdlEntitySet()
             .setName(ES_MANUFACTURER_NAME)
             .setType(ET_MANUFACTURER).setNavigationPropertyBindings(
                 Arrays.asList(
-                    new NavigationPropertyBinding().setPath("Cars")
+                    new CsdlNavigationPropertyBinding().setPath("Cars")
                         .setTarget(CONTAINER_FQN.getFullQualifiedNameAsString() + "/" + ES_CARS_NAME)));
       }
     }
@@ -136,18 +136,18 @@ public class CarsEdmProvider extends AbstractEdmProvider {
   }
 
   @Override
-  public List<Schema> getSchemas() throws ODataException {
-    List<Schema> schemas = new ArrayList<Schema>();
-    Schema schema = new Schema();
+  public List<CsdlSchema> getSchemas() throws ODataException {
+    List<CsdlSchema> schemas = new ArrayList<CsdlSchema>();
+    CsdlSchema schema = new CsdlSchema();
     schema.setNamespace(NAMESPACE);
     // EntityTypes
-    List<EntityType> entityTypes = new ArrayList<EntityType>();
+    List<CsdlEntityType> entityTypes = new ArrayList<CsdlEntityType>();
     entityTypes.add(getEntityType(ET_CAR));
     entityTypes.add(getEntityType(ET_MANUFACTURER));
     schema.setEntityTypes(entityTypes);
 
     // ComplexTypes
-    List<ComplexType> complexTypes = new ArrayList<ComplexType>();
+    List<CsdlComplexType> complexTypes = new ArrayList<CsdlComplexType>();
     complexTypes.add(getComplexType(CT_ADDRESS));
     schema.setComplexTypes(complexTypes);
 
@@ -159,12 +159,12 @@ public class CarsEdmProvider extends AbstractEdmProvider {
   }
 
   @Override
-  public EntityContainer getEntityContainer() throws ODataException {
-    EntityContainer container = new EntityContainer();
+  public CsdlEntityContainer getEntityContainer() throws ODataException {
+    CsdlEntityContainer container = new CsdlEntityContainer();
     container.setName(CONTAINER_FQN.getName());
 
     // EntitySets
-    List<EntitySet> entitySets = new ArrayList<EntitySet>();
+    List<CsdlEntitySet> entitySets = new ArrayList<CsdlEntitySet>();
     container.setEntitySets(entitySets);
     entitySets.add(getEntitySet(CONTAINER_FQN, ES_CARS_NAME));
     entitySets.add(getEntitySet(CONTAINER_FQN, ES_MANUFACTURER_NAME));
@@ -173,9 +173,10 @@ public class CarsEdmProvider extends AbstractEdmProvider {
   }
 
   @Override
-  public EntityContainerInfo getEntityContainerInfo(final FullQualifiedName entityContainerName) throws ODataException {
+  public CsdlEntityContainerInfo getEntityContainerInfo(final FullQualifiedName entityContainerName)
+          throws ODataException {
     if (entityContainerName == null || CONTAINER_FQN.equals(entityContainerName)) {
-      return new EntityContainerInfo().setContainerName(CONTAINER_FQN);
+      return new CsdlEntityContainerInfo().setContainerName(CONTAINER_FQN);
     }
     return null;
   }


[22/50] [abbrv] olingo-odata4 git commit: [OLINGO-564] Renamed 'ClientCsdl' classes

Posted by mi...@apache.org.
http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/53b10f6b/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/ClientCsdlTypeDefinition.java
----------------------------------------------------------------------
diff --git a/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/ClientCsdlTypeDefinition.java b/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/ClientCsdlTypeDefinition.java
new file mode 100644
index 0000000..420f226
--- /dev/null
+++ b/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/ClientCsdlTypeDefinition.java
@@ -0,0 +1,74 @@
+/*
+ * 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.client.core.edm.xml;
+
+import com.fasterxml.jackson.core.JsonParser;
+import com.fasterxml.jackson.core.JsonToken;
+import com.fasterxml.jackson.databind.DeserializationContext;
+import org.apache.commons.lang3.BooleanUtils;
+import org.apache.olingo.commons.api.edm.geo.SRID;
+import org.apache.olingo.commons.api.edm.provider.CsdlTypeDefinition;
+
+import com.fasterxml.jackson.databind.annotation.JsonDeserialize;
+
+import java.io.IOException;
+
+@JsonDeserialize(using = ClientCsdlTypeDefinition.TypeDefinitionDeserializer.class)
+class ClientCsdlTypeDefinition extends CsdlTypeDefinition {
+
+  private static final long serialVersionUID = -902407149079419602L;
+
+  static class TypeDefinitionDeserializer extends AbstractClientCsdlEdmDeserializer<ClientCsdlTypeDefinition> {
+    @Override
+    protected ClientCsdlTypeDefinition doDeserialize(final JsonParser jp, final DeserializationContext ctxt)
+            throws IOException {
+      final ClientCsdlTypeDefinition typeDefinition = new ClientCsdlTypeDefinition();
+
+      for (; jp.getCurrentToken() != JsonToken.END_OBJECT; jp.nextToken()) {
+        final JsonToken token = jp.getCurrentToken();
+        if (token == JsonToken.FIELD_NAME) {
+          if ("Name".equals(jp.getCurrentName())) {
+            typeDefinition.setName(jp.nextTextValue());
+          } else if ("UnderlyingType".equals(jp.getCurrentName())) {
+            typeDefinition.setUnderlyingType(jp.nextTextValue());
+          } else if ("MaxLength".equals(jp.getCurrentName())) {
+            typeDefinition.setMaxLength(jp.nextIntValue(0));
+          } else if ("Unicode".equals(jp.getCurrentName())) {
+            typeDefinition.setUnicode(BooleanUtils.toBoolean(jp.nextTextValue()));
+          } else if ("Precision".equals(jp.getCurrentName())) {
+            typeDefinition.setPrecision(jp.nextIntValue(0));
+          } else if ("Scale".equals(jp.getCurrentName())) {
+            final String scale = jp.nextTextValue();
+            typeDefinition.setScale(scale.equalsIgnoreCase("variable") ? 0 : Integer.valueOf(scale));
+          } else if ("SRID".equals(jp.getCurrentName())) {
+            final String srid = jp.nextTextValue();
+            if (srid != null) {
+              typeDefinition.setSrid(SRID.valueOf(srid));
+            }
+          } else if ("Annotation".equals(jp.getCurrentName())) {
+            jp.nextToken();
+            typeDefinition.getAnnotations().add(jp.readValueAs(ClientCsdlAnnotation.class));
+          }
+        }
+      }
+
+      return typeDefinition;
+    }
+  }
+}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/53b10f6b/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/ClientCsdlUrlRef.java
----------------------------------------------------------------------
diff --git a/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/ClientCsdlUrlRef.java b/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/ClientCsdlUrlRef.java
new file mode 100644
index 0000000..280e1af
--- /dev/null
+++ b/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/ClientCsdlUrlRef.java
@@ -0,0 +1,65 @@
+/*
+ * 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.client.core.edm.xml;
+
+import com.fasterxml.jackson.core.JsonParser;
+import com.fasterxml.jackson.core.JsonToken;
+import com.fasterxml.jackson.databind.DeserializationContext;
+import org.apache.olingo.commons.api.edm.provider.annotation.AnnotationExpression;
+import org.apache.olingo.commons.api.edm.provider.annotation.UrlRef;
+
+import com.fasterxml.jackson.databind.annotation.JsonDeserialize;
+
+import java.io.IOException;
+
+@JsonDeserialize(using = ClientCsdlUrlRef.UrlRefDeserializer.class)
+class ClientCsdlUrlRef extends AbstractClientCsdlDynamicAnnotationExpression implements UrlRef {
+
+  private static final long serialVersionUID = -7693224811739000440L;
+
+  private AnnotationExpression value;
+
+  @Override
+  public AnnotationExpression getValue() {
+    return value;
+  }
+
+  public void setValue(final AnnotationExpression value) {
+    this.value = value;
+  }
+
+  static class UrlRefDeserializer extends AbstractClientCsdlEdmDeserializer<ClientCsdlUrlRef> {
+    @Override
+    protected ClientCsdlUrlRef doDeserialize(final JsonParser jp, final DeserializationContext ctxt)
+            throws IOException {
+      final ClientCsdlUrlRef urlref = new ClientCsdlUrlRef();
+      for (; jp.getCurrentToken() != JsonToken.END_OBJECT; jp.nextToken()) {
+        final JsonToken token = jp.getCurrentToken();
+        if (token == JsonToken.FIELD_NAME) {
+          if (isAnnotationConstExprConstruct(jp)) {
+            urlref.setValue(parseAnnotationConstExprConstruct(jp));
+          } else {
+            urlref.setValue(jp.readValueAs(AbstractClientCsdlDynamicAnnotationExpression.class));
+          }
+        }
+      }
+      return urlref;
+    }
+  }
+}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/53b10f6b/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/ClientDataServices.java
----------------------------------------------------------------------
diff --git a/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/ClientDataServices.java b/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/ClientDataServices.java
deleted file mode 100644
index d4a4406..0000000
--- a/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/ClientDataServices.java
+++ /dev/null
@@ -1,93 +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.client.core.edm.xml;
-
-import java.io.IOException;
-import java.util.ArrayList;
-import java.util.List;
-
-import com.fasterxml.jackson.core.JsonParser;
-import com.fasterxml.jackson.core.JsonToken;
-import com.fasterxml.jackson.databind.DeserializationContext;
-import org.apache.olingo.client.api.edm.xml.DataServices;
-import org.apache.olingo.commons.api.edm.provider.CsdlAbstractEdmItem;
-import org.apache.olingo.commons.api.edm.provider.CsdlSchema;
-
-import com.fasterxml.jackson.databind.annotation.JsonDeserialize;
-
-@JsonDeserialize(using = ClientDataServices.DataServicesDeserializer.class)
-class ClientDataServices extends CsdlAbstractEdmItem implements DataServices {
-
-  private static final long serialVersionUID = 4200317286476885204L;
-
-  private final List<CsdlSchema> schemas = new ArrayList<CsdlSchema>();
-  
-  private String dataServiceVersion;
-
-  private String maxDataServiceVersion;
-
-  @Override
-  public String getDataServiceVersion() {
-    return dataServiceVersion;
-  }
-
-  public void setDataServiceVersion(final String version) {
-    this.dataServiceVersion = version;
-  }
-
-  @Override
-  public String getMaxDataServiceVersion() {
-    return maxDataServiceVersion;
-  }
-
-  public void setMaxDataServiceVersion(final String version) {
-    this.maxDataServiceVersion = version;
-  }
-
-  @Override
-  public List<CsdlSchema> getSchemas() {
-    return schemas;
-  }
-
-  static class DataServicesDeserializer extends AbstractClientEdmDeserializer<ClientDataServices> {
-
-    @Override
-    protected ClientDataServices doDeserialize(final JsonParser jp, final DeserializationContext ctxt)
-            throws IOException {
-
-      final ClientDataServices dataServices = new ClientDataServices();
-
-      for (; jp.getCurrentToken() != JsonToken.END_OBJECT; jp.nextToken()) {
-        final JsonToken token = jp.getCurrentToken();
-        if (token == JsonToken.FIELD_NAME) {
-          if ("DataServiceVersion".equals(jp.getCurrentName())) {
-            dataServices.setDataServiceVersion(jp.nextTextValue());
-          } else if ("MaxDataServiceVersion".equals(jp.getCurrentName())) {
-            dataServices.setMaxDataServiceVersion(jp.nextTextValue());
-          } else if ("Schema".equals(jp.getCurrentName())) {
-            jp.nextToken();
-            dataServices.getSchemas().add(jp.readValueAs(ClientSchema.class));
-          }
-        }
-      }
-
-      return dataServices;
-    }
-  }
-}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/53b10f6b/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/ClientEdmx.java
----------------------------------------------------------------------
diff --git a/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/ClientEdmx.java b/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/ClientEdmx.java
deleted file mode 100644
index 736030b..0000000
--- a/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/ClientEdmx.java
+++ /dev/null
@@ -1,95 +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.client.core.edm.xml;
-
-import java.io.IOException;
-import java.util.ArrayList;
-import java.util.List;
-
-import com.fasterxml.jackson.core.JsonParser;
-import com.fasterxml.jackson.core.JsonToken;
-import com.fasterxml.jackson.databind.DeserializationContext;
-import org.apache.olingo.client.api.edm.xml.DataServices;
-import org.apache.olingo.client.api.edm.xml.Edmx;
-import org.apache.olingo.client.api.edm.xml.Reference;
-import org.apache.olingo.commons.api.edm.provider.CsdlAbstractEdmItem;
-
-import com.fasterxml.jackson.databind.annotation.JsonDeserialize;
-
-@JsonDeserialize(using = ClientEdmx.EdmxDeserializer.class)
-public class ClientEdmx extends CsdlAbstractEdmItem implements Edmx {
-
-  private static final long serialVersionUID = -6293476719276092572L;
-
-  private final List<Reference> references = new ArrayList<Reference>();
-
-  private String version;
-
-  private DataServices dataServices;
-
-  @Override
-  public String getVersion() {
-    return version;
-  }
-
-  public void setVersion(final String version) {
-    this.version = version;
-  }
-
-  @Override
-  public DataServices getDataServices() {
-    return dataServices;
-  }
-
-  public void setDataServices(final DataServices dataServices) {
-    this.dataServices = dataServices;
-  }
-  
-  @Override
-  public List<Reference> getReferences() {
-    return references;
-  }
-
-  static class EdmxDeserializer extends AbstractClientEdmDeserializer<ClientEdmx> {
-
-    @Override
-    protected ClientEdmx doDeserialize(final JsonParser jp, final DeserializationContext ctxt)
-            throws IOException {
-
-      final ClientEdmx edmx = new ClientEdmx();
-
-      for (; jp.getCurrentToken() != JsonToken.END_OBJECT; jp.nextToken()) {
-        final JsonToken token = jp.getCurrentToken();
-        if (token == JsonToken.FIELD_NAME) {
-          if ("Version".equals(jp.getCurrentName())) {
-            edmx.setVersion(jp.nextTextValue());
-          } else if ("DataServices".equals(jp.getCurrentName())) {
-            jp.nextToken();
-            edmx.setDataServices(jp.readValueAs(ClientDataServices.class));
-          } else if ("Reference".equals(jp.getCurrentName())) {
-            jp.nextToken();
-            edmx.getReferences().add(jp.readValueAs(ClientReference.class));
-          }
-        }
-      }
-
-      return edmx;
-    }
-  }
-}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/53b10f6b/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/ClientEntityContainer.java
----------------------------------------------------------------------
diff --git a/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/ClientEntityContainer.java b/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/ClientEntityContainer.java
deleted file mode 100644
index 2109cee..0000000
--- a/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/ClientEntityContainer.java
+++ /dev/null
@@ -1,72 +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.client.core.edm.xml;
-
-import com.fasterxml.jackson.core.JsonParser;
-import com.fasterxml.jackson.core.JsonToken;
-import com.fasterxml.jackson.databind.DeserializationContext;
-import org.apache.olingo.commons.api.edm.provider.CsdlEntityContainer;
-
-import com.fasterxml.jackson.databind.annotation.JsonDeserialize;
-
-import java.io.IOException;
-
-@JsonDeserialize(using = ClientEntityContainer.EntityContainerDeserializer.class)
-class ClientEntityContainer extends CsdlEntityContainer {
-
-  private static final long serialVersionUID = 5631432527646955795L;
-
-  static class EntityContainerDeserializer extends AbstractClientEdmDeserializer<ClientEntityContainer> {
-
-    @Override
-    protected ClientEntityContainer doDeserialize(final JsonParser jp, final DeserializationContext ctxt)
-            throws IOException {
-
-      final ClientEntityContainer entityContainer = new ClientEntityContainer();
-
-      for (; jp.getCurrentToken() != JsonToken.END_OBJECT; jp.nextToken()) {
-        final JsonToken token = jp.getCurrentToken();
-        if (token == JsonToken.FIELD_NAME) {
-          if ("Name".equals(jp.getCurrentName())) {
-            entityContainer.setName(jp.nextTextValue());
-          } else if ("Extends".equals(jp.getCurrentName())) {
-            entityContainer.setExtendsContainer(jp.nextTextValue());
-          } else if ("EntitySet".equals(jp.getCurrentName())) {
-            jp.nextToken();
-            entityContainer.getEntitySets().add(jp.readValueAs(ClientEntitySet.class));
-          } else if ("Singleton".equals(jp.getCurrentName())) {
-            jp.nextToken();
-            entityContainer.getSingletons().add(jp.readValueAs(ClientSingleton.class));
-          } else if ("ActionImport".equals(jp.getCurrentName())) {
-            jp.nextToken();
-            entityContainer.getActionImports().add(jp.readValueAs(ClientActionImport.class));
-          } else if ("FunctionImport".equals(jp.getCurrentName())) {
-            jp.nextToken();
-            entityContainer.getFunctionImports().add(jp.readValueAs(ClientFunctionImport.class));
-          } else if ("Annotation".equals(jp.getCurrentName())) {
-            jp.nextToken();
-            entityContainer.getAnnotations().add(jp.readValueAs(ClientAnnotation.class));
-          }
-        }
-      }
-
-      return entityContainer;
-    }
-  }
-}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/53b10f6b/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/ClientEntityKey.java
----------------------------------------------------------------------
diff --git a/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/ClientEntityKey.java b/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/ClientEntityKey.java
deleted file mode 100644
index 6b9e230..0000000
--- a/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/ClientEntityKey.java
+++ /dev/null
@@ -1,63 +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.client.core.edm.xml;
-
-import java.io.IOException;
-import java.util.ArrayList;
-import java.util.List;
-
-import com.fasterxml.jackson.core.JsonParser;
-import com.fasterxml.jackson.core.JsonToken;
-import com.fasterxml.jackson.databind.DeserializationContext;
-import org.apache.olingo.commons.api.edm.provider.CsdlAbstractEdmItem;
-import org.apache.olingo.commons.api.edm.provider.CsdlPropertyRef;
-
-import com.fasterxml.jackson.databind.annotation.JsonDeserialize;
-
-@JsonDeserialize(using = ClientEntityKey.EntityKeyDeserializer.class)
-class ClientEntityKey extends CsdlAbstractEdmItem {
-
-  private static final long serialVersionUID = 520227585458843347L;
-
-  private final List<CsdlPropertyRef> propertyRefs = new ArrayList<CsdlPropertyRef>();
-
-  public List<CsdlPropertyRef> getPropertyRefs() {
-    return propertyRefs;
-  }
-
-  static class EntityKeyDeserializer extends AbstractClientEdmDeserializer<ClientEntityKey> {
-    @Override
-    protected ClientEntityKey doDeserialize(final JsonParser jp, final DeserializationContext ctxt)
-            throws IOException {
-
-      final ClientEntityKey entityKey = new ClientEntityKey();
-
-      for (; jp.getCurrentToken() != JsonToken.END_OBJECT; jp.nextToken()) {
-        final JsonToken token = jp.getCurrentToken();
-
-        if (token == JsonToken.FIELD_NAME && "PropertyRef".equals(jp.getCurrentName())) {
-          jp.nextToken();
-          entityKey.getPropertyRefs().add(jp.readValueAs(ClientPropertyRef.class));
-        }
-      }
-
-      return entityKey;
-    }
-  }
-}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/53b10f6b/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/ClientEntitySet.java
----------------------------------------------------------------------
diff --git a/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/ClientEntitySet.java b/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/ClientEntitySet.java
deleted file mode 100644
index ca358cb..0000000
--- a/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/ClientEntitySet.java
+++ /dev/null
@@ -1,65 +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.client.core.edm.xml;
-
-import com.fasterxml.jackson.core.JsonParser;
-import com.fasterxml.jackson.core.JsonToken;
-import com.fasterxml.jackson.databind.DeserializationContext;
-import org.apache.commons.lang3.BooleanUtils;
-import org.apache.olingo.commons.api.edm.provider.CsdlEntitySet;
-
-import com.fasterxml.jackson.databind.annotation.JsonDeserialize;
-
-import java.io.IOException;
-
-@JsonDeserialize(using = ClientEntitySet.EntitySetDeserializer.class)
-class ClientEntitySet extends CsdlEntitySet {
-
-  private static final long serialVersionUID = -5553885465204370676L;
-
-  static class EntitySetDeserializer extends AbstractClientEdmDeserializer<CsdlEntitySet> {
-    @Override
-    protected CsdlEntitySet doDeserialize(final JsonParser jp, final DeserializationContext ctxt)
-            throws IOException {
-
-      final ClientEntitySet entitySet = new ClientEntitySet();
-
-      for (; jp.getCurrentToken() != JsonToken.END_OBJECT; jp.nextToken()) {
-        final JsonToken token = jp.getCurrentToken();
-        if (token == JsonToken.FIELD_NAME) {
-          if ("Name".equals(jp.getCurrentName())) {
-            entitySet.setName(jp.nextTextValue());
-          } else if ("EntityType".equals(jp.getCurrentName())) {
-            entitySet.setType(jp.nextTextValue());
-          } else if ("IncludeInServiceDocument".equals(jp.getCurrentName())) {
-            entitySet.setIncludeInServiceDocument(BooleanUtils.toBoolean(jp.nextTextValue()));
-          } else if ("NavigationPropertyBinding".equals(jp.getCurrentName())) {
-            jp.nextToken();
-            entitySet.getNavigationPropertyBindings().add(jp.readValueAs(ClientNavigationPropertyBinding.class));
-          } else if ("Annotation".equals(jp.getCurrentName())) {
-            jp.nextToken();
-            entitySet.getAnnotations().add(jp.readValueAs(ClientAnnotation.class));
-          }
-        }
-      }
-
-      return entitySet;
-    }
-  }
-}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/53b10f6b/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/ClientEntityType.java
----------------------------------------------------------------------
diff --git a/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/ClientEntityType.java b/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/ClientEntityType.java
deleted file mode 100644
index ceef35e..0000000
--- a/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/ClientEntityType.java
+++ /dev/null
@@ -1,76 +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.client.core.edm.xml;
-
-import com.fasterxml.jackson.core.JsonParser;
-import com.fasterxml.jackson.core.JsonToken;
-import com.fasterxml.jackson.databind.DeserializationContext;
-import org.apache.commons.lang3.BooleanUtils;
-import org.apache.olingo.commons.api.edm.provider.CsdlEntityType;
-
-import com.fasterxml.jackson.databind.annotation.JsonDeserialize;
-
-import java.io.IOException;
-
-@JsonDeserialize(using = ClientEntityType.EntityTypeDeserializer.class)
-class ClientEntityType extends CsdlEntityType {
-
-  private static final long serialVersionUID = -3986417775876689669L;
-
-  static class EntityTypeDeserializer extends AbstractClientEdmDeserializer<CsdlEntityType> {
-    @Override
-    protected CsdlEntityType doDeserialize(final JsonParser jp, final DeserializationContext ctxt)
-            throws IOException {
-
-      final ClientEntityType entityType = new ClientEntityType();
-
-      for (; jp.getCurrentToken() != JsonToken.END_OBJECT; jp.nextToken()) {
-        final JsonToken token = jp.getCurrentToken();
-        if (token == JsonToken.FIELD_NAME) {
-          if ("Name".equals(jp.getCurrentName())) {
-            entityType.setName(jp.nextTextValue());
-          } else if ("Abstract".equals(jp.getCurrentName())) {
-            entityType.setAbstract(BooleanUtils.toBoolean(jp.nextTextValue()));
-          } else if ("BaseType".equals(jp.getCurrentName())) {
-            entityType.setBaseType(jp.nextTextValue());
-          } else if ("OpenType".equals(jp.getCurrentName())) {
-            entityType.setOpenType(BooleanUtils.toBoolean(jp.nextTextValue()));
-          } else if ("HasStream".equals(jp.getCurrentName())) {
-            entityType.setHasStream(BooleanUtils.toBoolean(jp.nextTextValue()));
-          } else if ("Key".equals(jp.getCurrentName())) {
-            jp.nextToken();
-            ClientEntityKey keyImpl = jp.readValueAs(ClientEntityKey.class);
-            entityType.setKey(keyImpl.getPropertyRefs());
-          } else if ("Property".equals(jp.getCurrentName())) {
-            jp.nextToken();
-            entityType.getProperties().add(jp.readValueAs(ClientProperty.class));
-          } else if ("NavigationProperty".equals(jp.getCurrentName())) {
-            jp.nextToken();
-            entityType.getNavigationProperties().add(jp.readValueAs(ClientNavigationProperty.class));
-          } else if ("Annotation".equals(jp.getCurrentName())) {
-            jp.nextToken();
-            entityType.getAnnotations().add(jp.readValueAs(ClientAnnotation.class));
-          }
-        }
-      }
-
-      return entityType;
-    }
-  }
-}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/53b10f6b/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/ClientEnumMember.java
----------------------------------------------------------------------
diff --git a/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/ClientEnumMember.java b/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/ClientEnumMember.java
deleted file mode 100644
index b72e2df..0000000
--- a/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/ClientEnumMember.java
+++ /dev/null
@@ -1,57 +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.client.core.edm.xml;
-
-import com.fasterxml.jackson.core.JsonParser;
-import com.fasterxml.jackson.core.JsonToken;
-import com.fasterxml.jackson.databind.DeserializationContext;
-import com.fasterxml.jackson.databind.annotation.JsonDeserialize;
-import org.apache.olingo.commons.api.edm.provider.CsdlEnumMember;
-
-import java.io.IOException;
-
-@JsonDeserialize(using = ClientEnumMember.EnumMemberDeserializer.class)
-class ClientEnumMember extends CsdlEnumMember {
-
-  private static final long serialVersionUID = -6138606817225829791L;
-
-  static class EnumMemberDeserializer extends AbstractClientEdmDeserializer<CsdlEnumMember> {
-    @Override
-    protected CsdlEnumMember doDeserialize(final JsonParser jp, final DeserializationContext ctxt)
-            throws IOException {
-
-      final CsdlEnumMember member = new CsdlEnumMember();
-
-      for (; jp.getCurrentToken() != JsonToken.END_OBJECT; jp.nextToken()) {
-        final JsonToken token = jp.getCurrentToken();
-        if (token == JsonToken.FIELD_NAME) {
-          if ("Name".equals(jp.getCurrentName())) {
-            member.setName(jp.nextTextValue());
-          } else if ("Value".equals(jp.getCurrentName())) {
-            member.setValue(jp.nextTextValue());
-          } else if ("Annotation".equals(jp.getCurrentName())) {
-            jp.nextToken();
-            member.getAnnotations().add(jp.readValueAs(ClientAnnotation.class));
-          }
-        }
-      }
-      return member;
-    }
-  }
-}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/53b10f6b/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/ClientEnumType.java
----------------------------------------------------------------------
diff --git a/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/ClientEnumType.java b/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/ClientEnumType.java
deleted file mode 100644
index e64f1c8..0000000
--- a/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/ClientEnumType.java
+++ /dev/null
@@ -1,65 +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.client.core.edm.xml;
-
-import com.fasterxml.jackson.core.JsonParser;
-import com.fasterxml.jackson.core.JsonToken;
-import com.fasterxml.jackson.databind.DeserializationContext;
-import org.apache.commons.lang3.BooleanUtils;
-import org.apache.olingo.commons.api.edm.provider.CsdlEnumType;
-
-import com.fasterxml.jackson.databind.annotation.JsonDeserialize;
-
-import java.io.IOException;
-
-@JsonDeserialize(using = ClientEnumType.EnumTypeDeserializer.class)
-class ClientEnumType extends CsdlEnumType {
-
-  private static final long serialVersionUID = 9191189755592743333L;
-
-  static class EnumTypeDeserializer extends AbstractClientEdmDeserializer<ClientEnumType> {
-    @Override
-    protected ClientEnumType doDeserialize(final JsonParser jp, final DeserializationContext ctxt)
-            throws IOException {
-
-      final ClientEnumType enumType = new ClientEnumType();
-
-      for (; jp.getCurrentToken() != JsonToken.END_OBJECT; jp.nextToken()) {
-        final JsonToken token = jp.getCurrentToken();
-        if (token == JsonToken.FIELD_NAME) {
-          if ("Name".equals(jp.getCurrentName())) {
-            enumType.setName(jp.nextTextValue());
-          } else if ("UnderlyingType".equals(jp.getCurrentName())) {
-            enumType.setUnderlyingType(jp.nextTextValue());
-          } else if ("IsFlags".equals(jp.getCurrentName())) {
-            enumType.setFlags(BooleanUtils.toBoolean(jp.nextTextValue()));
-          } else if ("Member".equals(jp.getCurrentName())) {
-            jp.nextToken();
-            enumType.getMembers().add(jp.readValueAs(ClientEnumMember.class));
-          } else if ("Annotation".equals(jp.getCurrentName())) {
-            jp.nextToken();
-            enumType.getAnnotations().add(jp.readValueAs(ClientAnnotation.class));
-          }
-        }
-      }
-
-      return enumType;
-    }
-  }
-}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/53b10f6b/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/ClientFunction.java
----------------------------------------------------------------------
diff --git a/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/ClientFunction.java b/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/ClientFunction.java
deleted file mode 100644
index c07b37e..0000000
--- a/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/ClientFunction.java
+++ /dev/null
@@ -1,69 +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.client.core.edm.xml;
-
-import com.fasterxml.jackson.core.JsonParser;
-import com.fasterxml.jackson.core.JsonToken;
-import com.fasterxml.jackson.databind.DeserializationContext;
-import org.apache.commons.lang3.BooleanUtils;
-import org.apache.olingo.commons.api.edm.provider.CsdlFunction;
-
-import com.fasterxml.jackson.databind.annotation.JsonDeserialize;
-
-import java.io.IOException;
-
-@JsonDeserialize(using = ClientFunction.FunctionDeserializer.class)
-class ClientFunction extends CsdlFunction {
-
-  private static final long serialVersionUID = -5494898295282843362L;
-
-  static class FunctionDeserializer extends AbstractClientEdmDeserializer<ClientFunction> {
-    @Override
-    protected ClientFunction doDeserialize(final JsonParser jp, final DeserializationContext ctxt)
-            throws IOException {
-
-      final ClientFunction functionImpl = new ClientFunction();
-
-      for (; jp.getCurrentToken() != JsonToken.END_OBJECT; jp.nextToken()) {
-        final JsonToken token = jp.getCurrentToken();
-        if (token == JsonToken.FIELD_NAME) {
-          if ("Name".equals(jp.getCurrentName())) {
-            functionImpl.setName(jp.nextTextValue());
-          } else if ("IsBound".equals(jp.getCurrentName())) {
-            functionImpl.setBound(BooleanUtils.toBoolean(jp.nextTextValue()));
-          } else if ("IsComposable".equals(jp.getCurrentName())) {
-            functionImpl.setComposable(BooleanUtils.toBoolean(jp.nextTextValue()));
-          } else if ("EntitySetPath".equals(jp.getCurrentName())) {
-            functionImpl.setEntitySetPath(jp.nextTextValue());
-          } else if ("Parameter".equals(jp.getCurrentName())) {
-            jp.nextToken();
-            functionImpl.getParameters().add(jp.readValueAs(ClientParameter.class));
-          } else if ("ReturnType".equals(jp.getCurrentName())) {
-            functionImpl.setReturnType(parseReturnType(jp, "Function"));
-          } else if ("Annotation".equals(jp.getCurrentName())) {
-            jp.nextToken();
-            functionImpl.getAnnotations().add(jp.readValueAs(ClientAnnotation.class));
-          }
-        }
-      }
-
-      return functionImpl;
-    }
-  }
-}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/53b10f6b/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/ClientFunctionImport.java
----------------------------------------------------------------------
diff --git a/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/ClientFunctionImport.java b/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/ClientFunctionImport.java
deleted file mode 100644
index 25c3a91..0000000
--- a/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/ClientFunctionImport.java
+++ /dev/null
@@ -1,64 +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.client.core.edm.xml;
-
-import com.fasterxml.jackson.core.JsonParser;
-import com.fasterxml.jackson.core.JsonToken;
-import com.fasterxml.jackson.databind.DeserializationContext;
-import org.apache.commons.lang3.BooleanUtils;
-import org.apache.olingo.commons.api.edm.provider.CsdlFunctionImport;
-
-import com.fasterxml.jackson.databind.annotation.JsonDeserialize;
-
-import java.io.IOException;
-
-@JsonDeserialize(using = ClientFunctionImport.FunctionImportDeserializer.class)
-class ClientFunctionImport extends CsdlFunctionImport {
-
-  private static final long serialVersionUID = -1686801084142932402L;
-
-  static class FunctionImportDeserializer extends AbstractClientEdmDeserializer<ClientFunctionImport> {
-    @Override
-    protected ClientFunctionImport doDeserialize(final JsonParser jp, final DeserializationContext ctxt)
-            throws IOException {
-
-      final ClientFunctionImport functImpImpl = new ClientFunctionImport();
-
-      for (; jp.getCurrentToken() != JsonToken.END_OBJECT; jp.nextToken()) {
-        final JsonToken token = jp.getCurrentToken();
-        if (token == JsonToken.FIELD_NAME) {
-          if ("Name".equals(jp.getCurrentName())) {
-            functImpImpl.setName(jp.nextTextValue());
-          } else if ("Function".equals(jp.getCurrentName())) {
-            functImpImpl.setFunction(jp.nextTextValue());
-          } else if ("EntitySet".equals(jp.getCurrentName())) {
-            functImpImpl.setEntitySet(jp.nextTextValue());
-          } else if ("IncludeInServiceDocument".equals(jp.getCurrentName())) {
-            functImpImpl.setIncludeInServiceDocument(BooleanUtils.toBoolean(jp.nextTextValue()));
-          } else if ("Annotation".equals(jp.getCurrentName())) {
-            jp.nextToken();
-            functImpImpl.getAnnotations().add(jp.readValueAs(ClientAnnotation.class));
-          }
-        }
-      }
-
-      return functImpImpl;
-    }
-  }
-}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/53b10f6b/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/ClientIf.java
----------------------------------------------------------------------
diff --git a/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/ClientIf.java b/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/ClientIf.java
deleted file mode 100644
index 26d33e6..0000000
--- a/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/ClientIf.java
+++ /dev/null
@@ -1,61 +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.client.core.edm.xml;
-
-import org.apache.olingo.commons.api.edm.provider.annotation.AnnotationExpression;
-import org.apache.olingo.commons.api.edm.provider.annotation.If;
-
-class ClientIf extends AbstractClientAnnotatableDynamicAnnotationExpression implements If {
-
-  private static final long serialVersionUID = -8571383625077590656L;
-
-  private AnnotationExpression guard;
-
-  private AnnotationExpression _then;
-
-  private AnnotationExpression _else;
-
-  @Override
-  public AnnotationExpression getGuard() {
-    return guard;
-  }
-
-  public void setGuard(final AnnotationExpression guard) {
-    this.guard = guard;
-  }
-
-  @Override
-  public AnnotationExpression getThen() {
-    return _then;
-  }
-
-  public void setThen(final AnnotationExpression _then) {
-    this._then = _then;
-  }
-
-  @Override
-  public AnnotationExpression getElse() {
-    return _else;
-  }
-
-  public void setElse(final AnnotationExpression _else) {
-    this._else = _else;
-  }
-
-}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/53b10f6b/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/ClientInclude.java
----------------------------------------------------------------------
diff --git a/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/ClientInclude.java b/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/ClientInclude.java
deleted file mode 100644
index fafd3a4..0000000
--- a/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/ClientInclude.java
+++ /dev/null
@@ -1,76 +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.client.core.edm.xml;
-
-import com.fasterxml.jackson.core.JsonParser;
-import com.fasterxml.jackson.core.JsonToken;
-import com.fasterxml.jackson.databind.DeserializationContext;
-import com.fasterxml.jackson.databind.annotation.JsonDeserialize;
-import org.apache.olingo.client.api.edm.xml.Include;
-import org.apache.olingo.commons.api.edm.provider.CsdlAbstractEdmItem;
-
-import java.io.IOException;
-
-@JsonDeserialize(using = ClientInclude.IncludeDeserializer.class)
-class ClientInclude extends CsdlAbstractEdmItem implements Include {
-
-  private static final long serialVersionUID = -5450008299655584221L;
-
-  private String namespace;
-  private String alias;
-
-  @Override
-  public String getNamespace() {
-    return namespace;
-  }
-
-  public void setNamespace(final String namespace) {
-    this.namespace = namespace;
-  }
-
-  @Override
-  public String getAlias() {
-    return alias;
-  }
-
-  public void setAlias(final String alias) {
-    this.alias = alias;
-  }
-
-  static class IncludeDeserializer extends AbstractClientEdmDeserializer<Include> {
-    @Override
-    protected Include doDeserialize(final JsonParser jp, final DeserializationContext ctxt)
-            throws IOException {
-
-      final ClientInclude include = new ClientInclude();
-
-      for (; jp.getCurrentToken() != JsonToken.END_OBJECT; jp.nextToken()) {
-        final JsonToken token = jp.getCurrentToken();
-        if (token == JsonToken.FIELD_NAME) {
-          if ("Namespace".equals(jp.getCurrentName())) {
-            include.setNamespace(jp.nextTextValue());
-          } else if ("Alias".equals(jp.getCurrentName())) {
-            include.setAlias(jp.nextTextValue());
-          }
-        }
-      }
-      return include;
-    }
-  }
-}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/53b10f6b/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/ClientIncludeAnnotations.java
----------------------------------------------------------------------
diff --git a/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/ClientIncludeAnnotations.java b/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/ClientIncludeAnnotations.java
deleted file mode 100644
index 3617c65..0000000
--- a/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/ClientIncludeAnnotations.java
+++ /dev/null
@@ -1,88 +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.client.core.edm.xml;
-
-import com.fasterxml.jackson.core.JsonParser;
-import com.fasterxml.jackson.core.JsonToken;
-import com.fasterxml.jackson.databind.DeserializationContext;
-import com.fasterxml.jackson.databind.annotation.JsonDeserialize;
-import org.apache.olingo.client.api.edm.xml.IncludeAnnotations;
-import org.apache.olingo.commons.api.edm.provider.CsdlAbstractEdmItem;
-
-import java.io.IOException;
-
-@JsonDeserialize(using = ClientIncludeAnnotations.IncludeAnnotationsDeserializer.class)
-class ClientIncludeAnnotations extends CsdlAbstractEdmItem implements IncludeAnnotations {
-
-  private static final long serialVersionUID = -8157841387011422396L;
-
-  private String termNamespace;
-  private String qualifier;
-  private String targetNamespace;
-
-  @Override
-  public String getTermNamespace() {
-    return termNamespace;
-  }
-
-  public void setTermNamespace(final String termNamespace) {
-    this.termNamespace = termNamespace;
-  }
-
-  @Override
-  public String getQualifier() {
-    return qualifier;
-  }
-
-  public void setQualifier(final String qualifier) {
-    this.qualifier = qualifier;
-  }
-
-  @Override
-  public String getTargetNamespace() {
-    return targetNamespace;
-  }
-
-  public void setTargetNamespace(final String targetNamespace) {
-    this.targetNamespace = targetNamespace;
-  }
-
-  static class IncludeAnnotationsDeserializer extends AbstractClientEdmDeserializer<IncludeAnnotations> {
-    @Override
-    protected IncludeAnnotations doDeserialize(final JsonParser jp, final DeserializationContext ctxt)
-            throws IOException {
-
-      final ClientIncludeAnnotations member = new ClientIncludeAnnotations();
-
-      for (; jp.getCurrentToken() != JsonToken.END_OBJECT; jp.nextToken()) {
-        final JsonToken token = jp.getCurrentToken();
-        if (token == JsonToken.FIELD_NAME) {
-          if ("TermNamespace".equals(jp.getCurrentName())) {
-            member.setTermNamespace(jp.nextTextValue());
-          } else if ("Qualifier".equals(jp.getCurrentName())) {
-            member.setQualifier(jp.nextTextValue());
-          } else if ("TargetNamespace".equals(jp.getCurrentName())) {
-            member.setTargetNamespace(jp.nextTextValue());
-          }
-        }
-      }
-      return member;
-    }
-  }
-}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/53b10f6b/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/ClientIsOf.java
----------------------------------------------------------------------
diff --git a/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/ClientIsOf.java b/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/ClientIsOf.java
deleted file mode 100644
index bae05ac..0000000
--- a/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/ClientIsOf.java
+++ /dev/null
@@ -1,136 +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.client.core.edm.xml;
-
-import com.fasterxml.jackson.core.JsonParser;
-import com.fasterxml.jackson.core.JsonToken;
-import com.fasterxml.jackson.databind.DeserializationContext;
-import org.apache.olingo.commons.api.edm.geo.SRID;
-import org.apache.olingo.commons.api.edm.provider.annotation.DynamicAnnotationExpression;
-import org.apache.olingo.commons.api.edm.provider.annotation.IsOf;
-
-import com.fasterxml.jackson.databind.annotation.JsonDeserialize;
-
-import java.io.IOException;
-
-@JsonDeserialize(using = ClientIsOf.IsOfDeserializer.class)
-class ClientIsOf extends AbstractClientAnnotatableDynamicAnnotationExpression implements IsOf {
-
-  private static final long serialVersionUID = -893355856129761174L;
-
-  private String type;
-
-  private Integer maxLength;
-
-  private Integer precision;
-
-  private Integer scale;
-
-  private SRID srid;
-
-  private DynamicAnnotationExpression value;
-
-  @Override
-  public String getType() {
-    return type;
-  }
-
-  public void setType(final String type) {
-    this.type = type;
-  }
-
-  @Override
-  public Integer getMaxLength() {
-    return maxLength;
-  }
-
-  public void setMaxLength(final Integer maxLength) {
-    this.maxLength = maxLength;
-  }
-
-  @Override
-  public Integer getPrecision() {
-    return precision;
-  }
-
-  public void setPrecision(final Integer precision) {
-    this.precision = precision;
-  }
-
-  @Override
-  public Integer getScale() {
-    return scale;
-  }
-
-  public void setScale(final Integer scale) {
-    this.scale = scale;
-  }
-
-  @Override
-  public SRID getSrid() {
-    return srid;
-  }
-
-  public void setSrid(final SRID srid) {
-    this.srid = srid;
-  }
-
-  @Override
-  public DynamicAnnotationExpression getValue() {
-    return value;
-  }
-
-  public void setValue(final DynamicAnnotationExpression value) {
-    this.value = value;
-  }
-
-  static class IsOfDeserializer extends AbstractClientEdmDeserializer<ClientIsOf> {
-    @Override
-    protected ClientIsOf doDeserialize(final JsonParser jp, final DeserializationContext ctxt)
-            throws IOException {
-      final ClientIsOf isof = new ClientIsOf();
-      for (; jp.getCurrentToken() != JsonToken.END_OBJECT; jp.nextToken()) {
-        final JsonToken token = jp.getCurrentToken();
-        if (token == JsonToken.FIELD_NAME) {
-          if ("Type".equals(jp.getCurrentName())) {
-            isof.setType(jp.nextTextValue());
-          } else if ("Annotation".equals(jp.getCurrentName())) {
-            isof.getAnnotations().add(jp.readValueAs(ClientAnnotation.class));
-          } else if ("MaxLength".equals(jp.getCurrentName())) {
-            final String maxLenght = jp.nextTextValue();
-            isof.setMaxLength(maxLenght.equalsIgnoreCase("max") ? Integer.MAX_VALUE : Integer.valueOf(maxLenght));
-          } else if ("Precision".equals(jp.getCurrentName())) {
-            isof.setPrecision(Integer.valueOf(jp.nextTextValue()));
-          } else if ("Scale".equals(jp.getCurrentName())) {
-            final String scale = jp.nextTextValue();
-            isof.setScale(scale.equalsIgnoreCase("variable") ? 0 : Integer.valueOf(scale));
-          } else if ("SRID".equals(jp.getCurrentName())) {
-            final String srid = jp.nextTextValue();
-            if (srid != null) {
-              isof.setSrid(SRID.valueOf(srid));
-            }
-          } else {
-            isof.setValue(jp.readValueAs(AbstractClientDynamicAnnotationExpression.class));
-          }
-        }
-      }
-      return isof;
-    }
-  }
-}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/53b10f6b/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/ClientLabeledElement.java
----------------------------------------------------------------------
diff --git a/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/ClientLabeledElement.java b/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/ClientLabeledElement.java
deleted file mode 100644
index 5ae9a89..0000000
--- a/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/ClientLabeledElement.java
+++ /dev/null
@@ -1,79 +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.client.core.edm.xml;
-
-import com.fasterxml.jackson.core.JsonParser;
-import com.fasterxml.jackson.core.JsonToken;
-import com.fasterxml.jackson.databind.DeserializationContext;
-import org.apache.olingo.commons.api.edm.provider.annotation.DynamicAnnotationExpression;
-import org.apache.olingo.commons.api.edm.provider.annotation.LabeledElement;
-
-import com.fasterxml.jackson.databind.annotation.JsonDeserialize;
-
-import java.io.IOException;
-
-@JsonDeserialize(using = ClientLabeledElement.LabeledElementDeserializer.class)
-class ClientLabeledElement
-        extends AbstractClientAnnotatableDynamicAnnotationExpression implements LabeledElement {
-
-  private static final long serialVersionUID = 4909387630253341824L;
-
-  private String name;
-
-  private DynamicAnnotationExpression value;
-
-  @Override
-  public String getName() {
-    return name;
-  }
-
-  public void setName(final String name) {
-    this.name = name;
-  }
-
-  @Override
-  public DynamicAnnotationExpression getValue() {
-    return value;
-  }
-
-  public void setValue(final DynamicAnnotationExpression value) {
-    this.value = value;
-  }
-
-  static class LabeledElementDeserializer extends AbstractClientEdmDeserializer<ClientLabeledElement> {
-    @Override
-    protected ClientLabeledElement doDeserialize(final JsonParser jp, final DeserializationContext ctxt)
-            throws IOException {
-      final ClientLabeledElement element = new ClientLabeledElement();
-      for (; jp.getCurrentToken() != JsonToken.END_OBJECT; jp.nextToken()) {
-        final JsonToken token = jp.getCurrentToken();
-        if (token == JsonToken.FIELD_NAME) {
-          if ("Name".equals(jp.getCurrentName())) {
-            element.setName(jp.nextTextValue());
-          } else if ("Annotation".equals(jp.getCurrentName())) {
-            element.getAnnotations().add(jp.readValueAs(ClientAnnotation.class));
-          } else {
-            element.setValue(jp.readValueAs(AbstractClientDynamicAnnotationExpression.class));
-          }
-        }
-      }
-      return element;
-    }
-  }
-}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/53b10f6b/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/ClientLabeledElementReference.java
----------------------------------------------------------------------
diff --git a/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/ClientLabeledElementReference.java b/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/ClientLabeledElementReference.java
deleted file mode 100644
index e1a6303..0000000
--- a/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/ClientLabeledElementReference.java
+++ /dev/null
@@ -1,28 +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.client.core.edm.xml;
-
-import org.apache.olingo.commons.api.edm.provider.annotation.LabeledElementReference;
-
-class ClientLabeledElementReference
-        extends AbstractClientElementOrAttributeExpression implements LabeledElementReference {
-
-  private static final long serialVersionUID = 7560525604021670529L;
-
-}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/53b10f6b/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/ClientNavigationProperty.java
----------------------------------------------------------------------
diff --git a/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/ClientNavigationProperty.java b/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/ClientNavigationProperty.java
deleted file mode 100644
index 5b0af33..0000000
--- a/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/ClientNavigationProperty.java
+++ /dev/null
@@ -1,80 +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.client.core.edm.xml;
-
-import com.fasterxml.jackson.core.JsonParser;
-import com.fasterxml.jackson.core.JsonToken;
-import com.fasterxml.jackson.databind.DeserializationContext;
-import org.apache.commons.lang3.BooleanUtils;
-import org.apache.olingo.commons.api.edm.provider.CsdlNavigationProperty;
-
-import com.fasterxml.jackson.databind.annotation.JsonDeserialize;
-
-import java.io.IOException;
-
-@JsonDeserialize(using = ClientNavigationProperty.NavigationPropertyDeserializer.class)
-class ClientNavigationProperty extends CsdlNavigationProperty {
-
-  private static final long serialVersionUID = 6240231735592427582L;
-
-  static class NavigationPropertyDeserializer extends AbstractClientEdmDeserializer<CsdlNavigationProperty> {
-
-    @Override
-    protected CsdlNavigationProperty doDeserialize(final JsonParser jp, final DeserializationContext ctxt)
-            throws IOException {
-
-      final CsdlNavigationProperty property = new ClientNavigationProperty();
-
-      for (; jp.getCurrentToken() != JsonToken.END_OBJECT; jp.nextToken()) {
-        final JsonToken token = jp.getCurrentToken();
-        if (token == JsonToken.FIELD_NAME) {
-          if ("Name".equals(jp.getCurrentName())) {
-            property.setName(jp.nextTextValue());
-          } else if ("Type".equals(jp.getCurrentName())) {
-            String metadataTypeName = jp.nextTextValue();
-            if (metadataTypeName.startsWith("Collection(")) {
-              property.setType(metadataTypeName.substring(metadataTypeName.indexOf("(") + 1,
-                      metadataTypeName.length() - 1));
-              property.setCollection(true);
-            } else {
-              property.setType(metadataTypeName);
-              property.setCollection(false);
-            }
-          } else if ("Nullable".equals(jp.getCurrentName())) {
-            property.setNullable(BooleanUtils.toBoolean(jp.nextTextValue()));
-          } else if ("Partner".equals(jp.getCurrentName())) {
-            property.setPartner(jp.nextTextValue());
-          } else if ("ContainsTarget".equals(jp.getCurrentName())) {
-            property.setContainsTarget(BooleanUtils.toBoolean(jp.nextTextValue()));
-          } else if ("ReferentialConstraint".equals(jp.getCurrentName())) {
-            jp.nextToken();
-            property.getReferentialConstraints().add(jp.readValueAs(ClientReferentialConstraint.class));
-          } else if ("OnDelete".equals(jp.getCurrentName())) {
-            jp.nextToken();
-            property.setOnDelete(jp.readValueAs(ClientOnDelete.class));
-          } else if ("Annotation".equals(jp.getCurrentName())) {
-            jp.nextToken();
-            property.getAnnotations().add(jp.readValueAs(ClientAnnotation.class));
-          }
-        }
-      }
-      return property;
-    }
-  }
-}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/53b10f6b/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/ClientNavigationPropertyBinding.java
----------------------------------------------------------------------
diff --git a/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/ClientNavigationPropertyBinding.java b/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/ClientNavigationPropertyBinding.java
deleted file mode 100644
index 250c769..0000000
--- a/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/ClientNavigationPropertyBinding.java
+++ /dev/null
@@ -1,67 +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.client.core.edm.xml;
-
-import com.fasterxml.jackson.core.JsonParser;
-import com.fasterxml.jackson.core.JsonToken;
-import com.fasterxml.jackson.databind.DeserializationContext;
-import com.fasterxml.jackson.databind.annotation.JsonDeserialize;
-import org.apache.olingo.commons.api.edm.provider.CsdlNavigationPropertyBinding;
-
-import java.io.IOException;
-
-@JsonDeserialize(using = ClientNavigationPropertyBinding.NavigationPropertyBindingDeserializer.class)
-class ClientNavigationPropertyBinding extends CsdlNavigationPropertyBinding {
-
-  private static final long serialVersionUID = -7056978592235483660L;
-
-  @Override
-  public CsdlNavigationPropertyBinding setPath(final String path) {
-    super.setPath(path);
-    return this;
-  }
-
-  @Override
-  public CsdlNavigationPropertyBinding setTarget(final String target) {
-    super.setTarget(target);
-    return this;
-  }
-
-  static class NavigationPropertyBindingDeserializer extends
-          AbstractClientEdmDeserializer<CsdlNavigationPropertyBinding> {
-    @Override
-    protected CsdlNavigationPropertyBinding doDeserialize(final JsonParser jp, final DeserializationContext ctxt)
-            throws IOException {
-
-      final ClientNavigationPropertyBinding member = new ClientNavigationPropertyBinding();
-
-      for (; jp.getCurrentToken() != JsonToken.END_OBJECT; jp.nextToken()) {
-        final JsonToken token = jp.getCurrentToken();
-        if (token == JsonToken.FIELD_NAME) {
-          if ("Path".equals(jp.getCurrentName())) {
-            member.setPath(jp.nextTextValue());
-          } else if ("Target".equals(jp.getCurrentName())) {
-            member.setTarget(jp.nextTextValue());
-          }
-        }
-      }
-      return member;
-    }
-  }
-}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/53b10f6b/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/ClientNavigationPropertyPath.java
----------------------------------------------------------------------
diff --git a/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/ClientNavigationPropertyPath.java b/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/ClientNavigationPropertyPath.java
deleted file mode 100644
index 8a3173c..0000000
--- a/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/ClientNavigationPropertyPath.java
+++ /dev/null
@@ -1,28 +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.client.core.edm.xml;
-
-import org.apache.olingo.commons.api.edm.provider.annotation.NavigationPropertyPath;
-
-class ClientNavigationPropertyPath extends AbstractClientElementOrAttributeExpression
-    implements NavigationPropertyPath {
-
-  private static final long serialVersionUID = 879840502446301312L;
-
-}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/53b10f6b/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/ClientNot.java
----------------------------------------------------------------------
diff --git a/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/ClientNot.java b/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/ClientNot.java
deleted file mode 100644
index eca2b67..0000000
--- a/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/ClientNot.java
+++ /dev/null
@@ -1,39 +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.client.core.edm.xml;
-
-import org.apache.olingo.commons.api.edm.provider.annotation.DynamicAnnotationExpression;
-import org.apache.olingo.commons.api.edm.provider.annotation.Not;
-
-class ClientNot extends AbstractClientDynamicAnnotationExpression implements Not {
-
-  private static final long serialVersionUID = -437788415922966812L;
-
-  private DynamicAnnotationExpression expression;
-
-  @Override
-  public DynamicAnnotationExpression getExpression() {
-    return expression;
-  }
-
-  public void setExpression(final DynamicAnnotationExpression expression) {
-    this.expression = expression;
-  }
-
-}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/53b10f6b/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/ClientNull.java
----------------------------------------------------------------------
diff --git a/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/ClientNull.java b/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/ClientNull.java
deleted file mode 100644
index 950d10c..0000000
--- a/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/ClientNull.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.client.core.edm.xml;
-
-import com.fasterxml.jackson.core.JsonParser;
-import com.fasterxml.jackson.core.JsonToken;
-import com.fasterxml.jackson.databind.DeserializationContext;
-import org.apache.olingo.commons.api.edm.provider.annotation.Null;
-
-import com.fasterxml.jackson.databind.annotation.JsonDeserialize;
-
-import java.io.IOException;
-
-@JsonDeserialize(using = ClientNull.NullDeserializer.class)
-class ClientNull extends AbstractClientAnnotatableDynamicAnnotationExpression implements Null {
-
-  private static final long serialVersionUID = -3148516847180393142L;
-
-  static class NullDeserializer extends AbstractClientEdmDeserializer<ClientNull> {
-    @Override
-    protected ClientNull doDeserialize(final JsonParser jp, final DeserializationContext ctxt)
-            throws IOException {
-      final ClientNull _null = new ClientNull();
-      for (; jp.getCurrentToken() != JsonToken.END_OBJECT; jp.nextToken()) {
-        final JsonToken token = jp.getCurrentToken();
-        if (token == JsonToken.FIELD_NAME) {
-          if ("Annotation".equals(jp.getCurrentName())) {
-            _null.getAnnotations().add(jp.readValueAs(ClientAnnotation.class));
-          }
-        }
-      }
-      return _null;
-    }
-  }
-}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/53b10f6b/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/ClientOnDelete.java
----------------------------------------------------------------------
diff --git a/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/ClientOnDelete.java b/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/ClientOnDelete.java
deleted file mode 100644
index 489326d..0000000
--- a/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/ClientOnDelete.java
+++ /dev/null
@@ -1,54 +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.client.core.edm.xml;
-
-import com.fasterxml.jackson.core.JsonParser;
-import com.fasterxml.jackson.core.JsonToken;
-import com.fasterxml.jackson.databind.DeserializationContext;
-import com.fasterxml.jackson.databind.annotation.JsonDeserialize;
-import org.apache.olingo.commons.api.edm.provider.CsdlOnDelete;
-import org.apache.olingo.commons.api.edm.provider.CsdlOnDeleteAction;
-
-import java.io.IOException;
-
-@JsonDeserialize(using = ClientOnDelete.OnDeleteDeserializer.class)
-class ClientOnDelete extends CsdlOnDelete {
-
-  private static final long serialVersionUID = -7130889202653716784L;
-
-  static class OnDeleteDeserializer extends AbstractClientEdmDeserializer<CsdlOnDelete> {
-    @Override
-    protected CsdlOnDelete doDeserialize(final JsonParser jp, final DeserializationContext ctxt)
-            throws IOException {
-
-      final CsdlOnDelete ondelete = new ClientOnDelete();
-
-      for (; jp.getCurrentToken() != JsonToken.END_OBJECT; jp.nextToken()) {
-        final JsonToken token = jp.getCurrentToken();
-        if (token == JsonToken.FIELD_NAME) {
-          if ("Action".equals(jp.getCurrentName())) {
-            CsdlOnDeleteAction action = CsdlOnDeleteAction.valueOf(jp.nextTextValue());
-            ondelete.setAction(action);
-          }
-        }
-      }
-      return ondelete;
-    }
-  }
-}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/53b10f6b/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/ClientParameter.java
----------------------------------------------------------------------
diff --git a/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/ClientParameter.java b/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/ClientParameter.java
deleted file mode 100644
index 24e8650..0000000
--- a/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/ClientParameter.java
+++ /dev/null
@@ -1,84 +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.client.core.edm.xml;
-
-import com.fasterxml.jackson.core.JsonParser;
-import com.fasterxml.jackson.core.JsonToken;
-import com.fasterxml.jackson.databind.DeserializationContext;
-import org.apache.commons.lang3.BooleanUtils;
-import org.apache.olingo.commons.api.edm.geo.SRID;
-import org.apache.olingo.commons.api.edm.provider.CsdlParameter;
-
-import com.fasterxml.jackson.databind.annotation.JsonDeserialize;
-
-import java.io.IOException;
-
-@JsonDeserialize(using = ClientParameter.ParameterDeserializer.class)
-class ClientParameter extends CsdlParameter {
-
-  private static final long serialVersionUID = 7119478691341167904L;
-
-  static class ParameterDeserializer extends AbstractClientEdmDeserializer<ClientParameter> {
-    @Override
-    protected ClientParameter doDeserialize(final JsonParser jp, final DeserializationContext ctxt)
-            throws IOException {
-
-      final ClientParameter parameter = new ClientParameter();
-
-      for (; jp.getCurrentToken() != JsonToken.END_OBJECT; jp.nextToken()) {
-        final JsonToken token = jp.getCurrentToken();
-        if (token == JsonToken.FIELD_NAME) {
-          if ("Name".equals(jp.getCurrentName())) {
-            parameter.setName(jp.nextTextValue());
-          } else if ("Type".equals(jp.getCurrentName())) {
-            String metadataTypeName = jp.nextTextValue();
-            if (metadataTypeName.startsWith("Collection(")) {
-              parameter.setType(metadataTypeName.substring(metadataTypeName.indexOf("(") + 1,
-                      metadataTypeName.length() - 1));
-              parameter.setCollection(true);
-            } else {
-              parameter.setType(metadataTypeName);
-              parameter.setCollection(false);
-            }
-          } else if ("Nullable".equals(jp.getCurrentName())) {
-            parameter.setNullable(BooleanUtils.toBoolean(jp.nextTextValue()));
-          } else if ("MaxLength".equals(jp.getCurrentName())) {
-            final String maxLenght = jp.nextTextValue();
-            parameter.setMaxLength(maxLenght.equalsIgnoreCase("max") ? Integer.MAX_VALUE : Integer.valueOf(maxLenght));
-          } else if ("Precision".equals(jp.getCurrentName())) {
-            parameter.setPrecision(Integer.valueOf(jp.nextTextValue()));
-          } else if ("Scale".equals(jp.getCurrentName())) {
-            final String scale = jp.nextTextValue();
-            parameter.setScale(scale.equalsIgnoreCase("variable") ? 0 : Integer.valueOf(scale));
-          } else if ("SRID".equals(jp.getCurrentName())) {
-            final String srid = jp.nextTextValue();
-            if (srid != null) {
-              parameter.setSrid(SRID.valueOf(srid));
-            }
-          } else if ("Annotation".equals(jp.getCurrentName())) {
-            jp.nextToken();
-            parameter.getAnnotations().add(jp.readValueAs(ClientAnnotation.class));
-          }
-        }
-      }
-
-      return parameter;
-    }
-  }
-}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/53b10f6b/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/ClientPath.java
----------------------------------------------------------------------
diff --git a/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/ClientPath.java b/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/ClientPath.java
deleted file mode 100644
index 3d790d7..0000000
--- a/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/ClientPath.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.client.core.edm.xml;
-
-import org.apache.olingo.commons.api.edm.provider.annotation.Path;
-
-class ClientPath extends AbstractClientElementOrAttributeExpression implements Path {
-
-  private static final long serialVersionUID = 6020168217561402545L;
-
-}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/53b10f6b/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/ClientProperty.java
----------------------------------------------------------------------
diff --git a/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/ClientProperty.java b/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/ClientProperty.java
deleted file mode 100644
index d753fd4..0000000
--- a/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/ClientProperty.java
+++ /dev/null
@@ -1,88 +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.client.core.edm.xml;
-
-import com.fasterxml.jackson.core.JsonParser;
-import com.fasterxml.jackson.core.JsonToken;
-import com.fasterxml.jackson.databind.DeserializationContext;
-import org.apache.commons.lang3.BooleanUtils;
-import org.apache.olingo.commons.api.edm.geo.SRID;
-import org.apache.olingo.commons.api.edm.provider.CsdlProperty;
-
-import com.fasterxml.jackson.databind.annotation.JsonDeserialize;
-
-import java.io.IOException;
-
-@JsonDeserialize(using = ClientProperty.PropertyDeserializer.class)
-class ClientProperty extends CsdlProperty {
-
-  private static final long serialVersionUID = -4521766603286651372L;
-
-  static class PropertyDeserializer extends AbstractClientEdmDeserializer<ClientProperty> {
-    @Override
-    protected ClientProperty doDeserialize(final JsonParser jp, final DeserializationContext ctxt)
-            throws IOException {
-
-      final ClientProperty property = new ClientProperty();
-
-      for (; jp.getCurrentToken() != JsonToken.END_OBJECT; jp.nextToken()) {
-        final JsonToken token = jp.getCurrentToken();
-        if (token == JsonToken.FIELD_NAME) {
-          if ("Name".equals(jp.getCurrentName())) {
-            property.setName(jp.nextTextValue());
-          } else if ("Type".equals(jp.getCurrentName())) {
-            String metadataTypeName = jp.nextTextValue();
-            if (metadataTypeName.startsWith("Collection(")) {
-              property.setType(metadataTypeName.substring(metadataTypeName.indexOf("(") + 1,
-                      metadataTypeName.length() - 1));
-              property.setCollection(true);
-            } else {
-              property.setType(metadataTypeName);
-              property.setCollection(false);
-            }
-          } else if ("Nullable".equals(jp.getCurrentName())) {
-            property.setNullable(BooleanUtils.toBoolean(jp.nextTextValue()));
-          } else if ("DefaultValue".equals(jp.getCurrentName())) {
-            property.setDefaultValue(jp.nextTextValue());
-          } else if ("MaxLength".equals(jp.getCurrentName())) {
-            final String maxLenght = jp.nextTextValue();
-            property.setMaxLength(maxLenght.equalsIgnoreCase("max") ? Integer.MAX_VALUE : Integer.valueOf(maxLenght));
-          } else if ("Precision".equals(jp.getCurrentName())) {
-            property.setPrecision(Integer.valueOf(jp.nextTextValue()));
-          } else if ("Scale".equals(jp.getCurrentName())) {
-            final String scale = jp.nextTextValue();
-            property.setScale(scale.equalsIgnoreCase("variable") ? 0 : Integer.valueOf(scale));
-          } else if ("Unicode".equals(jp.getCurrentName())) {
-            property.setUnicode(BooleanUtils.toBoolean(jp.nextTextValue()));
-          } else if ("SRID".equals(jp.getCurrentName())) {
-            final String srid = jp.nextTextValue();
-            if (srid != null) {
-              property.setSrid(SRID.valueOf(srid));
-            }
-          } else if ("Annotation".equals(jp.getCurrentName())) {
-            jp.nextToken();
-            property.getAnnotations().add(jp.readValueAs(ClientAnnotation.class));
-          }
-        }
-      }
-
-      return property;
-    }
-  }
-}


[05/50] [abbrv] olingo-odata4 git commit: [OLINGO-564] Renamed client edm classes

Posted by mi...@apache.org.
[OLINGO-564] Renamed client edm classes


Project: http://git-wip-us.apache.org/repos/asf/olingo-odata4/repo
Commit: http://git-wip-us.apache.org/repos/asf/olingo-odata4/commit/754e23ab
Tree: http://git-wip-us.apache.org/repos/asf/olingo-odata4/tree/754e23ab
Diff: http://git-wip-us.apache.org/repos/asf/olingo-odata4/diff/754e23ab

Branch: refs/heads/master
Commit: 754e23abee9918bf6eca6bcbf97e4d1007b0b910
Parents: cceceaf
Author: Michael Bolz <mi...@sap.com>
Authored: Thu Apr 23 15:57:22 2015 +0200
Committer: Michael Bolz <mi...@sap.com>
Committed: Thu Apr 23 15:57:22 2015 +0200

----------------------------------------------------------------------
 .../retrieve/XMLMetadataRequestImpl.java        |  10 +-
 .../edm/xml/AbstractClientEdmDeserializer.java  |  62 ++++
 .../core/edm/xml/AbstractEdmDeserializer.java   |  61 ----
 .../olingo/client/core/edm/xml/ActionImpl.java  |  68 ----
 .../client/core/edm/xml/ActionImportImpl.java   |  58 ---
 .../client/core/edm/xml/AnnotationImpl.java     |  67 ----
 .../client/core/edm/xml/AnnotationsImpl.java    |  62 ----
 .../client/core/edm/xml/ClientAction.java       |  68 ++++
 .../client/core/edm/xml/ClientActionImport.java |  58 +++
 .../client/core/edm/xml/ClientAnnotation.java   |  67 ++++
 .../client/core/edm/xml/ClientAnnotations.java  |  62 ++++
 .../client/core/edm/xml/ClientComplexType.java  |  72 ++++
 .../client/core/edm/xml/ClientDataServices.java |  93 +++++
 .../olingo/client/core/edm/xml/ClientEdmx.java  |  95 +++++
 .../core/edm/xml/ClientEntityContainer.java     |  72 ++++
 .../client/core/edm/xml/ClientEntityKey.java    |  63 ++++
 .../client/core/edm/xml/ClientEntitySet.java    |  65 ++++
 .../client/core/edm/xml/ClientEntityType.java   |  76 ++++
 .../client/core/edm/xml/ClientEnumMember.java   |  57 +++
 .../client/core/edm/xml/ClientEnumType.java     |  65 ++++
 .../client/core/edm/xml/ClientFunction.java     |  69 ++++
 .../core/edm/xml/ClientFunctionImport.java      |  64 ++++
 .../client/core/edm/xml/ClientInclude.java      |  76 ++++
 .../core/edm/xml/ClientIncludeAnnotations.java  |  88 +++++
 .../core/edm/xml/ClientNavigationProperty.java  |  80 +++++
 .../xml/ClientNavigationPropertyBinding.java    |  66 ++++
 .../client/core/edm/xml/ClientOnDelete.java     |  54 +++
 .../client/core/edm/xml/ClientParameter.java    |  84 +++++
 .../client/core/edm/xml/ClientProperty.java     |  88 +++++
 .../client/core/edm/xml/ClientPropertyRef.java  |  54 +++
 .../client/core/edm/xml/ClientReference.java    |  98 +++++
 .../edm/xml/ClientReferentialConstraint.java    |  54 +++
 .../client/core/edm/xml/ClientReturnType.java   |  78 ++++
 .../client/core/edm/xml/ClientSchema.java       |  86 +++++
 .../client/core/edm/xml/ClientSingleton.java    |  62 ++++
 .../olingo/client/core/edm/xml/ClientTerm.java  |  83 +++++
 .../core/edm/xml/ClientTypeDefinition.java      |  74 ++++
 .../client/core/edm/xml/ClientXMLMetadata.java  |  75 ++++
 .../client/core/edm/xml/ComplexTypeImpl.java    |  72 ----
 .../client/core/edm/xml/DataServicesImpl.java   |  93 -----
 .../olingo/client/core/edm/xml/EdmxImpl.java    |  95 -----
 .../core/edm/xml/EntityContainerImpl.java       |  72 ----
 .../client/core/edm/xml/EntityKeyImpl.java      |  63 ----
 .../client/core/edm/xml/EntitySetImpl.java      |  65 ----
 .../client/core/edm/xml/EntityTypeImpl.java     |  76 ----
 .../client/core/edm/xml/EnumMemberImpl.java     |  57 ---
 .../client/core/edm/xml/EnumTypeImpl.java       |  65 ----
 .../client/core/edm/xml/FunctionImpl.java       |  69 ----
 .../client/core/edm/xml/FunctionImportImpl.java |  64 ----
 .../core/edm/xml/IncludeAnnotationsImpl.java    |  88 -----
 .../olingo/client/core/edm/xml/IncludeImpl.java |  76 ----
 .../edm/xml/NavigationPropertyBindingImpl.java  |  66 ----
 .../core/edm/xml/NavigationPropertyImpl.java    |  80 -----
 .../client/core/edm/xml/OnDeleteImpl.java       |  54 ---
 .../client/core/edm/xml/ParameterImpl.java      |  84 -----
 .../client/core/edm/xml/PropertyImpl.java       |  88 -----
 .../client/core/edm/xml/PropertyRefImpl.java    |  54 ---
 .../client/core/edm/xml/ReferenceImpl.java      |  98 -----
 .../core/edm/xml/ReferentialConstraintImpl.java |  54 ---
 .../client/core/edm/xml/ReturnTypeImpl.java     |  78 ----
 .../olingo/client/core/edm/xml/SchemaImpl.java  |  86 -----
 .../client/core/edm/xml/SingletonImpl.java      |  62 ----
 .../olingo/client/core/edm/xml/TermImpl.java    |  83 -----
 .../client/core/edm/xml/TypeDefinitionImpl.java |  74 ----
 .../client/core/edm/xml/XMLMetadataImpl.java    |  75 ----
 ...tAnnotatableDynamicAnnotationExpression.java |  38 --
 .../AbstractAnnotationExpression.java           |  49 ---
 ...tAnnotatableDynamicAnnotationExpression.java |  38 ++
 .../AbstractClientAnnotationExpression.java     |  49 +++
 ...stractClientDynamicAnnotationExpression.java | 357 +++++++++++++++++++
 ...tractClientElementOrAttributeExpression.java |  37 ++
 .../AbstractDynamicAnnotationExpression.java    | 356 ------------------
 .../AbstractElementOrAttributeExpression.java   |  37 --
 .../edm/xml/annotation/AnnotationPathImpl.java  |  27 --
 .../core/edm/xml/annotation/ApplyImpl.java      |  82 -----
 .../core/edm/xml/annotation/CastImpl.java       | 139 --------
 .../xml/annotation/ClientAnnotationPath.java    |  27 ++
 .../core/edm/xml/annotation/ClientApply.java    |  82 +++++
 .../core/edm/xml/annotation/ClientCast.java     | 139 ++++++++
 .../edm/xml/annotation/ClientCollection.java    |  65 ++++
 .../ClientConstantAnnotationExpression.java     |  52 +++
 .../core/edm/xml/annotation/ClientIf.java       |  61 ++++
 .../core/edm/xml/annotation/ClientIsOf.java     | 138 +++++++
 .../xml/annotation/ClientLabeledElement.java    |  81 +++++
 .../ClientLabeledElementReference.java          |  28 ++
 .../ClientNavigationPropertyPath.java           |  28 ++
 .../core/edm/xml/annotation/ClientNot.java      |  39 ++
 .../core/edm/xml/annotation/ClientNull.java     |  53 +++
 .../core/edm/xml/annotation/ClientPath.java     |  27 ++
 .../edm/xml/annotation/ClientPropertyPath.java  |  27 ++
 .../edm/xml/annotation/ClientPropertyValue.java |  82 +++++
 .../core/edm/xml/annotation/ClientRecord.java   |  78 ++++
 ...tTwoParamsOpDynamicAnnotationExpression.java |  62 ++++
 .../core/edm/xml/annotation/ClientUrlRef.java   |  66 ++++
 .../core/edm/xml/annotation/CollectionImpl.java |  65 ----
 .../ConstantAnnotationExpressionImpl.java       |  52 ---
 .../client/core/edm/xml/annotation/IfImpl.java  |  61 ----
 .../core/edm/xml/annotation/IsOfImpl.java       | 138 -------
 .../edm/xml/annotation/LabeledElementImpl.java  |  81 -----
 .../annotation/LabeledElementReferenceImpl.java |  28 --
 .../annotation/NavigationPropertyPathImpl.java  |  27 --
 .../client/core/edm/xml/annotation/NotImpl.java |  39 --
 .../core/edm/xml/annotation/NullImpl.java       |  53 ---
 .../core/edm/xml/annotation/PathImpl.java       |  27 --
 .../edm/xml/annotation/PropertyPathImpl.java    |  27 --
 .../edm/xml/annotation/PropertyValueImpl.java   |  82 -----
 .../core/edm/xml/annotation/RecordImpl.java     |  78 ----
 ...ParamsOpDynamicAnnotationExpressionImpl.java |  62 ----
 .../core/edm/xml/annotation/UrlRefImpl.java     |  66 ----
 .../ClientODataDeserializerImpl.java            |   6 +-
 .../olingo/client/core/uri/URIEscapeTest.java   |   4 +-
 .../client/core/uri/v4/FilterFactoryTest.java   |   4 +-
 .../olingo/client/core/v4/MetadataTest.java     |  10 +-
 113 files changed, 3941 insertions(+), 3938 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/754e23ab/lib/client-core/src/main/java/org/apache/olingo/client/core/communication/request/retrieve/XMLMetadataRequestImpl.java
----------------------------------------------------------------------
diff --git a/lib/client-core/src/main/java/org/apache/olingo/client/core/communication/request/retrieve/XMLMetadataRequestImpl.java b/lib/client-core/src/main/java/org/apache/olingo/client/core/communication/request/retrieve/XMLMetadataRequestImpl.java
index 20d1da1..510c9e6 100644
--- a/lib/client-core/src/main/java/org/apache/olingo/client/core/communication/request/retrieve/XMLMetadataRequestImpl.java
+++ b/lib/client-core/src/main/java/org/apache/olingo/client/core/communication/request/retrieve/XMLMetadataRequestImpl.java
@@ -31,8 +31,8 @@ import org.apache.olingo.client.api.edm.xml.Include;
 import org.apache.olingo.client.api.edm.xml.IncludeAnnotations;
 import org.apache.olingo.client.api.edm.xml.Reference;
 import org.apache.olingo.client.api.edm.xml.XMLMetadata;
-import org.apache.olingo.client.core.edm.xml.AnnotationsImpl;
-import org.apache.olingo.client.core.edm.xml.SchemaImpl;
+import org.apache.olingo.client.core.edm.xml.ClientAnnotations;
+import org.apache.olingo.client.core.edm.xml.ClientSchema;
 import org.apache.olingo.commons.api.edm.provider.Annotation;
 import org.apache.olingo.commons.api.edm.provider.Annotations;
 import org.apache.olingo.commons.api.edm.provider.Schema;
@@ -68,7 +68,7 @@ public class XMLMetadataRequestImpl
         if (includedSchema != null) {
           response.getBody().getSchemas().add(includedSchema);
           if (StringUtils.isNotBlank(include.getAlias())) {
-            ((SchemaImpl) includedSchema).setAlias(include.getAlias());
+            ((ClientSchema) includedSchema).setAlias(include.getAlias());
           }
         }
       }
@@ -77,7 +77,7 @@ public class XMLMetadataRequestImpl
       for (IncludeAnnotations include : reference.getIncludeAnnotations()) {
         for (Schema schema : includeMetadata.getSchemas()) {
           // create empty schema that will be fed with edm:Annotations that match the criteria in IncludeAnnotations
-          final SchemaImpl forInclusion = new SchemaImpl();
+          final ClientSchema forInclusion = new ClientSchema();
           forInclusion.setNamespace(schema.getNamespace());
           forInclusion.setAlias(schema.getAlias());
 
@@ -91,7 +91,7 @@ public class XMLMetadataRequestImpl
                 && (StringUtils.isBlank(include.getQualifier())
                 || include.getQualifier().equals(annotationGroup.getQualifier()))) {
 
-              final AnnotationsImpl toBeIncluded = new AnnotationsImpl();
+              final ClientAnnotations toBeIncluded = new ClientAnnotations();
               toBeIncluded.setTarget(annotationGroup.getTarget());
               toBeIncluded.setQualifier(annotationGroup.getQualifier());
               // only import annotations with terms matching the given TermNamespace

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/754e23ab/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/AbstractClientEdmDeserializer.java
----------------------------------------------------------------------
diff --git a/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/AbstractClientEdmDeserializer.java b/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/AbstractClientEdmDeserializer.java
new file mode 100644
index 0000000..e02c054
--- /dev/null
+++ b/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/AbstractClientEdmDeserializer.java
@@ -0,0 +1,62 @@
+/*
+ * 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.client.core.edm.xml;
+
+import java.io.IOException;
+
+import org.apache.olingo.client.core.edm.xml.annotation.ClientConstantAnnotationExpression;
+
+import com.fasterxml.jackson.core.JsonParser;
+import com.fasterxml.jackson.databind.DeserializationContext;
+import com.fasterxml.jackson.databind.JsonDeserializer;
+import com.fasterxml.jackson.dataformat.xml.deser.FromXmlParser;
+
+public abstract class AbstractClientEdmDeserializer<T> extends JsonDeserializer<T> {
+
+  protected boolean isAnnotationConstExprConstruct(final JsonParser jp) throws IOException {
+    return ClientConstantAnnotationExpression.Type.fromString(jp.getCurrentName()) != null;
+  }
+
+  protected ClientConstantAnnotationExpression parseAnnotationConstExprConstruct(final JsonParser jp)
+      throws IOException {
+    final ClientConstantAnnotationExpression constExpr = new ClientConstantAnnotationExpression();
+    constExpr.setType(ClientConstantAnnotationExpression.Type.fromString(jp.getCurrentName()));
+    constExpr.setValue(jp.nextTextValue());
+    return constExpr;
+  }
+
+  protected ClientReturnType parseReturnType(final JsonParser jp, final String elementName) throws IOException {
+    final ClientReturnType returnType;
+    if (elementName.equals(((FromXmlParser) jp).getStaxReader().getLocalName())) {
+      returnType = new ClientReturnType();
+      returnType.setType(jp.nextTextValue());
+    } else {
+      jp.nextToken();
+      returnType = jp.readValueAs(ClientReturnType.class);
+    }
+    return returnType;
+  }
+
+  protected abstract T doDeserialize(JsonParser jp, DeserializationContext ctxt) throws IOException;
+
+  @Override
+  public T deserialize(final JsonParser jp, final DeserializationContext ctxt) throws IOException {
+    return doDeserialize(jp, ctxt);
+  }
+}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/754e23ab/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/AbstractEdmDeserializer.java
----------------------------------------------------------------------
diff --git a/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/AbstractEdmDeserializer.java b/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/AbstractEdmDeserializer.java
deleted file mode 100644
index 6453431..0000000
--- a/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/AbstractEdmDeserializer.java
+++ /dev/null
@@ -1,61 +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.client.core.edm.xml;
-
-import java.io.IOException;
-
-import org.apache.olingo.client.core.edm.xml.annotation.ConstantAnnotationExpressionImpl;
-
-import com.fasterxml.jackson.core.JsonParser;
-import com.fasterxml.jackson.databind.DeserializationContext;
-import com.fasterxml.jackson.databind.JsonDeserializer;
-import com.fasterxml.jackson.dataformat.xml.deser.FromXmlParser;
-
-public abstract class AbstractEdmDeserializer<T> extends JsonDeserializer<T> {
-
-  protected boolean isAnnotationConstExprConstruct(final JsonParser jp) throws IOException {
-    return ConstantAnnotationExpressionImpl.Type.fromString(jp.getCurrentName()) != null;
-  }
-
-  protected ConstantAnnotationExpressionImpl parseAnnotationConstExprConstruct(final JsonParser jp) throws IOException {
-    final ConstantAnnotationExpressionImpl constExpr = new ConstantAnnotationExpressionImpl();
-    constExpr.setType(ConstantAnnotationExpressionImpl.Type.fromString(jp.getCurrentName()));
-    constExpr.setValue(jp.nextTextValue());
-    return constExpr;
-  }
-
-  protected ReturnTypeImpl parseReturnType(final JsonParser jp, final String elementName) throws IOException {
-    final ReturnTypeImpl returnType;
-    if (elementName.equals(((FromXmlParser) jp).getStaxReader().getLocalName())) {
-      returnType = new ReturnTypeImpl();
-      returnType.setType(jp.nextTextValue());
-    } else {
-      jp.nextToken();
-      returnType = jp.readValueAs(ReturnTypeImpl.class);
-    }
-    return returnType;
-  }
-
-  protected abstract T doDeserialize(JsonParser jp, DeserializationContext ctxt) throws IOException;
-
-  @Override
-  public T deserialize(final JsonParser jp, final DeserializationContext ctxt) throws IOException {
-    return doDeserialize(jp, ctxt);
-  }
-}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/754e23ab/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/ActionImpl.java
----------------------------------------------------------------------
diff --git a/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/ActionImpl.java b/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/ActionImpl.java
deleted file mode 100644
index 3aaedba..0000000
--- a/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/ActionImpl.java
+++ /dev/null
@@ -1,68 +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.client.core.edm.xml;
-
-import com.fasterxml.jackson.core.JsonParser;
-import com.fasterxml.jackson.core.JsonToken;
-import com.fasterxml.jackson.databind.DeserializationContext;
-import org.apache.commons.lang3.BooleanUtils;
-import org.apache.olingo.commons.api.edm.provider.Action;
-
-import com.fasterxml.jackson.databind.annotation.JsonDeserialize;
-
-import java.io.IOException;
-
-@JsonDeserialize(using = ActionImpl.ActionDeserializer.class)
-public class ActionImpl extends  Action {
-
-  private static final long serialVersionUID = 5321541275349234088L;
-
-  static class ActionDeserializer extends AbstractEdmDeserializer<ActionImpl> {
-
-    @Override
-    protected ActionImpl doDeserialize(final JsonParser jp, final DeserializationContext ctxt)
-            throws IOException {
-
-      final ActionImpl action = new ActionImpl();
-
-      for (; jp.getCurrentToken() != JsonToken.END_OBJECT; jp.nextToken()) {
-        final JsonToken token = jp.getCurrentToken();
-        if (token == JsonToken.FIELD_NAME) {
-          if ("Name".equals(jp.getCurrentName())) {
-            action.setName(jp.nextTextValue());
-          } else if ("IsBound".equals(jp.getCurrentName())) {
-            action.setBound(BooleanUtils.toBoolean(jp.nextTextValue()));
-          } else if ("EntitySetPath".equals(jp.getCurrentName())) {
-            action.setEntitySetPath(jp.nextTextValue());
-          } else if ("Parameter".equals(jp.getCurrentName())) {
-            jp.nextToken();
-            action.getParameters().add(jp.readValueAs(ParameterImpl.class));
-          } else if ("ReturnType".equals(jp.getCurrentName())) {
-            action.setReturnType(parseReturnType(jp, "Action"));
-          } else if ("Annotation".equals(jp.getCurrentName())) {
-            jp.nextToken();
-            action.getAnnotations().add(jp.readValueAs(AnnotationImpl.class));
-          }
-        }
-      }
-
-      return action;
-    }
-  }
-}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/754e23ab/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/ActionImportImpl.java
----------------------------------------------------------------------
diff --git a/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/ActionImportImpl.java b/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/ActionImportImpl.java
deleted file mode 100644
index 7b834a0..0000000
--- a/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/ActionImportImpl.java
+++ /dev/null
@@ -1,58 +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.client.core.edm.xml;
-
-import com.fasterxml.jackson.core.JsonParser;
-import com.fasterxml.jackson.core.JsonToken;
-import com.fasterxml.jackson.databind.DeserializationContext;
-import com.fasterxml.jackson.databind.annotation.JsonDeserialize;
-import org.apache.olingo.commons.api.edm.provider.ActionImport;
-
-import java.io.IOException;
-
-@JsonDeserialize(using = ActionImportImpl.ActionImportDeserializer.class)
-public class ActionImportImpl extends ActionImport {
-
-  private static final long serialVersionUID = 2971468441177647068L;
-
-  static class ActionImportDeserializer extends AbstractEdmDeserializer<ActionImportImpl> {
-
-    @Override
-    protected ActionImportImpl doDeserialize(final JsonParser jp, final DeserializationContext ctxt)
-            throws IOException {
-
-      final ActionImportImpl action = new ActionImportImpl();
-
-      for (; jp.getCurrentToken() != JsonToken.END_OBJECT; jp.nextToken()) {
-        final JsonToken token = jp.getCurrentToken();
-        if (token == JsonToken.FIELD_NAME) {
-          if ("Action".equals(jp.getCurrentName())) {
-            action.setAction(jp.nextTextValue());
-          } else if ("Name".equals(jp.getCurrentName())) {
-            action.setName(jp.nextTextValue());
-          } else if ("EntitySet".equals(jp.getCurrentName())) {
-            action.setEntitySet(jp.nextTextValue());
-          }
-        }
-      }
-
-      return action;
-    }
-  }
-}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/754e23ab/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/AnnotationImpl.java
----------------------------------------------------------------------
diff --git a/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/AnnotationImpl.java b/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/AnnotationImpl.java
deleted file mode 100644
index 95939ec..0000000
--- a/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/AnnotationImpl.java
+++ /dev/null
@@ -1,67 +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.client.core.edm.xml;
-
-import java.io.IOException;
-
-import com.fasterxml.jackson.core.JsonParser;
-import com.fasterxml.jackson.core.JsonToken;
-import com.fasterxml.jackson.databind.DeserializationContext;
-import org.apache.olingo.client.core.edm.xml.annotation.AbstractDynamicAnnotationExpression;
-import org.apache.olingo.commons.api.edm.provider.Annotation;
-
-import com.fasterxml.jackson.databind.annotation.JsonDeserialize;
-
-@JsonDeserialize(using = AnnotationImpl.AnnotationDeserializer.class)
-public class AnnotationImpl extends Annotation {
-
-  private static final long serialVersionUID = 5464714417411058033L;
-
-  static class AnnotationDeserializer extends AbstractEdmDeserializer<Annotation> {
-
-    @Override
-    protected Annotation doDeserialize(final JsonParser jp, final DeserializationContext ctxt)
-            throws IOException {
-
-      final AnnotationImpl annotation = new AnnotationImpl();
-
-      for (; jp.getCurrentToken() != null && jp.getCurrentToken() != JsonToken.END_OBJECT; jp.nextToken()) {
-        final JsonToken token = jp.getCurrentToken();
-        if (token == JsonToken.FIELD_NAME) {
-          if ("Term".equals(jp.getCurrentName())) {
-            annotation.setTerm(jp.nextTextValue());
-          } else if ("Qualifier".equals(jp.getCurrentName())) {
-            annotation.setQualifier(jp.nextTextValue());
-          } else if ("Annotation".equals(jp.getCurrentName())) {
-            jp.nextToken();
-            annotation.getAnnotations().add(jp.readValueAs(AnnotationImpl.class));
-          } else if (isAnnotationConstExprConstruct(jp)) {
-            // Constant Expressions
-            annotation.setExpression(parseAnnotationConstExprConstruct(jp));
-          } else {
-            // Dynamic Expressions
-            annotation.setExpression(jp.readValueAs(AbstractDynamicAnnotationExpression.class));
-          }
-        }
-      }
-
-      return annotation;
-    }
-  }
-}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/754e23ab/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/AnnotationsImpl.java
----------------------------------------------------------------------
diff --git a/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/AnnotationsImpl.java b/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/AnnotationsImpl.java
deleted file mode 100644
index 21aff68..0000000
--- a/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/AnnotationsImpl.java
+++ /dev/null
@@ -1,62 +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.client.core.edm.xml;
-
-import com.fasterxml.jackson.core.JsonParser;
-import com.fasterxml.jackson.core.JsonToken;
-import com.fasterxml.jackson.databind.DeserializationContext;
-import org.apache.olingo.commons.api.edm.provider.Annotations;
-
-import com.fasterxml.jackson.databind.annotation.JsonDeserialize;
-
-import java.io.IOException;
-
-@JsonDeserialize(using = AnnotationsImpl.AnnotationsDeserializer.class)
-public class AnnotationsImpl extends Annotations {
-
-  private static final long serialVersionUID = -5961207981571644200L;
-
-  static class AnnotationsDeserializer extends AbstractEdmDeserializer<AnnotationsImpl> {
-
-    @Override
-    protected AnnotationsImpl doDeserialize(final JsonParser jp, final DeserializationContext ctxt)
-            throws IOException {
-
-      final AnnotationsImpl annotations = new AnnotationsImpl();
-
-      for (; jp.getCurrentToken() != null && jp.getCurrentToken() != JsonToken.END_OBJECT; jp.nextToken()) {
-        final JsonToken token = jp.getCurrentToken();
-        if (token == JsonToken.FIELD_NAME) {
-          if ("Target".equals(jp.getCurrentName())) {
-            annotations.setTarget(jp.nextTextValue());
-          } else if ("Qualifier".equals(jp.getCurrentName())) {
-            annotations.setQualifier(jp.nextTextValue());
-          } else if ("Annotation".equals(jp.getCurrentName())) {
-            jp.nextToken();
-            annotations.getAnnotations().add(jp.readValueAs(AnnotationImpl.class));
-          }
-        }
-      }
-
-      return annotations;
-    }
-
-  }
-
-}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/754e23ab/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/ClientAction.java
----------------------------------------------------------------------
diff --git a/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/ClientAction.java b/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/ClientAction.java
new file mode 100644
index 0000000..57bdad6
--- /dev/null
+++ b/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/ClientAction.java
@@ -0,0 +1,68 @@
+/*
+ * 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.client.core.edm.xml;
+
+import com.fasterxml.jackson.core.JsonParser;
+import com.fasterxml.jackson.core.JsonToken;
+import com.fasterxml.jackson.databind.DeserializationContext;
+import org.apache.commons.lang3.BooleanUtils;
+import org.apache.olingo.commons.api.edm.provider.Action;
+
+import com.fasterxml.jackson.databind.annotation.JsonDeserialize;
+
+import java.io.IOException;
+
+@JsonDeserialize(using = ClientAction.ActionDeserializer.class)
+public class ClientAction extends  Action {
+
+  private static final long serialVersionUID = 5321541275349234088L;
+
+  static class ActionDeserializer extends AbstractClientEdmDeserializer<ClientAction> {
+
+    @Override
+    protected ClientAction doDeserialize(final JsonParser jp, final DeserializationContext ctxt)
+            throws IOException {
+
+      final ClientAction action = new ClientAction();
+
+      for (; jp.getCurrentToken() != JsonToken.END_OBJECT; jp.nextToken()) {
+        final JsonToken token = jp.getCurrentToken();
+        if (token == JsonToken.FIELD_NAME) {
+          if ("Name".equals(jp.getCurrentName())) {
+            action.setName(jp.nextTextValue());
+          } else if ("IsBound".equals(jp.getCurrentName())) {
+            action.setBound(BooleanUtils.toBoolean(jp.nextTextValue()));
+          } else if ("EntitySetPath".equals(jp.getCurrentName())) {
+            action.setEntitySetPath(jp.nextTextValue());
+          } else if ("Parameter".equals(jp.getCurrentName())) {
+            jp.nextToken();
+            action.getParameters().add(jp.readValueAs(ClientParameter.class));
+          } else if ("ReturnType".equals(jp.getCurrentName())) {
+            action.setReturnType(parseReturnType(jp, "Action"));
+          } else if ("Annotation".equals(jp.getCurrentName())) {
+            jp.nextToken();
+            action.getAnnotations().add(jp.readValueAs(ClientAnnotation.class));
+          }
+        }
+      }
+
+      return action;
+    }
+  }
+}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/754e23ab/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/ClientActionImport.java
----------------------------------------------------------------------
diff --git a/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/ClientActionImport.java b/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/ClientActionImport.java
new file mode 100644
index 0000000..8c251f3
--- /dev/null
+++ b/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/ClientActionImport.java
@@ -0,0 +1,58 @@
+/*
+ * 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.client.core.edm.xml;
+
+import com.fasterxml.jackson.core.JsonParser;
+import com.fasterxml.jackson.core.JsonToken;
+import com.fasterxml.jackson.databind.DeserializationContext;
+import com.fasterxml.jackson.databind.annotation.JsonDeserialize;
+import org.apache.olingo.commons.api.edm.provider.ActionImport;
+
+import java.io.IOException;
+
+@JsonDeserialize(using = ClientActionImport.ActionImportDeserializer.class)
+public class ClientActionImport extends ActionImport {
+
+  private static final long serialVersionUID = 2971468441177647068L;
+
+  static class ActionImportDeserializer extends AbstractClientEdmDeserializer<ClientActionImport> {
+
+    @Override
+    protected ClientActionImport doDeserialize(final JsonParser jp, final DeserializationContext ctxt)
+            throws IOException {
+
+      final ClientActionImport action = new ClientActionImport();
+
+      for (; jp.getCurrentToken() != JsonToken.END_OBJECT; jp.nextToken()) {
+        final JsonToken token = jp.getCurrentToken();
+        if (token == JsonToken.FIELD_NAME) {
+          if ("Action".equals(jp.getCurrentName())) {
+            action.setAction(jp.nextTextValue());
+          } else if ("Name".equals(jp.getCurrentName())) {
+            action.setName(jp.nextTextValue());
+          } else if ("EntitySet".equals(jp.getCurrentName())) {
+            action.setEntitySet(jp.nextTextValue());
+          }
+        }
+      }
+
+      return action;
+    }
+  }
+}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/754e23ab/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/ClientAnnotation.java
----------------------------------------------------------------------
diff --git a/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/ClientAnnotation.java b/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/ClientAnnotation.java
new file mode 100644
index 0000000..85b866d
--- /dev/null
+++ b/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/ClientAnnotation.java
@@ -0,0 +1,67 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.olingo.client.core.edm.xml;
+
+import java.io.IOException;
+
+import com.fasterxml.jackson.core.JsonParser;
+import com.fasterxml.jackson.core.JsonToken;
+import com.fasterxml.jackson.databind.DeserializationContext;
+import org.apache.olingo.client.core.edm.xml.annotation.AbstractClientDynamicAnnotationExpression;
+import org.apache.olingo.commons.api.edm.provider.Annotation;
+
+import com.fasterxml.jackson.databind.annotation.JsonDeserialize;
+
+@JsonDeserialize(using = ClientAnnotation.AnnotationDeserializer.class)
+public class ClientAnnotation extends Annotation {
+
+  private static final long serialVersionUID = 5464714417411058033L;
+
+  static class AnnotationDeserializer extends AbstractClientEdmDeserializer<Annotation> {
+
+    @Override
+    protected Annotation doDeserialize(final JsonParser jp, final DeserializationContext ctxt)
+            throws IOException {
+
+      final ClientAnnotation annotation = new ClientAnnotation();
+
+      for (; jp.getCurrentToken() != null && jp.getCurrentToken() != JsonToken.END_OBJECT; jp.nextToken()) {
+        final JsonToken token = jp.getCurrentToken();
+        if (token == JsonToken.FIELD_NAME) {
+          if ("Term".equals(jp.getCurrentName())) {
+            annotation.setTerm(jp.nextTextValue());
+          } else if ("Qualifier".equals(jp.getCurrentName())) {
+            annotation.setQualifier(jp.nextTextValue());
+          } else if ("Annotation".equals(jp.getCurrentName())) {
+            jp.nextToken();
+            annotation.getAnnotations().add(jp.readValueAs(ClientAnnotation.class));
+          } else if (isAnnotationConstExprConstruct(jp)) {
+            // Constant Expressions
+            annotation.setExpression(parseAnnotationConstExprConstruct(jp));
+          } else {
+            // Dynamic Expressions
+            annotation.setExpression(jp.readValueAs(AbstractClientDynamicAnnotationExpression.class));
+          }
+        }
+      }
+
+      return annotation;
+    }
+  }
+}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/754e23ab/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/ClientAnnotations.java
----------------------------------------------------------------------
diff --git a/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/ClientAnnotations.java b/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/ClientAnnotations.java
new file mode 100644
index 0000000..55d9cbd
--- /dev/null
+++ b/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/ClientAnnotations.java
@@ -0,0 +1,62 @@
+/*
+ * 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.client.core.edm.xml;
+
+import com.fasterxml.jackson.core.JsonParser;
+import com.fasterxml.jackson.core.JsonToken;
+import com.fasterxml.jackson.databind.DeserializationContext;
+import org.apache.olingo.commons.api.edm.provider.Annotations;
+
+import com.fasterxml.jackson.databind.annotation.JsonDeserialize;
+
+import java.io.IOException;
+
+@JsonDeserialize(using = ClientAnnotations.AnnotationsDeserializer.class)
+public class ClientAnnotations extends Annotations {
+
+  private static final long serialVersionUID = -5961207981571644200L;
+
+  static class AnnotationsDeserializer extends AbstractClientEdmDeserializer<ClientAnnotations> {
+
+    @Override
+    protected ClientAnnotations doDeserialize(final JsonParser jp, final DeserializationContext ctxt)
+            throws IOException {
+
+      final ClientAnnotations annotations = new ClientAnnotations();
+
+      for (; jp.getCurrentToken() != null && jp.getCurrentToken() != JsonToken.END_OBJECT; jp.nextToken()) {
+        final JsonToken token = jp.getCurrentToken();
+        if (token == JsonToken.FIELD_NAME) {
+          if ("Target".equals(jp.getCurrentName())) {
+            annotations.setTarget(jp.nextTextValue());
+          } else if ("Qualifier".equals(jp.getCurrentName())) {
+            annotations.setQualifier(jp.nextTextValue());
+          } else if ("Annotation".equals(jp.getCurrentName())) {
+            jp.nextToken();
+            annotations.getAnnotations().add(jp.readValueAs(ClientAnnotation.class));
+          }
+        }
+      }
+
+      return annotations;
+    }
+
+  }
+
+}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/754e23ab/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/ClientComplexType.java
----------------------------------------------------------------------
diff --git a/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/ClientComplexType.java b/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/ClientComplexType.java
new file mode 100644
index 0000000..ebc0452
--- /dev/null
+++ b/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/ClientComplexType.java
@@ -0,0 +1,72 @@
+/*
+ * 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 >ied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.olingo.client.core.edm.xml;
+
+import com.fasterxml.jackson.core.JsonParser;
+import com.fasterxml.jackson.core.JsonToken;
+import com.fasterxml.jackson.databind.DeserializationContext;
+import org.apache.commons.lang3.BooleanUtils;
+import org.apache.olingo.commons.api.edm.provider.ComplexType;
+
+import com.fasterxml.jackson.databind.annotation.JsonDeserialize;
+
+import java.io.IOException;
+
+@JsonDeserialize(using = ClientComplexType.ComplexTypeDeserializer.class)
+public class ClientComplexType extends ComplexType {
+
+  private static final long serialVersionUID = 4076944306925840115L;
+
+  static class ComplexTypeDeserializer extends AbstractClientEdmDeserializer<ComplexType> {
+
+    @Override
+    protected ComplexType doDeserialize(final JsonParser jp, final DeserializationContext ctxt)
+            throws IOException {
+
+      final ClientComplexType complexType = new ClientComplexType();
+
+      for (; jp.getCurrentToken() != JsonToken.END_OBJECT; jp.nextToken()) {
+        final JsonToken token = jp.getCurrentToken();
+        if (token == JsonToken.FIELD_NAME) {
+          if ("Name".equals(jp.getCurrentName())) {
+            complexType.setName(jp.nextTextValue());
+          } else if ("Abstract".equals(jp.getCurrentName())) {
+            complexType.setAbstract(BooleanUtils.toBoolean(jp.nextTextValue()));
+          } else if ("BaseType".equals(jp.getCurrentName())) {
+            complexType.setBaseType(jp.nextTextValue());
+          } else if ("OpenType".equals(jp.getCurrentName())) {
+            complexType.setOpenType(BooleanUtils.toBoolean(jp.nextTextValue()));
+          } else if ("Property".equals(jp.getCurrentName())) {
+            jp.nextToken();
+            complexType.getProperties().add(jp.readValueAs(ClientProperty.class));
+          } else if ("NavigationProperty".equals(jp.getCurrentName())) {
+            jp.nextToken();
+            complexType.getNavigationProperties().add(jp.readValueAs(ClientNavigationProperty.class));
+          } else if ("Annotation".equals(jp.getCurrentName())) {
+            jp.nextToken();
+            complexType.getAnnotations().add(jp.readValueAs(ClientAnnotation.class));
+          }
+        }
+      }
+
+      return complexType;
+    }
+  }
+
+}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/754e23ab/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/ClientDataServices.java
----------------------------------------------------------------------
diff --git a/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/ClientDataServices.java b/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/ClientDataServices.java
new file mode 100644
index 0000000..f68c457
--- /dev/null
+++ b/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/ClientDataServices.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.client.core.edm.xml;
+
+import java.io.IOException;
+import java.util.ArrayList;
+import java.util.List;
+
+import com.fasterxml.jackson.core.JsonParser;
+import com.fasterxml.jackson.core.JsonToken;
+import com.fasterxml.jackson.databind.DeserializationContext;
+import org.apache.olingo.client.api.edm.xml.DataServices;
+import org.apache.olingo.commons.api.edm.provider.AbstractEdmItem;
+import org.apache.olingo.commons.api.edm.provider.Schema;
+
+import com.fasterxml.jackson.databind.annotation.JsonDeserialize;
+
+@JsonDeserialize(using = ClientDataServices.DataServicesDeserializer.class)
+public class ClientDataServices extends AbstractEdmItem implements DataServices {
+
+  private static final long serialVersionUID = 4200317286476885204L;
+
+  private final List<Schema> schemas = new ArrayList<Schema>();
+  
+  private String dataServiceVersion;
+
+  private String maxDataServiceVersion;
+
+  @Override
+  public String getDataServiceVersion() {
+    return dataServiceVersion;
+  }
+
+  public void setDataServiceVersion(final String version) {
+    this.dataServiceVersion = version;
+  }
+
+  @Override
+  public String getMaxDataServiceVersion() {
+    return maxDataServiceVersion;
+  }
+
+  public void setMaxDataServiceVersion(final String version) {
+    this.maxDataServiceVersion = version;
+  }
+
+  @Override
+  public List<Schema> getSchemas() {
+    return schemas;
+  }
+
+  static class DataServicesDeserializer extends AbstractClientEdmDeserializer<ClientDataServices> {
+
+    @Override
+    protected ClientDataServices doDeserialize(final JsonParser jp, final DeserializationContext ctxt)
+            throws IOException {
+
+      final ClientDataServices dataServices = new ClientDataServices();
+
+      for (; jp.getCurrentToken() != JsonToken.END_OBJECT; jp.nextToken()) {
+        final JsonToken token = jp.getCurrentToken();
+        if (token == JsonToken.FIELD_NAME) {
+          if ("DataServiceVersion".equals(jp.getCurrentName())) {
+            dataServices.setDataServiceVersion(jp.nextTextValue());
+          } else if ("MaxDataServiceVersion".equals(jp.getCurrentName())) {
+            dataServices.setMaxDataServiceVersion(jp.nextTextValue());
+          } else if ("Schema".equals(jp.getCurrentName())) {
+            jp.nextToken();
+            dataServices.getSchemas().add(jp.readValueAs(ClientSchema.class));
+          }
+        }
+      }
+
+      return dataServices;
+    }
+  }
+}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/754e23ab/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/ClientEdmx.java
----------------------------------------------------------------------
diff --git a/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/ClientEdmx.java b/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/ClientEdmx.java
new file mode 100644
index 0000000..29a399c
--- /dev/null
+++ b/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/ClientEdmx.java
@@ -0,0 +1,95 @@
+/*
+ * 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.client.core.edm.xml;
+
+import java.io.IOException;
+import java.util.ArrayList;
+import java.util.List;
+
+import com.fasterxml.jackson.core.JsonParser;
+import com.fasterxml.jackson.core.JsonToken;
+import com.fasterxml.jackson.databind.DeserializationContext;
+import org.apache.olingo.client.api.edm.xml.DataServices;
+import org.apache.olingo.client.api.edm.xml.Edmx;
+import org.apache.olingo.client.api.edm.xml.Reference;
+import org.apache.olingo.commons.api.edm.provider.AbstractEdmItem;
+
+import com.fasterxml.jackson.databind.annotation.JsonDeserialize;
+
+@JsonDeserialize(using = ClientEdmx.EdmxDeserializer.class)
+public class ClientEdmx extends AbstractEdmItem implements Edmx {
+
+  private static final long serialVersionUID = -6293476719276092572L;
+
+  private final List<Reference> references = new ArrayList<Reference>();
+
+  private String version;
+
+  private DataServices dataServices;
+
+  @Override
+  public String getVersion() {
+    return version;
+  }
+
+  public void setVersion(final String version) {
+    this.version = version;
+  }
+
+  @Override
+  public DataServices getDataServices() {
+    return dataServices;
+  }
+
+  public void setDataServices(final DataServices dataServices) {
+    this.dataServices = dataServices;
+  }
+  
+  @Override
+  public List<Reference> getReferences() {
+    return references;
+  }
+
+  static class EdmxDeserializer extends AbstractClientEdmDeserializer<ClientEdmx> {
+
+    @Override
+    protected ClientEdmx doDeserialize(final JsonParser jp, final DeserializationContext ctxt)
+            throws IOException {
+
+      final ClientEdmx edmx = new ClientEdmx();
+
+      for (; jp.getCurrentToken() != JsonToken.END_OBJECT; jp.nextToken()) {
+        final JsonToken token = jp.getCurrentToken();
+        if (token == JsonToken.FIELD_NAME) {
+          if ("Version".equals(jp.getCurrentName())) {
+            edmx.setVersion(jp.nextTextValue());
+          } else if ("DataServices".equals(jp.getCurrentName())) {
+            jp.nextToken();
+            edmx.setDataServices(jp.readValueAs(ClientDataServices.class));
+          } else if ("Reference".equals(jp.getCurrentName())) {
+            jp.nextToken();
+            edmx.getReferences().add(jp.readValueAs(ClientReference.class));
+          }
+        }
+      }
+
+      return edmx;
+    }
+  }
+}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/754e23ab/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/ClientEntityContainer.java
----------------------------------------------------------------------
diff --git a/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/ClientEntityContainer.java b/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/ClientEntityContainer.java
new file mode 100644
index 0000000..d91f8d3
--- /dev/null
+++ b/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/ClientEntityContainer.java
@@ -0,0 +1,72 @@
+/*
+ * 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.client.core.edm.xml;
+
+import com.fasterxml.jackson.core.JsonParser;
+import com.fasterxml.jackson.core.JsonToken;
+import com.fasterxml.jackson.databind.DeserializationContext;
+import org.apache.olingo.commons.api.edm.provider.EntityContainer;
+
+import com.fasterxml.jackson.databind.annotation.JsonDeserialize;
+
+import java.io.IOException;
+
+@JsonDeserialize(using = ClientEntityContainer.EntityContainerDeserializer.class)
+public class ClientEntityContainer extends EntityContainer {
+
+  private static final long serialVersionUID = 5631432527646955795L;
+
+  static class EntityContainerDeserializer extends AbstractClientEdmDeserializer<ClientEntityContainer> {
+
+    @Override
+    protected ClientEntityContainer doDeserialize(final JsonParser jp, final DeserializationContext ctxt)
+            throws IOException {
+
+      final ClientEntityContainer entityContainer = new ClientEntityContainer();
+
+      for (; jp.getCurrentToken() != JsonToken.END_OBJECT; jp.nextToken()) {
+        final JsonToken token = jp.getCurrentToken();
+        if (token == JsonToken.FIELD_NAME) {
+          if ("Name".equals(jp.getCurrentName())) {
+            entityContainer.setName(jp.nextTextValue());
+          } else if ("Extends".equals(jp.getCurrentName())) {
+            entityContainer.setExtendsContainer(jp.nextTextValue());
+          } else if ("EntitySet".equals(jp.getCurrentName())) {
+            jp.nextToken();
+            entityContainer.getEntitySets().add(jp.readValueAs(ClientEntitySet.class));
+          } else if ("Singleton".equals(jp.getCurrentName())) {
+            jp.nextToken();
+            entityContainer.getSingletons().add(jp.readValueAs(ClientSingleton.class));
+          } else if ("ActionImport".equals(jp.getCurrentName())) {
+            jp.nextToken();
+            entityContainer.getActionImports().add(jp.readValueAs(ClientActionImport.class));
+          } else if ("FunctionImport".equals(jp.getCurrentName())) {
+            jp.nextToken();
+            entityContainer.getFunctionImports().add(jp.readValueAs(ClientFunctionImport.class));
+          } else if ("Annotation".equals(jp.getCurrentName())) {
+            jp.nextToken();
+            entityContainer.getAnnotations().add(jp.readValueAs(ClientAnnotation.class));
+          }
+        }
+      }
+
+      return entityContainer;
+    }
+  }
+}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/754e23ab/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/ClientEntityKey.java
----------------------------------------------------------------------
diff --git a/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/ClientEntityKey.java b/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/ClientEntityKey.java
new file mode 100644
index 0000000..f238699
--- /dev/null
+++ b/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/ClientEntityKey.java
@@ -0,0 +1,63 @@
+/*
+ * 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.client.core.edm.xml;
+
+import java.io.IOException;
+import java.util.ArrayList;
+import java.util.List;
+
+import com.fasterxml.jackson.core.JsonParser;
+import com.fasterxml.jackson.core.JsonToken;
+import com.fasterxml.jackson.databind.DeserializationContext;
+import org.apache.olingo.commons.api.edm.provider.AbstractEdmItem;
+import org.apache.olingo.commons.api.edm.provider.PropertyRef;
+
+import com.fasterxml.jackson.databind.annotation.JsonDeserialize;
+
+@JsonDeserialize(using = ClientEntityKey.EntityKeyDeserializer.class)
+public class ClientEntityKey extends AbstractEdmItem {
+
+  private static final long serialVersionUID = 520227585458843347L;
+
+  private final List<PropertyRef> propertyRefs = new ArrayList<PropertyRef>();
+
+  public List<PropertyRef> getPropertyRefs() {
+    return propertyRefs;
+  }
+
+  static class EntityKeyDeserializer extends AbstractClientEdmDeserializer<ClientEntityKey> {
+    @Override
+    protected ClientEntityKey doDeserialize(final JsonParser jp, final DeserializationContext ctxt)
+            throws IOException {
+
+      final ClientEntityKey entityKey = new ClientEntityKey();
+
+      for (; jp.getCurrentToken() != JsonToken.END_OBJECT; jp.nextToken()) {
+        final JsonToken token = jp.getCurrentToken();
+
+        if (token == JsonToken.FIELD_NAME && "PropertyRef".equals(jp.getCurrentName())) {
+          jp.nextToken();
+          entityKey.getPropertyRefs().add(jp.readValueAs(ClientPropertyRef.class));
+        }
+      }
+
+      return entityKey;
+    }
+  }
+}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/754e23ab/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/ClientEntitySet.java
----------------------------------------------------------------------
diff --git a/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/ClientEntitySet.java b/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/ClientEntitySet.java
new file mode 100644
index 0000000..655f80d
--- /dev/null
+++ b/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/ClientEntitySet.java
@@ -0,0 +1,65 @@
+/*
+ * 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.client.core.edm.xml;
+
+import com.fasterxml.jackson.core.JsonParser;
+import com.fasterxml.jackson.core.JsonToken;
+import com.fasterxml.jackson.databind.DeserializationContext;
+import org.apache.commons.lang3.BooleanUtils;
+import org.apache.olingo.commons.api.edm.provider.EntitySet;
+
+import com.fasterxml.jackson.databind.annotation.JsonDeserialize;
+
+import java.io.IOException;
+
+@JsonDeserialize(using = ClientEntitySet.EntitySetDeserializer.class)
+public class ClientEntitySet extends EntitySet {
+
+  private static final long serialVersionUID = -5553885465204370676L;
+
+  static class EntitySetDeserializer extends AbstractClientEdmDeserializer<EntitySet> {
+    @Override
+    protected EntitySet doDeserialize(final JsonParser jp, final DeserializationContext ctxt)
+            throws IOException {
+
+      final ClientEntitySet entitySet = new ClientEntitySet();
+
+      for (; jp.getCurrentToken() != JsonToken.END_OBJECT; jp.nextToken()) {
+        final JsonToken token = jp.getCurrentToken();
+        if (token == JsonToken.FIELD_NAME) {
+          if ("Name".equals(jp.getCurrentName())) {
+            entitySet.setName(jp.nextTextValue());
+          } else if ("EntityType".equals(jp.getCurrentName())) {
+            entitySet.setType(jp.nextTextValue());
+          } else if ("IncludeInServiceDocument".equals(jp.getCurrentName())) {
+            entitySet.setIncludeInServiceDocument(BooleanUtils.toBoolean(jp.nextTextValue()));
+          } else if ("NavigationPropertyBinding".equals(jp.getCurrentName())) {
+            jp.nextToken();
+            entitySet.getNavigationPropertyBindings().add(jp.readValueAs(ClientNavigationPropertyBinding.class));
+          } else if ("Annotation".equals(jp.getCurrentName())) {
+            jp.nextToken();
+            entitySet.getAnnotations().add(jp.readValueAs(ClientAnnotation.class));
+          }
+        }
+      }
+
+      return entitySet;
+    }
+  }
+}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/754e23ab/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/ClientEntityType.java
----------------------------------------------------------------------
diff --git a/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/ClientEntityType.java b/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/ClientEntityType.java
new file mode 100644
index 0000000..9089bc9
--- /dev/null
+++ b/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/ClientEntityType.java
@@ -0,0 +1,76 @@
+/*
+ * 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.client.core.edm.xml;
+
+import com.fasterxml.jackson.core.JsonParser;
+import com.fasterxml.jackson.core.JsonToken;
+import com.fasterxml.jackson.databind.DeserializationContext;
+import org.apache.commons.lang3.BooleanUtils;
+import org.apache.olingo.commons.api.edm.provider.EntityType;
+
+import com.fasterxml.jackson.databind.annotation.JsonDeserialize;
+
+import java.io.IOException;
+
+@JsonDeserialize(using = ClientEntityType.EntityTypeDeserializer.class)
+public class ClientEntityType extends EntityType {
+
+  private static final long serialVersionUID = -3986417775876689669L;
+
+  static class EntityTypeDeserializer extends AbstractClientEdmDeserializer<EntityType> {
+    @Override
+    protected EntityType doDeserialize(final JsonParser jp, final DeserializationContext ctxt)
+            throws IOException {
+
+      final ClientEntityType entityType = new ClientEntityType();
+
+      for (; jp.getCurrentToken() != JsonToken.END_OBJECT; jp.nextToken()) {
+        final JsonToken token = jp.getCurrentToken();
+        if (token == JsonToken.FIELD_NAME) {
+          if ("Name".equals(jp.getCurrentName())) {
+            entityType.setName(jp.nextTextValue());
+          } else if ("Abstract".equals(jp.getCurrentName())) {
+            entityType.setAbstract(BooleanUtils.toBoolean(jp.nextTextValue()));
+          } else if ("BaseType".equals(jp.getCurrentName())) {
+            entityType.setBaseType(jp.nextTextValue());
+          } else if ("OpenType".equals(jp.getCurrentName())) {
+            entityType.setOpenType(BooleanUtils.toBoolean(jp.nextTextValue()));
+          } else if ("HasStream".equals(jp.getCurrentName())) {
+            entityType.setHasStream(BooleanUtils.toBoolean(jp.nextTextValue()));
+          } else if ("Key".equals(jp.getCurrentName())) {
+            jp.nextToken();
+            ClientEntityKey keyImpl = jp.readValueAs(ClientEntityKey.class);
+            entityType.setKey(keyImpl.getPropertyRefs());
+          } else if ("Property".equals(jp.getCurrentName())) {
+            jp.nextToken();
+            entityType.getProperties().add(jp.readValueAs(ClientProperty.class));
+          } else if ("NavigationProperty".equals(jp.getCurrentName())) {
+            jp.nextToken();
+            entityType.getNavigationProperties().add(jp.readValueAs(ClientNavigationProperty.class));
+          } else if ("Annotation".equals(jp.getCurrentName())) {
+            jp.nextToken();
+            entityType.getAnnotations().add(jp.readValueAs(ClientAnnotation.class));
+          }
+        }
+      }
+
+      return entityType;
+    }
+  }
+}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/754e23ab/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/ClientEnumMember.java
----------------------------------------------------------------------
diff --git a/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/ClientEnumMember.java b/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/ClientEnumMember.java
new file mode 100644
index 0000000..af6f64d
--- /dev/null
+++ b/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/ClientEnumMember.java
@@ -0,0 +1,57 @@
+/*
+ * 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.client.core.edm.xml;
+
+import com.fasterxml.jackson.core.JsonParser;
+import com.fasterxml.jackson.core.JsonToken;
+import com.fasterxml.jackson.databind.DeserializationContext;
+import com.fasterxml.jackson.databind.annotation.JsonDeserialize;
+import org.apache.olingo.commons.api.edm.provider.EnumMember;
+
+import java.io.IOException;
+
+@JsonDeserialize(using = ClientEnumMember.EnumMemberDeserializer.class)
+public class ClientEnumMember extends EnumMember {
+
+  private static final long serialVersionUID = -6138606817225829791L;
+
+  static class EnumMemberDeserializer extends AbstractClientEdmDeserializer<EnumMember> {
+    @Override
+    protected EnumMember doDeserialize(final JsonParser jp, final DeserializationContext ctxt)
+            throws IOException {
+
+      final EnumMember member = new EnumMember();
+
+      for (; jp.getCurrentToken() != JsonToken.END_OBJECT; jp.nextToken()) {
+        final JsonToken token = jp.getCurrentToken();
+        if (token == JsonToken.FIELD_NAME) {
+          if ("Name".equals(jp.getCurrentName())) {
+            member.setName(jp.nextTextValue());
+          } else if ("Value".equals(jp.getCurrentName())) {
+            member.setValue(jp.nextTextValue());
+          } else if ("Annotation".equals(jp.getCurrentName())) {
+            jp.nextToken();
+            member.getAnnotations().add(jp.readValueAs(ClientAnnotation.class));
+          }
+        }
+      }
+      return member;
+    }
+  }
+}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/754e23ab/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/ClientEnumType.java
----------------------------------------------------------------------
diff --git a/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/ClientEnumType.java b/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/ClientEnumType.java
new file mode 100644
index 0000000..284b5c9
--- /dev/null
+++ b/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/ClientEnumType.java
@@ -0,0 +1,65 @@
+/*
+ * 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.client.core.edm.xml;
+
+import com.fasterxml.jackson.core.JsonParser;
+import com.fasterxml.jackson.core.JsonToken;
+import com.fasterxml.jackson.databind.DeserializationContext;
+import org.apache.commons.lang3.BooleanUtils;
+import org.apache.olingo.commons.api.edm.provider.EnumType;
+
+import com.fasterxml.jackson.databind.annotation.JsonDeserialize;
+
+import java.io.IOException;
+
+@JsonDeserialize(using = ClientEnumType.EnumTypeDeserializer.class)
+public class ClientEnumType extends EnumType {
+
+  private static final long serialVersionUID = 9191189755592743333L;
+
+  static class EnumTypeDeserializer extends AbstractClientEdmDeserializer<ClientEnumType> {
+    @Override
+    protected ClientEnumType doDeserialize(final JsonParser jp, final DeserializationContext ctxt)
+            throws IOException {
+
+      final ClientEnumType enumType = new ClientEnumType();
+
+      for (; jp.getCurrentToken() != JsonToken.END_OBJECT; jp.nextToken()) {
+        final JsonToken token = jp.getCurrentToken();
+        if (token == JsonToken.FIELD_NAME) {
+          if ("Name".equals(jp.getCurrentName())) {
+            enumType.setName(jp.nextTextValue());
+          } else if ("UnderlyingType".equals(jp.getCurrentName())) {
+            enumType.setUnderlyingType(jp.nextTextValue());
+          } else if ("IsFlags".equals(jp.getCurrentName())) {
+            enumType.setFlags(BooleanUtils.toBoolean(jp.nextTextValue()));
+          } else if ("Member".equals(jp.getCurrentName())) {
+            jp.nextToken();
+            enumType.getMembers().add(jp.readValueAs(ClientEnumMember.class));
+          } else if ("Annotation".equals(jp.getCurrentName())) {
+            jp.nextToken();
+            enumType.getAnnotations().add(jp.readValueAs(ClientAnnotation.class));
+          }
+        }
+      }
+
+      return enumType;
+    }
+  }
+}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/754e23ab/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/ClientFunction.java
----------------------------------------------------------------------
diff --git a/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/ClientFunction.java b/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/ClientFunction.java
new file mode 100644
index 0000000..c9260f1
--- /dev/null
+++ b/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/ClientFunction.java
@@ -0,0 +1,69 @@
+/*
+ * 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.client.core.edm.xml;
+
+import com.fasterxml.jackson.core.JsonParser;
+import com.fasterxml.jackson.core.JsonToken;
+import com.fasterxml.jackson.databind.DeserializationContext;
+import org.apache.commons.lang3.BooleanUtils;
+import org.apache.olingo.commons.api.edm.provider.Function;
+
+import com.fasterxml.jackson.databind.annotation.JsonDeserialize;
+
+import java.io.IOException;
+
+@JsonDeserialize(using = ClientFunction.FunctionDeserializer.class)
+public class ClientFunction extends Function {
+
+  private static final long serialVersionUID = -5494898295282843362L;
+
+  static class FunctionDeserializer extends AbstractClientEdmDeserializer<ClientFunction> {
+    @Override
+    protected ClientFunction doDeserialize(final JsonParser jp, final DeserializationContext ctxt)
+            throws IOException {
+
+      final ClientFunction functionImpl = new ClientFunction();
+
+      for (; jp.getCurrentToken() != JsonToken.END_OBJECT; jp.nextToken()) {
+        final JsonToken token = jp.getCurrentToken();
+        if (token == JsonToken.FIELD_NAME) {
+          if ("Name".equals(jp.getCurrentName())) {
+            functionImpl.setName(jp.nextTextValue());
+          } else if ("IsBound".equals(jp.getCurrentName())) {
+            functionImpl.setBound(BooleanUtils.toBoolean(jp.nextTextValue()));
+          } else if ("IsComposable".equals(jp.getCurrentName())) {
+            functionImpl.setComposable(BooleanUtils.toBoolean(jp.nextTextValue()));
+          } else if ("EntitySetPath".equals(jp.getCurrentName())) {
+            functionImpl.setEntitySetPath(jp.nextTextValue());
+          } else if ("Parameter".equals(jp.getCurrentName())) {
+            jp.nextToken();
+            functionImpl.getParameters().add(jp.readValueAs(ClientParameter.class));
+          } else if ("ReturnType".equals(jp.getCurrentName())) {
+            functionImpl.setReturnType(parseReturnType(jp, "Function"));
+          } else if ("Annotation".equals(jp.getCurrentName())) {
+            jp.nextToken();
+            functionImpl.getAnnotations().add(jp.readValueAs(ClientAnnotation.class));
+          }
+        }
+      }
+
+      return functionImpl;
+    }
+  }
+}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/754e23ab/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/ClientFunctionImport.java
----------------------------------------------------------------------
diff --git a/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/ClientFunctionImport.java b/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/ClientFunctionImport.java
new file mode 100644
index 0000000..3a7230f
--- /dev/null
+++ b/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/ClientFunctionImport.java
@@ -0,0 +1,64 @@
+/*
+ * 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.client.core.edm.xml;
+
+import com.fasterxml.jackson.core.JsonParser;
+import com.fasterxml.jackson.core.JsonToken;
+import com.fasterxml.jackson.databind.DeserializationContext;
+import org.apache.commons.lang3.BooleanUtils;
+import org.apache.olingo.commons.api.edm.provider.FunctionImport;
+
+import com.fasterxml.jackson.databind.annotation.JsonDeserialize;
+
+import java.io.IOException;
+
+@JsonDeserialize(using = ClientFunctionImport.FunctionImportDeserializer.class)
+public class ClientFunctionImport extends FunctionImport {
+
+  private static final long serialVersionUID = -1686801084142932402L;
+
+  static class FunctionImportDeserializer extends AbstractClientEdmDeserializer<ClientFunctionImport> {
+    @Override
+    protected ClientFunctionImport doDeserialize(final JsonParser jp, final DeserializationContext ctxt)
+            throws IOException {
+
+      final ClientFunctionImport functImpImpl = new ClientFunctionImport();
+
+      for (; jp.getCurrentToken() != JsonToken.END_OBJECT; jp.nextToken()) {
+        final JsonToken token = jp.getCurrentToken();
+        if (token == JsonToken.FIELD_NAME) {
+          if ("Name".equals(jp.getCurrentName())) {
+            functImpImpl.setName(jp.nextTextValue());
+          } else if ("Function".equals(jp.getCurrentName())) {
+            functImpImpl.setFunction(jp.nextTextValue());
+          } else if ("EntitySet".equals(jp.getCurrentName())) {
+            functImpImpl.setEntitySet(jp.nextTextValue());
+          } else if ("IncludeInServiceDocument".equals(jp.getCurrentName())) {
+            functImpImpl.setIncludeInServiceDocument(BooleanUtils.toBoolean(jp.nextTextValue()));
+          } else if ("Annotation".equals(jp.getCurrentName())) {
+            jp.nextToken();
+            functImpImpl.getAnnotations().add(jp.readValueAs(ClientAnnotation.class));
+          }
+        }
+      }
+
+      return functImpImpl;
+    }
+  }
+}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/754e23ab/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/ClientInclude.java
----------------------------------------------------------------------
diff --git a/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/ClientInclude.java b/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/ClientInclude.java
new file mode 100644
index 0000000..01984e0
--- /dev/null
+++ b/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/ClientInclude.java
@@ -0,0 +1,76 @@
+/*
+ * 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.client.core.edm.xml;
+
+import com.fasterxml.jackson.core.JsonParser;
+import com.fasterxml.jackson.core.JsonToken;
+import com.fasterxml.jackson.databind.DeserializationContext;
+import com.fasterxml.jackson.databind.annotation.JsonDeserialize;
+import org.apache.olingo.client.api.edm.xml.Include;
+import org.apache.olingo.commons.api.edm.provider.AbstractEdmItem;
+
+import java.io.IOException;
+
+@JsonDeserialize(using = ClientInclude.IncludeDeserializer.class)
+public class ClientInclude extends AbstractEdmItem implements Include {
+
+  private static final long serialVersionUID = -5450008299655584221L;
+
+  private String namespace;
+  private String alias;
+
+  @Override
+  public String getNamespace() {
+    return namespace;
+  }
+
+  public void setNamespace(final String namespace) {
+    this.namespace = namespace;
+  }
+
+  @Override
+  public String getAlias() {
+    return alias;
+  }
+
+  public void setAlias(final String alias) {
+    this.alias = alias;
+  }
+
+  static class IncludeDeserializer extends AbstractClientEdmDeserializer<Include> {
+    @Override
+    protected Include doDeserialize(final JsonParser jp, final DeserializationContext ctxt)
+            throws IOException {
+
+      final ClientInclude include = new ClientInclude();
+
+      for (; jp.getCurrentToken() != JsonToken.END_OBJECT; jp.nextToken()) {
+        final JsonToken token = jp.getCurrentToken();
+        if (token == JsonToken.FIELD_NAME) {
+          if ("Namespace".equals(jp.getCurrentName())) {
+            include.setNamespace(jp.nextTextValue());
+          } else if ("Alias".equals(jp.getCurrentName())) {
+            include.setAlias(jp.nextTextValue());
+          }
+        }
+      }
+      return include;
+    }
+  }
+}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/754e23ab/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/ClientIncludeAnnotations.java
----------------------------------------------------------------------
diff --git a/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/ClientIncludeAnnotations.java b/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/ClientIncludeAnnotations.java
new file mode 100644
index 0000000..4cf80c0
--- /dev/null
+++ b/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/ClientIncludeAnnotations.java
@@ -0,0 +1,88 @@
+/*
+ * 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.client.core.edm.xml;
+
+import com.fasterxml.jackson.core.JsonParser;
+import com.fasterxml.jackson.core.JsonToken;
+import com.fasterxml.jackson.databind.DeserializationContext;
+import com.fasterxml.jackson.databind.annotation.JsonDeserialize;
+import org.apache.olingo.client.api.edm.xml.IncludeAnnotations;
+import org.apache.olingo.commons.api.edm.provider.AbstractEdmItem;
+
+import java.io.IOException;
+
+@JsonDeserialize(using = ClientIncludeAnnotations.IncludeAnnotationsDeserializer.class)
+public class ClientIncludeAnnotations extends AbstractEdmItem implements IncludeAnnotations {
+
+  private static final long serialVersionUID = -8157841387011422396L;
+
+  private String termNamespace;
+  private String qualifier;
+  private String targetNamespace;
+
+  @Override
+  public String getTermNamespace() {
+    return termNamespace;
+  }
+
+  public void setTermNamespace(final String termNamespace) {
+    this.termNamespace = termNamespace;
+  }
+
+  @Override
+  public String getQualifier() {
+    return qualifier;
+  }
+
+  public void setQualifier(final String qualifier) {
+    this.qualifier = qualifier;
+  }
+
+  @Override
+  public String getTargetNamespace() {
+    return targetNamespace;
+  }
+
+  public void setTargetNamespace(final String targetNamespace) {
+    this.targetNamespace = targetNamespace;
+  }
+
+  static class IncludeAnnotationsDeserializer extends AbstractClientEdmDeserializer<IncludeAnnotations> {
+    @Override
+    protected IncludeAnnotations doDeserialize(final JsonParser jp, final DeserializationContext ctxt)
+            throws IOException {
+
+      final ClientIncludeAnnotations member = new ClientIncludeAnnotations();
+
+      for (; jp.getCurrentToken() != JsonToken.END_OBJECT; jp.nextToken()) {
+        final JsonToken token = jp.getCurrentToken();
+        if (token == JsonToken.FIELD_NAME) {
+          if ("TermNamespace".equals(jp.getCurrentName())) {
+            member.setTermNamespace(jp.nextTextValue());
+          } else if ("Qualifier".equals(jp.getCurrentName())) {
+            member.setQualifier(jp.nextTextValue());
+          } else if ("TargetNamespace".equals(jp.getCurrentName())) {
+            member.setTargetNamespace(jp.nextTextValue());
+          }
+        }
+      }
+      return member;
+    }
+  }
+}


[30/50] [abbrv] olingo-odata4 git commit: [OLINGO-564] Renamed 'OData*' to 'Client*' classes

Posted by mi...@apache.org.
http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/c37d4da5/lib/commons-api/src/main/java/org/apache/olingo/commons/api/domain/ClientCollectionValue.java
----------------------------------------------------------------------
diff --git a/lib/commons-api/src/main/java/org/apache/olingo/commons/api/domain/ClientCollectionValue.java b/lib/commons-api/src/main/java/org/apache/olingo/commons/api/domain/ClientCollectionValue.java
new file mode 100644
index 0000000..0497dc6
--- /dev/null
+++ b/lib/commons-api/src/main/java/org/apache/olingo/commons/api/domain/ClientCollectionValue.java
@@ -0,0 +1,57 @@
+/*
+ * 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.commons.api.domain;
+
+import java.util.Collection;
+
+/**
+ * OData collection property value.
+ * 
+ * @param <OV> The actual ODataValue interface.
+ */
+public interface ClientCollectionValue<OV extends ClientValue> extends ClientValue, Iterable<OV> {
+
+  /**
+   * Adds a value to the collection.
+   * 
+   * @param value value to be added.
+   */
+  ClientCollectionValue<OV> add(ClientValue value);
+
+  /**
+   * Checks if collection is empty.
+   * 
+   * @return 'TRUE' if empty; 'FALSE' otherwise.
+   */
+  boolean isEmpty();
+
+  /**
+   * Gets collection size.
+   * 
+   * @return collection size.
+   */
+  int size();
+
+  /**
+   * Converts this instance as POJO collection.
+   * 
+   * @return this instance as POJO collection
+   */
+  Collection<Object> asJavaCollection();
+}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/c37d4da5/lib/commons-api/src/main/java/org/apache/olingo/commons/api/domain/ClientComplexValue.java
----------------------------------------------------------------------
diff --git a/lib/commons-api/src/main/java/org/apache/olingo/commons/api/domain/ClientComplexValue.java b/lib/commons-api/src/main/java/org/apache/olingo/commons/api/domain/ClientComplexValue.java
new file mode 100644
index 0000000..3c2931a
--- /dev/null
+++ b/lib/commons-api/src/main/java/org/apache/olingo/commons/api/domain/ClientComplexValue.java
@@ -0,0 +1,58 @@
+/*
+ * 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.commons.api.domain;
+
+import java.util.Map;
+
+/**
+ * OData complex property value.
+ * 
+ */
+public interface ClientComplexValue extends ClientValue, ClientLinked, ClientAnnotatable, Iterable<ClientProperty> {
+
+  /**
+   * Adds field to the complex type.
+   * 
+   * @param field field to be added.
+   * @return this (for fluent-style calls)
+   */
+  ClientComplexValue add(ClientProperty field);
+
+  /**
+   * Gets field.
+   * 
+   * @param name name of the field to be retrieved.
+   * @return requested field.
+   */
+  ClientProperty get(String name);
+
+  /**
+   * Gets number of fields.
+   * 
+   * @return number of fields.
+   */
+  int size();
+
+  /**
+   * Converts this instance as POJO collection.
+   * 
+   * @return this instance as POJO collection
+   */
+  Map<String, Object> asJavaMap();
+}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/c37d4da5/lib/commons-api/src/main/java/org/apache/olingo/commons/api/domain/ClientDeletedEntity.java
----------------------------------------------------------------------
diff --git a/lib/commons-api/src/main/java/org/apache/olingo/commons/api/domain/ClientDeletedEntity.java b/lib/commons-api/src/main/java/org/apache/olingo/commons/api/domain/ClientDeletedEntity.java
new file mode 100644
index 0000000..3cdcb7b
--- /dev/null
+++ b/lib/commons-api/src/main/java/org/apache/olingo/commons/api/domain/ClientDeletedEntity.java
@@ -0,0 +1,36 @@
+/*
+ * 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.commons.api.domain;
+
+import java.net.URI;
+
+public interface ClientDeletedEntity {
+
+  enum Reason {
+
+    deleted,
+    changed
+
+  }
+
+  URI getId();
+
+  Reason getReason();
+
+}

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

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/c37d4da5/lib/commons-api/src/main/java/org/apache/olingo/commons/api/domain/ClientDeltaLink.java
----------------------------------------------------------------------
diff --git a/lib/commons-api/src/main/java/org/apache/olingo/commons/api/domain/ClientDeltaLink.java b/lib/commons-api/src/main/java/org/apache/olingo/commons/api/domain/ClientDeltaLink.java
new file mode 100644
index 0000000..d12aedf
--- /dev/null
+++ b/lib/commons-api/src/main/java/org/apache/olingo/commons/api/domain/ClientDeltaLink.java
@@ -0,0 +1,36 @@
+/*
+ * 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.commons.api.domain;
+
+import java.net.URI;
+
+public interface ClientDeltaLink extends ClientAnnotatable {
+
+  URI getSource();
+
+  void setSource(URI source);
+
+  String getRelationship();
+
+  void setRelationship(String relationship);
+
+  URI getTarget();
+
+  void setTarget(URI target);
+}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/c37d4da5/lib/commons-api/src/main/java/org/apache/olingo/commons/api/domain/ClientEntity.java
----------------------------------------------------------------------
diff --git a/lib/commons-api/src/main/java/org/apache/olingo/commons/api/domain/ClientEntity.java b/lib/commons-api/src/main/java/org/apache/olingo/commons/api/domain/ClientEntity.java
new file mode 100644
index 0000000..39736cc
--- /dev/null
+++ b/lib/commons-api/src/main/java/org/apache/olingo/commons/api/domain/ClientEntity.java
@@ -0,0 +1,202 @@
+/*
+ * 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.commons.api.domain;
+
+import org.apache.olingo.commons.api.edm.FullQualifiedName;
+
+import java.net.URI;
+import java.util.List;
+
+/**
+ * OData entity.
+ */
+public interface ClientEntity extends ClientLinked, ClientAnnotatable, ClientInvokeResult {
+
+  /**
+   * @return the type name of this entity.
+   */
+  FullQualifiedName getTypeName();
+
+  /**
+   * @return self link.
+   */
+  URI getLink();
+
+  /**
+   * Returns OData entity edit link.
+   * 
+   * @return entity edit link.
+   */
+  URI getEditLink();
+
+  /**
+   * Sets OData entity edit link.
+   * 
+   * @param editLink edit link.
+   */
+  void setEditLink(URI editLink);
+
+  /**
+   * Gets ETag.
+   * 
+   * @return ETag.
+   */
+  String getETag();
+
+  /**
+   * Sets ETag.
+   * 
+   * @param eTag ETag.
+   */
+  void setETag(String eTag);
+
+  /**
+   * Searches for operation with given title.
+   * 
+   * @param title operation to look for
+   * @return operation if found with given title, <tt>null</tt> otherwise
+   */
+  ClientOperation getOperation(String title);
+
+  /**
+   * Gets operations.
+   * 
+   * @return operations.
+   */
+  List<ClientOperation> getOperations();
+
+  /**
+   * Searches for property with given name.
+   * 
+   * @param name property to look for
+   * @return property if found with given name, <tt>null</tt> otherwise
+   */
+  ClientProperty getProperty(String name);
+
+  /**
+   * Returns OData entity properties.
+   *
+   * @return OData entity properties.
+   */
+  List<ClientProperty> getProperties();
+
+  /**
+   * To request entity references in place of the actual entities, the client issues a GET request with /$ref appended
+   * to the resource path.
+   * <br />
+   * If the resource path does not identify an entity or a collection of entities, the service returns 404 Not Found.
+   * <br />
+   * If the resource path terminates on a collection, the response MUST be the format-specific representation of a
+   * collection of entity references pointing to the related entities. If no entities are related, the response is the
+   * format-specific representation of an empty collection.
+   * <br />
+   * If the resource path terminates on a single entity, the response MUST be the format-specific representation of an
+   * entity reference pointing to the related single entity. If the resource path terminates on a single entity and no
+   * such entity exists, the service returns 404 Not Found.
+   *
+   * @return entity reference.
+   */
+  URI getId();
+
+  /**
+   * Set id for this OData entity.
+   *
+   * @param id the if for this entity
+   */
+  void setId(URI id);
+
+  /**
+   * Gets media-edit link with given name, if available, otherwise <tt>null</tt>.
+   * 
+   * @param name candidate link name
+   * @return media-edit link with given name, if available, otherwise <tt>null</tt>
+   */
+  ClientLink getMediaEditLink(final String name);
+
+  /**
+   * Returns entity media edit links.
+   * 
+   * @return OData entity links.
+   */
+  List<ClientLink> getMediaEditLinks();
+
+  /**
+   * TRUE if read-only entity.
+   * 
+   * @return TRUE if read-only; FALSE otherwise.
+   */
+  boolean isReadOnly();
+
+  /**
+   * Checks if the current entity is a media entity.
+   * 
+   * @return 'TRUE' if media entity; 'FALSE' otherwise.
+   */
+  boolean isMediaEntity();
+
+  /**
+   * Sets media entity flag.
+   * 
+   * @param isMediaEntity media entity flag value.
+   */
+  void setMediaEntity(boolean isMediaEntity);
+
+  /**
+   * Gets media content type.
+   * 
+   * @return media content type.
+   */
+  String getMediaContentType();
+
+  /**
+   * Sets media content type.
+   * 
+   * @param mediaContentType media content type.
+   */
+  void setMediaContentType(String mediaContentType);
+
+  /**
+   * Gets media content source.
+   * 
+   * @return media content source.
+   */
+  URI getMediaContentSource();
+
+  /**
+   * Sets media content source.
+   * 
+   * @param mediaContentSource media content source.
+   */
+  void setMediaContentSource(URI mediaContentSource);
+
+  /**
+   * ETag of the binary stream represented by this media entity or named stream property.
+   * 
+   * @return media ETag value
+   */
+  String getMediaETag();
+
+  /**
+   * Set media ETag.
+   * 
+   * @param eTag media ETag value
+   */
+  void setMediaETag(String eTag);
+
+}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/c37d4da5/lib/commons-api/src/main/java/org/apache/olingo/commons/api/domain/ClientEntitySet.java
----------------------------------------------------------------------
diff --git a/lib/commons-api/src/main/java/org/apache/olingo/commons/api/domain/ClientEntitySet.java b/lib/commons-api/src/main/java/org/apache/olingo/commons/api/domain/ClientEntitySet.java
new file mode 100644
index 0000000..36a8161
--- /dev/null
+++ b/lib/commons-api/src/main/java/org/apache/olingo/commons/api/domain/ClientEntitySet.java
@@ -0,0 +1,71 @@
+/*
+ * 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.commons.api.domain;
+
+import java.net.URI;
+import java.util.List;
+
+/**
+ * OData entity collection. If pagination was used to get this instance, forward page navigation URI will be available.
+ */
+public interface ClientEntitySet extends ClientInvokeResult, ClientAnnotatable {
+
+  /**
+   * Gets next page link.
+   * 
+   * @return next page link; null value if single page or last page reached.
+   */
+  URI getNext();
+
+  /**
+   * Gets contained entities.
+   * 
+   * @return entity set's entities.
+   */
+  List<ClientEntity> getEntities();
+
+  /**
+   * Gets in-line count.
+   *
+   * @return in-line count value.
+   */
+  Integer getCount();
+
+  /**
+   * Sets in-line count.
+   *
+   * @param count in-line count value.
+   */
+  void setCount(final int count);
+
+
+  /**
+   * Gets delta link if exists.
+   *
+   * @return delta link if exists; null otherwise.
+   */
+  URI getDeltaLink();
+
+  /**
+   * Sets delta link.
+   *
+   * @param deltaLink delta link.
+   */
+  void setDeltaLink(URI deltaLink);
+}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/c37d4da5/lib/commons-api/src/main/java/org/apache/olingo/commons/api/domain/ClientEnumValue.java
----------------------------------------------------------------------
diff --git a/lib/commons-api/src/main/java/org/apache/olingo/commons/api/domain/ClientEnumValue.java b/lib/commons-api/src/main/java/org/apache/olingo/commons/api/domain/ClientEnumValue.java
new file mode 100644
index 0000000..cc88a94
--- /dev/null
+++ b/lib/commons-api/src/main/java/org/apache/olingo/commons/api/domain/ClientEnumValue.java
@@ -0,0 +1,27 @@
+/*
+ * 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.commons.api.domain;
+
+public interface ClientEnumValue extends ClientValue {
+
+  String getValue();
+
+  @Override
+  String toString();
+}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/c37d4da5/lib/commons-api/src/main/java/org/apache/olingo/commons/api/domain/ClientError.java
----------------------------------------------------------------------
diff --git a/lib/commons-api/src/main/java/org/apache/olingo/commons/api/domain/ClientError.java b/lib/commons-api/src/main/java/org/apache/olingo/commons/api/domain/ClientError.java
new file mode 100644
index 0000000..11b6ca8
--- /dev/null
+++ b/lib/commons-api/src/main/java/org/apache/olingo/commons/api/domain/ClientError.java
@@ -0,0 +1,132 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ * 
+ * http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.olingo.commons.api.domain;
+
+import java.util.List;
+import java.util.Map;
+
+/**
+ * OData error.
+ */
+public class ClientError {
+
+  private String code;
+  private String message;
+  private String target;
+  private List<ClientErrorDetail> details;
+  private Map<String, String> innerError;
+
+  /**
+   * The value for the code name/value pair is a language-independent string. Its value is a service-defined error code.
+   * This code serves as a sub-status for the HTTP error code specified in the response. MAY be null.
+   * @return the error code as a string
+   */
+  public String getCode() {
+    return code;
+  }
+
+  /**
+   * The value for the code name/value pair is a language-independent string. Its value is a service-defined error code.
+   * This code serves as a sub-status for the HTTP error code specified in the response. MAY be null.
+   * @param code
+   * @return this for method chaining
+   */
+  public ClientError setCode(String code) {
+    this.code = code;
+    return this;
+  }
+
+  /**
+   * The value for the message name/value pair MUST be a human-readable, language-dependent representation of the error.
+   * MUST not be null
+   * @return the message string
+   */
+  public String getMessage() {
+    return message;
+  }
+
+  /**
+   * The value for the message name/value pair MUST be a human-readable, language-dependent representation of the error.
+   * MUST not be null
+   * @param message
+   * @return this for method chaining
+   */
+  public ClientError setMessage(String message) {
+    this.message = message;
+    return this;
+  }
+
+  /**
+   * The value for the target name/value pair is the target of the particular error (for example, the name of the
+   * property in error). MAY be null.
+   * @return the target string
+   */
+  public String getTarget() {
+    return target;
+  }
+
+  /**
+   * The value for the target name/value pair is the target of the particular error (for example, the name of the
+   * property in error). MAY be null.
+   * @param target
+   * @return this for method chaining
+   */
+  public ClientError setTarget(String target) {
+    this.target = target;
+    return this;
+  }
+
+  /**
+   * Gets error details.
+   * 
+   * @return ODataErrorDetail list.
+   */
+  public List<ClientErrorDetail> getDetails() {
+    return details;
+  }
+
+  /**
+   * Sets error details.
+   * 
+   * @return this for method chaining.
+   */
+  public ClientError setDetails(List<ClientErrorDetail> details) {
+    this.details = details;
+    return this;
+  }
+
+  /**
+   * Gets server defined key-value pairs for debug environment only.
+   * 
+   * @return a pair representing server defined object. MAY be null.
+   */
+  public Map<String, String> getInnerError() {
+    return innerError;
+  }
+
+  /**
+   * Sets server defined key-value pairs for debug environment only.
+   * 
+   * @return this for method chaining.
+   */
+  public ClientError setInnerError(Map<String, String> innerError) {
+    this.innerError = innerError;
+    return this;
+  }
+}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/c37d4da5/lib/commons-api/src/main/java/org/apache/olingo/commons/api/domain/ClientErrorDetail.java
----------------------------------------------------------------------
diff --git a/lib/commons-api/src/main/java/org/apache/olingo/commons/api/domain/ClientErrorDetail.java b/lib/commons-api/src/main/java/org/apache/olingo/commons/api/domain/ClientErrorDetail.java
new file mode 100644
index 0000000..77316ef
--- /dev/null
+++ b/lib/commons-api/src/main/java/org/apache/olingo/commons/api/domain/ClientErrorDetail.java
@@ -0,0 +1,73 @@
+/*
+ * 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.commons.api.domain;
+
+/**
+ * OData details, for example <tt>{ "error": {..., "details":[
+ * {"code": "301","target": "$search" ,"message": "$search query option not supported"}
+ * ],...}}</tt>.
+ */
+public class ClientErrorDetail {
+
+  private String code;
+  private String message;
+  private String target;
+
+  /**
+   * Gets error code.
+   * 
+   * @return error code.
+   */
+  public String getCode() {
+    return code;
+  }
+
+  public ClientErrorDetail setCode(final String code) {
+    this.code = code;
+    return this;
+  }
+
+  /**
+   * Gets error message.
+   * 
+   * @return error message.
+   */
+  public String getMessage() {
+    return message;
+  }
+
+  public ClientErrorDetail setMessage(final String message) {
+    this.message = message;
+    return this;
+  }
+
+  /**
+   * Gets error target.
+   * 
+   * @return error message.
+   */
+  public String getTarget() {
+    return target;
+  }
+
+  public ClientErrorDetail setTarget(final String target) {
+    this.target = target;
+    return this;
+  }
+}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/c37d4da5/lib/commons-api/src/main/java/org/apache/olingo/commons/api/domain/ClientInlineEntity.java
----------------------------------------------------------------------
diff --git a/lib/commons-api/src/main/java/org/apache/olingo/commons/api/domain/ClientInlineEntity.java b/lib/commons-api/src/main/java/org/apache/olingo/commons/api/domain/ClientInlineEntity.java
new file mode 100644
index 0000000..e3fb699
--- /dev/null
+++ b/lib/commons-api/src/main/java/org/apache/olingo/commons/api/domain/ClientInlineEntity.java
@@ -0,0 +1,68 @@
+/*
+ * 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.commons.api.domain;
+
+import java.net.URI;
+
+/**
+ * OData in-line entity.
+ */
+public class ClientInlineEntity extends ClientLink {
+
+  private final ClientEntity entity;
+
+  /**
+   * Constructor.
+   * 
+   * @param uri edit link.
+   * @param type type.
+   * @param title title.
+   * @param entity entity.
+   */
+  public ClientInlineEntity(final URI uri, final ClientLinkType type, final String title, final ClientEntity entity) {
+
+    super(uri, type, title);
+    this.entity = entity;
+  }
+
+  /**
+   * Constructor.
+   * 
+   * @param baseURI base URI.
+   * @param href href.
+   * @param type type.
+   * @param title title.
+   * @param entity entity.
+   */
+  public ClientInlineEntity(final URI baseURI, final String href, final ClientLinkType type, final String title,
+                            final ClientEntity entity) {
+
+    super(baseURI, href, type, title);
+    this.entity = entity;
+  }
+
+  /**
+   * Gets wrapped entity.
+   * 
+   * @return wrapped entity.
+   */
+  public ClientEntity getEntity() {
+    return entity;
+  }
+}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/c37d4da5/lib/commons-api/src/main/java/org/apache/olingo/commons/api/domain/ClientInlineEntitySet.java
----------------------------------------------------------------------
diff --git a/lib/commons-api/src/main/java/org/apache/olingo/commons/api/domain/ClientInlineEntitySet.java b/lib/commons-api/src/main/java/org/apache/olingo/commons/api/domain/ClientInlineEntitySet.java
new file mode 100644
index 0000000..a14933f
--- /dev/null
+++ b/lib/commons-api/src/main/java/org/apache/olingo/commons/api/domain/ClientInlineEntitySet.java
@@ -0,0 +1,69 @@
+/*
+ * 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.commons.api.domain;
+
+import java.net.URI;
+
+/**
+ * OData in-line entity set.
+ */
+public class ClientInlineEntitySet extends ClientLink {
+
+  private ClientEntitySet entitySet;
+
+  /**
+   * Constructor.
+   * 
+   * @param uri edit link.
+   * @param type type.
+   * @param title title.
+   * @param entitySet entity set.
+   */
+  public ClientInlineEntitySet(final URI uri, final ClientLinkType type,
+                               final String title, final ClientEntitySet entitySet) {
+
+    super(uri, type, title);
+    this.entitySet = entitySet;
+  }
+
+  /**
+   * Constructor.
+   * 
+   * @param baseURI base URI.
+   * @param href href.
+   * @param type type.
+   * @param title title.
+   * @param entitySet entity set.
+   */
+  public ClientInlineEntitySet(final URI baseURI, final String href,
+                               final ClientLinkType type, final String title, final ClientEntitySet entitySet) {
+
+    super(baseURI, href, type, title);
+    this.entitySet = entitySet;
+  }
+
+  /**
+   * Gets wrapped entity set.
+   * 
+   * @return wrapped entity set.
+   */
+  public ClientEntitySet getEntitySet() {
+    return entitySet;
+  }
+}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/c37d4da5/lib/commons-api/src/main/java/org/apache/olingo/commons/api/domain/ClientInvokeResult.java
----------------------------------------------------------------------
diff --git a/lib/commons-api/src/main/java/org/apache/olingo/commons/api/domain/ClientInvokeResult.java b/lib/commons-api/src/main/java/org/apache/olingo/commons/api/domain/ClientInvokeResult.java
new file mode 100644
index 0000000..a28c078
--- /dev/null
+++ b/lib/commons-api/src/main/java/org/apache/olingo/commons/api/domain/ClientInvokeResult.java
@@ -0,0 +1,30 @@
+/*
+ * 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.commons.api.domain;
+
+/**
+ * Marker interface for any OData domain object that can be returned by an operation invocation.
+ * 
+ * @see ClientEntitySet
+ * @see ClientEntity
+ * @see ClientProperty
+ */
+public interface ClientInvokeResult {
+//No additional methods needed for now.
+}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/c37d4da5/lib/commons-api/src/main/java/org/apache/olingo/commons/api/domain/ClientItem.java
----------------------------------------------------------------------
diff --git a/lib/commons-api/src/main/java/org/apache/olingo/commons/api/domain/ClientItem.java b/lib/commons-api/src/main/java/org/apache/olingo/commons/api/domain/ClientItem.java
new file mode 100644
index 0000000..1279aea
--- /dev/null
+++ b/lib/commons-api/src/main/java/org/apache/olingo/commons/api/domain/ClientItem.java
@@ -0,0 +1,96 @@
+/*
+ * 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.commons.api.domain;
+
+import java.net.URI;
+
+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.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+/**
+ * Abstract representation of OData entities and links.
+ */
+public abstract class ClientItem {
+
+  /**
+   * Logger.
+   */
+  protected static final Logger LOG = LoggerFactory.getLogger(ClientItem.class);
+
+  /**
+   * OData entity name/type.
+   */
+  private final String name;
+
+  /**
+   * OData item self link.
+   */
+  protected URI link;
+
+  /**
+   * Constructor.
+   * 
+   * @param name ODataItem name (it's entity type for {@link ClientEntity}).
+   */
+  public ClientItem(final String name) {
+    this.name = name;
+  }
+
+  /**
+   * @return ODataItem name (it's entity type for {@link ClientEntity}).
+   */
+  public String getName() {
+    return name;
+  }
+
+  /**
+   * @return ODataItem link (it's edit link for {@link ClientEntity}).
+   */
+  public URI getLink() {
+    return link;
+  }
+
+  /**
+   * Sets ODataItem link (it's edit link for {@link ClientEntity}).
+   * 
+   * @param link link.
+   */
+  public void setLink(final URI link) {
+    this.link = link;
+  }
+
+  @Override
+  public boolean equals(final Object obj) {
+    return EqualsBuilder.reflectionEquals(this, obj);
+  }
+
+  @Override
+  public int hashCode() {
+    return HashCodeBuilder.reflectionHashCode(this);
+  }
+
+  @Override
+  public String toString() {
+    return ReflectionToStringBuilder.toString(this, ToStringStyle.MULTI_LINE_STYLE);
+  }
+}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/c37d4da5/lib/commons-api/src/main/java/org/apache/olingo/commons/api/domain/ClientLink.java
----------------------------------------------------------------------
diff --git a/lib/commons-api/src/main/java/org/apache/olingo/commons/api/domain/ClientLink.java b/lib/commons-api/src/main/java/org/apache/olingo/commons/api/domain/ClientLink.java
new file mode 100644
index 0000000..d19c3c5
--- /dev/null
+++ b/lib/commons-api/src/main/java/org/apache/olingo/commons/api/domain/ClientLink.java
@@ -0,0 +1,187 @@
+/*
+ * 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.commons.api.domain;
+
+import java.net.URI;
+import java.util.ArrayList;
+import java.util.List;
+
+import org.apache.olingo.commons.api.Constants;
+
+/**
+ * OData link.
+ */
+public class ClientLink extends ClientItem implements ClientAnnotatable {
+
+  public static class Builder {
+
+    protected URI uri;
+
+    protected ClientLinkType type;
+
+    protected String title;
+
+    public Builder setURI(final URI uri) {
+      this.uri = uri;
+      return this;
+    }
+
+    public Builder setURI(final URI baseURI, final String href) {
+      uri = getURI(baseURI, href);
+      return this;
+    }
+
+    public Builder setType(final ClientLinkType type) {
+      this.type = type;
+      return this;
+    }
+
+    public Builder setTitle(final String title) {
+      this.title = title;
+      return this;
+    }
+
+    public ClientLink build() {
+      return new ClientLink(uri, type, title);
+    }
+  }
+
+  /**
+   * Build URI starting from the given base and href.
+   * <br/>
+   * If href is absolute or base is null then base will be ignored.
+   * 
+   * @param base URI prefix.
+   * @param href URI suffix.
+   * @return built URI.
+   */
+  private static URI getURI(final URI base, final String href) {
+    if (href == null) {
+      throw new IllegalArgumentException("Null link provided");
+    }
+
+    URI uri = URI.create(href);
+
+    if (!uri.isAbsolute() && base != null) {
+      uri = URI.create(base.toASCIIString() + "/" + href);
+    }
+
+    return uri.normalize();
+  }
+
+  /**
+   * Link type.
+   */
+  protected final ClientLinkType type;
+
+  /**
+   * Link rel.
+   */
+  protected final String rel;
+
+  /**
+   * ETag for media edit links.
+   */
+  protected String mediaETag;
+
+  private final List<ClientAnnotation> annotations = new ArrayList<ClientAnnotation>();
+
+  /**
+   * Constructor.
+   * 
+   * @param uri URI.
+   * @param type type.
+   * @param title title.
+   */
+  public ClientLink(final URI uri, final ClientLinkType type, final String title) {
+    super(title);
+
+    link = uri;
+    this.type = type;
+
+    switch (this.type) {
+    case ASSOCIATION:
+      rel = Constants.NS_ASSOCIATION_LINK_REL + title;
+      break;
+
+    case ENTITY_NAVIGATION:
+    case ENTITY_SET_NAVIGATION:
+      rel = Constants.NS_NAVIGATION_LINK_REL + title;
+      break;
+
+    case MEDIA_EDIT:
+    default:
+      rel = Constants.NS_MEDIA_EDIT_LINK_REL + title;
+      break;
+    }
+  }
+
+  /**
+   * Constructor.
+   * 
+   * @param version OData service version.
+   * @param baseURI base URI.
+   * @param href href.
+   * @param type type.
+   * @param title title.
+   */
+  protected ClientLink(final URI baseURI, final String href, final ClientLinkType type, final String title) {
+
+    this(getURI(baseURI, href), type, title);
+  }
+
+  /**
+   * Gets link type.
+   * 
+   * @return link type;
+   */
+  public ClientLinkType getType() {
+    return type;
+  }
+
+  public ClientInlineEntity asInlineEntity() {
+    return (this instanceof ClientInlineEntity) ? (ClientInlineEntity) this : null;
+  }
+
+  public ClientInlineEntitySet asInlineEntitySet() {
+    return (this instanceof ClientInlineEntitySet) ? (ClientInlineEntitySet) this : null;
+  }
+
+  /**
+   * Gets link rel.
+   * 
+   * @return link rel
+   */
+  public String getRel() {
+    return rel;
+  }
+
+  /**
+   * Gets Media ETag.
+   * 
+   * @return media ETag
+   */
+  public String getMediaETag() {
+    return mediaETag;
+  }
+
+  public List<ClientAnnotation> getAnnotations() {
+    return annotations;
+  }
+}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/c37d4da5/lib/commons-api/src/main/java/org/apache/olingo/commons/api/domain/ClientLinkType.java
----------------------------------------------------------------------
diff --git a/lib/commons-api/src/main/java/org/apache/olingo/commons/api/domain/ClientLinkType.java b/lib/commons-api/src/main/java/org/apache/olingo/commons/api/domain/ClientLinkType.java
new file mode 100644
index 0000000..8b13c33
--- /dev/null
+++ b/lib/commons-api/src/main/java/org/apache/olingo/commons/api/domain/ClientLinkType.java
@@ -0,0 +1,105 @@
+/*
+ * 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.commons.api.domain;
+
+import org.apache.commons.lang3.StringUtils;
+import org.apache.olingo.commons.api.Constants;
+import org.apache.olingo.commons.api.format.ContentType;
+
+/**
+ * OData link types.
+ */
+public enum ClientLinkType {
+
+  /**
+   * Entity navigation link.
+   */
+  ENTITY_NAVIGATION(ContentType.APPLICATION_ATOM_XML_ENTRY),
+  /**
+   * Entity set navigation link.
+   */
+  ENTITY_SET_NAVIGATION(ContentType.APPLICATION_ATOM_XML_FEED),
+  /**
+   * Association link.
+   */
+  ASSOCIATION(ContentType.APPLICATION_XML),
+  /**
+   * Media-edit link.
+   */
+  MEDIA_EDIT("*/*"),
+
+  /**
+   * Entity binding link.
+   */
+  ENTITY_BINDING(ContentType.APPLICATION_XML),
+
+  /**
+   * Entity collection binding link.
+   */
+  ENTITY_COLLECTION_BINDING(ContentType.APPLICATION_XML);
+
+  private String type;
+
+  private ClientLinkType(final String type) {
+    this.type = type;
+  }
+
+  private ClientLinkType(final ContentType contentType) {
+    this(contentType.toContentTypeString());
+  }
+
+  private ClientLinkType setType(final String type) {
+    this.type = type;
+    return this;
+  }
+
+  /**
+   * Gets
+   * <code>LinkType</code> instance from the given rel and type.
+   * 
+   * @param rel rel.
+   * @param type type.
+   * @return <code>ODataLinkType</code> object.
+   */
+  public static ClientLinkType fromString(final String rel, final String type) {
+    if (StringUtils.isNotBlank(rel) && rel.startsWith(Constants.NS_MEDIA_EDIT_LINK_REL)) {
+
+      return MEDIA_EDIT.setType(StringUtils.isBlank(type) ? "*/*" : type);
+    }
+
+    if (ClientLinkType.ENTITY_NAVIGATION.type.equals(type)) {
+      return ENTITY_NAVIGATION;
+    }
+
+    if (ClientLinkType.ENTITY_SET_NAVIGATION.type.equals(type)) {
+      return ENTITY_SET_NAVIGATION;
+    }
+
+    if (ClientLinkType.ASSOCIATION.type.equals(type)) {
+      return ASSOCIATION;
+    }
+
+    throw new IllegalArgumentException("Invalid link type: " + type);
+  }
+
+  @Override
+  public String toString() {
+    return type;
+  }
+}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/c37d4da5/lib/commons-api/src/main/java/org/apache/olingo/commons/api/domain/ClientLinked.java
----------------------------------------------------------------------
diff --git a/lib/commons-api/src/main/java/org/apache/olingo/commons/api/domain/ClientLinked.java b/lib/commons-api/src/main/java/org/apache/olingo/commons/api/domain/ClientLinked.java
new file mode 100644
index 0000000..92b3a42
--- /dev/null
+++ b/lib/commons-api/src/main/java/org/apache/olingo/commons/api/domain/ClientLinked.java
@@ -0,0 +1,70 @@
+/*
+ * 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.commons.api.domain;
+
+import java.util.List;
+
+public interface ClientLinked {
+
+  /**
+   * Puts the given link into one of available lists, based on its type.
+   * 
+   * @param link to be added
+   * @return <tt>true</tt> if the given link was added in one of available lists
+   */
+  boolean addLink(ClientLink link);
+
+  /**
+   * Removes the given link from any list (association, navigation, edit-media).
+   * 
+   * @param link to be removed
+   * @return <tt>true</tt> if the given link was contained in one of available lists
+   */
+  boolean removeLink(ClientLink link);
+
+  /**
+   * Gets association link with given name, if available, otherwise <tt>null</tt>.
+   * 
+   * @param name candidate link name
+   * @return association link with given name, if available, otherwise <tt>null</tt>
+   */
+  ClientLink getAssociationLink(String name);
+
+  /**
+   * Returns all entity association links.
+   * 
+   * @return OData entity links.
+   */
+  List<ClientLink> getAssociationLinks();
+
+  /**
+   * Gets navigation link with given name, if available, otherwise <tt>null</tt>.
+   * 
+   * @param name candidate link name
+   * @return navigation link with given name, if available, otherwise <tt>null</tt>
+   */
+  ClientLink getNavigationLink(String name);
+
+  /**
+   * Returns all entity navigation links (including inline entities / entity sets).
+   * 
+   * @return OData entity links.
+   */
+  List<ClientLink> getNavigationLinks();
+}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/c37d4da5/lib/commons-api/src/main/java/org/apache/olingo/commons/api/domain/ClientObjectFactory.java
----------------------------------------------------------------------
diff --git a/lib/commons-api/src/main/java/org/apache/olingo/commons/api/domain/ClientObjectFactory.java b/lib/commons-api/src/main/java/org/apache/olingo/commons/api/domain/ClientObjectFactory.java
new file mode 100644
index 0000000..d9a2e9f
--- /dev/null
+++ b/lib/commons-api/src/main/java/org/apache/olingo/commons/api/domain/ClientObjectFactory.java
@@ -0,0 +1,168 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ * 
+ * http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.olingo.commons.api.domain;
+
+import org.apache.olingo.commons.api.edm.FullQualifiedName;
+
+import java.net.URI;
+
+/**
+ * Entry point for generating OData domain objects.
+ */
+public interface ClientObjectFactory {
+
+  /**
+   * Instantiates a new entity set.
+   * 
+   * @return entity set.
+   */
+  ClientEntitySet newEntitySet();
+
+  /**
+   * Instantiates a new entity set.
+   * 
+   * @param next next link.
+   * @return entity set.
+   */
+  ClientEntitySet newEntitySet(URI next);
+
+  /**
+   * Instantiates a new entity.
+   * 
+   * @param typeName OData entity type name.
+   * @return entity.
+   */
+  ClientEntity newEntity(FullQualifiedName typeName);
+
+  /**
+   * Instantiates a new entity.
+   * 
+   * @param typeName OData entity type name.
+   * @param link self link.
+   * @return entity.
+   */
+  ClientEntity newEntity(FullQualifiedName typeName, URI link);
+
+  /**
+   * Instantiates a new entity set (for deep insert).
+   * 
+   * @param name name.
+   * @param entitySet entity set.
+   * @return in-line entity set.
+   */
+  ClientInlineEntitySet newDeepInsertEntitySet(String name, ClientEntitySet entitySet);
+
+  /**
+   * Instantiates a new entity (for deep insert).
+   * 
+   * @param name name.
+   * @param entity entity.
+   * @return in-line entity.
+   */
+  ClientInlineEntity newDeepInsertEntity(String name, ClientEntity entity);
+
+  /**
+   * Instantiates a new entity set navigation link.
+   * 
+   * @param name name.
+   * @param link link.
+   * @return entity set navigation link.
+   */
+  ClientLink newEntitySetNavigationLink(String name, URI link);
+
+  /**
+   * Instantiates a new singleton entity.
+   *
+   * @param typeName OData singleton entity type name.
+   * @return new singleton entity.
+   */
+  ClientSingleton newSingleton(FullQualifiedName typeName);
+
+  /**
+   * Instantiates a new entity navigation link.
+   *
+   * @param name name.
+   * @param link link.
+   * @return entity navigation link.
+   */
+  ClientLink newEntityNavigationLink(String name, URI link);
+
+  ClientLink newAssociationLink(String name, URI link);
+
+  ClientLink newMediaEditLink(String name, URI link);
+
+  ClientPrimitiveValue.Builder newPrimitiveValueBuilder();
+
+  ClientEnumValue newEnumValue(String typeName, String value);
+
+  ClientComplexValue newComplexValue(String typeName);
+
+  ClientCollectionValue<ClientValue> newCollectionValue(String typeName);
+
+  /**
+   * Instantiates a new primitive property.
+   * 
+   * @param name name.
+   * @param value primitive value.
+   * @return primitive property.
+   */
+  ClientProperty newPrimitiveProperty(String name, ClientPrimitiveValue value);
+
+  /**
+   * Instantiates a new complex property.
+   * 
+   * @param name name.
+   * @param value value.
+   * @return complex property.
+   */
+  ClientProperty newComplexProperty(String name, ClientComplexValue value);
+
+  /**
+   * Instantiates a new collection property.
+   * 
+   * @param name name.
+   * @param value value.
+   * @return collection property.
+   */
+  ClientProperty newCollectionProperty(String name, ClientCollectionValue<? extends ClientValue> value);
+
+  /**
+   * Instantiates a new enum property.
+   *
+   * @param name name.
+   * @param value value.
+   * @return new enum property.
+   */
+  ClientProperty newEnumProperty(String name, ClientEnumValue value);
+
+  /**
+   * Instantiates a new delta property.
+   *
+   * @return new delta property.
+   */
+  ClientDelta newDelta();
+
+  /**
+   * Instantiates a new delta property.
+   *
+   * @param next next link for delta property
+   * @return new delta property.
+   */
+  ClientDelta newDelta(URI next);
+}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/c37d4da5/lib/commons-api/src/main/java/org/apache/olingo/commons/api/domain/ClientOperation.java
----------------------------------------------------------------------
diff --git a/lib/commons-api/src/main/java/org/apache/olingo/commons/api/domain/ClientOperation.java b/lib/commons-api/src/main/java/org/apache/olingo/commons/api/domain/ClientOperation.java
new file mode 100644
index 0000000..e5c5845
--- /dev/null
+++ b/lib/commons-api/src/main/java/org/apache/olingo/commons/api/domain/ClientOperation.java
@@ -0,0 +1,85 @@
+/*
+ * 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.commons.api.domain;
+
+import java.net.URI;
+
+public class ClientOperation {
+
+  private String metadataAnchor;
+
+  private String title;
+
+  private URI target;
+
+  /**
+   * Gets metadata anchor.
+   * 
+   * @return metadata anchor.
+   */
+  public String getMetadataAnchor() {
+    return metadataAnchor;
+  }
+
+  /**
+   * Sets metadata anchor.
+   * 
+   * @param metadataAnchor metadata anchor.
+   */
+  public void setMetadataAnchor(final String metadataAnchor) {
+    this.metadataAnchor = metadataAnchor;
+  }
+
+  /**
+   * Gets title.
+   * 
+   * @return title.
+   */
+  public String getTitle() {
+    return title;
+  }
+
+  /**
+   * Sets title.
+   * 
+   * @param title title.
+   */
+  public void setTitle(final String title) {
+    this.title = title;
+  }
+
+  /**
+   * Gets target.
+   * 
+   * @return target.
+   */
+  public URI getTarget() {
+    return target;
+  }
+
+  /**
+   * Sets target.
+   * 
+   * @param target target.
+   */
+  public void setTarget(final URI target) {
+    this.target = target;
+  }
+
+}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/c37d4da5/lib/commons-api/src/main/java/org/apache/olingo/commons/api/domain/ClientPrimitiveValue.java
----------------------------------------------------------------------
diff --git a/lib/commons-api/src/main/java/org/apache/olingo/commons/api/domain/ClientPrimitiveValue.java b/lib/commons-api/src/main/java/org/apache/olingo/commons/api/domain/ClientPrimitiveValue.java
new file mode 100644
index 0000000..a3da64a
--- /dev/null
+++ b/lib/commons-api/src/main/java/org/apache/olingo/commons/api/domain/ClientPrimitiveValue.java
@@ -0,0 +1,88 @@
+/*
+ * 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.commons.api.domain;
+
+import org.apache.olingo.commons.api.edm.EdmPrimitiveType;
+import org.apache.olingo.commons.api.edm.EdmPrimitiveTypeException;
+import org.apache.olingo.commons.api.edm.EdmPrimitiveTypeKind;
+import org.apache.olingo.commons.api.edm.EdmType;
+
+import java.util.UUID;
+
+public interface ClientPrimitiveValue extends ClientValue {
+
+  interface Builder {
+
+    Builder setType(EdmType type);
+
+    Builder setType(EdmPrimitiveTypeKind type);
+
+    Builder setValue(Object value);
+
+    ClientPrimitiveValue build();
+
+    ClientPrimitiveValue buildBoolean(Boolean value);
+
+    ClientPrimitiveValue buildInt16(Short value);
+
+    ClientPrimitiveValue buildInt32(Integer value);
+
+    ClientPrimitiveValue buildInt64(Long value);
+
+    ClientPrimitiveValue buildSingle(Float value);
+
+    ClientPrimitiveValue buildDouble(Double value);
+
+    ClientPrimitiveValue buildString(String value);
+
+    ClientPrimitiveValue buildGuid(UUID value);
+
+    ClientPrimitiveValue buildBinary(byte[] value);
+  }
+
+  EdmPrimitiveTypeKind getTypeKind();
+
+  EdmPrimitiveType getType();
+
+  /**
+   * Returns the current value as generic Object.
+   * 
+   * @return an uncasted instance of this value
+   */
+  Object toValue();
+
+  /**
+   * Returns the current value casted to the given type.
+   * 
+   * @param <T> cast type
+   * @param reference class reference
+   * @return the current value as typed java instance
+   * @throws EdmPrimitiveTypeException if the object is not assignable to the type T.
+   */
+  <T> T toCastValue(Class<T> reference) throws EdmPrimitiveTypeException;
+
+  /**
+   * Serialize the current value as String.
+   * 
+   * @return a String representation of this value
+   */
+  @Override
+  String toString();
+
+}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/c37d4da5/lib/commons-api/src/main/java/org/apache/olingo/commons/api/domain/ClientProperty.java
----------------------------------------------------------------------
diff --git a/lib/commons-api/src/main/java/org/apache/olingo/commons/api/domain/ClientProperty.java b/lib/commons-api/src/main/java/org/apache/olingo/commons/api/domain/ClientProperty.java
new file mode 100644
index 0000000..8d7a490
--- /dev/null
+++ b/lib/commons-api/src/main/java/org/apache/olingo/commons/api/domain/ClientProperty.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.commons.api.domain;
+
+/**
+ * OData entity property.
+ */
+public interface ClientProperty extends ClientInvokeResult, ClientAnnotatable, ClientValuable {
+
+  /**
+   * Returns property name.
+   *
+   * @return property name.
+   */
+  String getName();
+}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/c37d4da5/lib/commons-api/src/main/java/org/apache/olingo/commons/api/domain/ClientPropertyType.java
----------------------------------------------------------------------
diff --git a/lib/commons-api/src/main/java/org/apache/olingo/commons/api/domain/ClientPropertyType.java b/lib/commons-api/src/main/java/org/apache/olingo/commons/api/domain/ClientPropertyType.java
new file mode 100644
index 0000000..96ab250
--- /dev/null
+++ b/lib/commons-api/src/main/java/org/apache/olingo/commons/api/domain/ClientPropertyType.java
@@ -0,0 +1,44 @@
+/*
+ * 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.commons.api.domain;
+
+public enum ClientPropertyType {
+
+  /**
+   * Primitive (including geospatial).
+   */
+  PRIMITIVE,
+  /**
+   * Enum.
+   */
+  ENUM,
+  /**
+   * Collection.
+   */
+  COLLECTION,
+  /**
+   * Complex.
+   */
+  COMPLEX,
+  /**
+   * Empty type (possibly, no type information could be retrieved).
+   */
+  EMPTY
+
+}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/c37d4da5/lib/commons-api/src/main/java/org/apache/olingo/commons/api/domain/ClientServiceDocument.java
----------------------------------------------------------------------
diff --git a/lib/commons-api/src/main/java/org/apache/olingo/commons/api/domain/ClientServiceDocument.java b/lib/commons-api/src/main/java/org/apache/olingo/commons/api/domain/ClientServiceDocument.java
new file mode 100644
index 0000000..a2af9ab
--- /dev/null
+++ b/lib/commons-api/src/main/java/org/apache/olingo/commons/api/domain/ClientServiceDocument.java
@@ -0,0 +1,163 @@
+/*
+ * 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.commons.api.domain;
+
+import java.net.URI;
+import java.util.Collection;
+import java.util.HashMap;
+import java.util.Map;
+
+public class ClientServiceDocument {
+
+  private final Map<String, URI> entitySets = new HashMap<String, URI>();
+
+  private final Map<String, URI> functionImports = new HashMap<String, URI>();
+
+  private final Map<String, URI> singletons = new HashMap<String, URI>();
+
+  private final Map<String, URI> relatedServiceDocuments = new HashMap<String, URI>();
+
+  public Map<String, URI> getEntitySets() {
+    return entitySets;
+  }
+
+  /**
+   * Gets entity set names.
+   * 
+   * @return entity set names.
+   */
+  public Collection<String> getEntitySetNames() {
+    return entitySets.keySet();
+  }
+
+  /**
+   * Gets entity set URIs.
+   * 
+   * @return entity set URIs.
+   */
+  public Collection<URI> getEntitySetURIs() {
+    return entitySets.values();
+  }
+
+  /**
+   * Gets URI about the given entity set.
+   * 
+   * @param name name.
+   * @return URI.
+   */
+  public URI getEntitySetURI(final String name) {
+    return entitySets.get(name);
+  }
+
+  public Map<String, URI> getFunctionImports() {
+    return functionImports;
+  }
+
+  /**
+   * Gets function import names.
+   * 
+   * @return function import names.
+   */
+  public Collection<String> getFunctionImportNames() {
+    return functionImports.keySet();
+  }
+
+  /**
+   * Gets function import URIs.
+   * 
+   * @return function import URIs.
+   */
+  public Collection<URI> getFunctionImportURIs() {
+    return functionImports.values();
+  }
+
+  /**
+   * Gets URI of the given function import.
+   * 
+   * @param name name.
+   * @return URI.
+   */
+  public URI getFunctionImportURI(final String name) {
+    return functionImports.get(name);
+  }
+
+  public Map<String, URI> getSingletons() {
+    return singletons;
+  }
+
+  /**
+   * Gets singleton names.
+   * 
+   * @return singleton names.
+   */
+  public Collection<String> getSingletonNames() {
+    return singletons.keySet();
+  }
+
+  /**
+   * Gets singleton URIs.
+   * 
+   * @return singleton URIs.
+   */
+  public Collection<URI> getSingletonURIs() {
+    return singletons.values();
+  }
+
+  /**
+   * Gets URI of the given singleton.
+   * 
+   * @param name name.
+   * @return URI.
+   */
+  public URI getSingletonURI(final String name) {
+    return singletons.get(name);
+  }
+
+  public Map<String, URI> getRelatedServiceDocuments() {
+    return relatedServiceDocuments;
+  }
+
+  /**
+   * Gets related service documents names.
+   * 
+   * @return related service documents names.
+   */
+  public Collection<String> getRelatedServiceDocumentsNames() {
+    return relatedServiceDocuments.keySet();
+  }
+
+  /**
+   * Gets related service documents URIs.
+   * 
+   * @return related service documents URIs.
+   */
+  public Collection<URI> getRelatedServiceDocumentsURIs() {
+    return relatedServiceDocuments.values();
+  }
+
+  /**
+   * Gets URI of the given related service documents.
+   * 
+   * @param name name.
+   * @return URI.
+   */
+  public URI getRelatedServiceDocumentURI(final String name) {
+    return relatedServiceDocuments.get(name);
+  }
+}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/c37d4da5/lib/commons-api/src/main/java/org/apache/olingo/commons/api/domain/ClientSingleton.java
----------------------------------------------------------------------
diff --git a/lib/commons-api/src/main/java/org/apache/olingo/commons/api/domain/ClientSingleton.java b/lib/commons-api/src/main/java/org/apache/olingo/commons/api/domain/ClientSingleton.java
new file mode 100644
index 0000000..aa474b7
--- /dev/null
+++ b/lib/commons-api/src/main/java/org/apache/olingo/commons/api/domain/ClientSingleton.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.commons.api.domain;
+
+public interface ClientSingleton extends ClientEntity {
+//No additional methods needed for now.
+}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/c37d4da5/lib/commons-api/src/main/java/org/apache/olingo/commons/api/domain/ClientValuable.java
----------------------------------------------------------------------
diff --git a/lib/commons-api/src/main/java/org/apache/olingo/commons/api/domain/ClientValuable.java b/lib/commons-api/src/main/java/org/apache/olingo/commons/api/domain/ClientValuable.java
new file mode 100644
index 0000000..636972a
--- /dev/null
+++ b/lib/commons-api/src/main/java/org/apache/olingo/commons/api/domain/ClientValuable.java
@@ -0,0 +1,94 @@
+/*
+ * 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.commons.api.domain;
+
+
+public interface ClientValuable {
+
+  /**
+   * Returns annotation value.
+   * 
+   * @return annotation value.
+   */
+  ClientValue getValue();
+
+  /**
+   * Checks if has null value.
+   * 
+   * @return 'TRUE' if has null value; 'FALSE' otherwise.
+   */
+  boolean hasNullValue();
+
+  /**
+   * Checks if has primitive value.
+   * 
+   * @return 'TRUE' if has primitive value; 'FALSE' otherwise.
+   */
+  boolean hasPrimitiveValue();
+
+  /**
+   * Gets primitive value.
+   * 
+   * @return primitive value if exists; null otherwise.
+   */
+  ClientPrimitiveValue getPrimitiveValue();
+
+  /**
+   * Checks if has collection value.
+   * 
+   * @return 'TRUE' if has collection value; 'FALSE' otherwise.
+   */
+  boolean hasCollectionValue();
+
+  /**
+   * Gets collection value.
+   * 
+   * @return collection value if exists; null otherwise.
+   */
+  ClientCollectionValue<ClientValue> getCollectionValue();
+
+  /**
+   * Checks if has complex value.
+   * 
+   * @return 'TRUE' if has complex value; 'FALSE' otherwise.
+   */
+  boolean hasComplexValue();
+
+  /**
+   * Gets complex value.
+   * 
+   * @return complex value if exists; null otherwise.
+   */
+  ClientComplexValue getComplexValue();
+
+  /**
+   * Checks if has enum value.
+   * 
+   * @return 'TRUE' if has enum value; 'FALSE' otherwise.
+   */
+  boolean hasEnumValue();
+
+  /**
+   * Gets enum value.
+   * 
+   * @return enum value if exists; null otherwise.
+   */
+  ClientEnumValue getEnumValue();
+
+}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/c37d4da5/lib/commons-api/src/main/java/org/apache/olingo/commons/api/domain/ClientValue.java
----------------------------------------------------------------------
diff --git a/lib/commons-api/src/main/java/org/apache/olingo/commons/api/domain/ClientValue.java b/lib/commons-api/src/main/java/org/apache/olingo/commons/api/domain/ClientValue.java
new file mode 100644
index 0000000..ba41bc0
--- /dev/null
+++ b/lib/commons-api/src/main/java/org/apache/olingo/commons/api/domain/ClientValue.java
@@ -0,0 +1,91 @@
+/*
+ * 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.commons.api.domain;
+
+
+/**
+ * Abstract representation of an OData entity property value.
+ */
+public interface ClientValue {
+
+  /**
+   * Gets value type name.
+   * 
+   * @return value type name.
+   */
+  String getTypeName();
+
+  /**
+   * Check is is a primitive value.
+   * 
+   * @return 'TRUE' if primitive; 'FALSE' otherwise.
+   */
+  boolean isPrimitive();
+
+  /**
+   * Casts to primitive value.
+   * 
+   * @return primitive value.
+   */
+  ClientPrimitiveValue asPrimitive();
+
+  /**
+   * Check is is a collection value.
+   * 
+   * @return 'TRUE' if collection; 'FALSE' otherwise.
+   */
+  boolean isCollection();
+
+  /**
+   * Casts to collection value.
+   * 
+   * @param <OV> The actual ODataValue interface.
+   * @return collection value.
+   */
+  <OV extends ClientValue> ClientCollectionValue<OV> asCollection();
+
+  /**
+   * Casts to complex value.
+   * 
+   * @return complex value.
+   */
+  ClientComplexValue asComplex();
+
+  /**
+   * Check is is a linked complex value.
+   * 
+   * @return 'TRUE' if linked complex; 'FALSE' otherwise.
+   */
+  boolean isComplex();
+
+  /**
+   * Check is is an enum value.
+   * 
+   * @return 'TRUE' if enum; 'FALSE' otherwise.
+   */
+  boolean isEnum();
+
+  /**
+   * Casts to enum value.
+   * 
+   * @return enum value.
+   */
+  ClientEnumValue asEnum();
+  
+}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/c37d4da5/lib/commons-api/src/main/java/org/apache/olingo/commons/api/domain/ODataAnnotatable.java
----------------------------------------------------------------------
diff --git a/lib/commons-api/src/main/java/org/apache/olingo/commons/api/domain/ODataAnnotatable.java b/lib/commons-api/src/main/java/org/apache/olingo/commons/api/domain/ODataAnnotatable.java
deleted file mode 100644
index fe10fba..0000000
--- a/lib/commons-api/src/main/java/org/apache/olingo/commons/api/domain/ODataAnnotatable.java
+++ /dev/null
@@ -1,26 +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.commons.api.domain;
-
-import java.util.List;
-
-public interface ODataAnnotatable {
-
-  List<ODataAnnotation> getAnnotations();
-}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/c37d4da5/lib/commons-api/src/main/java/org/apache/olingo/commons/api/domain/ODataAnnotation.java
----------------------------------------------------------------------
diff --git a/lib/commons-api/src/main/java/org/apache/olingo/commons/api/domain/ODataAnnotation.java b/lib/commons-api/src/main/java/org/apache/olingo/commons/api/domain/ODataAnnotation.java
deleted file mode 100644
index ec00417..0000000
--- a/lib/commons-api/src/main/java/org/apache/olingo/commons/api/domain/ODataAnnotation.java
+++ /dev/null
@@ -1,30 +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.commons.api.domain;
-
-public interface ODataAnnotation extends ODataValuable {
-
-  /**
-   * Returns annotation name.
-   * 
-   * @return annotation name.
-   */
-  String getTerm();
-
-}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/c37d4da5/lib/commons-api/src/main/java/org/apache/olingo/commons/api/domain/ODataCollectionValue.java
----------------------------------------------------------------------
diff --git a/lib/commons-api/src/main/java/org/apache/olingo/commons/api/domain/ODataCollectionValue.java b/lib/commons-api/src/main/java/org/apache/olingo/commons/api/domain/ODataCollectionValue.java
deleted file mode 100644
index 2444f2a..0000000
--- a/lib/commons-api/src/main/java/org/apache/olingo/commons/api/domain/ODataCollectionValue.java
+++ /dev/null
@@ -1,57 +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.commons.api.domain;
-
-import java.util.Collection;
-
-/**
- * OData collection property value.
- * 
- * @param <OV> The actual ODataValue interface.
- */
-public interface ODataCollectionValue<OV extends ODataValue> extends ODataValue, Iterable<OV> {
-
-  /**
-   * Adds a value to the collection.
-   * 
-   * @param value value to be added.
-   */
-  ODataCollectionValue<OV> add(ODataValue value);
-
-  /**
-   * Checks if collection is empty.
-   * 
-   * @return 'TRUE' if empty; 'FALSE' otherwise.
-   */
-  boolean isEmpty();
-
-  /**
-   * Gets collection size.
-   * 
-   * @return collection size.
-   */
-  int size();
-
-  /**
-   * Converts this instance as POJO collection.
-   * 
-   * @return this instance as POJO collection
-   */
-  Collection<Object> asJavaCollection();
-}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/c37d4da5/lib/commons-api/src/main/java/org/apache/olingo/commons/api/domain/ODataComplexValue.java
----------------------------------------------------------------------
diff --git a/lib/commons-api/src/main/java/org/apache/olingo/commons/api/domain/ODataComplexValue.java b/lib/commons-api/src/main/java/org/apache/olingo/commons/api/domain/ODataComplexValue.java
deleted file mode 100644
index ad64559..0000000
--- a/lib/commons-api/src/main/java/org/apache/olingo/commons/api/domain/ODataComplexValue.java
+++ /dev/null
@@ -1,58 +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.commons.api.domain;
-
-import java.util.Map;
-
-/**
- * OData complex property value.
- * 
- */
-public interface ODataComplexValue extends ODataValue, ODataLinked, ODataAnnotatable, Iterable<ODataProperty> {
-
-  /**
-   * Adds field to the complex type.
-   * 
-   * @param field field to be added.
-   * @return this (for fluent-style calls)
-   */
-  ODataComplexValue add(ODataProperty field);
-
-  /**
-   * Gets field.
-   * 
-   * @param name name of the field to be retrieved.
-   * @return requested field.
-   */
-  ODataProperty get(String name);
-
-  /**
-   * Gets number of fields.
-   * 
-   * @return number of fields.
-   */
-  int size();
-
-  /**
-   * Converts this instance as POJO collection.
-   * 
-   * @return this instance as POJO collection
-   */
-  Map<String, Object> asJavaMap();
-}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/c37d4da5/lib/commons-api/src/main/java/org/apache/olingo/commons/api/domain/ODataDeletedEntity.java
----------------------------------------------------------------------
diff --git a/lib/commons-api/src/main/java/org/apache/olingo/commons/api/domain/ODataDeletedEntity.java b/lib/commons-api/src/main/java/org/apache/olingo/commons/api/domain/ODataDeletedEntity.java
deleted file mode 100644
index ba7401e..0000000
--- a/lib/commons-api/src/main/java/org/apache/olingo/commons/api/domain/ODataDeletedEntity.java
+++ /dev/null
@@ -1,36 +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.commons.api.domain;
-
-import java.net.URI;
-
-public interface ODataDeletedEntity {
-
-  enum Reason {
-
-    deleted,
-    changed
-
-  }
-
-  URI getId();
-
-  Reason getReason();
-
-}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/c37d4da5/lib/commons-api/src/main/java/org/apache/olingo/commons/api/domain/ODataDelta.java
----------------------------------------------------------------------
diff --git a/lib/commons-api/src/main/java/org/apache/olingo/commons/api/domain/ODataDelta.java b/lib/commons-api/src/main/java/org/apache/olingo/commons/api/domain/ODataDelta.java
deleted file mode 100644
index 5492750..0000000
--- a/lib/commons-api/src/main/java/org/apache/olingo/commons/api/domain/ODataDelta.java
+++ /dev/null
@@ -1,31 +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.commons.api.domain;
-
-import java.util.List;
-
-public interface ODataDelta extends ODataEntitySet {
-
-  List<ODataDeletedEntity> getDeletedEntities();
-
-  List<ODataDeltaLink> getAddedLinks();
-
-  List<ODataDeltaLink> getDeletedLinks();
-
-}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/c37d4da5/lib/commons-api/src/main/java/org/apache/olingo/commons/api/domain/ODataDeltaLink.java
----------------------------------------------------------------------
diff --git a/lib/commons-api/src/main/java/org/apache/olingo/commons/api/domain/ODataDeltaLink.java b/lib/commons-api/src/main/java/org/apache/olingo/commons/api/domain/ODataDeltaLink.java
deleted file mode 100644
index 757def9..0000000
--- a/lib/commons-api/src/main/java/org/apache/olingo/commons/api/domain/ODataDeltaLink.java
+++ /dev/null
@@ -1,36 +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.commons.api.domain;
-
-import java.net.URI;
-
-public interface ODataDeltaLink extends ODataAnnotatable {
-
-  URI getSource();
-
-  void setSource(URI source);
-
-  String getRelationship();
-
-  void setRelationship(String relationship);
-
-  URI getTarget();
-
-  void setTarget(URI target);
-}


[25/50] [abbrv] olingo-odata4 git commit: [OLINGO-564] Renamed 'ClientCsdl' classes

Posted by mi...@apache.org.
[OLINGO-564] Renamed 'ClientCsdl' classes


Project: http://git-wip-us.apache.org/repos/asf/olingo-odata4/repo
Commit: http://git-wip-us.apache.org/repos/asf/olingo-odata4/commit/53b10f6b
Tree: http://git-wip-us.apache.org/repos/asf/olingo-odata4/tree/53b10f6b
Diff: http://git-wip-us.apache.org/repos/asf/olingo-odata4/diff/53b10f6b

Branch: refs/heads/master
Commit: 53b10f6b7f700f2c9147148669965ec732ad3d28
Parents: 3c09909
Author: Michael Bolz <mi...@sap.com>
Authored: Tue Apr 28 22:14:13 2015 +0200
Committer: Michael Bolz <mi...@sap.com>
Committed: Tue Apr 28 22:14:13 2015 +0200

----------------------------------------------------------------------
 .../olingo/ext/proxy/AbstractService.java       |   4 +-
 .../client/core/edm/ClientCsdlEdmProvider.java  | 212 +++++++++++
 .../client/core/edm/ClientCsdlXMLMetadata.java  |  75 ++++
 .../client/core/edm/ClientEdmProvider.java      | 212 -----------
 .../client/core/edm/ClientXMLMetadata.java      |  75 ----
 ...tAnnotatableDynamicAnnotationExpression.java |  38 --
 .../xml/AbstractClientAnnotationExpression.java |  49 ---
 ...lAnnotatableDynamicAnnotationExpression.java |  38 ++
 .../AbstractClientCsdlAnnotationExpression.java |  49 +++
 ...ctClientCsdlDynamicAnnotationExpression.java | 356 +++++++++++++++++++
 .../xml/AbstractClientCsdlEdmDeserializer.java  |  60 ++++
 ...tClientCsdlElementOrAttributeExpression.java |  37 ++
 ...stractClientDynamicAnnotationExpression.java | 356 -------------------
 .../edm/xml/AbstractClientEdmDeserializer.java  |  60 ----
 ...tractClientElementOrAttributeExpression.java |  37 --
 .../client/core/edm/xml/ClientAction.java       |  68 ----
 .../client/core/edm/xml/ClientActionImport.java |  58 ---
 .../client/core/edm/xml/ClientAnnotation.java   |  66 ----
 .../core/edm/xml/ClientAnnotationPath.java      |  27 --
 .../client/core/edm/xml/ClientAnnotations.java  |  62 ----
 .../olingo/client/core/edm/xml/ClientApply.java |  80 -----
 .../olingo/client/core/edm/xml/ClientCast.java  | 137 -------
 .../client/core/edm/xml/ClientCollection.java   |  64 ----
 .../client/core/edm/xml/ClientComplexType.java  |  72 ----
 .../xml/ClientConstantAnnotationExpression.java |  52 ---
 .../client/core/edm/xml/ClientCsdlAction.java   |  68 ++++
 .../core/edm/xml/ClientCsdlActionImport.java    |  58 +++
 .../core/edm/xml/ClientCsdlAnnotation.java      |  66 ++++
 .../core/edm/xml/ClientCsdlAnnotationPath.java  |  27 ++
 .../core/edm/xml/ClientCsdlAnnotations.java     |  62 ++++
 .../client/core/edm/xml/ClientCsdlApply.java    |  80 +++++
 .../client/core/edm/xml/ClientCsdlCast.java     | 137 +++++++
 .../core/edm/xml/ClientCsdlCollection.java      |  64 ++++
 .../core/edm/xml/ClientCsdlComplexType.java     |  72 ++++
 .../ClientCsdlConstantAnnotationExpression.java |  52 +++
 .../core/edm/xml/ClientCsdlDataServices.java    |  93 +++++
 .../client/core/edm/xml/ClientCsdlEdmx.java     |  95 +++++
 .../core/edm/xml/ClientCsdlEntityContainer.java |  72 ++++
 .../core/edm/xml/ClientCsdlEntityKey.java       |  63 ++++
 .../core/edm/xml/ClientCsdlEntitySet.java       |  65 ++++
 .../core/edm/xml/ClientCsdlEntityType.java      |  76 ++++
 .../core/edm/xml/ClientCsdlEnumMember.java      |  57 +++
 .../client/core/edm/xml/ClientCsdlEnumType.java |  65 ++++
 .../client/core/edm/xml/ClientCsdlFunction.java |  69 ++++
 .../core/edm/xml/ClientCsdlFunctionImport.java  |  64 ++++
 .../client/core/edm/xml/ClientCsdlIf.java       |  61 ++++
 .../client/core/edm/xml/ClientCsdlInclude.java  |  76 ++++
 .../edm/xml/ClientCsdlIncludeAnnotations.java   |  88 +++++
 .../client/core/edm/xml/ClientCsdlIsOf.java     | 136 +++++++
 .../core/edm/xml/ClientCsdlLabeledElement.java  |  79 ++++
 .../xml/ClientCsdlLabeledElementReference.java  |  28 ++
 .../edm/xml/ClientCsdlNavigationProperty.java   |  80 +++++
 .../ClientCsdlNavigationPropertyBinding.java    |  67 ++++
 .../xml/ClientCsdlNavigationPropertyPath.java   |  28 ++
 .../client/core/edm/xml/ClientCsdlNot.java      |  39 ++
 .../client/core/edm/xml/ClientCsdlNull.java     |  51 +++
 .../client/core/edm/xml/ClientCsdlOnDelete.java |  54 +++
 .../core/edm/xml/ClientCsdlParameter.java       |  84 +++++
 .../client/core/edm/xml/ClientCsdlPath.java     |  27 ++
 .../client/core/edm/xml/ClientCsdlProperty.java |  88 +++++
 .../core/edm/xml/ClientCsdlPropertyPath.java    |  27 ++
 .../core/edm/xml/ClientCsdlPropertyRef.java     |  54 +++
 .../core/edm/xml/ClientCsdlPropertyValue.java   |  81 +++++
 .../client/core/edm/xml/ClientCsdlRecord.java   |  76 ++++
 .../core/edm/xml/ClientCsdlReference.java       |  98 +++++
 .../xml/ClientCsdlReferentialConstraint.java    |  54 +++
 .../core/edm/xml/ClientCsdlReturnType.java      |  78 ++++
 .../client/core/edm/xml/ClientCsdlSchema.java   |  86 +++++
 .../core/edm/xml/ClientCsdlSingleton.java       |  62 ++++
 .../client/core/edm/xml/ClientCsdlTerm.java     |  83 +++++
 ...lTwoParamsOpDynamicAnnotationExpression.java |  62 ++++
 .../core/edm/xml/ClientCsdlTypeDefinition.java  |  74 ++++
 .../client/core/edm/xml/ClientCsdlUrlRef.java   |  65 ++++
 .../client/core/edm/xml/ClientDataServices.java |  93 -----
 .../olingo/client/core/edm/xml/ClientEdmx.java  |  95 -----
 .../core/edm/xml/ClientEntityContainer.java     |  72 ----
 .../client/core/edm/xml/ClientEntityKey.java    |  63 ----
 .../client/core/edm/xml/ClientEntitySet.java    |  65 ----
 .../client/core/edm/xml/ClientEntityType.java   |  76 ----
 .../client/core/edm/xml/ClientEnumMember.java   |  57 ---
 .../client/core/edm/xml/ClientEnumType.java     |  65 ----
 .../client/core/edm/xml/ClientFunction.java     |  69 ----
 .../core/edm/xml/ClientFunctionImport.java      |  64 ----
 .../olingo/client/core/edm/xml/ClientIf.java    |  61 ----
 .../client/core/edm/xml/ClientInclude.java      |  76 ----
 .../core/edm/xml/ClientIncludeAnnotations.java  |  88 -----
 .../olingo/client/core/edm/xml/ClientIsOf.java  | 136 -------
 .../core/edm/xml/ClientLabeledElement.java      |  79 ----
 .../edm/xml/ClientLabeledElementReference.java  |  28 --
 .../core/edm/xml/ClientNavigationProperty.java  |  80 -----
 .../xml/ClientNavigationPropertyBinding.java    |  67 ----
 .../edm/xml/ClientNavigationPropertyPath.java   |  28 --
 .../olingo/client/core/edm/xml/ClientNot.java   |  39 --
 .../olingo/client/core/edm/xml/ClientNull.java  |  51 ---
 .../client/core/edm/xml/ClientOnDelete.java     |  54 ---
 .../client/core/edm/xml/ClientParameter.java    |  84 -----
 .../olingo/client/core/edm/xml/ClientPath.java  |  27 --
 .../client/core/edm/xml/ClientProperty.java     |  88 -----
 .../client/core/edm/xml/ClientPropertyPath.java |  27 --
 .../client/core/edm/xml/ClientPropertyRef.java  |  54 ---
 .../core/edm/xml/ClientPropertyValue.java       |  80 -----
 .../client/core/edm/xml/ClientRecord.java       |  76 ----
 .../client/core/edm/xml/ClientReference.java    |  98 -----
 .../edm/xml/ClientReferentialConstraint.java    |  54 ---
 .../client/core/edm/xml/ClientReturnType.java   |  78 ----
 .../client/core/edm/xml/ClientSchema.java       |  86 -----
 .../client/core/edm/xml/ClientSingleton.java    |  62 ----
 .../olingo/client/core/edm/xml/ClientTerm.java  |  83 -----
 ...tTwoParamsOpDynamicAnnotationExpression.java |  62 ----
 .../core/edm/xml/ClientTypeDefinition.java      |  74 ----
 .../client/core/edm/xml/ClientUrlRef.java       |  65 ----
 .../ClientODataDeserializerImpl.java            |   6 +-
 .../core/serialization/ODataReaderImpl.java     |   4 +-
 113 files changed, 4125 insertions(+), 4124 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/53b10f6b/ext/client-proxy/src/main/java/org/apache/olingo/ext/proxy/AbstractService.java
----------------------------------------------------------------------
diff --git a/ext/client-proxy/src/main/java/org/apache/olingo/ext/proxy/AbstractService.java b/ext/client-proxy/src/main/java/org/apache/olingo/ext/proxy/AbstractService.java
index 8770286..f8506c2 100644
--- a/ext/client-proxy/src/main/java/org/apache/olingo/ext/proxy/AbstractService.java
+++ b/ext/client-proxy/src/main/java/org/apache/olingo/ext/proxy/AbstractService.java
@@ -30,7 +30,7 @@ import org.apache.commons.io.IOUtils;
 import org.apache.olingo.client.api.EdmEnabledODataClient;
 import org.apache.olingo.client.api.edm.xml.XMLMetadata;
 import org.apache.olingo.client.core.ODataClientFactory;
-import org.apache.olingo.client.core.edm.ClientEdmProvider;
+import org.apache.olingo.client.core.edm.ClientCsdlEdmProvider;
 import org.apache.olingo.commons.api.ODataRuntimeException;
 import org.apache.olingo.commons.api.edm.Edm;
 import org.apache.olingo.commons.api.edm.constants.ODataServiceVersion;
@@ -86,7 +86,7 @@ public abstract class AbstractService<C extends EdmEnabledODataClient> {
     }
     final Edm edm;
     if (metadata != null) {
-      ClientEdmProvider provider = new ClientEdmProvider(metadata.getSchemaByNsOrAlias());
+      ClientCsdlEdmProvider provider = new ClientCsdlEdmProvider(metadata.getSchemaByNsOrAlias());
       edm = new EdmProviderImpl(provider);
     }else{
       edm = null;

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/53b10f6b/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/ClientCsdlEdmProvider.java
----------------------------------------------------------------------
diff --git a/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/ClientCsdlEdmProvider.java b/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/ClientCsdlEdmProvider.java
new file mode 100644
index 0000000..28536ba
--- /dev/null
+++ b/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/ClientCsdlEdmProvider.java
@@ -0,0 +1,212 @@
+/*
+ * 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.client.core.edm;
+
+import java.util.ArrayList;
+import java.util.List;
+import java.util.Map;
+
+import org.apache.olingo.commons.api.ODataException;
+import org.apache.olingo.commons.api.edm.FullQualifiedName;
+import org.apache.olingo.commons.api.edm.provider.CsdlAbstractEdmProvider;
+import org.apache.olingo.commons.api.edm.provider.CsdlAction;
+import org.apache.olingo.commons.api.edm.provider.CsdlActionImport;
+import org.apache.olingo.commons.api.edm.provider.CsdlAliasInfo;
+import org.apache.olingo.commons.api.edm.provider.CsdlAnnotatable;
+import org.apache.olingo.commons.api.edm.provider.CsdlAnnotations;
+import org.apache.olingo.commons.api.edm.provider.CsdlComplexType;
+import org.apache.olingo.commons.api.edm.provider.CsdlEntityContainer;
+import org.apache.olingo.commons.api.edm.provider.CsdlEntityContainerInfo;
+import org.apache.olingo.commons.api.edm.provider.CsdlEntitySet;
+import org.apache.olingo.commons.api.edm.provider.CsdlEntityType;
+import org.apache.olingo.commons.api.edm.provider.CsdlEnumType;
+import org.apache.olingo.commons.api.edm.provider.CsdlFunction;
+import org.apache.olingo.commons.api.edm.provider.CsdlFunctionImport;
+import org.apache.olingo.commons.api.edm.provider.CsdlSchema;
+import org.apache.olingo.commons.api.edm.provider.CsdlSingleton;
+import org.apache.olingo.commons.api.edm.provider.CsdlTerm;
+import org.apache.olingo.commons.api.edm.provider.CsdlTypeDefinition;
+
+public class ClientCsdlEdmProvider extends CsdlAbstractEdmProvider {
+
+  private final Map<String, CsdlSchema> xmlSchemas;
+
+  public ClientCsdlEdmProvider(Map<String, CsdlSchema> xmlSchemas) {
+    this.xmlSchemas = xmlSchemas;
+  }
+
+  @Override
+  public CsdlEnumType getEnumType(final FullQualifiedName enumTypeName) throws ODataException {
+    CsdlSchema schema = xmlSchemas.get(enumTypeName.getNamespace());
+    if (schema != null) {
+      return schema.getEnumType(enumTypeName.getName());
+    }
+    return null;
+  }
+
+  @Override
+  public CsdlTypeDefinition getTypeDefinition(final FullQualifiedName typeDefinitionName) throws ODataException {
+    CsdlSchema schema = xmlSchemas.get(typeDefinitionName.getNamespace());
+    if (schema != null) {
+      return schema.getTypeDefinition(typeDefinitionName.getName());
+    }
+    return null;
+  }
+
+  @Override
+  public CsdlEntityType getEntityType(final FullQualifiedName entityTypeName) throws ODataException {
+    CsdlSchema schema = xmlSchemas.get(entityTypeName.getNamespace());
+    if (schema != null) {
+      return schema.getEntityType(entityTypeName.getName());
+    }
+    return null;
+  }
+
+  @Override
+  public CsdlComplexType getComplexType(final FullQualifiedName complexTypeName) throws ODataException {
+    CsdlSchema schema = xmlSchemas.get(complexTypeName.getNamespace());
+    if (schema != null) {
+      return schema.getComplexType(complexTypeName.getName());
+    }
+    return null;
+  }
+
+  @Override
+  public List<CsdlAction> getActions(final FullQualifiedName actionName) throws ODataException {
+    CsdlSchema schema = xmlSchemas.get(actionName.getNamespace());
+    if (schema != null) {
+      return schema.getActions(actionName.getName());
+    }
+    return null;
+  }
+
+  @Override
+  public List<CsdlFunction> getFunctions(final FullQualifiedName functionName) throws ODataException {
+    CsdlSchema schema = xmlSchemas.get(functionName.getNamespace());
+    if (schema != null) {
+      return schema.getFunctions(functionName.getName());
+    }
+    return null;
+  }
+
+  @Override
+  public CsdlTerm getTerm(final FullQualifiedName termName) throws ODataException {
+    CsdlSchema schema = xmlSchemas.get(termName.getNamespace());
+    if (schema != null) {
+      return schema.getTerm(termName.getName());
+    }
+    return null;
+  }
+
+  @Override
+  public CsdlEntitySet getEntitySet(final FullQualifiedName entityContainer, final String entitySetName)
+      throws ODataException {
+    CsdlSchema schema = xmlSchemas.get(entityContainer.getNamespace());
+    if (schema != null) {
+      return schema.getEntityContainer().getEntitySet(entitySetName);
+    }
+    return null;
+  }
+
+  @Override
+  public CsdlSingleton getSingleton(final FullQualifiedName entityContainer, final String singletonName)
+      throws ODataException {
+    CsdlSchema schema = xmlSchemas.get(entityContainer.getNamespace());
+    if (schema != null) {
+      return schema.getEntityContainer().getSingleton(singletonName);
+    }
+    return null;
+  }
+
+  @Override
+  public CsdlActionImport getActionImport(final FullQualifiedName entityContainer, final String actionImportName)
+      throws ODataException {
+    CsdlSchema schema = xmlSchemas.get(entityContainer.getNamespace());
+    if (schema != null) {
+      return schema.getEntityContainer().getActionImport(actionImportName);
+    }
+    return null;
+  }
+
+  @Override
+  public CsdlFunctionImport getFunctionImport(final FullQualifiedName entityContainer, final String functionImportName)
+      throws ODataException {
+    CsdlSchema schema = xmlSchemas.get(entityContainer.getNamespace());
+    if (schema != null) {
+      return schema.getEntityContainer().getFunctionImport(functionImportName);
+    }
+    return null;
+  }
+
+  @Override
+  public CsdlEntityContainerInfo getEntityContainerInfo(final FullQualifiedName entityContainerName)
+          throws ODataException {
+    for (CsdlSchema schema : xmlSchemas.values()) {
+      if (schema.getEntityContainer() != null) {
+        return new CsdlEntityContainerInfo().setContainerName(entityContainerName).setExtendsContainer(
+            schema.getEntityContainer().getExtendsContainerFQN());
+      }
+    }
+    return null;
+  }
+
+  @Override
+  public List<CsdlAliasInfo> getAliasInfos() throws ODataException {
+    ArrayList<CsdlAliasInfo> aliasInfo = new ArrayList<CsdlAliasInfo>();
+    for (CsdlSchema schema : xmlSchemas.values()) {
+      if (schema.getAlias() != null) {
+        aliasInfo.add(new CsdlAliasInfo().setNamespace(schema.getNamespace()).setAlias(schema.getAlias()));
+      }
+    }
+    return aliasInfo;
+  }
+
+  @Override
+  public List<CsdlSchema> getSchemas() throws ODataException {
+    return new ArrayList<CsdlSchema>(xmlSchemas.values());
+  }
+
+  @Override
+  public CsdlEntityContainer getEntityContainer() throws ODataException {
+    for (CsdlSchema schema : xmlSchemas.values()) {
+      if (schema.getEntityContainer() != null) {
+        return schema.getEntityContainer();
+      }
+    }
+    return null;
+  }
+
+  @Override
+  public CsdlAnnotations getAnnotationsGroup(FullQualifiedName targetName) throws ODataException {
+    CsdlSchema schema = xmlSchemas.get(targetName.getNamespace());
+    if (schema != null) {
+      return schema.getAnnotationGroup(targetName.getName());
+    }
+    return null;
+  }
+
+  @Override
+  public CsdlAnnotatable getAnnoatatable(FullQualifiedName annotatedName) throws ODataException {
+    final CsdlSchema schema = xmlSchemas.get(annotatedName.getNamespace());
+    if (schema != null) {
+      return schema.getAnnotatables().get(annotatedName.getName());
+    }
+    return null;
+  }
+}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/53b10f6b/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/ClientCsdlXMLMetadata.java
----------------------------------------------------------------------
diff --git a/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/ClientCsdlXMLMetadata.java b/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/ClientCsdlXMLMetadata.java
new file mode 100644
index 0000000..b4f7743
--- /dev/null
+++ b/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/ClientCsdlXMLMetadata.java
@@ -0,0 +1,75 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ * 
+ * http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.olingo.client.core.edm;
+
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
+import org.apache.commons.lang3.StringUtils;
+import org.apache.olingo.client.api.edm.xml.Edmx;
+import org.apache.olingo.client.api.edm.xml.Reference;
+import org.apache.olingo.client.api.edm.xml.XMLMetadata;
+import org.apache.olingo.commons.api.edm.provider.CsdlAbstractEdmItem;
+import org.apache.olingo.commons.api.edm.provider.CsdlSchema;
+
+/**
+ * Entry point for access information about EDM metadata.
+ */
+public class ClientCsdlXMLMetadata extends CsdlAbstractEdmItem implements XMLMetadata {
+
+  private static final long serialVersionUID = 6025723060298454901L;
+  protected final Edmx edmx;
+
+  public ClientCsdlXMLMetadata(final Edmx edmx) {
+    this.edmx = edmx;
+  }
+
+  @Override
+  public List<CsdlSchema> getSchemas() {
+    return this.edmx.getDataServices().getSchemas();
+  }
+
+  @Override
+  public CsdlSchema getSchema(final int index) {
+    return getSchemas().get(index);
+  }
+
+  @Override
+  public CsdlSchema getSchema(final String key) {
+    return getSchemaByNsOrAlias().get(key);
+  }
+
+  @Override
+  public Map<String, CsdlSchema> getSchemaByNsOrAlias() {
+    final Map<String, CsdlSchema> schemaByNsOrAlias = new HashMap<String, CsdlSchema>();
+    for (CsdlSchema schema : getSchemas()) {
+      schemaByNsOrAlias.put(schema.getNamespace(), schema);
+      if (StringUtils.isNotBlank(schema.getAlias())) {
+        schemaByNsOrAlias.put(schema.getAlias(), schema);
+      }
+    }
+    return schemaByNsOrAlias;
+  }
+
+  @Override
+  public List<Reference> getReferences() {
+    return this.edmx.getReferences();
+  }
+}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/53b10f6b/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/ClientEdmProvider.java
----------------------------------------------------------------------
diff --git a/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/ClientEdmProvider.java b/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/ClientEdmProvider.java
deleted file mode 100644
index 6284ade..0000000
--- a/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/ClientEdmProvider.java
+++ /dev/null
@@ -1,212 +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.client.core.edm;
-
-import java.util.ArrayList;
-import java.util.List;
-import java.util.Map;
-
-import org.apache.olingo.commons.api.ODataException;
-import org.apache.olingo.commons.api.edm.FullQualifiedName;
-import org.apache.olingo.commons.api.edm.provider.CsdlAbstractEdmProvider;
-import org.apache.olingo.commons.api.edm.provider.CsdlAction;
-import org.apache.olingo.commons.api.edm.provider.CsdlActionImport;
-import org.apache.olingo.commons.api.edm.provider.CsdlAliasInfo;
-import org.apache.olingo.commons.api.edm.provider.CsdlAnnotatable;
-import org.apache.olingo.commons.api.edm.provider.CsdlAnnotations;
-import org.apache.olingo.commons.api.edm.provider.CsdlComplexType;
-import org.apache.olingo.commons.api.edm.provider.CsdlEntityContainer;
-import org.apache.olingo.commons.api.edm.provider.CsdlEntityContainerInfo;
-import org.apache.olingo.commons.api.edm.provider.CsdlEntitySet;
-import org.apache.olingo.commons.api.edm.provider.CsdlEntityType;
-import org.apache.olingo.commons.api.edm.provider.CsdlEnumType;
-import org.apache.olingo.commons.api.edm.provider.CsdlFunction;
-import org.apache.olingo.commons.api.edm.provider.CsdlFunctionImport;
-import org.apache.olingo.commons.api.edm.provider.CsdlSchema;
-import org.apache.olingo.commons.api.edm.provider.CsdlSingleton;
-import org.apache.olingo.commons.api.edm.provider.CsdlTerm;
-import org.apache.olingo.commons.api.edm.provider.CsdlTypeDefinition;
-
-public class ClientEdmProvider extends CsdlAbstractEdmProvider {
-
-  private final Map<String, CsdlSchema> xmlSchemas;
-
-  public ClientEdmProvider(Map<String, CsdlSchema> xmlSchemas) {
-    this.xmlSchemas = xmlSchemas;
-  }
-
-  @Override
-  public CsdlEnumType getEnumType(final FullQualifiedName enumTypeName) throws ODataException {
-    CsdlSchema schema = xmlSchemas.get(enumTypeName.getNamespace());
-    if (schema != null) {
-      return schema.getEnumType(enumTypeName.getName());
-    }
-    return null;
-  }
-
-  @Override
-  public CsdlTypeDefinition getTypeDefinition(final FullQualifiedName typeDefinitionName) throws ODataException {
-    CsdlSchema schema = xmlSchemas.get(typeDefinitionName.getNamespace());
-    if (schema != null) {
-      return schema.getTypeDefinition(typeDefinitionName.getName());
-    }
-    return null;
-  }
-
-  @Override
-  public CsdlEntityType getEntityType(final FullQualifiedName entityTypeName) throws ODataException {
-    CsdlSchema schema = xmlSchemas.get(entityTypeName.getNamespace());
-    if (schema != null) {
-      return schema.getEntityType(entityTypeName.getName());
-    }
-    return null;
-  }
-
-  @Override
-  public CsdlComplexType getComplexType(final FullQualifiedName complexTypeName) throws ODataException {
-    CsdlSchema schema = xmlSchemas.get(complexTypeName.getNamespace());
-    if (schema != null) {
-      return schema.getComplexType(complexTypeName.getName());
-    }
-    return null;
-  }
-
-  @Override
-  public List<CsdlAction> getActions(final FullQualifiedName actionName) throws ODataException {
-    CsdlSchema schema = xmlSchemas.get(actionName.getNamespace());
-    if (schema != null) {
-      return schema.getActions(actionName.getName());
-    }
-    return null;
-  }
-
-  @Override
-  public List<CsdlFunction> getFunctions(final FullQualifiedName functionName) throws ODataException {
-    CsdlSchema schema = xmlSchemas.get(functionName.getNamespace());
-    if (schema != null) {
-      return schema.getFunctions(functionName.getName());
-    }
-    return null;
-  }
-
-  @Override
-  public CsdlTerm getTerm(final FullQualifiedName termName) throws ODataException {
-    CsdlSchema schema = xmlSchemas.get(termName.getNamespace());
-    if (schema != null) {
-      return schema.getTerm(termName.getName());
-    }
-    return null;
-  }
-
-  @Override
-  public CsdlEntitySet getEntitySet(final FullQualifiedName entityContainer, final String entitySetName)
-      throws ODataException {
-    CsdlSchema schema = xmlSchemas.get(entityContainer.getNamespace());
-    if (schema != null) {
-      return schema.getEntityContainer().getEntitySet(entitySetName);
-    }
-    return null;
-  }
-
-  @Override
-  public CsdlSingleton getSingleton(final FullQualifiedName entityContainer, final String singletonName)
-      throws ODataException {
-    CsdlSchema schema = xmlSchemas.get(entityContainer.getNamespace());
-    if (schema != null) {
-      return schema.getEntityContainer().getSingleton(singletonName);
-    }
-    return null;
-  }
-
-  @Override
-  public CsdlActionImport getActionImport(final FullQualifiedName entityContainer, final String actionImportName)
-      throws ODataException {
-    CsdlSchema schema = xmlSchemas.get(entityContainer.getNamespace());
-    if (schema != null) {
-      return schema.getEntityContainer().getActionImport(actionImportName);
-    }
-    return null;
-  }
-
-  @Override
-  public CsdlFunctionImport getFunctionImport(final FullQualifiedName entityContainer, final String functionImportName)
-      throws ODataException {
-    CsdlSchema schema = xmlSchemas.get(entityContainer.getNamespace());
-    if (schema != null) {
-      return schema.getEntityContainer().getFunctionImport(functionImportName);
-    }
-    return null;
-  }
-
-  @Override
-  public CsdlEntityContainerInfo getEntityContainerInfo(final FullQualifiedName entityContainerName)
-          throws ODataException {
-    for (CsdlSchema schema : xmlSchemas.values()) {
-      if (schema.getEntityContainer() != null) {
-        return new CsdlEntityContainerInfo().setContainerName(entityContainerName).setExtendsContainer(
-            schema.getEntityContainer().getExtendsContainerFQN());
-      }
-    }
-    return null;
-  }
-
-  @Override
-  public List<CsdlAliasInfo> getAliasInfos() throws ODataException {
-    ArrayList<CsdlAliasInfo> aliasInfo = new ArrayList<CsdlAliasInfo>();
-    for (CsdlSchema schema : xmlSchemas.values()) {
-      if (schema.getAlias() != null) {
-        aliasInfo.add(new CsdlAliasInfo().setNamespace(schema.getNamespace()).setAlias(schema.getAlias()));
-      }
-    }
-    return aliasInfo;
-  }
-
-  @Override
-  public List<CsdlSchema> getSchemas() throws ODataException {
-    return new ArrayList<CsdlSchema>(xmlSchemas.values());
-  }
-
-  @Override
-  public CsdlEntityContainer getEntityContainer() throws ODataException {
-    for (CsdlSchema schema : xmlSchemas.values()) {
-      if (schema.getEntityContainer() != null) {
-        return schema.getEntityContainer();
-      }
-    }
-    return null;
-  }
-
-  @Override
-  public CsdlAnnotations getAnnotationsGroup(FullQualifiedName targetName) throws ODataException {
-    CsdlSchema schema = xmlSchemas.get(targetName.getNamespace());
-    if (schema != null) {
-      return schema.getAnnotationGroup(targetName.getName());
-    }
-    return null;
-  }
-
-  @Override
-  public CsdlAnnotatable getAnnoatatable(FullQualifiedName annotatedName) throws ODataException {
-    final CsdlSchema schema = xmlSchemas.get(annotatedName.getNamespace());
-    if (schema != null) {
-      return schema.getAnnotatables().get(annotatedName.getName());
-    }
-    return null;
-  }
-}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/53b10f6b/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/ClientXMLMetadata.java
----------------------------------------------------------------------
diff --git a/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/ClientXMLMetadata.java b/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/ClientXMLMetadata.java
deleted file mode 100644
index 96c07c2..0000000
--- a/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/ClientXMLMetadata.java
+++ /dev/null
@@ -1,75 +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.client.core.edm;
-
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
-
-import org.apache.commons.lang3.StringUtils;
-import org.apache.olingo.client.api.edm.xml.Edmx;
-import org.apache.olingo.client.api.edm.xml.Reference;
-import org.apache.olingo.client.api.edm.xml.XMLMetadata;
-import org.apache.olingo.commons.api.edm.provider.CsdlAbstractEdmItem;
-import org.apache.olingo.commons.api.edm.provider.CsdlSchema;
-
-/**
- * Entry point for access information about EDM metadata.
- */
-public class ClientXMLMetadata extends CsdlAbstractEdmItem implements XMLMetadata {
-
-  private static final long serialVersionUID = 6025723060298454901L;
-  protected final Edmx edmx;
-
-  public ClientXMLMetadata(final Edmx edmx) {
-    this.edmx = edmx;
-  }
-
-  @Override
-  public List<CsdlSchema> getSchemas() {
-    return this.edmx.getDataServices().getSchemas();
-  }
-
-  @Override
-  public CsdlSchema getSchema(final int index) {
-    return getSchemas().get(index);
-  }
-
-  @Override
-  public CsdlSchema getSchema(final String key) {
-    return getSchemaByNsOrAlias().get(key);
-  }
-
-  @Override
-  public Map<String, CsdlSchema> getSchemaByNsOrAlias() {
-    final Map<String, CsdlSchema> schemaByNsOrAlias = new HashMap<String, CsdlSchema>();
-    for (CsdlSchema schema : getSchemas()) {
-      schemaByNsOrAlias.put(schema.getNamespace(), schema);
-      if (StringUtils.isNotBlank(schema.getAlias())) {
-        schemaByNsOrAlias.put(schema.getAlias(), schema);
-      }
-    }
-    return schemaByNsOrAlias;
-  }
-
-  @Override
-  public List<Reference> getReferences() {
-    return this.edmx.getReferences();
-  }
-}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/53b10f6b/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/AbstractClientAnnotatableDynamicAnnotationExpression.java
----------------------------------------------------------------------
diff --git a/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/AbstractClientAnnotatableDynamicAnnotationExpression.java b/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/AbstractClientAnnotatableDynamicAnnotationExpression.java
deleted file mode 100644
index 052c4c7..0000000
--- a/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/AbstractClientAnnotatableDynamicAnnotationExpression.java
+++ /dev/null
@@ -1,38 +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.client.core.edm.xml;
-
-import java.util.ArrayList;
-import java.util.List;
-
-import org.apache.olingo.commons.api.edm.provider.CsdlAnnotatable;
-import org.apache.olingo.commons.api.edm.provider.CsdlAnnotation;
-
-abstract class AbstractClientAnnotatableDynamicAnnotationExpression
-        extends AbstractClientDynamicAnnotationExpression implements CsdlAnnotatable {
-
-  private static final long serialVersionUID = -450668773857358139L;
-
-  private final List<CsdlAnnotation> annotations = new ArrayList<CsdlAnnotation>();
-
-  @Override
-  public List<CsdlAnnotation> getAnnotations() {
-    return annotations;
-  }
-}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/53b10f6b/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/AbstractClientAnnotationExpression.java
----------------------------------------------------------------------
diff --git a/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/AbstractClientAnnotationExpression.java b/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/AbstractClientAnnotationExpression.java
deleted file mode 100644
index bcdaf40..0000000
--- a/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/AbstractClientAnnotationExpression.java
+++ /dev/null
@@ -1,49 +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.client.core.edm.xml;
-
-import org.apache.olingo.commons.api.edm.provider.CsdlAbstractEdmItem;
-import org.apache.olingo.commons.api.edm.provider.annotation.AnnotationExpression;
-import org.apache.olingo.commons.api.edm.provider.annotation.ConstantAnnotationExpression;
-import org.apache.olingo.commons.api.edm.provider.annotation.DynamicAnnotationExpression;
-
-abstract class AbstractClientAnnotationExpression extends CsdlAbstractEdmItem implements AnnotationExpression {
-
-  private static final long serialVersionUID = -4238652997159205377L;
-
-  @Override
-  public boolean isConstant() {
-    return this instanceof ConstantAnnotationExpression;
-  }
-
-  @Override
-  public ConstantAnnotationExpression asConstant() {
-    return isConstant() ? (ConstantAnnotationExpression) this : null;
-  }
-
-  @Override
-  public boolean isDynamic() {
-    return this instanceof DynamicAnnotationExpression;
-  }
-
-  @Override
-  public DynamicAnnotationExpression asDynamic() {
-    return isDynamic() ? (DynamicAnnotationExpression) this : null;
-  }
-}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/53b10f6b/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/AbstractClientCsdlAnnotatableDynamicAnnotationExpression.java
----------------------------------------------------------------------
diff --git a/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/AbstractClientCsdlAnnotatableDynamicAnnotationExpression.java b/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/AbstractClientCsdlAnnotatableDynamicAnnotationExpression.java
new file mode 100644
index 0000000..68e98ae
--- /dev/null
+++ b/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/AbstractClientCsdlAnnotatableDynamicAnnotationExpression.java
@@ -0,0 +1,38 @@
+/*
+ * 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.client.core.edm.xml;
+
+import java.util.ArrayList;
+import java.util.List;
+
+import org.apache.olingo.commons.api.edm.provider.CsdlAnnotatable;
+import org.apache.olingo.commons.api.edm.provider.CsdlAnnotation;
+
+abstract class AbstractClientCsdlAnnotatableDynamicAnnotationExpression
+        extends AbstractClientCsdlDynamicAnnotationExpression implements CsdlAnnotatable {
+
+  private static final long serialVersionUID = -450668773857358139L;
+
+  private final List<CsdlAnnotation> annotations = new ArrayList<CsdlAnnotation>();
+
+  @Override
+  public List<CsdlAnnotation> getAnnotations() {
+    return annotations;
+  }
+}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/53b10f6b/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/AbstractClientCsdlAnnotationExpression.java
----------------------------------------------------------------------
diff --git a/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/AbstractClientCsdlAnnotationExpression.java b/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/AbstractClientCsdlAnnotationExpression.java
new file mode 100644
index 0000000..d362dfd
--- /dev/null
+++ b/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/AbstractClientCsdlAnnotationExpression.java
@@ -0,0 +1,49 @@
+/*
+ * 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.client.core.edm.xml;
+
+import org.apache.olingo.commons.api.edm.provider.CsdlAbstractEdmItem;
+import org.apache.olingo.commons.api.edm.provider.annotation.AnnotationExpression;
+import org.apache.olingo.commons.api.edm.provider.annotation.ConstantAnnotationExpression;
+import org.apache.olingo.commons.api.edm.provider.annotation.DynamicAnnotationExpression;
+
+abstract class AbstractClientCsdlAnnotationExpression extends CsdlAbstractEdmItem implements AnnotationExpression {
+
+  private static final long serialVersionUID = -4238652997159205377L;
+
+  @Override
+  public boolean isConstant() {
+    return this instanceof ConstantAnnotationExpression;
+  }
+
+  @Override
+  public ConstantAnnotationExpression asConstant() {
+    return isConstant() ? (ConstantAnnotationExpression) this : null;
+  }
+
+  @Override
+  public boolean isDynamic() {
+    return this instanceof DynamicAnnotationExpression;
+  }
+
+  @Override
+  public DynamicAnnotationExpression asDynamic() {
+    return isDynamic() ? (DynamicAnnotationExpression) this : null;
+  }
+}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/53b10f6b/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/AbstractClientCsdlDynamicAnnotationExpression.java
----------------------------------------------------------------------
diff --git a/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/AbstractClientCsdlDynamicAnnotationExpression.java b/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/AbstractClientCsdlDynamicAnnotationExpression.java
new file mode 100644
index 0000000..229ef87
--- /dev/null
+++ b/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/AbstractClientCsdlDynamicAnnotationExpression.java
@@ -0,0 +1,356 @@
+/*
+ * 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.client.core.edm.xml;
+
+import com.fasterxml.jackson.core.JsonLocation;
+import com.fasterxml.jackson.core.JsonParseException;
+import com.fasterxml.jackson.core.JsonParser;
+import com.fasterxml.jackson.core.JsonToken;
+import com.fasterxml.jackson.databind.DeserializationContext;
+import org.apache.commons.lang3.ArrayUtils;
+import org.apache.commons.lang3.ClassUtils;
+import org.apache.olingo.commons.api.edm.provider.annotation.AnnotationPath;
+import org.apache.olingo.commons.api.edm.provider.annotation.Apply;
+import org.apache.olingo.commons.api.edm.provider.annotation.Cast;
+import org.apache.olingo.commons.api.edm.provider.annotation.Collection;
+import org.apache.olingo.commons.api.edm.provider.annotation.DynamicAnnotationExpression;
+import org.apache.olingo.commons.api.edm.provider.annotation.If;
+import org.apache.olingo.commons.api.edm.provider.annotation.IsOf;
+import org.apache.olingo.commons.api.edm.provider.annotation.LabeledElement;
+import org.apache.olingo.commons.api.edm.provider.annotation.LabeledElementReference;
+import org.apache.olingo.commons.api.edm.provider.annotation.NavigationPropertyPath;
+import org.apache.olingo.commons.api.edm.provider.annotation.Not;
+import org.apache.olingo.commons.api.edm.provider.annotation.Null;
+import org.apache.olingo.commons.api.edm.provider.annotation.Path;
+import org.apache.olingo.commons.api.edm.provider.annotation.PropertyPath;
+import org.apache.olingo.commons.api.edm.provider.annotation.PropertyValue;
+import org.apache.olingo.commons.api.edm.provider.annotation.Record;
+import org.apache.olingo.commons.api.edm.provider.annotation.TwoParamsOpDynamicAnnotationExpression;
+import org.apache.olingo.commons.api.edm.provider.annotation.UrlRef;
+
+import com.fasterxml.jackson.databind.annotation.JsonDeserialize;
+
+import java.io.IOException;
+
+@JsonDeserialize(using = AbstractClientCsdlDynamicAnnotationExpression.DynamicAnnotationExpressionDeserializer.class)
+abstract class AbstractClientCsdlDynamicAnnotationExpression
+        extends AbstractClientCsdlAnnotationExpression implements DynamicAnnotationExpression {
+
+  private static final long serialVersionUID = 1093411847477874348L;
+
+  @Override
+  public boolean isNot() {
+    return this instanceof Not;
+  }
+
+  @Override
+  public Not asNot() {
+    return isNot() ? (Not) this : null;
+
+  }
+
+  @Override
+  public boolean isTwoParamsOp() {
+    return this instanceof TwoParamsOpDynamicAnnotationExpression;
+  }
+
+  @Override
+  public TwoParamsOpDynamicAnnotationExpression asTwoParamsOp() {
+    return isTwoParamsOp() ? (TwoParamsOpDynamicAnnotationExpression) this : null;
+  }
+
+  @Override
+  public boolean isAnnotationPath() {
+    return this instanceof AnnotationPath;
+  }
+
+  @Override
+  public AnnotationPath asAnnotationPath() {
+    return isAnnotationPath() ? (AnnotationPath) this : null;
+  }
+
+  @Override
+  public boolean isApply() {
+    return this instanceof Apply;
+  }
+
+  @Override
+  public Apply asApply() {
+    return isApply() ? (Apply) this : null;
+  }
+
+  @Override
+  public boolean isCast() {
+    return this instanceof Cast;
+  }
+
+  @Override
+  public Cast asCast() {
+    return isCast() ? (Cast) this : null;
+  }
+
+  @Override
+  public boolean isCollection() {
+    return this instanceof Collection;
+  }
+
+  @Override
+  public Collection asCollection() {
+    return isCollection() ? (Collection) this : null;
+  }
+
+  @Override
+  public boolean isIf() {
+    return this instanceof If;
+  }
+
+  @Override
+  public If asIf() {
+    return isIf() ? (If) this : null;
+  }
+
+  @Override
+  public boolean isIsOf() {
+    return this instanceof IsOf;
+  }
+
+  @Override
+  public IsOf asIsOf() {
+    return isIsOf() ? (IsOf) this : null;
+  }
+
+  @Override
+  public boolean isLabeledElement() {
+    return this instanceof LabeledElement;
+  }
+
+  @Override
+  public LabeledElement asLabeledElement() {
+    return isLabeledElement() ? (LabeledElement) this : null;
+  }
+
+  @Override
+  public boolean isLabeledElementReference() {
+    return this instanceof LabeledElementReference;
+  }
+
+  @Override
+  public LabeledElementReference asLabeledElementReference() {
+    return isLabeledElementReference() ? (LabeledElementReference) this : null;
+  }
+
+  @Override
+  public boolean isNull() {
+    return this instanceof Null;
+  }
+
+  @Override
+  public Null asNull() {
+    return isNull() ? (Null) this : null;
+  }
+
+  @Override
+  public boolean isNavigationPropertyPath() {
+    return this instanceof NavigationPropertyPath;
+  }
+
+  @Override
+  public NavigationPropertyPath asNavigationPropertyPath() {
+    return isNavigationPropertyPath() ? (NavigationPropertyPath) this : null;
+  }
+
+  @Override
+  public boolean isPath() {
+    return this instanceof Path;
+  }
+
+  @Override
+  public Path asPath() {
+    return isPath() ? (Path) this : null;
+  }
+
+  @Override
+  public boolean isPropertyPath() {
+    return this instanceof PropertyPath;
+  }
+
+  @Override
+  public PropertyPath asPropertyPath() {
+    return isPropertyPath() ? (PropertyPath) this : null;
+  }
+
+  @Override
+  public boolean isPropertyValue() {
+    return this instanceof PropertyValue;
+  }
+
+  @Override
+  public PropertyValue asPropertyValue() {
+    return isPropertyValue() ? (PropertyValue) this : null;
+  }
+
+  @Override
+  public boolean isRecord() {
+    return this instanceof Record;
+  }
+
+  @Override
+  public Record asRecord() {
+    return isRecord() ? (Record) this : null;
+  }
+
+  @Override
+  public boolean isUrlRef() {
+    return this instanceof UrlRef;
+  }
+
+  @Override
+  public UrlRef asUrlRef() {
+    return isUrlRef() ? (UrlRef) this : null;
+  }
+
+  static class DynamicAnnotationExpressionDeserializer
+          extends AbstractClientCsdlEdmDeserializer<AbstractClientCsdlDynamicAnnotationExpression> {
+
+    private static final String[] EL_OR_ATTR = {
+            AnnotationPath.class.getSimpleName(), NavigationPropertyPath.class.getSimpleName(),
+            Path.class.getSimpleName(), PropertyPath.class.getSimpleName()
+    };
+
+    private static final String APPLY = Apply.class.getSimpleName();
+    private static final String CAST = Cast.class.getSimpleName();
+    private static final String COLLECTION = Collection.class.getSimpleName();
+    private static final String IF = If.class.getSimpleName();
+    private static final String IS_OF = IsOf.class.getSimpleName();
+    private static final String LABELED_ELEMENT = LabeledElement.class.getSimpleName();
+    private static final String NULL = Null.class.getSimpleName();
+    private static final String RECORD = Record.class.getSimpleName();
+    private static final String URL_REF = UrlRef.class.getSimpleName();
+
+    private AbstractClientCsdlElementOrAttributeExpression getElementOrAttributeExpression(final String simpleClassName)
+            throws JsonParseException {
+
+      try {
+        @SuppressWarnings("unchecked")
+        Class<? extends AbstractClientCsdlElementOrAttributeExpression> elOrAttrClass =
+                (Class<? extends AbstractClientCsdlElementOrAttributeExpression>) ClassUtils.getClass(
+                        getClass().getPackage().getName() + ".ClientCsdl" + simpleClassName);
+        return elOrAttrClass.newInstance();
+      } catch (Exception e) {
+        throw new JsonParseException("Could not instantiate " + simpleClassName, JsonLocation.NA, e);
+      }
+    }
+
+    private AbstractClientCsdlAnnotationExpression parseConstOrEnumExpression(final JsonParser jp) throws IOException {
+      AbstractClientCsdlAnnotationExpression result;
+      if (isAnnotationConstExprConstruct(jp)) {
+        result = parseAnnotationConstExprConstruct(jp);
+      } else {
+        result = jp.readValueAs(AbstractClientCsdlDynamicAnnotationExpression.class);
+      }
+      jp.nextToken();
+
+      return result;
+    }
+
+    @Override
+    protected AbstractClientCsdlDynamicAnnotationExpression doDeserialize(final JsonParser jp,
+        final DeserializationContext ctxt) throws IOException {
+
+      AbstractClientCsdlDynamicAnnotationExpression expression = null;
+
+      if ("Not".equals(jp.getCurrentName())) {
+        final ClientCsdlNot not = new ClientCsdlNot();
+
+        jp.nextToken();
+        //Search for field name
+        while (jp.getCurrentToken() != JsonToken.FIELD_NAME) {
+          jp.nextToken();
+        }
+        not.setExpression(jp.readValueAs(AbstractClientCsdlDynamicAnnotationExpression.class));
+        //Search for end object
+        while (jp.getCurrentToken() != JsonToken.END_OBJECT || !jp.getCurrentName().equals("Not")) {
+          jp.nextToken();
+        }
+
+        expression = not;
+      } else if (TwoParamsOpDynamicAnnotationExpression.Type.fromString(jp.getCurrentName()) != null) {
+        final ClientCsdlTwoParamsOpDynamicAnnotationExpression dynExprDoubleParamOp =
+                new ClientCsdlTwoParamsOpDynamicAnnotationExpression();
+        dynExprDoubleParamOp.setType(TwoParamsOpDynamicAnnotationExpression.Type.fromString(jp.getCurrentName()));
+
+        jp.nextToken();
+        //Search for field name
+        while (jp.getCurrentToken() != JsonToken.FIELD_NAME) {
+          jp.nextToken();
+        }
+        dynExprDoubleParamOp.setLeftExpression(jp.readValueAs(AbstractClientCsdlDynamicAnnotationExpression.class));
+        dynExprDoubleParamOp.setRightExpression(jp.readValueAs(AbstractClientCsdlDynamicAnnotationExpression.class));
+        //Search for expression
+        while (jp.getCurrentToken() != JsonToken.END_OBJECT || !jp.getCurrentName().equals(dynExprDoubleParamOp
+                .getType().name())) {
+          jp.nextToken();
+        }
+
+        expression = dynExprDoubleParamOp;
+      } else if (ArrayUtils.contains(EL_OR_ATTR, jp.getCurrentName())) {
+        final AbstractClientCsdlElementOrAttributeExpression elOrAttr =
+            getElementOrAttributeExpression(jp.getCurrentName());
+        elOrAttr.setValue(jp.nextTextValue());
+        expression = elOrAttr;
+      } else if (APPLY.equals(jp.getCurrentName())) {
+        jp.nextToken();
+        expression = jp.readValueAs(ClientCsdlApply.class);
+      } else if (CAST.equals(jp.getCurrentName())) {
+        jp.nextToken();
+        expression = jp.readValueAs(ClientCsdlCast.class);
+      } else if (COLLECTION.equals(jp.getCurrentName())) {
+        jp.nextToken();
+        expression = jp.readValueAs(ClientCsdlCollection.class);
+      } else if (IF.equals(jp.getCurrentName())) {
+        jp.nextToken();
+        jp.nextToken();
+
+        final ClientCsdlIf ifImpl = new ClientCsdlIf();
+        ifImpl.setGuard(parseConstOrEnumExpression(jp));
+        ifImpl.setThen(parseConstOrEnumExpression(jp));
+        ifImpl.setElse(parseConstOrEnumExpression(jp));
+
+        expression = ifImpl;
+      } else if (IS_OF.equals(jp.getCurrentName())) {
+        jp.nextToken();
+        expression = jp.readValueAs(ClientCsdlIsOf.class);
+      } else if (LABELED_ELEMENT.equals(jp.getCurrentName())) {
+        jp.nextToken();
+        expression = jp.readValueAs(ClientCsdlLabeledElement.class);
+      } else if (NULL.equals(jp.getCurrentName())) {
+        jp.nextToken();
+        expression = jp.readValueAs(ClientCsdlNull.class);
+      } else if (RECORD.equals(jp.getCurrentName())) {
+        jp.nextToken();
+        expression = jp.readValueAs(ClientCsdlRecord.class);
+      } else if (URL_REF.equals(jp.getCurrentName())) {
+        jp.nextToken();
+        expression = jp.readValueAs(ClientCsdlUrlRef.class);
+      }
+
+      return expression;
+    }
+  }
+}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/53b10f6b/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/AbstractClientCsdlEdmDeserializer.java
----------------------------------------------------------------------
diff --git a/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/AbstractClientCsdlEdmDeserializer.java b/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/AbstractClientCsdlEdmDeserializer.java
new file mode 100644
index 0000000..c96654c
--- /dev/null
+++ b/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/AbstractClientCsdlEdmDeserializer.java
@@ -0,0 +1,60 @@
+/*
+ * 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.client.core.edm.xml;
+
+import java.io.IOException;
+
+import com.fasterxml.jackson.core.JsonParser;
+import com.fasterxml.jackson.databind.DeserializationContext;
+import com.fasterxml.jackson.databind.JsonDeserializer;
+import com.fasterxml.jackson.dataformat.xml.deser.FromXmlParser;
+
+abstract class AbstractClientCsdlEdmDeserializer<T> extends JsonDeserializer<T> {
+
+  protected boolean isAnnotationConstExprConstruct(final JsonParser jp) throws IOException {
+    return ClientCsdlConstantAnnotationExpression.Type.fromString(jp.getCurrentName()) != null;
+  }
+
+  protected ClientCsdlConstantAnnotationExpression parseAnnotationConstExprConstruct(final JsonParser jp)
+      throws IOException {
+    final ClientCsdlConstantAnnotationExpression constExpr = new ClientCsdlConstantAnnotationExpression();
+    constExpr.setType(ClientCsdlConstantAnnotationExpression.Type.fromString(jp.getCurrentName()));
+    constExpr.setValue(jp.nextTextValue());
+    return constExpr;
+  }
+
+  protected ClientCsdlReturnType parseReturnType(final JsonParser jp, final String elementName) throws IOException {
+    final ClientCsdlReturnType returnType;
+    if (elementName.equals(((FromXmlParser) jp).getStaxReader().getLocalName())) {
+      returnType = new ClientCsdlReturnType();
+      returnType.setType(jp.nextTextValue());
+    } else {
+      jp.nextToken();
+      returnType = jp.readValueAs(ClientCsdlReturnType.class);
+    }
+    return returnType;
+  }
+
+  protected abstract T doDeserialize(JsonParser jp, DeserializationContext ctxt) throws IOException;
+
+  @Override
+  public T deserialize(final JsonParser jp, final DeserializationContext ctxt) throws IOException {
+    return doDeserialize(jp, ctxt);
+  }
+}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/53b10f6b/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/AbstractClientCsdlElementOrAttributeExpression.java
----------------------------------------------------------------------
diff --git a/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/AbstractClientCsdlElementOrAttributeExpression.java b/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/AbstractClientCsdlElementOrAttributeExpression.java
new file mode 100644
index 0000000..6c4c5cf
--- /dev/null
+++ b/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/AbstractClientCsdlElementOrAttributeExpression.java
@@ -0,0 +1,37 @@
+/*
+ * 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.client.core.edm.xml;
+
+/**
+ * Groups dynamic expressions that may be provided using element notation or attribute notation.
+ */
+class AbstractClientCsdlElementOrAttributeExpression extends AbstractClientCsdlDynamicAnnotationExpression {
+
+  private static final long serialVersionUID = 1588336268773032932L;
+
+  private String value;
+
+  public String getValue() {
+    return value;
+  }
+
+  public void setValue(final String value) {
+    this.value = value;
+  }
+}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/53b10f6b/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/AbstractClientDynamicAnnotationExpression.java
----------------------------------------------------------------------
diff --git a/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/AbstractClientDynamicAnnotationExpression.java b/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/AbstractClientDynamicAnnotationExpression.java
deleted file mode 100644
index 8e8440e..0000000
--- a/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/AbstractClientDynamicAnnotationExpression.java
+++ /dev/null
@@ -1,356 +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.client.core.edm.xml;
-
-import com.fasterxml.jackson.core.JsonLocation;
-import com.fasterxml.jackson.core.JsonParseException;
-import com.fasterxml.jackson.core.JsonParser;
-import com.fasterxml.jackson.core.JsonToken;
-import com.fasterxml.jackson.databind.DeserializationContext;
-import org.apache.commons.lang3.ArrayUtils;
-import org.apache.commons.lang3.ClassUtils;
-import org.apache.olingo.commons.api.edm.provider.annotation.AnnotationPath;
-import org.apache.olingo.commons.api.edm.provider.annotation.Apply;
-import org.apache.olingo.commons.api.edm.provider.annotation.Cast;
-import org.apache.olingo.commons.api.edm.provider.annotation.Collection;
-import org.apache.olingo.commons.api.edm.provider.annotation.DynamicAnnotationExpression;
-import org.apache.olingo.commons.api.edm.provider.annotation.If;
-import org.apache.olingo.commons.api.edm.provider.annotation.IsOf;
-import org.apache.olingo.commons.api.edm.provider.annotation.LabeledElement;
-import org.apache.olingo.commons.api.edm.provider.annotation.LabeledElementReference;
-import org.apache.olingo.commons.api.edm.provider.annotation.NavigationPropertyPath;
-import org.apache.olingo.commons.api.edm.provider.annotation.Not;
-import org.apache.olingo.commons.api.edm.provider.annotation.Null;
-import org.apache.olingo.commons.api.edm.provider.annotation.Path;
-import org.apache.olingo.commons.api.edm.provider.annotation.PropertyPath;
-import org.apache.olingo.commons.api.edm.provider.annotation.PropertyValue;
-import org.apache.olingo.commons.api.edm.provider.annotation.Record;
-import org.apache.olingo.commons.api.edm.provider.annotation.TwoParamsOpDynamicAnnotationExpression;
-import org.apache.olingo.commons.api.edm.provider.annotation.UrlRef;
-
-import com.fasterxml.jackson.databind.annotation.JsonDeserialize;
-
-import java.io.IOException;
-
-@JsonDeserialize(using = AbstractClientDynamicAnnotationExpression.DynamicAnnotationExpressionDeserializer.class)
-abstract class AbstractClientDynamicAnnotationExpression
-        extends AbstractClientAnnotationExpression implements DynamicAnnotationExpression {
-
-  private static final long serialVersionUID = 1093411847477874348L;
-
-  @Override
-  public boolean isNot() {
-    return this instanceof Not;
-  }
-
-  @Override
-  public Not asNot() {
-    return isNot() ? (Not) this : null;
-
-  }
-
-  @Override
-  public boolean isTwoParamsOp() {
-    return this instanceof TwoParamsOpDynamicAnnotationExpression;
-  }
-
-  @Override
-  public TwoParamsOpDynamicAnnotationExpression asTwoParamsOp() {
-    return isTwoParamsOp() ? (TwoParamsOpDynamicAnnotationExpression) this : null;
-  }
-
-  @Override
-  public boolean isAnnotationPath() {
-    return this instanceof AnnotationPath;
-  }
-
-  @Override
-  public AnnotationPath asAnnotationPath() {
-    return isAnnotationPath() ? (AnnotationPath) this : null;
-  }
-
-  @Override
-  public boolean isApply() {
-    return this instanceof Apply;
-  }
-
-  @Override
-  public Apply asApply() {
-    return isApply() ? (Apply) this : null;
-  }
-
-  @Override
-  public boolean isCast() {
-    return this instanceof Cast;
-  }
-
-  @Override
-  public Cast asCast() {
-    return isCast() ? (Cast) this : null;
-  }
-
-  @Override
-  public boolean isCollection() {
-    return this instanceof Collection;
-  }
-
-  @Override
-  public Collection asCollection() {
-    return isCollection() ? (Collection) this : null;
-  }
-
-  @Override
-  public boolean isIf() {
-    return this instanceof If;
-  }
-
-  @Override
-  public If asIf() {
-    return isIf() ? (If) this : null;
-  }
-
-  @Override
-  public boolean isIsOf() {
-    return this instanceof IsOf;
-  }
-
-  @Override
-  public IsOf asIsOf() {
-    return isIsOf() ? (IsOf) this : null;
-  }
-
-  @Override
-  public boolean isLabeledElement() {
-    return this instanceof LabeledElement;
-  }
-
-  @Override
-  public LabeledElement asLabeledElement() {
-    return isLabeledElement() ? (LabeledElement) this : null;
-  }
-
-  @Override
-  public boolean isLabeledElementReference() {
-    return this instanceof LabeledElementReference;
-  }
-
-  @Override
-  public LabeledElementReference asLabeledElementReference() {
-    return isLabeledElementReference() ? (LabeledElementReference) this : null;
-  }
-
-  @Override
-  public boolean isNull() {
-    return this instanceof Null;
-  }
-
-  @Override
-  public Null asNull() {
-    return isNull() ? (Null) this : null;
-  }
-
-  @Override
-  public boolean isNavigationPropertyPath() {
-    return this instanceof NavigationPropertyPath;
-  }
-
-  @Override
-  public NavigationPropertyPath asNavigationPropertyPath() {
-    return isNavigationPropertyPath() ? (NavigationPropertyPath) this : null;
-  }
-
-  @Override
-  public boolean isPath() {
-    return this instanceof Path;
-  }
-
-  @Override
-  public Path asPath() {
-    return isPath() ? (Path) this : null;
-  }
-
-  @Override
-  public boolean isPropertyPath() {
-    return this instanceof PropertyPath;
-  }
-
-  @Override
-  public PropertyPath asPropertyPath() {
-    return isPropertyPath() ? (PropertyPath) this : null;
-  }
-
-  @Override
-  public boolean isPropertyValue() {
-    return this instanceof PropertyValue;
-  }
-
-  @Override
-  public PropertyValue asPropertyValue() {
-    return isPropertyValue() ? (PropertyValue) this : null;
-  }
-
-  @Override
-  public boolean isRecord() {
-    return this instanceof Record;
-  }
-
-  @Override
-  public Record asRecord() {
-    return isRecord() ? (Record) this : null;
-  }
-
-  @Override
-  public boolean isUrlRef() {
-    return this instanceof UrlRef;
-  }
-
-  @Override
-  public UrlRef asUrlRef() {
-    return isUrlRef() ? (UrlRef) this : null;
-  }
-
-  static class DynamicAnnotationExpressionDeserializer
-          extends AbstractClientEdmDeserializer<AbstractClientDynamicAnnotationExpression> {
-
-    private static final String[] EL_OR_ATTR = {
-            AnnotationPath.class.getSimpleName(), NavigationPropertyPath.class.getSimpleName(),
-            Path.class.getSimpleName(), PropertyPath.class.getSimpleName()
-    };
-
-    private static final String APPLY = Apply.class.getSimpleName();
-    private static final String CAST = Cast.class.getSimpleName();
-    private static final String COLLECTION = Collection.class.getSimpleName();
-    private static final String IF = If.class.getSimpleName();
-    private static final String IS_OF = IsOf.class.getSimpleName();
-    private static final String LABELED_ELEMENT = LabeledElement.class.getSimpleName();
-    private static final String NULL = Null.class.getSimpleName();
-    private static final String RECORD = Record.class.getSimpleName();
-    private static final String URL_REF = UrlRef.class.getSimpleName();
-
-    private AbstractClientElementOrAttributeExpression getElementOrAttributeExpression(final String simpleClassName)
-            throws JsonParseException {
-
-      try {
-        @SuppressWarnings("unchecked")
-        Class<? extends AbstractClientElementOrAttributeExpression> elOrAttrClass =
-                (Class<? extends AbstractClientElementOrAttributeExpression>) ClassUtils.getClass(
-                        getClass().getPackage().getName() + ".Client" + simpleClassName);
-        return elOrAttrClass.newInstance();
-      } catch (Exception e) {
-        throw new JsonParseException("Could not instantiate " + simpleClassName, JsonLocation.NA, e);
-      }
-    }
-
-    private AbstractClientAnnotationExpression parseConstOrEnumExpression(final JsonParser jp) throws IOException {
-      AbstractClientAnnotationExpression result;
-      if (isAnnotationConstExprConstruct(jp)) {
-        result = parseAnnotationConstExprConstruct(jp);
-      } else {
-        result = jp.readValueAs(AbstractClientDynamicAnnotationExpression.class);
-      }
-      jp.nextToken();
-
-      return result;
-    }
-
-    @Override
-    protected AbstractClientDynamicAnnotationExpression doDeserialize(final JsonParser jp,
-        final DeserializationContext ctxt) throws IOException {
-
-      AbstractClientDynamicAnnotationExpression expression = null;
-
-      if ("Not".equals(jp.getCurrentName())) {
-        final ClientNot not = new ClientNot();
-
-        jp.nextToken();
-        //Search for field name
-        while (jp.getCurrentToken() != JsonToken.FIELD_NAME) {
-          jp.nextToken();
-        }
-        not.setExpression(jp.readValueAs(AbstractClientDynamicAnnotationExpression.class));
-        //Search for end object
-        while (jp.getCurrentToken() != JsonToken.END_OBJECT || !jp.getCurrentName().equals("Not")) {
-          jp.nextToken();
-        }
-
-        expression = not;
-      } else if (TwoParamsOpDynamicAnnotationExpression.Type.fromString(jp.getCurrentName()) != null) {
-        final ClientTwoParamsOpDynamicAnnotationExpression dynExprDoubleParamOp =
-                new ClientTwoParamsOpDynamicAnnotationExpression();
-        dynExprDoubleParamOp.setType(TwoParamsOpDynamicAnnotationExpression.Type.fromString(jp.getCurrentName()));
-
-        jp.nextToken();
-        //Search for field name
-        while (jp.getCurrentToken() != JsonToken.FIELD_NAME) {
-          jp.nextToken();
-        }
-        dynExprDoubleParamOp.setLeftExpression(jp.readValueAs(AbstractClientDynamicAnnotationExpression.class));
-        dynExprDoubleParamOp.setRightExpression(jp.readValueAs(AbstractClientDynamicAnnotationExpression.class));
-        //Search for expression
-        while (jp.getCurrentToken() != JsonToken.END_OBJECT || !jp.getCurrentName().equals(dynExprDoubleParamOp
-                .getType().name())) {
-          jp.nextToken();
-        }
-
-        expression = dynExprDoubleParamOp;
-      } else if (ArrayUtils.contains(EL_OR_ATTR, jp.getCurrentName())) {
-        final AbstractClientElementOrAttributeExpression elOrAttr =
-            getElementOrAttributeExpression(jp.getCurrentName());
-        elOrAttr.setValue(jp.nextTextValue());
-        expression = elOrAttr;
-      } else if (APPLY.equals(jp.getCurrentName())) {
-        jp.nextToken();
-        expression = jp.readValueAs(ClientApply.class);
-      } else if (CAST.equals(jp.getCurrentName())) {
-        jp.nextToken();
-        expression = jp.readValueAs(ClientCast.class);
-      } else if (COLLECTION.equals(jp.getCurrentName())) {
-        jp.nextToken();
-        expression = jp.readValueAs(ClientCollection.class);
-      } else if (IF.equals(jp.getCurrentName())) {
-        jp.nextToken();
-        jp.nextToken();
-
-        final ClientIf ifImpl = new ClientIf();
-        ifImpl.setGuard(parseConstOrEnumExpression(jp));
-        ifImpl.setThen(parseConstOrEnumExpression(jp));
-        ifImpl.setElse(parseConstOrEnumExpression(jp));
-
-        expression = ifImpl;
-      } else if (IS_OF.equals(jp.getCurrentName())) {
-        jp.nextToken();
-        expression = jp.readValueAs(ClientIsOf.class);
-      } else if (LABELED_ELEMENT.equals(jp.getCurrentName())) {
-        jp.nextToken();
-        expression = jp.readValueAs(ClientLabeledElement.class);
-      } else if (NULL.equals(jp.getCurrentName())) {
-        jp.nextToken();
-        expression = jp.readValueAs(ClientNull.class);
-      } else if (RECORD.equals(jp.getCurrentName())) {
-        jp.nextToken();
-        expression = jp.readValueAs(ClientRecord.class);
-      } else if (URL_REF.equals(jp.getCurrentName())) {
-        jp.nextToken();
-        expression = jp.readValueAs(ClientUrlRef.class);
-      }
-
-      return expression;
-    }
-  }
-}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/53b10f6b/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/AbstractClientEdmDeserializer.java
----------------------------------------------------------------------
diff --git a/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/AbstractClientEdmDeserializer.java b/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/AbstractClientEdmDeserializer.java
deleted file mode 100644
index 5447de6..0000000
--- a/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/AbstractClientEdmDeserializer.java
+++ /dev/null
@@ -1,60 +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.client.core.edm.xml;
-
-import java.io.IOException;
-
-import com.fasterxml.jackson.core.JsonParser;
-import com.fasterxml.jackson.databind.DeserializationContext;
-import com.fasterxml.jackson.databind.JsonDeserializer;
-import com.fasterxml.jackson.dataformat.xml.deser.FromXmlParser;
-
-abstract class AbstractClientEdmDeserializer<T> extends JsonDeserializer<T> {
-
-  protected boolean isAnnotationConstExprConstruct(final JsonParser jp) throws IOException {
-    return ClientConstantAnnotationExpression.Type.fromString(jp.getCurrentName()) != null;
-  }
-
-  protected ClientConstantAnnotationExpression parseAnnotationConstExprConstruct(final JsonParser jp)
-      throws IOException {
-    final ClientConstantAnnotationExpression constExpr = new ClientConstantAnnotationExpression();
-    constExpr.setType(ClientConstantAnnotationExpression.Type.fromString(jp.getCurrentName()));
-    constExpr.setValue(jp.nextTextValue());
-    return constExpr;
-  }
-
-  protected ClientReturnType parseReturnType(final JsonParser jp, final String elementName) throws IOException {
-    final ClientReturnType returnType;
-    if (elementName.equals(((FromXmlParser) jp).getStaxReader().getLocalName())) {
-      returnType = new ClientReturnType();
-      returnType.setType(jp.nextTextValue());
-    } else {
-      jp.nextToken();
-      returnType = jp.readValueAs(ClientReturnType.class);
-    }
-    return returnType;
-  }
-
-  protected abstract T doDeserialize(JsonParser jp, DeserializationContext ctxt) throws IOException;
-
-  @Override
-  public T deserialize(final JsonParser jp, final DeserializationContext ctxt) throws IOException {
-    return doDeserialize(jp, ctxt);
-  }
-}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/53b10f6b/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/AbstractClientElementOrAttributeExpression.java
----------------------------------------------------------------------
diff --git a/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/AbstractClientElementOrAttributeExpression.java b/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/AbstractClientElementOrAttributeExpression.java
deleted file mode 100644
index 7bcbf90..0000000
--- a/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/AbstractClientElementOrAttributeExpression.java
+++ /dev/null
@@ -1,37 +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.client.core.edm.xml;
-
-/**
- * Groups dynamic expressions that may be provided using element notation or attribute notation.
- */
-class AbstractClientElementOrAttributeExpression extends AbstractClientDynamicAnnotationExpression {
-
-  private static final long serialVersionUID = 1588336268773032932L;
-
-  private String value;
-
-  public String getValue() {
-    return value;
-  }
-
-  public void setValue(final String value) {
-    this.value = value;
-  }
-}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/53b10f6b/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/ClientAction.java
----------------------------------------------------------------------
diff --git a/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/ClientAction.java b/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/ClientAction.java
deleted file mode 100644
index af274c5..0000000
--- a/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/ClientAction.java
+++ /dev/null
@@ -1,68 +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.client.core.edm.xml;
-
-import com.fasterxml.jackson.core.JsonParser;
-import com.fasterxml.jackson.core.JsonToken;
-import com.fasterxml.jackson.databind.DeserializationContext;
-import org.apache.commons.lang3.BooleanUtils;
-import org.apache.olingo.commons.api.edm.provider.CsdlAction;
-
-import com.fasterxml.jackson.databind.annotation.JsonDeserialize;
-
-import java.io.IOException;
-
-@JsonDeserialize(using = ClientAction.ActionDeserializer.class)
-class ClientAction extends CsdlAction {
-
-  private static final long serialVersionUID = 5321541275349234088L;
-
-  static class ActionDeserializer extends AbstractClientEdmDeserializer<ClientAction> {
-
-    @Override
-    protected ClientAction doDeserialize(final JsonParser jp, final DeserializationContext ctxt)
-            throws IOException {
-
-      final ClientAction action = new ClientAction();
-
-      for (; jp.getCurrentToken() != JsonToken.END_OBJECT; jp.nextToken()) {
-        final JsonToken token = jp.getCurrentToken();
-        if (token == JsonToken.FIELD_NAME) {
-          if ("Name".equals(jp.getCurrentName())) {
-            action.setName(jp.nextTextValue());
-          } else if ("IsBound".equals(jp.getCurrentName())) {
-            action.setBound(BooleanUtils.toBoolean(jp.nextTextValue()));
-          } else if ("EntitySetPath".equals(jp.getCurrentName())) {
-            action.setEntitySetPath(jp.nextTextValue());
-          } else if ("Parameter".equals(jp.getCurrentName())) {
-            jp.nextToken();
-            action.getParameters().add(jp.readValueAs(ClientParameter.class));
-          } else if ("ReturnType".equals(jp.getCurrentName())) {
-            action.setReturnType(parseReturnType(jp, "Action"));
-          } else if ("Annotation".equals(jp.getCurrentName())) {
-            jp.nextToken();
-            action.getAnnotations().add(jp.readValueAs(ClientAnnotation.class));
-          }
-        }
-      }
-
-      return action;
-    }
-  }
-}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/53b10f6b/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/ClientActionImport.java
----------------------------------------------------------------------
diff --git a/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/ClientActionImport.java b/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/ClientActionImport.java
deleted file mode 100644
index 2419332..0000000
--- a/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/ClientActionImport.java
+++ /dev/null
@@ -1,58 +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.client.core.edm.xml;
-
-import com.fasterxml.jackson.core.JsonParser;
-import com.fasterxml.jackson.core.JsonToken;
-import com.fasterxml.jackson.databind.DeserializationContext;
-import com.fasterxml.jackson.databind.annotation.JsonDeserialize;
-import org.apache.olingo.commons.api.edm.provider.CsdlActionImport;
-
-import java.io.IOException;
-
-@JsonDeserialize(using = ClientActionImport.ActionImportDeserializer.class)
-class ClientActionImport extends CsdlActionImport {
-
-  private static final long serialVersionUID = 2971468441177647068L;
-
-  static class ActionImportDeserializer extends AbstractClientEdmDeserializer<ClientActionImport> {
-
-    @Override
-    protected ClientActionImport doDeserialize(final JsonParser jp, final DeserializationContext ctxt)
-            throws IOException {
-
-      final ClientActionImport action = new ClientActionImport();
-
-      for (; jp.getCurrentToken() != JsonToken.END_OBJECT; jp.nextToken()) {
-        final JsonToken token = jp.getCurrentToken();
-        if (token == JsonToken.FIELD_NAME) {
-          if ("Action".equals(jp.getCurrentName())) {
-            action.setAction(jp.nextTextValue());
-          } else if ("Name".equals(jp.getCurrentName())) {
-            action.setName(jp.nextTextValue());
-          } else if ("EntitySet".equals(jp.getCurrentName())) {
-            action.setEntitySet(jp.nextTextValue());
-          }
-        }
-      }
-
-      return action;
-    }
-  }
-}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/53b10f6b/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/ClientAnnotation.java
----------------------------------------------------------------------
diff --git a/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/ClientAnnotation.java b/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/ClientAnnotation.java
deleted file mode 100644
index a8a978a..0000000
--- a/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/ClientAnnotation.java
+++ /dev/null
@@ -1,66 +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.client.core.edm.xml;
-
-import java.io.IOException;
-
-import com.fasterxml.jackson.core.JsonParser;
-import com.fasterxml.jackson.core.JsonToken;
-import com.fasterxml.jackson.databind.DeserializationContext;
-import org.apache.olingo.commons.api.edm.provider.CsdlAnnotation;
-
-import com.fasterxml.jackson.databind.annotation.JsonDeserialize;
-
-@JsonDeserialize(using = ClientAnnotation.AnnotationDeserializer.class)
-class ClientAnnotation extends CsdlAnnotation {
-
-  private static final long serialVersionUID = 5464714417411058033L;
-
-  static class AnnotationDeserializer extends AbstractClientEdmDeserializer<CsdlAnnotation> {
-
-    @Override
-    protected CsdlAnnotation doDeserialize(final JsonParser jp, final DeserializationContext ctxt)
-            throws IOException {
-
-      final ClientAnnotation annotation = new ClientAnnotation();
-
-      for (; jp.getCurrentToken() != null && jp.getCurrentToken() != JsonToken.END_OBJECT; jp.nextToken()) {
-        final JsonToken token = jp.getCurrentToken();
-        if (token == JsonToken.FIELD_NAME) {
-          if ("Term".equals(jp.getCurrentName())) {
-            annotation.setTerm(jp.nextTextValue());
-          } else if ("Qualifier".equals(jp.getCurrentName())) {
-            annotation.setQualifier(jp.nextTextValue());
-          } else if ("Annotation".equals(jp.getCurrentName())) {
-            jp.nextToken();
-            annotation.getAnnotations().add(jp.readValueAs(ClientAnnotation.class));
-          } else if (isAnnotationConstExprConstruct(jp)) {
-            // Constant Expressions
-            annotation.setExpression(parseAnnotationConstExprConstruct(jp));
-          } else {
-            // Dynamic Expressions
-            annotation.setExpression(jp.readValueAs(AbstractClientDynamicAnnotationExpression.class));
-          }
-        }
-      }
-
-      return annotation;
-    }
-  }
-}


[35/50] [abbrv] olingo-odata4 git commit: [OLINGO-564] Renamed 'OData*' to 'Client*' classes

Posted by mi...@apache.org.
http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/c37d4da5/fit/src/test/java/org/apache/olingo/fit/v4/BoundOperationInvokeTestITCase.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/v4/BoundOperationInvokeTestITCase.java b/fit/src/test/java/org/apache/olingo/fit/v4/BoundOperationInvokeTestITCase.java
index 0e456ba..b48902f 100644
--- a/fit/src/test/java/org/apache/olingo/fit/v4/BoundOperationInvokeTestITCase.java
+++ b/fit/src/test/java/org/apache/olingo/fit/v4/BoundOperationInvokeTestITCase.java
@@ -1,18 +1,18 @@
-/* 
+/*
  * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
+ * or more contributor license agreements. See the NOTICE file
  * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
+ * 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
- *
+ * 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
+ * KIND, either express or implied. See the License for the
  * specific language governing permissions and limitations
  * under the License.
  */
@@ -21,16 +21,16 @@ package org.apache.olingo.fit.v4;
 import org.apache.olingo.client.api.communication.request.invoke.ODataInvokeRequest;
 import org.apache.olingo.client.api.communication.request.retrieve.ODataEntityRequest;
 import org.apache.olingo.client.api.uri.URIBuilder;
-import org.apache.olingo.commons.api.domain.ODataCollectionValue;
-import org.apache.olingo.commons.api.domain.ODataComplexValue;
-import org.apache.olingo.commons.api.domain.ODataEntity;
-import org.apache.olingo.commons.api.domain.ODataEntitySet;
-import org.apache.olingo.commons.api.domain.ODataEnumValue;
-import org.apache.olingo.commons.api.domain.ODataOperation;
-import org.apache.olingo.commons.api.domain.ODataPrimitiveValue;
-import org.apache.olingo.commons.api.domain.ODataProperty;
-import org.apache.olingo.commons.api.domain.ODataSingleton;
-import org.apache.olingo.commons.api.domain.ODataValue;
+import org.apache.olingo.commons.api.domain.ClientCollectionValue;
+import org.apache.olingo.commons.api.domain.ClientComplexValue;
+import org.apache.olingo.commons.api.domain.ClientEntity;
+import org.apache.olingo.commons.api.domain.ClientEntitySet;
+import org.apache.olingo.commons.api.domain.ClientEnumValue;
+import org.apache.olingo.commons.api.domain.ClientOperation;
+import org.apache.olingo.commons.api.domain.ClientPrimitiveValue;
+import org.apache.olingo.commons.api.domain.ClientProperty;
+import org.apache.olingo.commons.api.domain.ClientSingleton;
+import org.apache.olingo.commons.api.domain.ClientValue;
 import org.apache.olingo.commons.api.edm.EdmPrimitiveTypeException;
 import org.apache.olingo.commons.api.edm.EdmPrimitiveTypeKind;
 import org.apache.olingo.commons.api.edm.FullQualifiedName;
@@ -53,40 +53,40 @@ public class BoundOperationInvokeTestITCase extends AbstractTestITCase {
   private void functions(final ODataFormat format) throws EdmPrimitiveTypeException {
     // GetEmployeesCount
     URIBuilder builder = client.newURIBuilder(testStaticServiceRootURL).appendSingletonSegment("Company");
-    final ODataEntityRequest<ODataSingleton> singletonReq =
+    final ODataEntityRequest<ClientSingleton> singletonReq =
         client.getRetrieveRequestFactory().getSingletonRequest(builder.build());
     singletonReq.setFormat(format);
-    final ODataSingleton company = singletonReq.execute().getBody();
+    final ClientSingleton company = singletonReq.execute().getBody();
     assertNotNull(company);
 
-    ODataOperation boundOp = company.getOperation("Microsoft.Test.OData.Services.ODataWCFService.GetEmployeesCount");
+    ClientOperation boundOp = company.getOperation("Microsoft.Test.OData.Services.ODataWCFService.GetEmployeesCount");
     assertNotNull(boundOp);
 
-    final ODataInvokeRequest<ODataProperty> getEmployeesCountReq =
-        client.getInvokeRequestFactory().getFunctionInvokeRequest(boundOp.getTarget(), ODataProperty.class);
+    final ODataInvokeRequest<ClientProperty> getEmployeesCountReq =
+        client.getInvokeRequestFactory().getFunctionInvokeRequest(boundOp.getTarget(), ClientProperty.class);
     getEmployeesCountReq.setFormat(format);
-    final ODataProperty getEmployeesCountRes = getEmployeesCountReq.execute().getBody();
+    final ClientProperty getEmployeesCountRes = getEmployeesCountReq.execute().getBody();
     assertNotNull(getEmployeesCountRes);
     assertTrue(getEmployeesCountRes.hasPrimitiveValue());
 
     // GetProductDetails
     builder = client.newURIBuilder(testStaticServiceRootURL).
         appendEntitySetSegment("Products").appendKeySegment(5);
-    ODataEntityRequest<ODataEntity> entityReq = client.getRetrieveRequestFactory().
+    ODataEntityRequest<ClientEntity> entityReq = client.getRetrieveRequestFactory().
         getEntityRequest(builder.build());
     entityReq.setFormat(format);
-    ODataEntity entity = entityReq.execute().getBody();
+    ClientEntity entity = entityReq.execute().getBody();
     assertNotNull(entity);
 
     boundOp = entity.getOperation("Microsoft.Test.OData.Services.ODataWCFService.GetProductDetails");
     assertNotNull(boundOp);
 
-    final ODataPrimitiveValue count = client.getObjectFactory().newPrimitiveValueBuilder().buildInt32(1);
-    final ODataInvokeRequest<ODataEntitySet> getProductDetailsReq =
-        client.getInvokeRequestFactory().getFunctionInvokeRequest(boundOp.getTarget(), ODataEntitySet.class,
-            Collections.<String, ODataValue> singletonMap("count", count));
+    final ClientPrimitiveValue count = client.getObjectFactory().newPrimitiveValueBuilder().buildInt32(1);
+    final ODataInvokeRequest<ClientEntitySet> getProductDetailsReq =
+        client.getInvokeRequestFactory().getFunctionInvokeRequest(boundOp.getTarget(), ClientEntitySet.class,
+            Collections.<String, ClientValue> singletonMap("count", count));
     getProductDetailsReq.setFormat(format);
-    final ODataEntitySet getProductDetailsRes = getProductDetailsReq.execute().getBody();
+    final ClientEntitySet getProductDetailsRes = getProductDetailsReq.execute().getBody();
     assertNotNull(getProductDetailsRes);
     assertEquals(1, getProductDetailsRes.getEntities().size());
 
@@ -104,10 +104,10 @@ public class BoundOperationInvokeTestITCase extends AbstractTestITCase {
     boundOp = entity.getOperation("Microsoft.Test.OData.Services.ODataWCFService.GetRelatedProduct");
     assertNotNull(boundOp);
 
-    final ODataInvokeRequest<ODataEntity> getRelatedProductReq =
-        client.getInvokeRequestFactory().getFunctionInvokeRequest(boundOp.getTarget(), ODataEntity.class);
+    final ODataInvokeRequest<ClientEntity> getRelatedProductReq =
+        client.getInvokeRequestFactory().getFunctionInvokeRequest(boundOp.getTarget(), ClientEntity.class);
     getRelatedProductReq.setFormat(format);
-    final ODataEntity getRelatedProductRes = getRelatedProductReq.execute().getBody();
+    final ClientEntity getRelatedProductRes = getRelatedProductReq.execute().getBody();
     assertNotNull(getRelatedProductRes);
     assertEquals("Microsoft.Test.OData.Services.ODataWCFService.Product",
         getRelatedProductRes.getTypeName().toString());
@@ -124,10 +124,10 @@ public class BoundOperationInvokeTestITCase extends AbstractTestITCase {
     boundOp = entity.getOperation("Microsoft.Test.OData.Services.ODataWCFService.GetDefaultPI");
     assertNotNull(boundOp);
 
-    final ODataInvokeRequest<ODataEntity> getDefaultPIReq =
-        client.getInvokeRequestFactory().getFunctionInvokeRequest(boundOp.getTarget(), ODataEntity.class);
+    final ODataInvokeRequest<ClientEntity> getDefaultPIReq =
+        client.getInvokeRequestFactory().getFunctionInvokeRequest(boundOp.getTarget(), ClientEntity.class);
     getDefaultPIReq.setFormat(format);
-    final ODataEntity getDefaultPIRes = getDefaultPIReq.execute().getBody();
+    final ClientEntity getDefaultPIRes = getDefaultPIReq.execute().getBody();
     assertNotNull(getDefaultPIRes);
     assertEquals("Microsoft.Test.OData.Services.ODataWCFService.PaymentInstrument",
         getDefaultPIRes.getTypeName().toString());
@@ -138,10 +138,10 @@ public class BoundOperationInvokeTestITCase extends AbstractTestITCase {
     boundOp = entity.getOperation("Microsoft.Test.OData.Services.ODataWCFService.GetAccountInfo");
     assertNotNull(boundOp);
 
-    final ODataInvokeRequest<ODataProperty> getAccountInfoReq =
-        client.getInvokeRequestFactory().getFunctionInvokeRequest(boundOp.getTarget(), ODataProperty.class);
+    final ODataInvokeRequest<ClientProperty> getAccountInfoReq =
+        client.getInvokeRequestFactory().getFunctionInvokeRequest(boundOp.getTarget(), ClientProperty.class);
     getAccountInfoReq.setFormat(format);
-    final ODataProperty getAccountInfoRes = getAccountInfoReq.execute().getBody();
+    final ClientProperty getAccountInfoRes = getAccountInfoReq.execute().getBody();
     assertNotNull(getAccountInfoRes);
     assertTrue(getAccountInfoRes.hasComplexValue());
     assertEquals("Microsoft.Test.OData.Services.ODataWCFService.AccountInfo",
@@ -158,12 +158,12 @@ public class BoundOperationInvokeTestITCase extends AbstractTestITCase {
     boundOp = entity.getOperation("Microsoft.Test.OData.Services.ODataWCFService.GetActualAmount");
     assertNotNull(boundOp);
 
-    final ODataPrimitiveValue bonusRate = client.getObjectFactory().newPrimitiveValueBuilder().buildDouble(1.1);
-    final ODataInvokeRequest<ODataProperty> getActualAmountReq =
-        client.getInvokeRequestFactory().getFunctionInvokeRequest(boundOp.getTarget(), ODataProperty.class,
-            Collections.<String, ODataValue> singletonMap("bonusRate", bonusRate));
+    final ClientPrimitiveValue bonusRate = client.getObjectFactory().newPrimitiveValueBuilder().buildDouble(1.1);
+    final ODataInvokeRequest<ClientProperty> getActualAmountReq =
+        client.getInvokeRequestFactory().getFunctionInvokeRequest(boundOp.getTarget(), ClientProperty.class,
+            Collections.<String, ClientValue> singletonMap("bonusRate", bonusRate));
     getActualAmountReq.setFormat(format);
-    final ODataProperty getActualAmountRes = getActualAmountReq.execute().getBody();
+    final ClientProperty getActualAmountRes = getActualAmountReq.execute().getBody();
     assertNotNull(getActualAmountRes);
     assertEquals(41.79, getActualAmountRes.getPrimitiveValue().toCastValue(Double.class), 0);
   }
@@ -181,26 +181,26 @@ public class BoundOperationInvokeTestITCase extends AbstractTestITCase {
   @Test
   public void edmEnabledFunctions() throws EdmPrimitiveTypeException {
     // GetEmployeesCount
-    final ODataInvokeRequest<ODataProperty> getEmployeesCountReq =
+    final ODataInvokeRequest<ClientProperty> getEmployeesCountReq =
         edmClient.getInvokeRequestFactory().getBoundFunctionInvokeRequest(
             edmClient.newURIBuilder().appendSingletonSegment("Company").build(),
             new FullQualifiedName(("Microsoft.Test.OData.Services.ODataWCFService.GetEmployeesCount")),
             new FullQualifiedName("Microsoft.Test.OData.Services.ODataWCFService.Company"),
             false);
-    final ODataProperty getEmployeesCountRes = getEmployeesCountReq.execute().getBody();
+    final ClientProperty getEmployeesCountRes = getEmployeesCountReq.execute().getBody();
     assertNotNull(getEmployeesCountRes);
     assertTrue(getEmployeesCountRes.hasPrimitiveValue());
 
     // GetProductDetails
-    final ODataPrimitiveValue count = edmClient.getObjectFactory().newPrimitiveValueBuilder().buildInt32(1);
-    final ODataInvokeRequest<ODataEntitySet> getProductDetailsReq =
+    final ClientPrimitiveValue count = edmClient.getObjectFactory().newPrimitiveValueBuilder().buildInt32(1);
+    final ODataInvokeRequest<ClientEntitySet> getProductDetailsReq =
         edmClient.getInvokeRequestFactory().getBoundFunctionInvokeRequest(
             edmClient.newURIBuilder().appendEntitySetSegment("Products").appendKeySegment(5).build(),
             new FullQualifiedName("Microsoft.Test.OData.Services.ODataWCFService.GetProductDetails"),
             new FullQualifiedName("Microsoft.Test.OData.Services.ODataWCFService.Product"),
             false,
-            Collections.<String, ODataValue> singletonMap("count", count));
-    final ODataEntitySet getProductDetailsRes = getProductDetailsReq.execute().getBody();
+            Collections.<String, ClientValue> singletonMap("count", count));
+    final ClientEntitySet getProductDetailsRes = getProductDetailsReq.execute().getBody();
     assertNotNull(getProductDetailsRes);
     assertEquals(1, getProductDetailsRes.getEntities().size());
 
@@ -210,26 +210,26 @@ public class BoundOperationInvokeTestITCase extends AbstractTestITCase {
     keyMap.put("ProductDetailID", 1);
     URIBuilder builder = edmClient.newURIBuilder().appendEntitySetSegment("ProductDetails").appendKeySegment(keyMap);
 
-    final ODataInvokeRequest<ODataEntity> getRelatedProductReq =
+    final ODataInvokeRequest<ClientEntity> getRelatedProductReq =
         edmClient.getInvokeRequestFactory().getBoundFunctionInvokeRequest(
             builder.build(),
             new FullQualifiedName("Microsoft.Test.OData.Services.ODataWCFService.GetRelatedProduct"),
             new FullQualifiedName("Microsoft.Test.OData.Services.ODataWCFService.ProductDetail"),
             false);
-    final ODataEntity getRelatedProductRes = getRelatedProductReq.execute().getBody();
+    final ClientEntity getRelatedProductRes = getRelatedProductReq.execute().getBody();
     assertNotNull(getRelatedProductRes);
     assertEquals("Microsoft.Test.OData.Services.ODataWCFService.Product",
         getRelatedProductRes.getTypeName().toString());
     assertEquals(6, getRelatedProductRes.getProperty("ProductID").getPrimitiveValue().toCastValue(Integer.class), 0);
 
     // GetDefaultPI
-    final ODataInvokeRequest<ODataEntity> getDefaultPIReq =
+    final ODataInvokeRequest<ClientEntity> getDefaultPIReq =
         edmClient.getInvokeRequestFactory().getBoundFunctionInvokeRequest(
             edmClient.newURIBuilder().appendEntitySetSegment("Accounts").appendKeySegment(102).build(),
             new FullQualifiedName("Microsoft.Test.OData.Services.ODataWCFService.GetDefaultPI"),
             new FullQualifiedName("Microsoft.Test.OData.Services.ODataWCFService.Account"),
             false);
-    final ODataEntity getDefaultPIRes = getDefaultPIReq.execute().getBody();
+    final ClientEntity getDefaultPIRes = getDefaultPIReq.execute().getBody();
     assertNotNull(getDefaultPIRes);
     assertEquals("Microsoft.Test.OData.Services.ODataWCFService.PaymentInstrument",
         getDefaultPIRes.getTypeName().toString());
@@ -237,29 +237,29 @@ public class BoundOperationInvokeTestITCase extends AbstractTestITCase {
         getDefaultPIRes.getProperty("PaymentInstrumentID").getPrimitiveValue().toCastValue(Integer.class), 0);
 
     // GetAccountInfo
-    final ODataInvokeRequest<ODataProperty> getAccountInfoReq =
+    final ODataInvokeRequest<ClientProperty> getAccountInfoReq =
         edmClient.getInvokeRequestFactory().getBoundFunctionInvokeRequest(
             edmClient.newURIBuilder().appendEntitySetSegment("Accounts").appendKeySegment(102).build(),
             new FullQualifiedName("Microsoft.Test.OData.Services.ODataWCFService.GetAccountInfo"),
             new FullQualifiedName("Microsoft.Test.OData.Services.ODataWCFService.Account"),
             false);
-    final ODataProperty getAccountInfoRes = getAccountInfoReq.execute().getBody();
+    final ClientProperty getAccountInfoRes = getAccountInfoReq.execute().getBody();
     assertNotNull(getAccountInfoRes);
     assertTrue(getAccountInfoRes.hasComplexValue());
     assertEquals("Microsoft.Test.OData.Services.ODataWCFService.AccountInfo",
         getAccountInfoRes.getComplexValue().getTypeName());
 
     // GetActualAmount
-    final ODataPrimitiveValue bonusRate = edmClient.getObjectFactory().newPrimitiveValueBuilder().buildDouble(1.1);
-    final ODataInvokeRequest<ODataProperty> getActualAmountReq =
+    final ClientPrimitiveValue bonusRate = edmClient.getObjectFactory().newPrimitiveValueBuilder().buildDouble(1.1);
+    final ODataInvokeRequest<ClientProperty> getActualAmountReq =
         edmClient.getInvokeRequestFactory().getBoundFunctionInvokeRequest(
             edmClient.newURIBuilder().appendEntitySetSegment("Accounts").appendKeySegment(102).
                 appendNavigationSegment("MyGiftCard").build(),
             new FullQualifiedName("Microsoft.Test.OData.Services.ODataWCFService.GetActualAmount"),
             new FullQualifiedName("Microsoft.Test.OData.Services.ODataWCFService.GiftCard"),
             false,
-            Collections.<String, ODataValue> singletonMap("bonusRate", bonusRate));
-    final ODataProperty getActualAmountRes = getActualAmountReq.execute().getBody();
+            Collections.<String, ClientValue> singletonMap("bonusRate", bonusRate));
+    final ClientProperty getActualAmountRes = getActualAmountReq.execute().getBody();
     assertNotNull(getActualAmountRes);
     assertEquals(41.79, getActualAmountRes.getPrimitiveValue().toCastValue(Double.class), 0);
   }
@@ -267,22 +267,22 @@ public class BoundOperationInvokeTestITCase extends AbstractTestITCase {
   private void actions(final ODataFormat format) throws EdmPrimitiveTypeException {
     // IncreaseRevenue
     URIBuilder builder = client.newURIBuilder(testStaticServiceRootURL).appendSingletonSegment("Company");
-    ODataEntityRequest<ODataEntity> entityReq =
+    ODataEntityRequest<ClientEntity> entityReq =
         client.getRetrieveRequestFactory().getEntityRequest(builder.build());
     entityReq.setFormat(format);
-    ODataEntity entity = entityReq.execute().getBody();
+    ClientEntity entity = entityReq.execute().getBody();
     assertNotNull(entity);
 
-    ODataOperation boundOp = entity.getOperation("Microsoft.Test.OData.Services.ODataWCFService.IncreaseRevenue");
+    ClientOperation boundOp = entity.getOperation("Microsoft.Test.OData.Services.ODataWCFService.IncreaseRevenue");
     assertNotNull(boundOp);
 
-    final ODataPrimitiveValue increaseValue =
+    final ClientPrimitiveValue increaseValue =
         client.getObjectFactory().newPrimitiveValueBuilder().buildInt64(12L);
-    final ODataInvokeRequest<ODataProperty> increaseRevenueReq =
-        client.getInvokeRequestFactory().getActionInvokeRequest(boundOp.getTarget(), ODataProperty.class,
-            Collections.<String, ODataValue> singletonMap("IncreaseValue", increaseValue));
+    final ODataInvokeRequest<ClientProperty> increaseRevenueReq =
+        client.getInvokeRequestFactory().getActionInvokeRequest(boundOp.getTarget(), ClientProperty.class,
+            Collections.<String, ClientValue> singletonMap("IncreaseValue", increaseValue));
     increaseRevenueReq.setFormat(format);
-    final ODataProperty increaseRevenueRes = increaseRevenueReq.execute().getBody();
+    final ClientProperty increaseRevenueRes = increaseRevenueReq.execute().getBody();
     assertNotNull(increaseRevenueRes);
     assertTrue(increaseRevenueRes.hasPrimitiveValue());
 
@@ -297,13 +297,13 @@ public class BoundOperationInvokeTestITCase extends AbstractTestITCase {
     boundOp = entity.getOperation("Microsoft.Test.OData.Services.ODataWCFService.AddAccessRight");
     assertNotNull(boundOp);
 
-    final ODataEnumValue accessRight = client.getObjectFactory().
+    final ClientEnumValue accessRight = client.getObjectFactory().
         newEnumValue("Microsoft.Test.OData.Services.ODataWCFService.AccessLevel", "Execute");
-    final ODataInvokeRequest<ODataProperty> getProductDetailsReq =
-        client.getInvokeRequestFactory().getActionInvokeRequest(boundOp.getTarget(), ODataProperty.class,
-            Collections.<String, ODataValue> singletonMap("accessRight", accessRight));
+    final ODataInvokeRequest<ClientProperty> getProductDetailsReq =
+        client.getInvokeRequestFactory().getActionInvokeRequest(boundOp.getTarget(), ClientProperty.class,
+            Collections.<String, ClientValue> singletonMap("accessRight", accessRight));
     getProductDetailsReq.setFormat(format);
-    final ODataProperty getProductDetailsRes = getProductDetailsReq.execute().getBody();
+    final ClientProperty getProductDetailsRes = getProductDetailsReq.execute().getBody();
     assertNotNull(getProductDetailsRes);
     assertTrue(getProductDetailsRes.hasEnumValue());
 
@@ -318,10 +318,10 @@ public class BoundOperationInvokeTestITCase extends AbstractTestITCase {
     boundOp = entity.getOperation("Microsoft.Test.OData.Services.ODataWCFService.ResetAddress");
     assertNotNull(boundOp);
 
-    final ODataCollectionValue<org.apache.olingo.commons.api.domain.ODataValue> addresses =
+    final ClientCollectionValue<ClientValue> addresses =
         client.getObjectFactory().
             newCollectionValue("Collection(Microsoft.Test.OData.Services.ODataWCFService.Address)");
-    final ODataComplexValue address = client.getObjectFactory().
+    final ClientComplexValue address = client.getObjectFactory().
         newComplexValue("Microsoft.Test.OData.Services.ODataWCFService.Address");
     address.add(client.getObjectFactory().newPrimitiveProperty("Street",
         client.getObjectFactory().newPrimitiveValueBuilder().buildString("Piazza La Bomba E Scappa")));
@@ -330,14 +330,14 @@ public class BoundOperationInvokeTestITCase extends AbstractTestITCase {
     address.add(client.getObjectFactory().newPrimitiveProperty("PostalCode",
         client.getObjectFactory().newPrimitiveValueBuilder().buildString("66010")));
     addresses.add(address);
-    final ODataPrimitiveValue index = client.getObjectFactory().newPrimitiveValueBuilder().buildInt32(0);
-    final Map<String, ODataValue> params = new LinkedHashMap<String, ODataValue>(2);
+    final ClientPrimitiveValue index = client.getObjectFactory().newPrimitiveValueBuilder().buildInt32(0);
+    final Map<String, ClientValue> params = new LinkedHashMap<String, ClientValue>(2);
     params.put("addresses", addresses);
     params.put("index", index);
-    final ODataInvokeRequest<ODataEntity> resetAddressReq =
-        client.getInvokeRequestFactory().getActionInvokeRequest(boundOp.getTarget(), ODataEntity.class, params);
+    final ODataInvokeRequest<ClientEntity> resetAddressReq =
+        client.getInvokeRequestFactory().getActionInvokeRequest(boundOp.getTarget(), ClientEntity.class, params);
     resetAddressReq.setFormat(format);
-    final ODataEntity resetAddressRes = resetAddressReq.execute().getBody();
+    final ClientEntity resetAddressRes = resetAddressReq.execute().getBody();
     assertNotNull(resetAddressRes);
     assertEquals(2, resetAddressRes.getProperty("PersonID").getPrimitiveValue().toCastValue(Integer.class), 0);
 
@@ -354,13 +354,13 @@ public class BoundOperationInvokeTestITCase extends AbstractTestITCase {
 
     Calendar dateTime = Calendar.getInstance(TimeZone.getTimeZone("GMT"));
     dateTime.set(2014, 3, 9, 0, 0, 0);
-    final ODataPrimitiveValue newDate = client.getObjectFactory().newPrimitiveValueBuilder().
+    final ClientPrimitiveValue newDate = client.getObjectFactory().newPrimitiveValueBuilder().
         setType(EdmPrimitiveTypeKind.DateTimeOffset).setValue(dateTime).build();
-    final ODataInvokeRequest<ODataEntity> getDefaultPIReq =
-        client.getInvokeRequestFactory().getActionInvokeRequest(boundOp.getTarget(), ODataEntity.class,
-            Collections.<String, ODataValue> singletonMap("newDate", newDate));
+    final ODataInvokeRequest<ClientEntity> getDefaultPIReq =
+        client.getInvokeRequestFactory().getActionInvokeRequest(boundOp.getTarget(), ClientEntity.class,
+            Collections.<String, ClientValue> singletonMap("newDate", newDate));
     getDefaultPIReq.setFormat(format);
-    final ODataEntity getDefaultPIRes = getDefaultPIReq.execute().getBody();
+    final ClientEntity getDefaultPIRes = getDefaultPIReq.execute().getBody();
     assertNotNull(getDefaultPIRes);
     assertEquals("Microsoft.Test.OData.Services.ODataWCFService.PaymentInstrument",
         getDefaultPIRes.getTypeName().toString());
@@ -381,37 +381,37 @@ public class BoundOperationInvokeTestITCase extends AbstractTestITCase {
   @Test
   public void edmEnabledActions() throws EdmPrimitiveTypeException {
     // IncreaseRevenue
-    final ODataPrimitiveValue increaseValue = edmClient.getObjectFactory().newPrimitiveValueBuilder().buildInt64(12L);
-    final ODataInvokeRequest<ODataProperty> increaseRevenueReq =
+    final ClientPrimitiveValue increaseValue = edmClient.getObjectFactory().newPrimitiveValueBuilder().buildInt64(12L);
+    final ODataInvokeRequest<ClientProperty> increaseRevenueReq =
         edmClient.getInvokeRequestFactory().getBoundActionInvokeRequest(
             edmClient.newURIBuilder().appendSingletonSegment("Company").build(),
             new FullQualifiedName("Microsoft.Test.OData.Services.ODataWCFService.IncreaseRevenue"),
             new FullQualifiedName("Microsoft.Test.OData.Services.ODataWCFService.Company"),
             false,
-            Collections.<String, ODataValue> singletonMap("IncreaseValue", increaseValue));
-    final ODataProperty increaseRevenueRes = increaseRevenueReq.execute().getBody();
+            Collections.<String, ClientValue> singletonMap("IncreaseValue", increaseValue));
+    final ClientProperty increaseRevenueRes = increaseRevenueReq.execute().getBody();
     assertNotNull(increaseRevenueRes);
     assertTrue(increaseRevenueRes.hasPrimitiveValue());
 
     // AddAccessRight
-    final ODataEnumValue accessRight = edmClient.getObjectFactory().
+    final ClientEnumValue accessRight = edmClient.getObjectFactory().
         newEnumValue("Microsoft.Test.OData.Services.ODataWCFService.AccessLevel", "Execute");
-    final ODataInvokeRequest<ODataProperty> getProductDetailsReq =
+    final ODataInvokeRequest<ClientProperty> getProductDetailsReq =
         edmClient.getInvokeRequestFactory().getBoundActionInvokeRequest(
             edmClient.newURIBuilder().appendEntitySetSegment("Products").appendKeySegment(5).build(),
             new FullQualifiedName("Microsoft.Test.OData.Services.ODataWCFService.AddAccessRight"),
             new FullQualifiedName("Microsoft.Test.OData.Services.ODataWCFService.Product"),
             false,
-            Collections.<String, ODataValue> singletonMap("accessRight", accessRight));
-    final ODataProperty getProductDetailsRes = getProductDetailsReq.execute().getBody();
+            Collections.<String, ClientValue> singletonMap("accessRight", accessRight));
+    final ClientProperty getProductDetailsRes = getProductDetailsReq.execute().getBody();
     assertNotNull(getProductDetailsRes);
     assertTrue(getProductDetailsRes.hasEnumValue());
 
     // ResetAddress
-    final ODataCollectionValue<org.apache.olingo.commons.api.domain.ODataValue> addresses =
+    final ClientCollectionValue<ClientValue> addresses =
         edmClient.getObjectFactory().
             newCollectionValue("Collection(Microsoft.Test.OData.Services.ODataWCFService.Address)");
-    final ODataComplexValue address = edmClient.getObjectFactory().
+    final ClientComplexValue address = edmClient.getObjectFactory().
         newComplexValue("Microsoft.Test.OData.Services.ODataWCFService.Address");
     address.add(edmClient.getObjectFactory().newPrimitiveProperty("Street",
         edmClient.getObjectFactory().newPrimitiveValueBuilder().buildString("Piazza La Bomba E Scappa")));
@@ -420,36 +420,36 @@ public class BoundOperationInvokeTestITCase extends AbstractTestITCase {
     address.add(edmClient.getObjectFactory().newPrimitiveProperty("PostalCode",
         edmClient.getObjectFactory().newPrimitiveValueBuilder().buildString("66010")));
     addresses.add(address);
-    final ODataPrimitiveValue index = edmClient.getObjectFactory().newPrimitiveValueBuilder().buildInt32(0);
-    final Map<String, ODataValue> params = new LinkedHashMap<String, ODataValue>(2);
+    final ClientPrimitiveValue index = edmClient.getObjectFactory().newPrimitiveValueBuilder().buildInt32(0);
+    final Map<String, ClientValue> params = new LinkedHashMap<String, ClientValue>(2);
     params.put("addresses", addresses);
     params.put("index", index);
     final Map<String, Object> keys = new HashMap<String, Object>();
     keys.put("PersonID", 2);
-    final ODataInvokeRequest<ODataEntity> resetAddressReq =
+    final ODataInvokeRequest<ClientEntity> resetAddressReq =
         edmClient.getInvokeRequestFactory().getBoundActionInvokeRequest(
             edmClient.newURIBuilder().appendEntitySetSegment("Customers").appendKeySegment(keys).build(),
             new FullQualifiedName("Microsoft.Test.OData.Services.ODataWCFService.ResetAddress"),
             new FullQualifiedName("Microsoft.Test.OData.Services.ODataWCFService.Person"),
             false,
             params);
-    final ODataEntity resetAddressRes = resetAddressReq.execute().getBody();
+    final ClientEntity resetAddressRes = resetAddressReq.execute().getBody();
     assertNotNull(resetAddressRes);
     assertEquals(2, resetAddressRes.getProperty("PersonID").getPrimitiveValue().toCastValue(Integer.class), 0);
 
     // RefreshDefaultPI
     Calendar dateTime = Calendar.getInstance(TimeZone.getTimeZone("GMT"));
     dateTime.set(2014, 3, 9, 0, 0, 0);
-    final ODataPrimitiveValue newDate = edmClient.getObjectFactory().newPrimitiveValueBuilder().
+    final ClientPrimitiveValue newDate = edmClient.getObjectFactory().newPrimitiveValueBuilder().
         setType(EdmPrimitiveTypeKind.DateTimeOffset).setValue(dateTime).build();
-    final ODataInvokeRequest<ODataEntity> getDefaultPIReq =
+    final ODataInvokeRequest<ClientEntity> getDefaultPIReq =
         edmClient.getInvokeRequestFactory().getBoundActionInvokeRequest(
             edmClient.newURIBuilder().appendEntitySetSegment("Accounts").appendKeySegment(102).build(),
             new FullQualifiedName("Microsoft.Test.OData.Services.ODataWCFService.RefreshDefaultPI"),
             new FullQualifiedName("Microsoft.Test.OData.Services.ODataWCFService.Account"),
             false,
-            Collections.<String, ODataValue> singletonMap("newDate", newDate));
-    final ODataEntity getDefaultPIRes = getDefaultPIReq.execute().getBody();
+            Collections.<String, ClientValue> singletonMap("newDate", newDate));
+    final ClientEntity getDefaultPIRes = getDefaultPIReq.execute().getBody();
     assertNotNull(getDefaultPIRes);
     assertEquals("Microsoft.Test.OData.Services.ODataWCFService.PaymentInstrument",
         getDefaultPIRes.getTypeName().toString());

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/c37d4da5/fit/src/test/java/org/apache/olingo/fit/v4/ConformanceTestITCase.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/v4/ConformanceTestITCase.java b/fit/src/test/java/org/apache/olingo/fit/v4/ConformanceTestITCase.java
index 93b52ca..06e3552 100644
--- a/fit/src/test/java/org/apache/olingo/fit/v4/ConformanceTestITCase.java
+++ b/fit/src/test/java/org/apache/olingo/fit/v4/ConformanceTestITCase.java
@@ -1,18 +1,18 @@
-/* 
+/*
  * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
+ * or more contributor license agreements. See the NOTICE file
  * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
+ * 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
- *
+ * 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
+ * KIND, either express or implied. See the License for the
  * specific language governing permissions and limitations
  * under the License.
  */
@@ -46,16 +46,16 @@ import org.apache.olingo.client.api.uri.URIBuilder;
 import org.apache.olingo.client.core.http.BasicAuthHttpClientFactory;
 import org.apache.olingo.client.core.http.DefaultHttpClientFactory;
 import org.apache.olingo.client.core.uri.URIUtils;
-import org.apache.olingo.commons.api.domain.ODataCollectionValue;
-import org.apache.olingo.commons.api.domain.ODataDelta;
-import org.apache.olingo.commons.api.domain.ODataEntity;
-import org.apache.olingo.commons.api.domain.ODataEntitySet;
-import org.apache.olingo.commons.api.domain.ODataProperty;
-import org.apache.olingo.commons.api.domain.ODataValue;
+import org.apache.olingo.commons.api.domain.ClientCollectionValue;
+import org.apache.olingo.commons.api.domain.ClientDelta;
+import org.apache.olingo.commons.api.domain.ClientEntity;
+import org.apache.olingo.commons.api.domain.ClientEntitySet;
+import org.apache.olingo.commons.api.domain.ClientProperty;
+import org.apache.olingo.commons.api.domain.ClientValue;
 import org.apache.olingo.commons.api.edm.EdmPrimitiveTypeKind;
 import org.apache.olingo.commons.api.edm.FullQualifiedName;
 import org.apache.olingo.commons.api.format.ODataFormat;
-import org.apache.olingo.commons.core.domain.ODataEntityImpl;
+import org.apache.olingo.commons.core.domain.ClientEntityImpl;
 import org.junit.Test;
 
 /**
@@ -73,7 +73,7 @@ public class ConformanceTestITCase extends AbstractTestITCase {
     final URIBuilder uriBuilder = client.newURIBuilder(testStaticServiceRootURL).
         appendEntitySetSegment("Customers").appendKeySegment(1).expand("Company");
 
-    final ODataEntityRequest<ODataEntity> req =
+    final ODataEntityRequest<ClientEntity> req =
         client.getRetrieveRequestFactory().getEntityRequest(uriBuilder.build());
 
     assertEquals("4.0", req.getHeader("OData-MaxVersion"));
@@ -87,36 +87,36 @@ public class ConformanceTestITCase extends AbstractTestITCase {
    */
   @Test
   public void item2() {
-    final ODataEntity order =
-        new ODataEntityImpl(new FullQualifiedName("Microsoft.Test.OData.Services.ODataWCFService.Order"));
+    final ClientEntity order =
+        new ClientEntityImpl(new FullQualifiedName("Microsoft.Test.OData.Services.ODataWCFService.Order"));
 
-    final ODataProperty orderId = getClient().getObjectFactory().newPrimitiveProperty("OrderID",
+    final ClientProperty orderId = getClient().getObjectFactory().newPrimitiveProperty("OrderID",
         getClient().getObjectFactory().newPrimitiveValueBuilder().buildInt32(2000));
     order.getProperties().add(orderId);
 
     Calendar dateTime = Calendar.getInstance(TimeZone.getTimeZone("GMT"));
     dateTime.set(2011, 2, 4, 16, 3, 57);
-    final ODataProperty orderDate = getClient().getObjectFactory().newPrimitiveProperty("OrderDate",
+    final ClientProperty orderDate = getClient().getObjectFactory().newPrimitiveProperty("OrderDate",
         getClient().getObjectFactory().newPrimitiveValueBuilder().
             setType(EdmPrimitiveTypeKind.DateTimeOffset).setValue(dateTime).build());
     order.getProperties().add(orderDate);
 
-    final ODataProperty shelfLife = getClient().getObjectFactory().newPrimitiveProperty("ShelfLife",
+    final ClientProperty shelfLife = getClient().getObjectFactory().newPrimitiveProperty("ShelfLife",
         getClient().getObjectFactory().newPrimitiveValueBuilder().
             setType(EdmPrimitiveTypeKind.Duration).setValue(new BigDecimal("0.0000001")).build());
     order.getProperties().add(shelfLife);
 
-    final ODataCollectionValue<ODataValue> orderShelfLifesValue = getClient().getObjectFactory().
+    final ClientCollectionValue<ClientValue> orderShelfLifesValue = getClient().getObjectFactory().
         newCollectionValue("Collection(Duration)");
     orderShelfLifesValue.add(getClient().getObjectFactory().newPrimitiveValueBuilder().
         setType(EdmPrimitiveTypeKind.Duration).setValue(new BigDecimal("0.0000001")).build());
     orderShelfLifesValue.add(getClient().getObjectFactory().newPrimitiveValueBuilder().
         setType(EdmPrimitiveTypeKind.Duration).setValue(new BigDecimal("0.0000002")).build());
-    final ODataProperty orderShelfLifes = getClient().getObjectFactory().
+    final ClientProperty orderShelfLifes = getClient().getObjectFactory().
         newCollectionProperty("OrderShelfLifes", orderShelfLifesValue);
     order.getProperties().add(orderShelfLifes);
 
-    final ODataEntityCreateRequest<ODataEntity> req = getClient().getCUDRequestFactory().getEntityCreateRequest(
+    final ODataEntityCreateRequest<ClientEntity> req = getClient().getCUDRequestFactory().getEntityCreateRequest(
         getClient().newURIBuilder(testStaticServiceRootURL).
             appendEntitySetSegment("Orders").build(), order);
     req.setFormat(ODataFormat.JSON_FULL_METADATA);
@@ -136,7 +136,7 @@ public class ConformanceTestITCase extends AbstractTestITCase {
         ODataFormat.JSON_FULL_METADATA.getContentType().toContentTypeString(),
         req.getContentType());
 
-    final ODataEntity created = req.execute().getBody();
+    final ClientEntity created = req.execute().getBody();
     assertNotNull(created);
 
     final URI deleteURI = created.getEditLink() == null
@@ -156,14 +156,14 @@ public class ConformanceTestITCase extends AbstractTestITCase {
     final URIBuilder uriBuilder = client.newURIBuilder(testStaticServiceRootURL).appendEntitySetSegment("redirect").
         appendEntitySetSegment("Customers").appendKeySegment(1).expand("Company");
 
-    final ODataEntityRequest<ODataEntity> req =
+    final ODataEntityRequest<ClientEntity> req =
         client.getRetrieveRequestFactory().getEntityRequest(uriBuilder.build());
 
     assertEquals("4.0", req.getHeader("OData-MaxVersion"));
     assertEquals("4.0", req.getHeader(HeaderName.odataMaxVersion.toString()));
 
-    final ODataRetrieveResponse<ODataEntity> res = req.execute();
-    final ODataEntity entity = res.getBody();
+    final ODataRetrieveResponse<ClientEntity> res = req.execute();
+    final ClientEntity entity = res.getBody();
 
     assertNotNull(entity);
     assertEquals("Microsoft.Test.OData.Services.ODataWCFService.Customer", entity.getTypeName().toString());
@@ -178,13 +178,13 @@ public class ConformanceTestITCase extends AbstractTestITCase {
   public void item5() {
     final URIBuilder uriBuilder = client.newURIBuilder(testStaticServiceRootURL).appendEntitySetSegment("People");
 
-    ODataEntitySetRequest<ODataEntitySet> req = client.getRetrieveRequestFactory().
+    ODataEntitySetRequest<ClientEntitySet> req = client.getRetrieveRequestFactory().
         getEntitySetRequest(uriBuilder.build());
     req.setFormat(ODataFormat.JSON_FULL_METADATA);
     req.setPrefer(client.newPreferences().maxPageSize(5));
 
-    ODataRetrieveResponse<ODataEntitySet> res = req.execute();
-    ODataEntitySet feed = res.getBody();
+    ODataRetrieveResponse<ClientEntitySet> res = req.execute();
+    ClientEntitySet feed = res.getBody();
 
     assertNotNull(feed);
 
@@ -212,7 +212,7 @@ public class ConformanceTestITCase extends AbstractTestITCase {
   public void item6() {
     final Integer id = 2000;
 
-    ODataEntity rowIndex = getClient().getObjectFactory().newEntity(
+    ClientEntity rowIndex = getClient().getObjectFactory().newEntity(
         new FullQualifiedName("Microsoft.Test.OData.Services.OpenTypesServiceV4.RowIndex"));
     getClient().getBinder().add(rowIndex,
         getClient().getObjectFactory().newPrimitiveProperty("Id",
@@ -227,11 +227,11 @@ public class ConformanceTestITCase extends AbstractTestITCase {
     rowIndex.addLink(client.getObjectFactory().newEntityNavigationLink(
         "Row", URI.create(testOpenTypeServiceRootURL + "/Row(71f7d0dc-ede4-45eb-b421-555a2aa1e58f)")));
 
-    final ODataEntityCreateRequest<ODataEntity> createReq = getClient().getCUDRequestFactory().
+    final ODataEntityCreateRequest<ClientEntity> createReq = getClient().getCUDRequestFactory().
         getEntityCreateRequest(getClient().newURIBuilder(testOpenTypeServiceRootURL).
             appendEntitySetSegment("RowIndex").build(), rowIndex);
 
-    final ODataEntityCreateResponse<ODataEntity> createRes = createReq.execute();
+    final ODataEntityCreateResponse<ClientEntity> createRes = createReq.execute();
     assertEquals(201, createRes.getStatusCode());
 
     final URIBuilder builder = getClient().newURIBuilder(testOpenTypeServiceRootURL).
@@ -256,7 +256,7 @@ public class ConformanceTestITCase extends AbstractTestITCase {
     final URI uri = client.newURIBuilder(testStaticServiceRootURL).
         appendEntitySetSegment("Customers").appendKeySegment(1).build();
 
-    final ODataEntity patch = client.getObjectFactory().newEntity(
+    final ClientEntity patch = client.getObjectFactory().newEntity(
         new FullQualifiedName("Microsoft.Test.OData.Services.ODataWCFService.Customer"));
     patch.setEditLink(uri);
 
@@ -264,13 +264,13 @@ public class ConformanceTestITCase extends AbstractTestITCase {
     patch.getProperties().add(getClient().getObjectFactory().newPrimitiveProperty("FirstName",
         getClient().getObjectFactory().newPrimitiveValueBuilder().buildString(newname)));
 
-    final ODataEntityUpdateRequest<ODataEntity> req =
+    final ODataEntityUpdateRequest<ClientEntity> req =
         getClient().getCUDRequestFactory().getEntityUpdateRequest(UpdateType.PATCH, patch);
 
-    final ODataEntityUpdateResponse<ODataEntity> res = req.execute();
+    final ODataEntityUpdateResponse<ClientEntity> res = req.execute();
     assertEquals(204, res.getStatusCode());
 
-    final ODataEntity actual = read(ODataFormat.JSON, uri);
+    final ClientEntity actual = read(ODataFormat.JSON, uri);
 
     assertEquals(newname, actual.getProperty("FirstName").getPrimitiveValue().toString());
   }
@@ -287,7 +287,8 @@ public class ConformanceTestITCase extends AbstractTestITCase {
     final URIBuilder uriBuilder = client.newURIBuilder(testAuthServiceRootURL).
         appendEntitySetSegment("Customers").appendKeySegment(1).expand("Company");
 
-    final ODataEntityRequest<ODataEntity> req = client.getRetrieveRequestFactory().getEntityRequest(uriBuilder.build());
+    final ODataEntityRequest<ClientEntity> req =
+        client.getRetrieveRequestFactory().getEntityRequest(uriBuilder.build());
     req.setFormat(ODataFormat.JSON_FULL_METADATA);
 
     assertNotNull(req.execute().getBody());
@@ -304,13 +305,13 @@ public class ConformanceTestITCase extends AbstractTestITCase {
         appendEntitySetSegment("Orders").appendKeySegment(8).appendNavigationSegment("CustomerForOrder").
         appendRefSegment();
 
-    ODataEntityRequest<ODataEntity> req = client.getRetrieveRequestFactory().getEntityRequest(uriBuilder.build());
+    ODataEntityRequest<ClientEntity> req = client.getRetrieveRequestFactory().getEntityRequest(uriBuilder.build());
     req.setFormat(ODataFormat.JSON_FULL_METADATA);
 
-    ODataRetrieveResponse<ODataEntity> res = req.execute();
+    ODataRetrieveResponse<ClientEntity> res = req.execute();
     assertNotNull(res);
 
-    final ODataEntity entity = res.getBody();
+    final ClientEntity entity = res.getBody();
     assertNotNull(entity);
     assertTrue(entity.getId().toASCIIString().endsWith("/StaticService/V40/Static.svc/Customers(PersonID=1)"));
 
@@ -330,18 +331,18 @@ public class ConformanceTestITCase extends AbstractTestITCase {
    */
   @Test
   public void item10() {
-    final ODataEntitySetRequest<ODataEntitySet> req = client.getRetrieveRequestFactory().getEntitySetRequest(
+    final ODataEntitySetRequest<ClientEntitySet> req = client.getRetrieveRequestFactory().getEntitySetRequest(
         client.newURIBuilder(testStaticServiceRootURL).appendEntitySetSegment("Customers").build());
     req.setPrefer(client.newPreferences().trackChanges());
 
-    final ODataEntitySet customers = req.execute().getBody();
+    final ClientEntitySet customers = req.execute().getBody();
     assertNotNull(customers);
     assertNotNull(customers.getDeltaLink());
 
     final ODataDeltaRequest deltaReq = client.getRetrieveRequestFactory().getDeltaRequest(customers.getDeltaLink());
     deltaReq.setFormat(ODataFormat.JSON_FULL_METADATA);
 
-    final ODataDelta delta = deltaReq.execute().getBody();
+    final ClientDelta delta = deltaReq.execute().getBody();
     assertNotNull(delta);
 
     assertNotNull(delta.getDeltaLink());
@@ -363,7 +364,7 @@ public class ConformanceTestITCase extends AbstractTestITCase {
     assertEquals("Orders", delta.getDeletedLinks().get(0).getRelationship());
 
     assertEquals(2, delta.getEntities().size());
-    ODataProperty property = delta.getEntities().get(0).getProperty("ContactName");
+    ClientProperty property = delta.getEntities().get(0).getProperty("ContactName");
     assertNotNull(property);
     assertTrue(property.hasPrimitiveValue());
     property = delta.getEntities().get(1).getProperty("ShippingAddress");
@@ -379,21 +380,21 @@ public class ConformanceTestITCase extends AbstractTestITCase {
     final URIBuilder uriBuilder = client.newURIBuilder(testStaticServiceRootURL).
         appendEntitySetSegment("async").appendEntitySetSegment("Orders");
 
-    final ODataEntitySetRequest<ODataEntitySet> req =
+    final ODataEntitySetRequest<ClientEntitySet> req =
         client.getRetrieveRequestFactory().getEntitySetRequest(uriBuilder.build());
     req.setFormat(ODataFormat.JSON_FULL_METADATA);
 
-    final AsyncRequestWrapper<ODataRetrieveResponse<ODataEntitySet>> async =
-        client.getAsyncRequestFactory().<ODataRetrieveResponse<ODataEntitySet>> getAsyncRequestWrapper(req);
+    final AsyncRequestWrapper<ODataRetrieveResponse<ClientEntitySet>> async =
+        client.getAsyncRequestFactory().<ODataRetrieveResponse<ClientEntitySet>> getAsyncRequestWrapper(req);
     async.callback(URI.create("http://client.service.it/callback/endpoint"));
 
-    final AsyncResponseWrapper<ODataRetrieveResponse<ODataEntitySet>> responseWrapper = async.execute();
+    final AsyncResponseWrapper<ODataRetrieveResponse<ClientEntitySet>> responseWrapper = async.execute();
 
     assertTrue(responseWrapper.isPreferenceApplied());
     assertTrue(responseWrapper.isDone());
 
-    final ODataRetrieveResponse<ODataEntitySet> res = responseWrapper.getODataResponse();
-    final ODataEntitySet entitySet = res.getBody();
+    final ODataRetrieveResponse<ClientEntitySet> res = responseWrapper.getODataResponse();
+    final ClientEntitySet entitySet = res.getBody();
 
     assertFalse(entitySet.getEntities().isEmpty());
   }
@@ -406,7 +407,7 @@ public class ConformanceTestITCase extends AbstractTestITCase {
     final URIBuilder uriBuilder = client.newURIBuilder(testStaticServiceRootURL).
         appendEntitySetSegment("Customers").appendKeySegment(1).expand("Company");
 
-    final ODataEntityRequest<ODataEntity> req =
+    final ODataEntityRequest<ClientEntity> req =
         client.getRetrieveRequestFactory().getEntityRequest(uriBuilder.build());
     req.setFormat(ODataFormat.JSON);
 
@@ -414,7 +415,7 @@ public class ConformanceTestITCase extends AbstractTestITCase {
     assertEquals("application/json;odata.metadata=minimal", req.getHeader(HeaderName.accept.toString()));
     assertEquals("application/json;odata.metadata=minimal", req.getAccept());
 
-    final ODataRetrieveResponse<ODataEntity> res = req.execute();
+    final ODataRetrieveResponse<ClientEntity> res = req.execute();
     assertTrue(res.getContentType().startsWith("application/json; odata.metadata=minimal"));
 
     assertNotNull(res.getBody());

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/c37d4da5/fit/src/test/java/org/apache/olingo/fit/v4/DeltaTestITCase.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/v4/DeltaTestITCase.java b/fit/src/test/java/org/apache/olingo/fit/v4/DeltaTestITCase.java
index fa3b533..1a7bfe0 100644
--- a/fit/src/test/java/org/apache/olingo/fit/v4/DeltaTestITCase.java
+++ b/fit/src/test/java/org/apache/olingo/fit/v4/DeltaTestITCase.java
@@ -1,18 +1,18 @@
-/* 
+/*
  * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
+ * or more contributor license agreements. See the NOTICE file
  * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
+ * 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
- *
+ * 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
+ * KIND, either express or implied. See the License for the
  * specific language governing permissions and limitations
  * under the License.
  */
@@ -20,9 +20,9 @@ package org.apache.olingo.fit.v4;
 
 import org.apache.olingo.client.api.communication.request.retrieve.ODataDeltaRequest;
 import org.apache.olingo.client.api.communication.request.retrieve.ODataEntitySetRequest;
-import org.apache.olingo.commons.api.domain.ODataDelta;
-import org.apache.olingo.commons.api.domain.ODataEntitySet;
-import org.apache.olingo.commons.api.domain.ODataProperty;
+import org.apache.olingo.commons.api.domain.ClientDelta;
+import org.apache.olingo.commons.api.domain.ClientEntitySet;
+import org.apache.olingo.commons.api.domain.ClientProperty;
 import org.apache.olingo.commons.api.format.ODataFormat;
 import org.junit.Test;
 
@@ -33,18 +33,18 @@ import static org.junit.Assert.assertTrue;
 public class DeltaTestITCase extends AbstractTestITCase {
 
   private void parse(final ODataFormat format) {
-    final ODataEntitySetRequest<ODataEntitySet> req = client.getRetrieveRequestFactory().getEntitySetRequest(
+    final ODataEntitySetRequest<ClientEntitySet> req = client.getRetrieveRequestFactory().getEntitySetRequest(
         client.newURIBuilder(testStaticServiceRootURL).appendEntitySetSegment("Customers").build());
     req.setPrefer(client.newPreferences().trackChanges());
 
-    final ODataEntitySet customers = req.execute().getBody();
+    final ClientEntitySet customers = req.execute().getBody();
     assertNotNull(customers);
     assertNotNull(customers.getDeltaLink());
 
     final ODataDeltaRequest deltaReq = client.getRetrieveRequestFactory().getDeltaRequest(customers.getDeltaLink());
     deltaReq.setFormat(format);
 
-    final ODataDelta delta = deltaReq.execute().getBody();
+    final ClientDelta delta = deltaReq.execute().getBody();
     assertNotNull(delta);
 
     assertNotNull(delta.getDeltaLink());
@@ -66,7 +66,7 @@ public class DeltaTestITCase extends AbstractTestITCase {
     assertEquals("Orders", delta.getDeletedLinks().get(0).getRelationship());
 
     assertEquals(2, delta.getEntities().size());
-    ODataProperty property = delta.getEntities().get(0).getProperty("ContactName");
+    ClientProperty property = delta.getEntities().get(0).getProperty("ContactName");
     assertNotNull(property);
     assertTrue(property.hasPrimitiveValue());
     property = delta.getEntities().get(1).getProperty("ShippingAddress");

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/c37d4da5/fit/src/test/java/org/apache/olingo/fit/v4/DerivedTypeTestITCase.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/v4/DerivedTypeTestITCase.java b/fit/src/test/java/org/apache/olingo/fit/v4/DerivedTypeTestITCase.java
index fcc1f61..087ef8e 100644
--- a/fit/src/test/java/org/apache/olingo/fit/v4/DerivedTypeTestITCase.java
+++ b/fit/src/test/java/org/apache/olingo/fit/v4/DerivedTypeTestITCase.java
@@ -1,18 +1,18 @@
-/* 
+/*
  * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
+ * or more contributor license agreements. See the NOTICE file
  * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
+ * 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
- *
+ * 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
+ * KIND, either express or implied. See the License for the
  * specific language governing permissions and limitations
  * under the License.
  */
@@ -30,10 +30,10 @@ import org.apache.olingo.client.api.communication.request.retrieve.ODataEntityRe
 import org.apache.olingo.client.api.communication.request.retrieve.ODataEntitySetRequest;
 import org.apache.olingo.client.api.communication.response.ODataEntityCreateResponse;
 import org.apache.olingo.client.api.uri.URIBuilder;
-import org.apache.olingo.commons.api.domain.ODataComplexValue;
-import org.apache.olingo.commons.api.domain.ODataEntity;
-import org.apache.olingo.commons.api.domain.ODataEntitySet;
-import org.apache.olingo.commons.api.domain.ODataValuable;
+import org.apache.olingo.commons.api.domain.ClientComplexValue;
+import org.apache.olingo.commons.api.domain.ClientEntity;
+import org.apache.olingo.commons.api.domain.ClientEntitySet;
+import org.apache.olingo.commons.api.domain.ClientValuable;
 import org.apache.olingo.commons.api.edm.EdmPrimitiveTypeKind;
 import org.apache.olingo.commons.api.edm.FullQualifiedName;
 import org.apache.olingo.commons.api.format.ODataFormat;
@@ -46,11 +46,11 @@ public class DerivedTypeTestITCase extends AbstractTestITCase {
     URIBuilder uriBuilder = client.newURIBuilder(testStaticServiceRootURL).
         appendEntitySetSegment("People").
         appendDerivedEntityTypeSegment("Microsoft.Test.OData.Services.ODataWCFService.Customer");
-    ODataEntitySetRequest<ODataEntitySet> req = client.getRetrieveRequestFactory().
+    ODataEntitySetRequest<ClientEntitySet> req = client.getRetrieveRequestFactory().
         getEntitySetRequest(uriBuilder.build());
     req.setFormat(format);
 
-    for (ODataEntity customer : req.execute().getBody().getEntities()) {
+    for (ClientEntity customer : req.execute().getBody().getEntities()) {
       assertEquals("Microsoft.Test.OData.Services.ODataWCFService.Customer", customer.getTypeName().toString());
     }
 
@@ -62,7 +62,7 @@ public class DerivedTypeTestITCase extends AbstractTestITCase {
     req = client.getRetrieveRequestFactory().getEntitySetRequest(uriBuilder.build());
     req.setFormat(format);
 
-    for (ODataEntity customer : req.execute().getBody().getEntities()) {
+    for (ClientEntity customer : req.execute().getBody().getEntities()) {
       assertEquals("Microsoft.Test.OData.Services.ODataWCFService.CreditCardPI", customer.getTypeName().toString());
     }
   }
@@ -78,7 +78,7 @@ public class DerivedTypeTestITCase extends AbstractTestITCase {
   }
 
   private void createDelete(final ODataFormat format) {
-    final ODataEntity customer = client.getObjectFactory().
+    final ClientEntity customer = client.getObjectFactory().
         newEntity(new FullQualifiedName("Microsoft.Test.OData.Services.ODataWCFService.Customer"));
 
     customer.getProperties().add(client.getObjectFactory().newPrimitiveProperty("PersonID",
@@ -88,7 +88,7 @@ public class DerivedTypeTestITCase extends AbstractTestITCase {
     customer.getProperties().add(client.getObjectFactory().newPrimitiveProperty("LastName",
         client.getObjectFactory().newPrimitiveValueBuilder().buildString("Test")));
 
-    final ODataComplexValue homeAddress =
+    final ClientComplexValue homeAddress =
         client.getObjectFactory().newComplexValue("Microsoft.Test.OData.Services.ODataWCFService.CompanyAddress");
     homeAddress.add(client.getObjectFactory().newPrimitiveProperty("Street",
         client.getObjectFactory().newPrimitiveValueBuilder().buildString("V.le Gabriele D'Annunzio")));
@@ -115,24 +115,24 @@ public class DerivedTypeTestITCase extends AbstractTestITCase {
         client.getObjectFactory().newPrimitiveValueBuilder().
             setType(EdmPrimitiveTypeKind.Duration).setValue(new BigDecimal("0.0000002")).build()));
 
-    final ODataEntityCreateRequest<ODataEntity> createReq = client.getCUDRequestFactory().
+    final ODataEntityCreateRequest<ClientEntity> createReq = client.getCUDRequestFactory().
         getEntityCreateRequest(
             client.newURIBuilder(testStaticServiceRootURL).appendEntitySetSegment("People").build(),
             customer);
     createReq.setFormat(format);
 
-    final ODataEntityCreateResponse<ODataEntity> createRes = createReq.execute();
+    final ODataEntityCreateResponse<ClientEntity> createRes = createReq.execute();
     assertEquals(201, createRes.getStatusCode());
 
-    final ODataEntityRequest<ODataEntity> fetchReq = client.getRetrieveRequestFactory().
+    final ODataEntityRequest<ClientEntity> fetchReq = client.getRetrieveRequestFactory().
         getEntityRequest(client.newURIBuilder(testStaticServiceRootURL).
             appendEntitySetSegment("People").appendKeySegment(976).build());
     fetchReq.setFormat(format);
 
-    final ODataEntity actual = fetchReq.execute().getBody();
+    final ClientEntity actual = fetchReq.execute().getBody();
     assertEquals("Microsoft.Test.OData.Services.ODataWCFService.Customer", actual.getTypeName().toString());
     assertEquals("Microsoft.Test.OData.Services.ODataWCFService.CompanyAddress",
-        ((ODataValuable) actual.getProperty("HomeAddress")).getValue().getTypeName());
+        ((ClientValuable) actual.getProperty("HomeAddress")).getValue().getTypeName());
 
     final ODataDeleteRequest deleteReq = client.getCUDRequestFactory().getDeleteRequest(actual.getEditLink());
     assertEquals(204, deleteReq.execute().getStatusCode());

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/c37d4da5/fit/src/test/java/org/apache/olingo/fit/v4/EntityCreateTestITCase.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/v4/EntityCreateTestITCase.java b/fit/src/test/java/org/apache/olingo/fit/v4/EntityCreateTestITCase.java
index a92db26..5ad4407 100644
--- a/fit/src/test/java/org/apache/olingo/fit/v4/EntityCreateTestITCase.java
+++ b/fit/src/test/java/org/apache/olingo/fit/v4/EntityCreateTestITCase.java
@@ -1,18 +1,18 @@
-/* 
+/*
  * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
+ * or more contributor license agreements. See the NOTICE file
  * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
+ * 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
- *
+ * 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
+ * KIND, either express or implied. See the License for the
  * specific language governing permissions and limitations
  * under the License.
  */
@@ -22,10 +22,10 @@ import org.apache.commons.lang3.RandomUtils;
 import org.apache.olingo.client.api.communication.request.cud.ODataEntityCreateRequest;
 import org.apache.olingo.client.api.communication.response.ODataDeleteResponse;
 import org.apache.olingo.client.api.communication.response.ODataEntityCreateResponse;
-import org.apache.olingo.commons.api.domain.ODataEntity;
-import org.apache.olingo.commons.api.domain.ODataEntitySet;
-import org.apache.olingo.commons.api.domain.ODataInlineEntitySet;
-import org.apache.olingo.commons.api.domain.ODataLink;
+import org.apache.olingo.commons.api.domain.ClientEntity;
+import org.apache.olingo.commons.api.domain.ClientEntitySet;
+import org.apache.olingo.commons.api.domain.ClientInlineEntitySet;
+import org.apache.olingo.commons.api.domain.ClientLink;
 import org.apache.olingo.commons.api.edm.EdmPrimitiveTypeException;
 import org.apache.olingo.commons.api.edm.EdmPrimitiveTypeKind;
 import org.apache.olingo.commons.api.edm.FullQualifiedName;
@@ -52,18 +52,17 @@ public class EntityCreateTestITCase extends AbstractTestITCase {
     createAndDeleteOrder(testStaticServiceRootURL, ODataFormat.JSON_FULL_METADATA, 1001);
   }
 
-
   private void onContained(final ODataFormat format) {
     final URI uri = getClient().newURIBuilder(testStaticServiceRootURL).appendEntitySetSegment("Accounts").
         appendKeySegment(101).appendNavigationSegment("MyPaymentInstruments").build();
 
     // 1. read contained collection before any operation
-    ODataEntitySet instruments = getClient().getRetrieveRequestFactory().getEntitySetRequest(uri).execute().getBody();
+    ClientEntitySet instruments = getClient().getRetrieveRequestFactory().getEntitySetRequest(uri).execute().getBody();
     assertNotNull(instruments);
     final int sizeBefore = instruments.getCount();
 
     // 2. instantiate an ODataEntity of the same type as the collection above
-    final ODataEntity instrument = getClient().getObjectFactory().
+    final ClientEntity instrument = getClient().getObjectFactory().
         newEntity(new FullQualifiedName("Microsoft.Test.OData.Services.ODataWCFService.PaymentInstrument"));
 
     int id = RandomUtils.nextInt(101999, 105000);
@@ -76,11 +75,11 @@ public class EntityCreateTestITCase extends AbstractTestITCase {
             setType(EdmPrimitiveTypeKind.DateTimeOffset).setValue(Calendar.getInstance()).build()));
 
     // 3. create it as contained entity
-    final ODataEntityCreateRequest<ODataEntity> req = getClient().getCUDRequestFactory().
+    final ODataEntityCreateRequest<ClientEntity> req = getClient().getCUDRequestFactory().
         getEntityCreateRequest(uri, instrument);
     req.setFormat(format);
 
-    final ODataEntityCreateResponse<ODataEntity> res = req.execute();
+    final ODataEntityCreateResponse<ClientEntity> res = req.execute();
     assertEquals(201, res.getStatusCode());
 
     // 4. verify that the contained collection effectively grew
@@ -114,7 +113,7 @@ public class EntityCreateTestITCase extends AbstractTestITCase {
   private void deepInsert(final ODataFormat format, final int productId, final int productDetailId)
       throws EdmPrimitiveTypeException {
 
-    final ODataEntity product = getClient().getObjectFactory().
+    final ClientEntity product = getClient().getObjectFactory().
         newEntity(new FullQualifiedName("Microsoft.Test.OData.Services.ODataWCFService.Product"));
     product.getProperties().add(getClient().getObjectFactory().newPrimitiveProperty("ProductID",
         getClient().getObjectFactory().newPrimitiveValueBuilder().buildInt32(productId)));
@@ -142,7 +141,7 @@ public class EntityCreateTestITCase extends AbstractTestITCase {
     product.getProperty("CoverColors").getCollectionValue().add(getClient().getObjectFactory().
         newEnumValue("Microsoft.Test.OData.Services.ODataWCFService.Color", "Red"));
 
-    final ODataEntity detail = getClient().getObjectFactory().
+    final ClientEntity detail = getClient().getObjectFactory().
         newEntity(new FullQualifiedName("Microsoft.Test.OData.Services.ODataWCFService.ProductDetail"));
     detail.getProperties().add(getClient().getObjectFactory().newPrimitiveProperty("ProductID",
         getClient().getObjectFactory().newPrimitiveValueBuilder().buildInt32(productId)));
@@ -153,27 +152,27 @@ public class EntityCreateTestITCase extends AbstractTestITCase {
     detail.getProperties().add(getClient().getObjectFactory().newPrimitiveProperty("Description",
         getClient().getObjectFactory().newPrimitiveValueBuilder().buildString("High-Quality Milk")));
 
-    final ODataEntitySet details = getClient().getObjectFactory().newEntitySet();
+    final ClientEntitySet details = getClient().getObjectFactory().newEntitySet();
     details.getEntities().add(detail);
 
-    final ODataInlineEntitySet inlineDetails = getClient().getObjectFactory().
+    final ClientInlineEntitySet inlineDetails = getClient().getObjectFactory().
         newDeepInsertEntitySet("Details", details);
     product.addLink(inlineDetails);
 
-    final ODataEntityCreateRequest<ODataEntity> req = getClient().getCUDRequestFactory().getEntityCreateRequest(
+    final ODataEntityCreateRequest<ClientEntity> req = getClient().getCUDRequestFactory().getEntityCreateRequest(
         getClient().newURIBuilder(testStaticServiceRootURL).appendEntitySetSegment("Products").build(), product);
     req.setFormat(format);
-    final ODataEntityCreateResponse<ODataEntity> res = req.execute();
+    final ODataEntityCreateResponse<ClientEntity> res = req.execute();
     assertEquals(201, res.getStatusCode());
 
-    final ODataEntity createdProduct = res.getBody();
+    final ClientEntity createdProduct = res.getBody();
     assertEquals(productId,
         createdProduct.getProperty("ProductID").getPrimitiveValue().toCastValue(Integer.class), 0);
 
-    final ODataLink createdLink = createdProduct.getNavigationLink("Details");
+    final ClientLink createdLink = createdProduct.getNavigationLink("Details");
     assertNotNull(createdLink);
 
-    final ODataEntitySet createdProductDetails =
+    final ClientEntitySet createdProductDetails =
         getClient().getRetrieveRequestFactory().getEntitySetRequest(createdLink.getLink()).execute().getBody();
     assertNotNull(createdProductDetails);
     assertEquals(productDetailId, createdProductDetails.getEntities().iterator().next().

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/c37d4da5/fit/src/test/java/org/apache/olingo/fit/v4/EntityRetrieveTestITCase.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/v4/EntityRetrieveTestITCase.java b/fit/src/test/java/org/apache/olingo/fit/v4/EntityRetrieveTestITCase.java
index 35c638a..8b47d38 100644
--- a/fit/src/test/java/org/apache/olingo/fit/v4/EntityRetrieveTestITCase.java
+++ b/fit/src/test/java/org/apache/olingo/fit/v4/EntityRetrieveTestITCase.java
@@ -1,18 +1,18 @@
-/* 
+/*
  * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
+ * or more contributor license agreements. See the NOTICE file
  * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
+ * 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
- *
+ * 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
+ * KIND, either express or implied. See the License for the
  * specific language governing permissions and limitations
  * under the License.
  */
@@ -32,13 +32,13 @@ import org.apache.olingo.client.api.communication.response.ODataRawResponse;
 import org.apache.olingo.client.api.communication.response.ODataRetrieveResponse;
 import org.apache.olingo.client.api.uri.URIBuilder;
 import org.apache.olingo.commons.api.data.ResWrap;
-import org.apache.olingo.commons.api.domain.ODataEntity;
-import org.apache.olingo.commons.api.domain.ODataEntitySet;
-import org.apache.olingo.commons.api.domain.ODataProperty;
-import org.apache.olingo.commons.api.domain.ODataInlineEntity;
-import org.apache.olingo.commons.api.domain.ODataInlineEntitySet;
-import org.apache.olingo.commons.api.domain.ODataLink;
-import org.apache.olingo.commons.api.domain.ODataLinkType;
+import org.apache.olingo.commons.api.domain.ClientEntity;
+import org.apache.olingo.commons.api.domain.ClientEntitySet;
+import org.apache.olingo.commons.api.domain.ClientProperty;
+import org.apache.olingo.commons.api.domain.ClientInlineEntity;
+import org.apache.olingo.commons.api.domain.ClientInlineEntitySet;
+import org.apache.olingo.commons.api.domain.ClientLink;
+import org.apache.olingo.commons.api.domain.ClientLinkType;
 import org.apache.olingo.commons.api.edm.EdmPrimitiveTypeException;
 import org.apache.olingo.commons.api.format.ODataFormat;
 import org.junit.Test;
@@ -55,14 +55,14 @@ public class EntityRetrieveTestITCase extends AbstractTestITCase {
 
   private void withInlineEntity(final ODataClient client, final ODataFormat format) {
     final URIBuilder uriBuilder = client.newURIBuilder(testStaticServiceRootURL).
-            appendEntitySetSegment("Customers").appendKeySegment(1).expand("Company");
+        appendEntitySetSegment("Customers").appendKeySegment(1).expand("Company");
 
-    final ODataEntityRequest<ODataEntity> req = client.getRetrieveRequestFactory().
-            getEntityRequest(uriBuilder.build());
+    final ODataEntityRequest<ClientEntity> req = client.getRetrieveRequestFactory().
+        getEntityRequest(uriBuilder.build());
     req.setFormat(format);
 
-    final ODataRetrieveResponse<ODataEntity> res = req.execute();
-    final ODataEntity entity = res.getBody();
+    final ODataRetrieveResponse<ClientEntity> res = req.execute();
+    final ClientEntity entity = res.getBody();
 
     assertNotNull(entity);
     assertEquals("Microsoft.Test.OData.Services.ODataWCFService.Customer", entity.getTypeName().toString());
@@ -81,24 +81,24 @@ public class EntityRetrieveTestITCase extends AbstractTestITCase {
 
       boolean found = false;
 
-      for (ODataLink link : entity.getNavigationLinks()) {
-        if (link instanceof ODataInlineEntity) {
-          final ODataEntity inline = ((ODataInlineEntity) link).getEntity();
+      for (ClientLink link : entity.getNavigationLinks()) {
+        if (link instanceof ClientInlineEntity) {
+          final ClientEntity inline = ((ClientInlineEntity) link).getEntity();
           assertNotNull(inline);
 
-          final List<? extends ODataProperty> properties = inline.getProperties();
+          final List<? extends ClientProperty> properties = inline.getProperties();
           assertEquals(5, properties.size());
 
           assertTrue(properties.get(0).getName().equals("CompanyID")
-                  || properties.get(1).getName().equals("CompanyID")
-                  || properties.get(2).getName().equals("CompanyID")
-                  || properties.get(3).getName().equals("CompanyID")
-                  || properties.get(4).getName().equals("CompanyID"));
+              || properties.get(1).getName().equals("CompanyID")
+              || properties.get(2).getName().equals("CompanyID")
+              || properties.get(3).getName().equals("CompanyID")
+              || properties.get(4).getName().equals("CompanyID"));
           assertTrue(properties.get(0).getValue().toString().equals("0")
-                  || properties.get(1).getValue().toString().equals("0")
-                  || properties.get(2).getValue().toString().equals("0")
-                  || properties.get(3).getValue().toString().equals("0")
-                  || properties.get(4).getValue().toString().equals("0"));
+              || properties.get(1).getValue().toString().equals("0")
+              || properties.get(2).getValue().toString().equals("0")
+              || properties.get(3).getValue().toString().equals("0")
+              || properties.get(4).getValue().toString().equals("0"));
 
           found = true;
         }
@@ -125,23 +125,23 @@ public class EntityRetrieveTestITCase extends AbstractTestITCase {
 
   private void withInlineEntitySet(final ODataClient client, final ODataFormat format) {
     final URIBuilder uriBuilder = client.newURIBuilder(testStaticServiceRootURL).
-            appendEntitySetSegment("Customers").appendKeySegment(1).expand("Orders");
+        appendEntitySetSegment("Customers").appendKeySegment(1).expand("Orders");
 
-    final ODataEntityRequest<ODataEntity> req = client.getRetrieveRequestFactory().
-            getEntityRequest(uriBuilder.build());
+    final ODataEntityRequest<ClientEntity> req = client.getRetrieveRequestFactory().
+        getEntityRequest(uriBuilder.build());
     req.setFormat(format);
 
-    final ODataRetrieveResponse<ODataEntity> res = req.execute();
-    final ODataEntity entity = res.getBody();
+    final ODataRetrieveResponse<ClientEntity> res = req.execute();
+    final ClientEntity entity = res.getBody();
     assertNotNull(entity);
     assertEquals("Microsoft.Test.OData.Services.ODataWCFService.Customer", entity.getTypeName().toString());
 
     // In JSON with minimal metadata, links are not provided
     if (format == ODataFormat.ATOM || format == ODataFormat.JSON_FULL_METADATA) {
       boolean found = false;
-      for (ODataLink link : entity.getNavigationLinks()) {
-        if (link instanceof ODataInlineEntitySet) {
-          final ODataEntitySet inline = ((ODataInlineEntitySet) link).getEntitySet();
+      for (ClientLink link : entity.getNavigationLinks()) {
+        if (link instanceof ClientInlineEntitySet) {
+          final ClientEntitySet inline = ((ClientInlineEntitySet) link).getEntitySet();
           assertNotNull(inline);
 
           found = true;
@@ -168,7 +168,7 @@ public class EntityRetrieveTestITCase extends AbstractTestITCase {
 
   private void rawRequest(final ODataFormat format) {
     final URIBuilder uriBuilder = client.newURIBuilder(testStaticServiceRootURL).
-            appendEntitySetSegment("People").appendKeySegment(5);
+        appendEntitySetSegment("People").appendKeySegment(5);
 
     final ODataRawRequest req = client.getRetrieveRequestFactory().getRawRequest(uriBuilder.build());
     req.setFormat(format.getContentType().toContentTypeString());
@@ -176,10 +176,10 @@ public class EntityRetrieveTestITCase extends AbstractTestITCase {
     final ODataRawResponse res = req.execute();
     assertNotNull(res);
 
-    final ResWrap<ODataEntitySet> entitySet = res.getBodyAs(ODataEntitySet.class);
+    final ResWrap<ClientEntitySet> entitySet = res.getBodyAs(ClientEntitySet.class);
     assertNull(entitySet);
 
-    final ResWrap<ODataEntity> entity = res.getBodyAs(ODataEntity.class);
+    final ResWrap<ClientEntity> entity = res.getBodyAs(ClientEntity.class);
     assertTrue(entity.getPayload().getId().toASCIIString().endsWith("/StaticService/V40/Static.svc/People(5)"));
   }
 
@@ -200,16 +200,17 @@ public class EntityRetrieveTestITCase extends AbstractTestITCase {
     multiKey.put("ProductDetailID", 1);
 
     final URIBuilder uriBuilder = client.newURIBuilder(testStaticServiceRootURL).
-            appendEntitySetSegment("ProductDetails").appendKeySegment(multiKey);
+        appendEntitySetSegment("ProductDetails").appendKeySegment(multiKey);
 
-    final ODataEntityRequest<ODataEntity> req = client.getRetrieveRequestFactory().getEntityRequest(uriBuilder.build());
+    final ODataEntityRequest<ClientEntity> req =
+        client.getRetrieveRequestFactory().getEntityRequest(uriBuilder.build());
     req.setFormat(format);
 
-    final ODataRetrieveResponse<ODataEntity> res = req.execute();
-    final ODataEntity entity = res.getBody();
+    final ODataRetrieveResponse<ClientEntity> res = req.execute();
+    final ClientEntity entity = res.getBody();
     assertNotNull(entity);
     assertEquals(Integer.valueOf(1),
-            entity.getProperty("ProductDetailID").getPrimitiveValue().toCastValue(Integer.class));
+        entity.getProperty("ProductDetailID").getPrimitiveValue().toCastValue(Integer.class));
   }
 
   @Test
@@ -224,18 +225,19 @@ public class EntityRetrieveTestITCase extends AbstractTestITCase {
 
   private void checkForETag(final ODataClient client, final ODataFormat format) {
     final URIBuilder uriBuilder =
-            client.newURIBuilder(testStaticServiceRootURL).appendEntitySetSegment("Orders").appendKeySegment(8);
+        client.newURIBuilder(testStaticServiceRootURL).appendEntitySetSegment("Orders").appendKeySegment(8);
 
-    final ODataEntityRequest<ODataEntity> req = client.getRetrieveRequestFactory().getEntityRequest(uriBuilder.build());
+    final ODataEntityRequest<ClientEntity> req =
+        client.getRetrieveRequestFactory().getEntityRequest(uriBuilder.build());
     req.setFormat(format);
 
-    final ODataRetrieveResponse<ODataEntity> res = req.execute();
+    final ODataRetrieveResponse<ClientEntity> res = req.execute();
     assertEquals(200, res.getStatusCode());
 
     final String etag = res.getETag();
     assertTrue(StringUtils.isNotBlank(etag));
 
-    final ODataEntity order = res.getBody();
+    final ClientEntity order = res.getBody();
     assertEquals(etag, order.getETag());
     assertEquals("Microsoft.Test.OData.Services.ODataWCFService.Order", order.getTypeName().toString());
     assertEquals("Edm.Int32", order.getProperty("OrderID").getPrimitiveValue().getTypeName());
@@ -263,7 +265,8 @@ public class EntityRetrieveTestITCase extends AbstractTestITCase {
   public void issue99() {
     final URIBuilder uriBuilder = client.newURIBuilder(testStaticServiceRootURL).appendEntitySetSegment("Orders");
 
-    final ODataEntityRequest<ODataEntity> req = client.getRetrieveRequestFactory().getEntityRequest(uriBuilder.build());
+    final ODataEntityRequest<ClientEntity> req =
+        client.getRetrieveRequestFactory().getEntityRequest(uriBuilder.build());
     req.setFormat(ODataFormat.JSON);
 
     // this statement should cause an IllegalArgumentException bearing JsonParseException
@@ -273,21 +276,21 @@ public class EntityRetrieveTestITCase extends AbstractTestITCase {
 
   private void reference(final ODataFormat format) {
     final URIBuilder uriBuilder = client.newURIBuilder(testStaticServiceRootURL).
-            appendEntitySetSegment("Orders").appendKeySegment(8).appendNavigationSegment("CustomerForOrder").
-            appendRefSegment();
+        appendEntitySetSegment("Orders").appendKeySegment(8).appendNavigationSegment("CustomerForOrder").
+        appendRefSegment();
 
-    ODataEntityRequest<ODataEntity> req = client.getRetrieveRequestFactory().getEntityRequest(uriBuilder.build());
+    ODataEntityRequest<ClientEntity> req = client.getRetrieveRequestFactory().getEntityRequest(uriBuilder.build());
     req.setFormat(format);
 
-    ODataRetrieveResponse<ODataEntity> res = req.execute();
+    ODataRetrieveResponse<ClientEntity> res = req.execute();
     assertNotNull(res);
 
-    final ODataEntity entity = res.getBody();
+    final ClientEntity entity = res.getBody();
     assertNotNull(entity);
     assertTrue(entity.getId().toASCIIString().endsWith("/StaticService/V40/Static.svc/Customers(PersonID=1)"));
 
     final URI referenceURI = client.newURIBuilder(testStaticServiceRootURL).
-            appendEntityIdSegment(entity.getId().toASCIIString()).build();
+        appendEntityIdSegment(entity.getId().toASCIIString()).build();
 
     req = client.getRetrieveRequestFactory().getEntityRequest(referenceURI);
     req.setFormat(format);
@@ -309,16 +312,16 @@ public class EntityRetrieveTestITCase extends AbstractTestITCase {
 
   private void contained(final ODataClient client, final ODataFormat format) throws EdmPrimitiveTypeException {
     final URI uri = client.newURIBuilder(testStaticServiceRootURL).
-            appendEntitySetSegment("Accounts").appendKeySegment(101).
-            appendNavigationSegment("MyPaymentInstruments").appendKeySegment(101902).build();
-    final ODataEntityRequest<ODataEntity> req = client.getRetrieveRequestFactory().getEntityRequest(uri);
+        appendEntitySetSegment("Accounts").appendKeySegment(101).
+        appendNavigationSegment("MyPaymentInstruments").appendKeySegment(101902).build();
+    final ODataEntityRequest<ClientEntity> req = client.getRetrieveRequestFactory().getEntityRequest(uri);
     req.setFormat(format);
 
-    final ODataEntity contained = req.execute().getBody();
+    final ClientEntity contained = req.execute().getBody();
     assertNotNull(contained);
     assertEquals("Microsoft.Test.OData.Services.ODataWCFService.PaymentInstrument", contained.getTypeName().toString());
     assertEquals(101902,
-            contained.getProperty("PaymentInstrumentID").getPrimitiveValue().toCastValue(Integer.class), 0);
+        contained.getProperty("PaymentInstrumentID").getPrimitiveValue().toCastValue(Integer.class), 0);
     assertEquals("Edm.DateTimeOffset", contained.getProperty("CreatedDate").getPrimitiveValue().getTypeName());
     assertNotNull(contained.getProperty("CreatedDate").getPrimitiveValue().toCastValue(Timestamp.class));
   }
@@ -340,17 +343,17 @@ public class EntityRetrieveTestITCase extends AbstractTestITCase {
 
   private void entitySetNavigationLink(final ODataClient client, final ODataFormat format) {
     final URI uri = client.newURIBuilder(testStaticServiceRootURL).
-            appendEntitySetSegment("Accounts").appendKeySegment(101).build();
-    final ODataEntityRequest<ODataEntity> req = client.getRetrieveRequestFactory().getEntityRequest(uri);
+        appendEntitySetSegment("Accounts").appendKeySegment(101).build();
+    final ODataEntityRequest<ClientEntity> req = client.getRetrieveRequestFactory().getEntityRequest(uri);
     req.setFormat(format);
 
-    final ODataEntity entity = req.execute().getBody();
+    final ClientEntity entity = req.execute().getBody();
     assertNotNull(entity);
 
     // With JSON, entity set navigation links are only recognizable via Edm
     if (format == ODataFormat.ATOM || client instanceof EdmEnabledODataClient) {
-      assertEquals(ODataLinkType.ENTITY_SET_NAVIGATION, entity.getNavigationLink("MyPaymentInstruments").getType());
-      assertEquals(ODataLinkType.ENTITY_SET_NAVIGATION, entity.getNavigationLink("ActiveSubscriptions").getType());
+      assertEquals(ClientLinkType.ENTITY_SET_NAVIGATION, entity.getNavigationLink("MyPaymentInstruments").getType());
+      assertEquals(ClientLinkType.ENTITY_SET_NAVIGATION, entity.getNavigationLink("ActiveSubscriptions").getType());
     }
   }
 

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/c37d4da5/fit/src/test/java/org/apache/olingo/fit/v4/EntitySetTestITCase.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/v4/EntitySetTestITCase.java b/fit/src/test/java/org/apache/olingo/fit/v4/EntitySetTestITCase.java
index 821d7b7..65f54e5 100644
--- a/fit/src/test/java/org/apache/olingo/fit/v4/EntitySetTestITCase.java
+++ b/fit/src/test/java/org/apache/olingo/fit/v4/EntitySetTestITCase.java
@@ -1,18 +1,18 @@
-/* 
+/*
  * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
+ * or more contributor license agreements. See the NOTICE file
  * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
+ * 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
- *
+ * 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
+ * KIND, either express or implied. See the License for the
  * specific language governing permissions and limitations
  * under the License.
  */
@@ -28,8 +28,8 @@ import org.apache.olingo.client.api.domain.ODataEntitySetIterator;
 import org.apache.olingo.client.api.uri.URIBuilder;
 import org.apache.olingo.client.core.uri.URIUtils;
 import org.apache.olingo.commons.api.data.ResWrap;
-import org.apache.olingo.commons.api.domain.ODataEntity;
-import org.apache.olingo.commons.api.domain.ODataEntitySet;
+import org.apache.olingo.commons.api.domain.ClientEntity;
+import org.apache.olingo.commons.api.domain.ClientEntitySet;
 import org.apache.olingo.commons.api.format.ODataFormat;
 import org.junit.Test;
 
@@ -54,7 +54,7 @@ public class EntitySetTestITCase extends AbstractTestITCase {
     final ODataRawResponse res = req.execute();
     assertNotNull(res);
 
-    final ResWrap<ODataEntitySet> entitySet = res.getBodyAs(ODataEntitySet.class);
+    final ResWrap<ClientEntitySet> entitySet = res.getBodyAs(ClientEntitySet.class);
     assertNotNull(entitySet.getPayload());
     assertTrue(entitySet.getContextURL().toASCIIString().endsWith("$metadata#People"));
   }
@@ -79,7 +79,7 @@ public class EntitySetTestITCase extends AbstractTestITCase {
     final ODataRawResponse res = req.execute();
     assertNotNull(res);
 
-    final ResWrap<ODataEntitySet> entitySet = res.getBodyAs(ODataEntitySet.class);
+    final ResWrap<ClientEntitySet> entitySet = res.getBodyAs(ClientEntitySet.class);
     assertEquals(5, entitySet.getPayload().getEntities().size());
 
     assertEquals("Microsoft.Test.OData.Services.ODataWCFService.Address",
@@ -104,12 +104,12 @@ public class EntitySetTestITCase extends AbstractTestITCase {
   private void readODataEntitySetIterator(final ODataFormat format) {
     final URIBuilder uriBuilder = client.newURIBuilder(testStaticServiceRootURL).appendEntitySetSegment("People");
 
-    final ODataEntitySetIteratorRequest<ODataEntitySet, ODataEntity> req =
+    final ODataEntitySetIteratorRequest<ClientEntitySet, ClientEntity> req =
         client.getRetrieveRequestFactory().getEntitySetIteratorRequest(uriBuilder.build());
     req.setFormat(format);
 
-    final ODataRetrieveResponse<ODataEntitySetIterator<ODataEntitySet, ODataEntity>> res = req.execute();
-    final ODataEntitySetIterator<ODataEntitySet, ODataEntity> feedIterator = res.getBody();
+    final ODataRetrieveResponse<ODataEntitySetIterator<ClientEntitySet, ClientEntity>> res = req.execute();
+    final ODataEntitySetIterator<ClientEntitySet, ClientEntity> feedIterator = res.getBody();
 
     assertNotNull(feedIterator);
 
@@ -146,13 +146,13 @@ public class EntitySetTestITCase extends AbstractTestITCase {
   private void readWithNext(final ODataFormat format) {
     final URIBuilder uriBuilder = client.newURIBuilder(testStaticServiceRootURL).appendEntitySetSegment("People");
 
-    final ODataEntitySetRequest<ODataEntitySet> req = client.getRetrieveRequestFactory().
+    final ODataEntitySetRequest<ClientEntitySet> req = client.getRetrieveRequestFactory().
         getEntitySetRequest(uriBuilder.build());
     req.setFormat(format);
     req.setPrefer(client.newPreferences().maxPageSize(5));
 
-    final ODataRetrieveResponse<ODataEntitySet> res = req.execute();
-    final ODataEntitySet feed = res.getBody();
+    final ODataRetrieveResponse<ClientEntitySet> res = req.execute();
+    final ClientEntitySet feed = res.getBody();
 
     assertNotNull(feed);
 


[24/50] [abbrv] olingo-odata4 git commit: [OLINGO-564] Renamed 'ClientCsdl' classes

Posted by mi...@apache.org.
http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/53b10f6b/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/ClientAnnotationPath.java
----------------------------------------------------------------------
diff --git a/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/ClientAnnotationPath.java b/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/ClientAnnotationPath.java
deleted file mode 100644
index 7644c03..0000000
--- a/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/ClientAnnotationPath.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.client.core.edm.xml;
-
-import org.apache.olingo.commons.api.edm.provider.annotation.AnnotationPath;
-
-class ClientAnnotationPath extends AbstractClientElementOrAttributeExpression implements AnnotationPath {
-
-  private static final long serialVersionUID = 5360735207353494466L;
-
-}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/53b10f6b/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/ClientAnnotations.java
----------------------------------------------------------------------
diff --git a/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/ClientAnnotations.java b/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/ClientAnnotations.java
deleted file mode 100644
index d395706..0000000
--- a/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/ClientAnnotations.java
+++ /dev/null
@@ -1,62 +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.client.core.edm.xml;
-
-import com.fasterxml.jackson.core.JsonParser;
-import com.fasterxml.jackson.core.JsonToken;
-import com.fasterxml.jackson.databind.DeserializationContext;
-import org.apache.olingo.commons.api.edm.provider.CsdlAnnotations;
-
-import com.fasterxml.jackson.databind.annotation.JsonDeserialize;
-
-import java.io.IOException;
-
-@JsonDeserialize(using = ClientAnnotations.AnnotationsDeserializer.class)
-class ClientAnnotations extends CsdlAnnotations {
-
-  private static final long serialVersionUID = -5961207981571644200L;
-
-  static class AnnotationsDeserializer extends AbstractClientEdmDeserializer<ClientAnnotations> {
-
-    @Override
-    protected ClientAnnotations doDeserialize(final JsonParser jp, final DeserializationContext ctxt)
-            throws IOException {
-
-      final ClientAnnotations annotations = new ClientAnnotations();
-
-      for (; jp.getCurrentToken() != null && jp.getCurrentToken() != JsonToken.END_OBJECT; jp.nextToken()) {
-        final JsonToken token = jp.getCurrentToken();
-        if (token == JsonToken.FIELD_NAME) {
-          if ("Target".equals(jp.getCurrentName())) {
-            annotations.setTarget(jp.nextTextValue());
-          } else if ("Qualifier".equals(jp.getCurrentName())) {
-            annotations.setQualifier(jp.nextTextValue());
-          } else if ("Annotation".equals(jp.getCurrentName())) {
-            jp.nextToken();
-            annotations.getAnnotations().add(jp.readValueAs(ClientAnnotation.class));
-          }
-        }
-      }
-
-      return annotations;
-    }
-
-  }
-
-}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/53b10f6b/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/ClientApply.java
----------------------------------------------------------------------
diff --git a/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/ClientApply.java b/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/ClientApply.java
deleted file mode 100644
index 9d89fc7..0000000
--- a/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/ClientApply.java
+++ /dev/null
@@ -1,80 +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.client.core.edm.xml;
-
-import java.io.IOException;
-import java.util.ArrayList;
-import java.util.List;
-
-import com.fasterxml.jackson.core.JsonParser;
-import com.fasterxml.jackson.core.JsonToken;
-import com.fasterxml.jackson.databind.DeserializationContext;
-import org.apache.olingo.commons.api.edm.provider.annotation.AnnotationExpression;
-import org.apache.olingo.commons.api.edm.provider.annotation.Apply;
-
-import com.fasterxml.jackson.databind.annotation.JsonDeserialize;
-
-@JsonDeserialize(using = ClientApply.ApplyDeserializer.class)
-class ClientApply extends AbstractClientAnnotatableDynamicAnnotationExpression implements Apply {
-
-  private static final long serialVersionUID = 4358398303405059879L;
-
-  private String function;
-
-  private final List<AnnotationExpression> parameters = new ArrayList<AnnotationExpression>();
-
-  @Override
-  public String getFunction() {
-    return function;
-  }
-
-  public void setFunction(final String function) {
-    this.function = function;
-  }
-
-  @Override
-  public List<AnnotationExpression> getParameters() {
-    return parameters;
-  }
-
-  static class ApplyDeserializer extends AbstractClientEdmDeserializer<ClientApply> {
-
-    @Override
-    protected ClientApply doDeserialize(final JsonParser jp, final DeserializationContext ctxt)
-            throws IOException {
-      final ClientApply apply = new ClientApply();
-      for (; jp.getCurrentToken() != JsonToken.END_OBJECT; jp.nextToken()) {
-        final JsonToken token = jp.getCurrentToken();
-        if (token == JsonToken.FIELD_NAME) {
-          if ("Function".equals(jp.getCurrentName())) {
-            apply.setFunction(jp.nextTextValue());
-          } else if ("Annotation".equals(jp.getCurrentName())) {
-            apply.getAnnotations().add(jp.readValueAs(ClientAnnotation.class));
-          } else if (isAnnotationConstExprConstruct(jp)) {
-            apply.getParameters().add(parseAnnotationConstExprConstruct(jp));
-          } else {
-            apply.getParameters().add(jp.readValueAs(AbstractClientDynamicAnnotationExpression.class));
-          }
-        }
-      }
-
-      return apply;
-    }
-  }
-}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/53b10f6b/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/ClientCast.java
----------------------------------------------------------------------
diff --git a/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/ClientCast.java b/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/ClientCast.java
deleted file mode 100644
index 2160268..0000000
--- a/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/ClientCast.java
+++ /dev/null
@@ -1,137 +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.client.core.edm.xml;
-
-import com.fasterxml.jackson.core.JsonParser;
-import com.fasterxml.jackson.core.JsonToken;
-import com.fasterxml.jackson.databind.DeserializationContext;
-import org.apache.olingo.commons.api.edm.geo.SRID;
-import org.apache.olingo.commons.api.edm.provider.annotation.Cast;
-import org.apache.olingo.commons.api.edm.provider.annotation.DynamicAnnotationExpression;
-
-import com.fasterxml.jackson.databind.annotation.JsonDeserialize;
-
-import java.io.IOException;
-
-@JsonDeserialize(using = ClientCast.CastDeserializer.class)
-class ClientCast extends AbstractClientAnnotatableDynamicAnnotationExpression implements Cast {
-
-  private static final long serialVersionUID = 3312415984116005313L;
-
-  private String type;
-
-  private Integer maxLength;
-
-  private Integer precision;
-
-  private Integer scale;
-
-  private SRID srid;
-
-  private DynamicAnnotationExpression value;
-
-  @Override
-  public String getType() {
-    return type;
-  }
-
-  public void setType(final String type) {
-    this.type = type;
-  }
-
-  @Override
-  public Integer getMaxLength() {
-    return maxLength;
-  }
-
-  public void setMaxLength(final Integer maxLength) {
-    this.maxLength = maxLength;
-  }
-
-  @Override
-  public Integer getPrecision() {
-    return precision;
-  }
-
-  public void setPrecision(final Integer precision) {
-    this.precision = precision;
-  }
-
-  @Override
-  public Integer getScale() {
-    return scale;
-  }
-
-  public void setScale(final Integer scale) {
-    this.scale = scale;
-  }
-
-  @Override
-  public SRID getSrid() {
-    return srid;
-  }
-
-  public void setSrid(final SRID srid) {
-    this.srid = srid;
-  }
-
-  @Override
-  public DynamicAnnotationExpression getValue() {
-    return value;
-  }
-
-  public void setValue(final DynamicAnnotationExpression value) {
-    this.value = value;
-  }
-
-  static class CastDeserializer extends AbstractClientEdmDeserializer<ClientCast> {
-
-    @Override
-    protected ClientCast doDeserialize(final JsonParser jp, final DeserializationContext ctxt)
-            throws IOException {
-      final ClientCast cast = new ClientCast();
-      for (; jp.getCurrentToken() != JsonToken.END_OBJECT; jp.nextToken()) {
-        final JsonToken token = jp.getCurrentToken();
-        if (token == JsonToken.FIELD_NAME) {
-          if ("Type".equals(jp.getCurrentName())) {
-            cast.setType(jp.nextTextValue());
-          } else if ("Annotation".equals(jp.getCurrentName())) {
-            cast.getAnnotations().add(jp.readValueAs(ClientAnnotation.class));
-          } else if ("MaxLength".equals(jp.getCurrentName())) {
-            final String maxLenght = jp.nextTextValue();
-            cast.setMaxLength(maxLenght.equalsIgnoreCase("max") ? Integer.MAX_VALUE : Integer.valueOf(maxLenght));
-          } else if ("Precision".equals(jp.getCurrentName())) {
-            cast.setPrecision(Integer.valueOf(jp.nextTextValue()));
-          } else if ("Scale".equals(jp.getCurrentName())) {
-            final String scale = jp.nextTextValue();
-            cast.setScale(scale.equalsIgnoreCase("variable") ? 0 : Integer.valueOf(scale));
-          } else if ("SRID".equals(jp.getCurrentName())) {
-            final String srid = jp.nextTextValue();
-            if (srid != null) {
-              cast.setSrid(SRID.valueOf(srid));
-            }
-          } else {
-            cast.setValue(jp.readValueAs(AbstractClientDynamicAnnotationExpression.class));
-          }
-        }
-      }
-      return cast;
-    }
-  }
-}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/53b10f6b/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/ClientCollection.java
----------------------------------------------------------------------
diff --git a/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/ClientCollection.java b/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/ClientCollection.java
deleted file mode 100644
index 6dc43a9..0000000
--- a/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/ClientCollection.java
+++ /dev/null
@@ -1,64 +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.client.core.edm.xml;
-
-import java.io.IOException;
-import java.util.ArrayList;
-import java.util.List;
-
-import com.fasterxml.jackson.core.JsonParser;
-import com.fasterxml.jackson.core.JsonToken;
-import com.fasterxml.jackson.databind.DeserializationContext;
-import org.apache.olingo.commons.api.edm.provider.annotation.AnnotationExpression;
-import org.apache.olingo.commons.api.edm.provider.annotation.Collection;
-
-import com.fasterxml.jackson.databind.annotation.JsonDeserialize;
-
-@JsonDeserialize(using = ClientCollection.CollectionDeserializer.class)
-class ClientCollection extends AbstractClientDynamicAnnotationExpression implements Collection {
-
-  private static final long serialVersionUID = -724749123749715643L;
-
-  private final List<AnnotationExpression> items = new ArrayList<AnnotationExpression>();
-
-  @Override
-  public List<AnnotationExpression> getItems() {
-    return items;
-  }
-
-  static class CollectionDeserializer extends AbstractClientEdmDeserializer<ClientCollection> {
-    @Override
-    protected ClientCollection doDeserialize(final JsonParser jp, final DeserializationContext ctxt)
-            throws IOException {
-      final ClientCollection collection = new ClientCollection();
-      for (; jp.getCurrentToken() != JsonToken.END_OBJECT; jp.nextToken()) {
-        final JsonToken token = jp.getCurrentToken();
-        if (token == JsonToken.FIELD_NAME) {
-          if (isAnnotationConstExprConstruct(jp)) {
-            collection.getItems().add(parseAnnotationConstExprConstruct(jp));
-          } else {
-            collection.getItems().add(jp.readValueAs(AbstractClientDynamicAnnotationExpression.class));
-          }
-        }
-      }
-
-      return collection;
-    }
-  }
-}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/53b10f6b/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/ClientComplexType.java
----------------------------------------------------------------------
diff --git a/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/ClientComplexType.java b/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/ClientComplexType.java
deleted file mode 100644
index 1f6e6de..0000000
--- a/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/ClientComplexType.java
+++ /dev/null
@@ -1,72 +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 >ied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-package org.apache.olingo.client.core.edm.xml;
-
-import com.fasterxml.jackson.core.JsonParser;
-import com.fasterxml.jackson.core.JsonToken;
-import com.fasterxml.jackson.databind.DeserializationContext;
-import org.apache.commons.lang3.BooleanUtils;
-import org.apache.olingo.commons.api.edm.provider.CsdlComplexType;
-
-import com.fasterxml.jackson.databind.annotation.JsonDeserialize;
-
-import java.io.IOException;
-
-@JsonDeserialize(using = ClientComplexType.ComplexTypeDeserializer.class)
-class ClientComplexType extends CsdlComplexType {
-
-  private static final long serialVersionUID = 4076944306925840115L;
-
-  static class ComplexTypeDeserializer extends AbstractClientEdmDeserializer<CsdlComplexType> {
-
-    @Override
-    protected CsdlComplexType doDeserialize(final JsonParser jp, final DeserializationContext ctxt)
-            throws IOException {
-
-      final ClientComplexType complexType = new ClientComplexType();
-
-      for (; jp.getCurrentToken() != JsonToken.END_OBJECT; jp.nextToken()) {
-        final JsonToken token = jp.getCurrentToken();
-        if (token == JsonToken.FIELD_NAME) {
-          if ("Name".equals(jp.getCurrentName())) {
-            complexType.setName(jp.nextTextValue());
-          } else if ("Abstract".equals(jp.getCurrentName())) {
-            complexType.setAbstract(BooleanUtils.toBoolean(jp.nextTextValue()));
-          } else if ("BaseType".equals(jp.getCurrentName())) {
-            complexType.setBaseType(jp.nextTextValue());
-          } else if ("OpenType".equals(jp.getCurrentName())) {
-            complexType.setOpenType(BooleanUtils.toBoolean(jp.nextTextValue()));
-          } else if ("Property".equals(jp.getCurrentName())) {
-            jp.nextToken();
-            complexType.getProperties().add(jp.readValueAs(ClientProperty.class));
-          } else if ("NavigationProperty".equals(jp.getCurrentName())) {
-            jp.nextToken();
-            complexType.getNavigationProperties().add(jp.readValueAs(ClientNavigationProperty.class));
-          } else if ("Annotation".equals(jp.getCurrentName())) {
-            jp.nextToken();
-            complexType.getAnnotations().add(jp.readValueAs(ClientAnnotation.class));
-          }
-        }
-      }
-
-      return complexType;
-    }
-  }
-
-}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/53b10f6b/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/ClientConstantAnnotationExpression.java
----------------------------------------------------------------------
diff --git a/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/ClientConstantAnnotationExpression.java b/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/ClientConstantAnnotationExpression.java
deleted file mode 100644
index 6ff3fd3..0000000
--- a/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/ClientConstantAnnotationExpression.java
+++ /dev/null
@@ -1,52 +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.client.core.edm.xml;
-
-import org.apache.olingo.commons.api.edm.provider.annotation.ConstantAnnotationExpression;
-
-class ClientConstantAnnotationExpression
-        extends AbstractClientAnnotationExpression implements ConstantAnnotationExpression {
-
-  private static final long serialVersionUID = 5618680702707972904L;
-
-  private Type type;
-
-  private String value;
-
-  @Override
-  public Type getType() {
-    return type;
-  }
-
-  @Override
-  public void setType(final Type type) {
-    this.type = type;
-  }
-
-  @Override
-  public String getValue() {
-    return value;
-  }
-
-  @Override
-  public void setValue(final String value) {
-    this.value = value;
-  }
-
-}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/53b10f6b/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/ClientCsdlAction.java
----------------------------------------------------------------------
diff --git a/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/ClientCsdlAction.java b/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/ClientCsdlAction.java
new file mode 100644
index 0000000..4514564
--- /dev/null
+++ b/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/ClientCsdlAction.java
@@ -0,0 +1,68 @@
+/*
+ * 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.client.core.edm.xml;
+
+import com.fasterxml.jackson.core.JsonParser;
+import com.fasterxml.jackson.core.JsonToken;
+import com.fasterxml.jackson.databind.DeserializationContext;
+import org.apache.commons.lang3.BooleanUtils;
+import org.apache.olingo.commons.api.edm.provider.CsdlAction;
+
+import com.fasterxml.jackson.databind.annotation.JsonDeserialize;
+
+import java.io.IOException;
+
+@JsonDeserialize(using = ClientCsdlAction.ActionDeserializer.class)
+class ClientCsdlAction extends CsdlAction {
+
+  private static final long serialVersionUID = 5321541275349234088L;
+
+  static class ActionDeserializer extends AbstractClientCsdlEdmDeserializer<ClientCsdlAction> {
+
+    @Override
+    protected ClientCsdlAction doDeserialize(final JsonParser jp, final DeserializationContext ctxt)
+            throws IOException {
+
+      final ClientCsdlAction action = new ClientCsdlAction();
+
+      for (; jp.getCurrentToken() != JsonToken.END_OBJECT; jp.nextToken()) {
+        final JsonToken token = jp.getCurrentToken();
+        if (token == JsonToken.FIELD_NAME) {
+          if ("Name".equals(jp.getCurrentName())) {
+            action.setName(jp.nextTextValue());
+          } else if ("IsBound".equals(jp.getCurrentName())) {
+            action.setBound(BooleanUtils.toBoolean(jp.nextTextValue()));
+          } else if ("EntitySetPath".equals(jp.getCurrentName())) {
+            action.setEntitySetPath(jp.nextTextValue());
+          } else if ("Parameter".equals(jp.getCurrentName())) {
+            jp.nextToken();
+            action.getParameters().add(jp.readValueAs(ClientCsdlParameter.class));
+          } else if ("ReturnType".equals(jp.getCurrentName())) {
+            action.setReturnType(parseReturnType(jp, "Action"));
+          } else if ("Annotation".equals(jp.getCurrentName())) {
+            jp.nextToken();
+            action.getAnnotations().add(jp.readValueAs(ClientCsdlAnnotation.class));
+          }
+        }
+      }
+
+      return action;
+    }
+  }
+}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/53b10f6b/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/ClientCsdlActionImport.java
----------------------------------------------------------------------
diff --git a/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/ClientCsdlActionImport.java b/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/ClientCsdlActionImport.java
new file mode 100644
index 0000000..ee6c69d
--- /dev/null
+++ b/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/ClientCsdlActionImport.java
@@ -0,0 +1,58 @@
+/*
+ * 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.client.core.edm.xml;
+
+import com.fasterxml.jackson.core.JsonParser;
+import com.fasterxml.jackson.core.JsonToken;
+import com.fasterxml.jackson.databind.DeserializationContext;
+import com.fasterxml.jackson.databind.annotation.JsonDeserialize;
+import org.apache.olingo.commons.api.edm.provider.CsdlActionImport;
+
+import java.io.IOException;
+
+@JsonDeserialize(using = ClientCsdlActionImport.ActionImportDeserializer.class)
+class ClientCsdlActionImport extends CsdlActionImport {
+
+  private static final long serialVersionUID = 2971468441177647068L;
+
+  static class ActionImportDeserializer extends AbstractClientCsdlEdmDeserializer<ClientCsdlActionImport> {
+
+    @Override
+    protected ClientCsdlActionImport doDeserialize(final JsonParser jp, final DeserializationContext ctxt)
+            throws IOException {
+
+      final ClientCsdlActionImport action = new ClientCsdlActionImport();
+
+      for (; jp.getCurrentToken() != JsonToken.END_OBJECT; jp.nextToken()) {
+        final JsonToken token = jp.getCurrentToken();
+        if (token == JsonToken.FIELD_NAME) {
+          if ("Action".equals(jp.getCurrentName())) {
+            action.setAction(jp.nextTextValue());
+          } else if ("Name".equals(jp.getCurrentName())) {
+            action.setName(jp.nextTextValue());
+          } else if ("EntitySet".equals(jp.getCurrentName())) {
+            action.setEntitySet(jp.nextTextValue());
+          }
+        }
+      }
+
+      return action;
+    }
+  }
+}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/53b10f6b/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/ClientCsdlAnnotation.java
----------------------------------------------------------------------
diff --git a/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/ClientCsdlAnnotation.java b/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/ClientCsdlAnnotation.java
new file mode 100644
index 0000000..5413444
--- /dev/null
+++ b/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/ClientCsdlAnnotation.java
@@ -0,0 +1,66 @@
+/*
+ * 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.client.core.edm.xml;
+
+import java.io.IOException;
+
+import com.fasterxml.jackson.core.JsonParser;
+import com.fasterxml.jackson.core.JsonToken;
+import com.fasterxml.jackson.databind.DeserializationContext;
+import org.apache.olingo.commons.api.edm.provider.CsdlAnnotation;
+
+import com.fasterxml.jackson.databind.annotation.JsonDeserialize;
+
+@JsonDeserialize(using = ClientCsdlAnnotation.AnnotationDeserializer.class)
+class ClientCsdlAnnotation extends CsdlAnnotation {
+
+  private static final long serialVersionUID = 5464714417411058033L;
+
+  static class AnnotationDeserializer extends AbstractClientCsdlEdmDeserializer<CsdlAnnotation> {
+
+    @Override
+    protected CsdlAnnotation doDeserialize(final JsonParser jp, final DeserializationContext ctxt)
+            throws IOException {
+
+      final ClientCsdlAnnotation annotation = new ClientCsdlAnnotation();
+
+      for (; jp.getCurrentToken() != null && jp.getCurrentToken() != JsonToken.END_OBJECT; jp.nextToken()) {
+        final JsonToken token = jp.getCurrentToken();
+        if (token == JsonToken.FIELD_NAME) {
+          if ("Term".equals(jp.getCurrentName())) {
+            annotation.setTerm(jp.nextTextValue());
+          } else if ("Qualifier".equals(jp.getCurrentName())) {
+            annotation.setQualifier(jp.nextTextValue());
+          } else if ("Annotation".equals(jp.getCurrentName())) {
+            jp.nextToken();
+            annotation.getAnnotations().add(jp.readValueAs(ClientCsdlAnnotation.class));
+          } else if (isAnnotationConstExprConstruct(jp)) {
+            // Constant Expressions
+            annotation.setExpression(parseAnnotationConstExprConstruct(jp));
+          } else {
+            // Dynamic Expressions
+            annotation.setExpression(jp.readValueAs(AbstractClientCsdlDynamicAnnotationExpression.class));
+          }
+        }
+      }
+
+      return annotation;
+    }
+  }
+}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/53b10f6b/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/ClientCsdlAnnotationPath.java
----------------------------------------------------------------------
diff --git a/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/ClientCsdlAnnotationPath.java b/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/ClientCsdlAnnotationPath.java
new file mode 100644
index 0000000..195f24b
--- /dev/null
+++ b/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/ClientCsdlAnnotationPath.java
@@ -0,0 +1,27 @@
+/*
+ * 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.client.core.edm.xml;
+
+import org.apache.olingo.commons.api.edm.provider.annotation.AnnotationPath;
+
+class ClientCsdlAnnotationPath extends AbstractClientCsdlElementOrAttributeExpression implements AnnotationPath {
+
+  private static final long serialVersionUID = 5360735207353494466L;
+
+}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/53b10f6b/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/ClientCsdlAnnotations.java
----------------------------------------------------------------------
diff --git a/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/ClientCsdlAnnotations.java b/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/ClientCsdlAnnotations.java
new file mode 100644
index 0000000..c710a42
--- /dev/null
+++ b/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/ClientCsdlAnnotations.java
@@ -0,0 +1,62 @@
+/*
+ * 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.client.core.edm.xml;
+
+import com.fasterxml.jackson.core.JsonParser;
+import com.fasterxml.jackson.core.JsonToken;
+import com.fasterxml.jackson.databind.DeserializationContext;
+import org.apache.olingo.commons.api.edm.provider.CsdlAnnotations;
+
+import com.fasterxml.jackson.databind.annotation.JsonDeserialize;
+
+import java.io.IOException;
+
+@JsonDeserialize(using = ClientCsdlAnnotations.AnnotationsDeserializer.class)
+class ClientCsdlAnnotations extends CsdlAnnotations {
+
+  private static final long serialVersionUID = -5961207981571644200L;
+
+  static class AnnotationsDeserializer extends AbstractClientCsdlEdmDeserializer<ClientCsdlAnnotations> {
+
+    @Override
+    protected ClientCsdlAnnotations doDeserialize(final JsonParser jp, final DeserializationContext ctxt)
+            throws IOException {
+
+      final ClientCsdlAnnotations annotations = new ClientCsdlAnnotations();
+
+      for (; jp.getCurrentToken() != null && jp.getCurrentToken() != JsonToken.END_OBJECT; jp.nextToken()) {
+        final JsonToken token = jp.getCurrentToken();
+        if (token == JsonToken.FIELD_NAME) {
+          if ("Target".equals(jp.getCurrentName())) {
+            annotations.setTarget(jp.nextTextValue());
+          } else if ("Qualifier".equals(jp.getCurrentName())) {
+            annotations.setQualifier(jp.nextTextValue());
+          } else if ("Annotation".equals(jp.getCurrentName())) {
+            jp.nextToken();
+            annotations.getAnnotations().add(jp.readValueAs(ClientCsdlAnnotation.class));
+          }
+        }
+      }
+
+      return annotations;
+    }
+
+  }
+
+}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/53b10f6b/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/ClientCsdlApply.java
----------------------------------------------------------------------
diff --git a/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/ClientCsdlApply.java b/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/ClientCsdlApply.java
new file mode 100644
index 0000000..2d80c98
--- /dev/null
+++ b/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/ClientCsdlApply.java
@@ -0,0 +1,80 @@
+/*
+ * 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.client.core.edm.xml;
+
+import java.io.IOException;
+import java.util.ArrayList;
+import java.util.List;
+
+import com.fasterxml.jackson.core.JsonParser;
+import com.fasterxml.jackson.core.JsonToken;
+import com.fasterxml.jackson.databind.DeserializationContext;
+import org.apache.olingo.commons.api.edm.provider.annotation.AnnotationExpression;
+import org.apache.olingo.commons.api.edm.provider.annotation.Apply;
+
+import com.fasterxml.jackson.databind.annotation.JsonDeserialize;
+
+@JsonDeserialize(using = ClientCsdlApply.ApplyDeserializer.class)
+class ClientCsdlApply extends AbstractClientCsdlAnnotatableDynamicAnnotationExpression implements Apply {
+
+  private static final long serialVersionUID = 4358398303405059879L;
+
+  private String function;
+
+  private final List<AnnotationExpression> parameters = new ArrayList<AnnotationExpression>();
+
+  @Override
+  public String getFunction() {
+    return function;
+  }
+
+  public void setFunction(final String function) {
+    this.function = function;
+  }
+
+  @Override
+  public List<AnnotationExpression> getParameters() {
+    return parameters;
+  }
+
+  static class ApplyDeserializer extends AbstractClientCsdlEdmDeserializer<ClientCsdlApply> {
+
+    @Override
+    protected ClientCsdlApply doDeserialize(final JsonParser jp, final DeserializationContext ctxt)
+            throws IOException {
+      final ClientCsdlApply apply = new ClientCsdlApply();
+      for (; jp.getCurrentToken() != JsonToken.END_OBJECT; jp.nextToken()) {
+        final JsonToken token = jp.getCurrentToken();
+        if (token == JsonToken.FIELD_NAME) {
+          if ("Function".equals(jp.getCurrentName())) {
+            apply.setFunction(jp.nextTextValue());
+          } else if ("Annotation".equals(jp.getCurrentName())) {
+            apply.getAnnotations().add(jp.readValueAs(ClientCsdlAnnotation.class));
+          } else if (isAnnotationConstExprConstruct(jp)) {
+            apply.getParameters().add(parseAnnotationConstExprConstruct(jp));
+          } else {
+            apply.getParameters().add(jp.readValueAs(AbstractClientCsdlDynamicAnnotationExpression.class));
+          }
+        }
+      }
+
+      return apply;
+    }
+  }
+}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/53b10f6b/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/ClientCsdlCast.java
----------------------------------------------------------------------
diff --git a/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/ClientCsdlCast.java b/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/ClientCsdlCast.java
new file mode 100644
index 0000000..384f6fa
--- /dev/null
+++ b/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/ClientCsdlCast.java
@@ -0,0 +1,137 @@
+/*
+ * 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.client.core.edm.xml;
+
+import com.fasterxml.jackson.core.JsonParser;
+import com.fasterxml.jackson.core.JsonToken;
+import com.fasterxml.jackson.databind.DeserializationContext;
+import org.apache.olingo.commons.api.edm.geo.SRID;
+import org.apache.olingo.commons.api.edm.provider.annotation.Cast;
+import org.apache.olingo.commons.api.edm.provider.annotation.DynamicAnnotationExpression;
+
+import com.fasterxml.jackson.databind.annotation.JsonDeserialize;
+
+import java.io.IOException;
+
+@JsonDeserialize(using = ClientCsdlCast.CastDeserializer.class)
+class ClientCsdlCast extends AbstractClientCsdlAnnotatableDynamicAnnotationExpression implements Cast {
+
+  private static final long serialVersionUID = 3312415984116005313L;
+
+  private String type;
+
+  private Integer maxLength;
+
+  private Integer precision;
+
+  private Integer scale;
+
+  private SRID srid;
+
+  private DynamicAnnotationExpression value;
+
+  @Override
+  public String getType() {
+    return type;
+  }
+
+  public void setType(final String type) {
+    this.type = type;
+  }
+
+  @Override
+  public Integer getMaxLength() {
+    return maxLength;
+  }
+
+  public void setMaxLength(final Integer maxLength) {
+    this.maxLength = maxLength;
+  }
+
+  @Override
+  public Integer getPrecision() {
+    return precision;
+  }
+
+  public void setPrecision(final Integer precision) {
+    this.precision = precision;
+  }
+
+  @Override
+  public Integer getScale() {
+    return scale;
+  }
+
+  public void setScale(final Integer scale) {
+    this.scale = scale;
+  }
+
+  @Override
+  public SRID getSrid() {
+    return srid;
+  }
+
+  public void setSrid(final SRID srid) {
+    this.srid = srid;
+  }
+
+  @Override
+  public DynamicAnnotationExpression getValue() {
+    return value;
+  }
+
+  public void setValue(final DynamicAnnotationExpression value) {
+    this.value = value;
+  }
+
+  static class CastDeserializer extends AbstractClientCsdlEdmDeserializer<ClientCsdlCast> {
+
+    @Override
+    protected ClientCsdlCast doDeserialize(final JsonParser jp, final DeserializationContext ctxt)
+            throws IOException {
+      final ClientCsdlCast cast = new ClientCsdlCast();
+      for (; jp.getCurrentToken() != JsonToken.END_OBJECT; jp.nextToken()) {
+        final JsonToken token = jp.getCurrentToken();
+        if (token == JsonToken.FIELD_NAME) {
+          if ("Type".equals(jp.getCurrentName())) {
+            cast.setType(jp.nextTextValue());
+          } else if ("Annotation".equals(jp.getCurrentName())) {
+            cast.getAnnotations().add(jp.readValueAs(ClientCsdlAnnotation.class));
+          } else if ("MaxLength".equals(jp.getCurrentName())) {
+            final String maxLenght = jp.nextTextValue();
+            cast.setMaxLength(maxLenght.equalsIgnoreCase("max") ? Integer.MAX_VALUE : Integer.valueOf(maxLenght));
+          } else if ("Precision".equals(jp.getCurrentName())) {
+            cast.setPrecision(Integer.valueOf(jp.nextTextValue()));
+          } else if ("Scale".equals(jp.getCurrentName())) {
+            final String scale = jp.nextTextValue();
+            cast.setScale(scale.equalsIgnoreCase("variable") ? 0 : Integer.valueOf(scale));
+          } else if ("SRID".equals(jp.getCurrentName())) {
+            final String srid = jp.nextTextValue();
+            if (srid != null) {
+              cast.setSrid(SRID.valueOf(srid));
+            }
+          } else {
+            cast.setValue(jp.readValueAs(AbstractClientCsdlDynamicAnnotationExpression.class));
+          }
+        }
+      }
+      return cast;
+    }
+  }
+}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/53b10f6b/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/ClientCsdlCollection.java
----------------------------------------------------------------------
diff --git a/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/ClientCsdlCollection.java b/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/ClientCsdlCollection.java
new file mode 100644
index 0000000..cc9832b
--- /dev/null
+++ b/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/ClientCsdlCollection.java
@@ -0,0 +1,64 @@
+/*
+ * 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.client.core.edm.xml;
+
+import java.io.IOException;
+import java.util.ArrayList;
+import java.util.List;
+
+import com.fasterxml.jackson.core.JsonParser;
+import com.fasterxml.jackson.core.JsonToken;
+import com.fasterxml.jackson.databind.DeserializationContext;
+import org.apache.olingo.commons.api.edm.provider.annotation.AnnotationExpression;
+import org.apache.olingo.commons.api.edm.provider.annotation.Collection;
+
+import com.fasterxml.jackson.databind.annotation.JsonDeserialize;
+
+@JsonDeserialize(using = ClientCsdlCollection.CollectionDeserializer.class)
+class ClientCsdlCollection extends AbstractClientCsdlDynamicAnnotationExpression implements Collection {
+
+  private static final long serialVersionUID = -724749123749715643L;
+
+  private final List<AnnotationExpression> items = new ArrayList<AnnotationExpression>();
+
+  @Override
+  public List<AnnotationExpression> getItems() {
+    return items;
+  }
+
+  static class CollectionDeserializer extends AbstractClientCsdlEdmDeserializer<ClientCsdlCollection> {
+    @Override
+    protected ClientCsdlCollection doDeserialize(final JsonParser jp, final DeserializationContext ctxt)
+            throws IOException {
+      final ClientCsdlCollection collection = new ClientCsdlCollection();
+      for (; jp.getCurrentToken() != JsonToken.END_OBJECT; jp.nextToken()) {
+        final JsonToken token = jp.getCurrentToken();
+        if (token == JsonToken.FIELD_NAME) {
+          if (isAnnotationConstExprConstruct(jp)) {
+            collection.getItems().add(parseAnnotationConstExprConstruct(jp));
+          } else {
+            collection.getItems().add(jp.readValueAs(AbstractClientCsdlDynamicAnnotationExpression.class));
+          }
+        }
+      }
+
+      return collection;
+    }
+  }
+}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/53b10f6b/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/ClientCsdlComplexType.java
----------------------------------------------------------------------
diff --git a/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/ClientCsdlComplexType.java b/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/ClientCsdlComplexType.java
new file mode 100644
index 0000000..0b59e99
--- /dev/null
+++ b/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/ClientCsdlComplexType.java
@@ -0,0 +1,72 @@
+/*
+ * 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 >ied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.olingo.client.core.edm.xml;
+
+import com.fasterxml.jackson.core.JsonParser;
+import com.fasterxml.jackson.core.JsonToken;
+import com.fasterxml.jackson.databind.DeserializationContext;
+import org.apache.commons.lang3.BooleanUtils;
+import org.apache.olingo.commons.api.edm.provider.CsdlComplexType;
+
+import com.fasterxml.jackson.databind.annotation.JsonDeserialize;
+
+import java.io.IOException;
+
+@JsonDeserialize(using = ClientCsdlComplexType.ComplexTypeDeserializer.class)
+class ClientCsdlComplexType extends CsdlComplexType {
+
+  private static final long serialVersionUID = 4076944306925840115L;
+
+  static class ComplexTypeDeserializer extends AbstractClientCsdlEdmDeserializer<CsdlComplexType> {
+
+    @Override
+    protected CsdlComplexType doDeserialize(final JsonParser jp, final DeserializationContext ctxt)
+            throws IOException {
+
+      final ClientCsdlComplexType complexType = new ClientCsdlComplexType();
+
+      for (; jp.getCurrentToken() != JsonToken.END_OBJECT; jp.nextToken()) {
+        final JsonToken token = jp.getCurrentToken();
+        if (token == JsonToken.FIELD_NAME) {
+          if ("Name".equals(jp.getCurrentName())) {
+            complexType.setName(jp.nextTextValue());
+          } else if ("Abstract".equals(jp.getCurrentName())) {
+            complexType.setAbstract(BooleanUtils.toBoolean(jp.nextTextValue()));
+          } else if ("BaseType".equals(jp.getCurrentName())) {
+            complexType.setBaseType(jp.nextTextValue());
+          } else if ("OpenType".equals(jp.getCurrentName())) {
+            complexType.setOpenType(BooleanUtils.toBoolean(jp.nextTextValue()));
+          } else if ("Property".equals(jp.getCurrentName())) {
+            jp.nextToken();
+            complexType.getProperties().add(jp.readValueAs(ClientCsdlProperty.class));
+          } else if ("NavigationProperty".equals(jp.getCurrentName())) {
+            jp.nextToken();
+            complexType.getNavigationProperties().add(jp.readValueAs(ClientCsdlNavigationProperty.class));
+          } else if ("Annotation".equals(jp.getCurrentName())) {
+            jp.nextToken();
+            complexType.getAnnotations().add(jp.readValueAs(ClientCsdlAnnotation.class));
+          }
+        }
+      }
+
+      return complexType;
+    }
+  }
+
+}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/53b10f6b/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/ClientCsdlConstantAnnotationExpression.java
----------------------------------------------------------------------
diff --git a/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/ClientCsdlConstantAnnotationExpression.java b/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/ClientCsdlConstantAnnotationExpression.java
new file mode 100644
index 0000000..26e067f
--- /dev/null
+++ b/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/ClientCsdlConstantAnnotationExpression.java
@@ -0,0 +1,52 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.olingo.client.core.edm.xml;
+
+import org.apache.olingo.commons.api.edm.provider.annotation.ConstantAnnotationExpression;
+
+class ClientCsdlConstantAnnotationExpression
+        extends AbstractClientCsdlAnnotationExpression implements ConstantAnnotationExpression {
+
+  private static final long serialVersionUID = 5618680702707972904L;
+
+  private Type type;
+
+  private String value;
+
+  @Override
+  public Type getType() {
+    return type;
+  }
+
+  @Override
+  public void setType(final Type type) {
+    this.type = type;
+  }
+
+  @Override
+  public String getValue() {
+    return value;
+  }
+
+  @Override
+  public void setValue(final String value) {
+    this.value = value;
+  }
+
+}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/53b10f6b/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/ClientCsdlDataServices.java
----------------------------------------------------------------------
diff --git a/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/ClientCsdlDataServices.java b/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/ClientCsdlDataServices.java
new file mode 100644
index 0000000..072ad0f
--- /dev/null
+++ b/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/ClientCsdlDataServices.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.client.core.edm.xml;
+
+import java.io.IOException;
+import java.util.ArrayList;
+import java.util.List;
+
+import com.fasterxml.jackson.core.JsonParser;
+import com.fasterxml.jackson.core.JsonToken;
+import com.fasterxml.jackson.databind.DeserializationContext;
+import org.apache.olingo.client.api.edm.xml.DataServices;
+import org.apache.olingo.commons.api.edm.provider.CsdlAbstractEdmItem;
+import org.apache.olingo.commons.api.edm.provider.CsdlSchema;
+
+import com.fasterxml.jackson.databind.annotation.JsonDeserialize;
+
+@JsonDeserialize(using = ClientCsdlDataServices.DataServicesDeserializer.class)
+class ClientCsdlDataServices extends CsdlAbstractEdmItem implements DataServices {
+
+  private static final long serialVersionUID = 4200317286476885204L;
+
+  private final List<CsdlSchema> schemas = new ArrayList<CsdlSchema>();
+  
+  private String dataServiceVersion;
+
+  private String maxDataServiceVersion;
+
+  @Override
+  public String getDataServiceVersion() {
+    return dataServiceVersion;
+  }
+
+  public void setDataServiceVersion(final String version) {
+    this.dataServiceVersion = version;
+  }
+
+  @Override
+  public String getMaxDataServiceVersion() {
+    return maxDataServiceVersion;
+  }
+
+  public void setMaxDataServiceVersion(final String version) {
+    this.maxDataServiceVersion = version;
+  }
+
+  @Override
+  public List<CsdlSchema> getSchemas() {
+    return schemas;
+  }
+
+  static class DataServicesDeserializer extends AbstractClientCsdlEdmDeserializer<ClientCsdlDataServices> {
+
+    @Override
+    protected ClientCsdlDataServices doDeserialize(final JsonParser jp, final DeserializationContext ctxt)
+            throws IOException {
+
+      final ClientCsdlDataServices dataServices = new ClientCsdlDataServices();
+
+      for (; jp.getCurrentToken() != JsonToken.END_OBJECT; jp.nextToken()) {
+        final JsonToken token = jp.getCurrentToken();
+        if (token == JsonToken.FIELD_NAME) {
+          if ("DataServiceVersion".equals(jp.getCurrentName())) {
+            dataServices.setDataServiceVersion(jp.nextTextValue());
+          } else if ("MaxDataServiceVersion".equals(jp.getCurrentName())) {
+            dataServices.setMaxDataServiceVersion(jp.nextTextValue());
+          } else if ("Schema".equals(jp.getCurrentName())) {
+            jp.nextToken();
+            dataServices.getSchemas().add(jp.readValueAs(ClientCsdlSchema.class));
+          }
+        }
+      }
+
+      return dataServices;
+    }
+  }
+}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/53b10f6b/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/ClientCsdlEdmx.java
----------------------------------------------------------------------
diff --git a/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/ClientCsdlEdmx.java b/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/ClientCsdlEdmx.java
new file mode 100644
index 0000000..ba0d26d
--- /dev/null
+++ b/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/ClientCsdlEdmx.java
@@ -0,0 +1,95 @@
+/*
+ * 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.client.core.edm.xml;
+
+import java.io.IOException;
+import java.util.ArrayList;
+import java.util.List;
+
+import com.fasterxml.jackson.core.JsonParser;
+import com.fasterxml.jackson.core.JsonToken;
+import com.fasterxml.jackson.databind.DeserializationContext;
+import org.apache.olingo.client.api.edm.xml.DataServices;
+import org.apache.olingo.client.api.edm.xml.Edmx;
+import org.apache.olingo.client.api.edm.xml.Reference;
+import org.apache.olingo.commons.api.edm.provider.CsdlAbstractEdmItem;
+
+import com.fasterxml.jackson.databind.annotation.JsonDeserialize;
+
+@JsonDeserialize(using = ClientCsdlEdmx.EdmxDeserializer.class)
+public class ClientCsdlEdmx extends CsdlAbstractEdmItem implements Edmx {
+
+  private static final long serialVersionUID = -6293476719276092572L;
+
+  private final List<Reference> references = new ArrayList<Reference>();
+
+  private String version;
+
+  private DataServices dataServices;
+
+  @Override
+  public String getVersion() {
+    return version;
+  }
+
+  public void setVersion(final String version) {
+    this.version = version;
+  }
+
+  @Override
+  public DataServices getDataServices() {
+    return dataServices;
+  }
+
+  public void setDataServices(final DataServices dataServices) {
+    this.dataServices = dataServices;
+  }
+  
+  @Override
+  public List<Reference> getReferences() {
+    return references;
+  }
+
+  static class EdmxDeserializer extends AbstractClientCsdlEdmDeserializer<ClientCsdlEdmx> {
+
+    @Override
+    protected ClientCsdlEdmx doDeserialize(final JsonParser jp, final DeserializationContext ctxt)
+            throws IOException {
+
+      final ClientCsdlEdmx edmx = new ClientCsdlEdmx();
+
+      for (; jp.getCurrentToken() != JsonToken.END_OBJECT; jp.nextToken()) {
+        final JsonToken token = jp.getCurrentToken();
+        if (token == JsonToken.FIELD_NAME) {
+          if ("Version".equals(jp.getCurrentName())) {
+            edmx.setVersion(jp.nextTextValue());
+          } else if ("DataServices".equals(jp.getCurrentName())) {
+            jp.nextToken();
+            edmx.setDataServices(jp.readValueAs(ClientCsdlDataServices.class));
+          } else if ("Reference".equals(jp.getCurrentName())) {
+            jp.nextToken();
+            edmx.getReferences().add(jp.readValueAs(ClientCsdlReference.class));
+          }
+        }
+      }
+
+      return edmx;
+    }
+  }
+}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/53b10f6b/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/ClientCsdlEntityContainer.java
----------------------------------------------------------------------
diff --git a/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/ClientCsdlEntityContainer.java b/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/ClientCsdlEntityContainer.java
new file mode 100644
index 0000000..de83325
--- /dev/null
+++ b/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/ClientCsdlEntityContainer.java
@@ -0,0 +1,72 @@
+/*
+ * 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.client.core.edm.xml;
+
+import com.fasterxml.jackson.core.JsonParser;
+import com.fasterxml.jackson.core.JsonToken;
+import com.fasterxml.jackson.databind.DeserializationContext;
+import org.apache.olingo.commons.api.edm.provider.CsdlEntityContainer;
+
+import com.fasterxml.jackson.databind.annotation.JsonDeserialize;
+
+import java.io.IOException;
+
+@JsonDeserialize(using = ClientCsdlEntityContainer.EntityContainerDeserializer.class)
+class ClientCsdlEntityContainer extends CsdlEntityContainer {
+
+  private static final long serialVersionUID = 5631432527646955795L;
+
+  static class EntityContainerDeserializer extends AbstractClientCsdlEdmDeserializer<ClientCsdlEntityContainer> {
+
+    @Override
+    protected ClientCsdlEntityContainer doDeserialize(final JsonParser jp, final DeserializationContext ctxt)
+            throws IOException {
+
+      final ClientCsdlEntityContainer entityContainer = new ClientCsdlEntityContainer();
+
+      for (; jp.getCurrentToken() != JsonToken.END_OBJECT; jp.nextToken()) {
+        final JsonToken token = jp.getCurrentToken();
+        if (token == JsonToken.FIELD_NAME) {
+          if ("Name".equals(jp.getCurrentName())) {
+            entityContainer.setName(jp.nextTextValue());
+          } else if ("Extends".equals(jp.getCurrentName())) {
+            entityContainer.setExtendsContainer(jp.nextTextValue());
+          } else if ("EntitySet".equals(jp.getCurrentName())) {
+            jp.nextToken();
+            entityContainer.getEntitySets().add(jp.readValueAs(ClientCsdlEntitySet.class));
+          } else if ("Singleton".equals(jp.getCurrentName())) {
+            jp.nextToken();
+            entityContainer.getSingletons().add(jp.readValueAs(ClientCsdlSingleton.class));
+          } else if ("ActionImport".equals(jp.getCurrentName())) {
+            jp.nextToken();
+            entityContainer.getActionImports().add(jp.readValueAs(ClientCsdlActionImport.class));
+          } else if ("FunctionImport".equals(jp.getCurrentName())) {
+            jp.nextToken();
+            entityContainer.getFunctionImports().add(jp.readValueAs(ClientCsdlFunctionImport.class));
+          } else if ("Annotation".equals(jp.getCurrentName())) {
+            jp.nextToken();
+            entityContainer.getAnnotations().add(jp.readValueAs(ClientCsdlAnnotation.class));
+          }
+        }
+      }
+
+      return entityContainer;
+    }
+  }
+}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/53b10f6b/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/ClientCsdlEntityKey.java
----------------------------------------------------------------------
diff --git a/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/ClientCsdlEntityKey.java b/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/ClientCsdlEntityKey.java
new file mode 100644
index 0000000..7be9a90
--- /dev/null
+++ b/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/ClientCsdlEntityKey.java
@@ -0,0 +1,63 @@
+/*
+ * 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.client.core.edm.xml;
+
+import java.io.IOException;
+import java.util.ArrayList;
+import java.util.List;
+
+import com.fasterxml.jackson.core.JsonParser;
+import com.fasterxml.jackson.core.JsonToken;
+import com.fasterxml.jackson.databind.DeserializationContext;
+import org.apache.olingo.commons.api.edm.provider.CsdlAbstractEdmItem;
+import org.apache.olingo.commons.api.edm.provider.CsdlPropertyRef;
+
+import com.fasterxml.jackson.databind.annotation.JsonDeserialize;
+
+@JsonDeserialize(using = ClientCsdlEntityKey.EntityKeyDeserializer.class)
+class ClientCsdlEntityKey extends CsdlAbstractEdmItem {
+
+  private static final long serialVersionUID = 520227585458843347L;
+
+  private final List<CsdlPropertyRef> propertyRefs = new ArrayList<CsdlPropertyRef>();
+
+  public List<CsdlPropertyRef> getPropertyRefs() {
+    return propertyRefs;
+  }
+
+  static class EntityKeyDeserializer extends AbstractClientCsdlEdmDeserializer<ClientCsdlEntityKey> {
+    @Override
+    protected ClientCsdlEntityKey doDeserialize(final JsonParser jp, final DeserializationContext ctxt)
+            throws IOException {
+
+      final ClientCsdlEntityKey entityKey = new ClientCsdlEntityKey();
+
+      for (; jp.getCurrentToken() != JsonToken.END_OBJECT; jp.nextToken()) {
+        final JsonToken token = jp.getCurrentToken();
+
+        if (token == JsonToken.FIELD_NAME && "PropertyRef".equals(jp.getCurrentName())) {
+          jp.nextToken();
+          entityKey.getPropertyRefs().add(jp.readValueAs(ClientCsdlPropertyRef.class));
+        }
+      }
+
+      return entityKey;
+    }
+  }
+}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/53b10f6b/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/ClientCsdlEntitySet.java
----------------------------------------------------------------------
diff --git a/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/ClientCsdlEntitySet.java b/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/ClientCsdlEntitySet.java
new file mode 100644
index 0000000..6973a27
--- /dev/null
+++ b/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/ClientCsdlEntitySet.java
@@ -0,0 +1,65 @@
+/*
+ * 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.client.core.edm.xml;
+
+import com.fasterxml.jackson.core.JsonParser;
+import com.fasterxml.jackson.core.JsonToken;
+import com.fasterxml.jackson.databind.DeserializationContext;
+import org.apache.commons.lang3.BooleanUtils;
+import org.apache.olingo.commons.api.edm.provider.CsdlEntitySet;
+
+import com.fasterxml.jackson.databind.annotation.JsonDeserialize;
+
+import java.io.IOException;
+
+@JsonDeserialize(using = ClientCsdlEntitySet.EntitySetDeserializer.class)
+class ClientCsdlEntitySet extends CsdlEntitySet {
+
+  private static final long serialVersionUID = -5553885465204370676L;
+
+  static class EntitySetDeserializer extends AbstractClientCsdlEdmDeserializer<CsdlEntitySet> {
+    @Override
+    protected CsdlEntitySet doDeserialize(final JsonParser jp, final DeserializationContext ctxt)
+            throws IOException {
+
+      final ClientCsdlEntitySet entitySet = new ClientCsdlEntitySet();
+
+      for (; jp.getCurrentToken() != JsonToken.END_OBJECT; jp.nextToken()) {
+        final JsonToken token = jp.getCurrentToken();
+        if (token == JsonToken.FIELD_NAME) {
+          if ("Name".equals(jp.getCurrentName())) {
+            entitySet.setName(jp.nextTextValue());
+          } else if ("EntityType".equals(jp.getCurrentName())) {
+            entitySet.setType(jp.nextTextValue());
+          } else if ("IncludeInServiceDocument".equals(jp.getCurrentName())) {
+            entitySet.setIncludeInServiceDocument(BooleanUtils.toBoolean(jp.nextTextValue()));
+          } else if ("NavigationPropertyBinding".equals(jp.getCurrentName())) {
+            jp.nextToken();
+            entitySet.getNavigationPropertyBindings().add(jp.readValueAs(ClientCsdlNavigationPropertyBinding.class));
+          } else if ("Annotation".equals(jp.getCurrentName())) {
+            jp.nextToken();
+            entitySet.getAnnotations().add(jp.readValueAs(ClientCsdlAnnotation.class));
+          }
+        }
+      }
+
+      return entitySet;
+    }
+  }
+}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/53b10f6b/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/ClientCsdlEntityType.java
----------------------------------------------------------------------
diff --git a/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/ClientCsdlEntityType.java b/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/ClientCsdlEntityType.java
new file mode 100644
index 0000000..f08bcbe
--- /dev/null
+++ b/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/ClientCsdlEntityType.java
@@ -0,0 +1,76 @@
+/*
+ * 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.client.core.edm.xml;
+
+import com.fasterxml.jackson.core.JsonParser;
+import com.fasterxml.jackson.core.JsonToken;
+import com.fasterxml.jackson.databind.DeserializationContext;
+import org.apache.commons.lang3.BooleanUtils;
+import org.apache.olingo.commons.api.edm.provider.CsdlEntityType;
+
+import com.fasterxml.jackson.databind.annotation.JsonDeserialize;
+
+import java.io.IOException;
+
+@JsonDeserialize(using = ClientCsdlEntityType.EntityTypeDeserializer.class)
+class ClientCsdlEntityType extends CsdlEntityType {
+
+  private static final long serialVersionUID = -3986417775876689669L;
+
+  static class EntityTypeDeserializer extends AbstractClientCsdlEdmDeserializer<CsdlEntityType> {
+    @Override
+    protected CsdlEntityType doDeserialize(final JsonParser jp, final DeserializationContext ctxt)
+            throws IOException {
+
+      final ClientCsdlEntityType entityType = new ClientCsdlEntityType();
+
+      for (; jp.getCurrentToken() != JsonToken.END_OBJECT; jp.nextToken()) {
+        final JsonToken token = jp.getCurrentToken();
+        if (token == JsonToken.FIELD_NAME) {
+          if ("Name".equals(jp.getCurrentName())) {
+            entityType.setName(jp.nextTextValue());
+          } else if ("Abstract".equals(jp.getCurrentName())) {
+            entityType.setAbstract(BooleanUtils.toBoolean(jp.nextTextValue()));
+          } else if ("BaseType".equals(jp.getCurrentName())) {
+            entityType.setBaseType(jp.nextTextValue());
+          } else if ("OpenType".equals(jp.getCurrentName())) {
+            entityType.setOpenType(BooleanUtils.toBoolean(jp.nextTextValue()));
+          } else if ("HasStream".equals(jp.getCurrentName())) {
+            entityType.setHasStream(BooleanUtils.toBoolean(jp.nextTextValue()));
+          } else if ("Key".equals(jp.getCurrentName())) {
+            jp.nextToken();
+            ClientCsdlEntityKey keyImpl = jp.readValueAs(ClientCsdlEntityKey.class);
+            entityType.setKey(keyImpl.getPropertyRefs());
+          } else if ("Property".equals(jp.getCurrentName())) {
+            jp.nextToken();
+            entityType.getProperties().add(jp.readValueAs(ClientCsdlProperty.class));
+          } else if ("NavigationProperty".equals(jp.getCurrentName())) {
+            jp.nextToken();
+            entityType.getNavigationProperties().add(jp.readValueAs(ClientCsdlNavigationProperty.class));
+          } else if ("Annotation".equals(jp.getCurrentName())) {
+            jp.nextToken();
+            entityType.getAnnotations().add(jp.readValueAs(ClientCsdlAnnotation.class));
+          }
+        }
+      }
+
+      return entityType;
+    }
+  }
+}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/53b10f6b/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/ClientCsdlEnumMember.java
----------------------------------------------------------------------
diff --git a/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/ClientCsdlEnumMember.java b/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/ClientCsdlEnumMember.java
new file mode 100644
index 0000000..057a678
--- /dev/null
+++ b/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/ClientCsdlEnumMember.java
@@ -0,0 +1,57 @@
+/*
+ * 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.client.core.edm.xml;
+
+import com.fasterxml.jackson.core.JsonParser;
+import com.fasterxml.jackson.core.JsonToken;
+import com.fasterxml.jackson.databind.DeserializationContext;
+import com.fasterxml.jackson.databind.annotation.JsonDeserialize;
+import org.apache.olingo.commons.api.edm.provider.CsdlEnumMember;
+
+import java.io.IOException;
+
+@JsonDeserialize(using = ClientCsdlEnumMember.EnumMemberDeserializer.class)
+class ClientCsdlEnumMember extends CsdlEnumMember {
+
+  private static final long serialVersionUID = -6138606817225829791L;
+
+  static class EnumMemberDeserializer extends AbstractClientCsdlEdmDeserializer<CsdlEnumMember> {
+    @Override
+    protected CsdlEnumMember doDeserialize(final JsonParser jp, final DeserializationContext ctxt)
+            throws IOException {
+
+      final CsdlEnumMember member = new CsdlEnumMember();
+
+      for (; jp.getCurrentToken() != JsonToken.END_OBJECT; jp.nextToken()) {
+        final JsonToken token = jp.getCurrentToken();
+        if (token == JsonToken.FIELD_NAME) {
+          if ("Name".equals(jp.getCurrentName())) {
+            member.setName(jp.nextTextValue());
+          } else if ("Value".equals(jp.getCurrentName())) {
+            member.setValue(jp.nextTextValue());
+          } else if ("Annotation".equals(jp.getCurrentName())) {
+            jp.nextToken();
+            member.getAnnotations().add(jp.readValueAs(ClientCsdlAnnotation.class));
+          }
+        }
+      }
+      return member;
+    }
+  }
+}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/53b10f6b/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/ClientCsdlEnumType.java
----------------------------------------------------------------------
diff --git a/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/ClientCsdlEnumType.java b/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/ClientCsdlEnumType.java
new file mode 100644
index 0000000..a49f3ff
--- /dev/null
+++ b/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/ClientCsdlEnumType.java
@@ -0,0 +1,65 @@
+/*
+ * 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.client.core.edm.xml;
+
+import com.fasterxml.jackson.core.JsonParser;
+import com.fasterxml.jackson.core.JsonToken;
+import com.fasterxml.jackson.databind.DeserializationContext;
+import org.apache.commons.lang3.BooleanUtils;
+import org.apache.olingo.commons.api.edm.provider.CsdlEnumType;
+
+import com.fasterxml.jackson.databind.annotation.JsonDeserialize;
+
+import java.io.IOException;
+
+@JsonDeserialize(using = ClientCsdlEnumType.EnumTypeDeserializer.class)
+class ClientCsdlEnumType extends CsdlEnumType {
+
+  private static final long serialVersionUID = 9191189755592743333L;
+
+  static class EnumTypeDeserializer extends AbstractClientCsdlEdmDeserializer<ClientCsdlEnumType> {
+    @Override
+    protected ClientCsdlEnumType doDeserialize(final JsonParser jp, final DeserializationContext ctxt)
+            throws IOException {
+
+      final ClientCsdlEnumType enumType = new ClientCsdlEnumType();
+
+      for (; jp.getCurrentToken() != JsonToken.END_OBJECT; jp.nextToken()) {
+        final JsonToken token = jp.getCurrentToken();
+        if (token == JsonToken.FIELD_NAME) {
+          if ("Name".equals(jp.getCurrentName())) {
+            enumType.setName(jp.nextTextValue());
+          } else if ("UnderlyingType".equals(jp.getCurrentName())) {
+            enumType.setUnderlyingType(jp.nextTextValue());
+          } else if ("IsFlags".equals(jp.getCurrentName())) {
+            enumType.setFlags(BooleanUtils.toBoolean(jp.nextTextValue()));
+          } else if ("Member".equals(jp.getCurrentName())) {
+            jp.nextToken();
+            enumType.getMembers().add(jp.readValueAs(ClientCsdlEnumMember.class));
+          } else if ("Annotation".equals(jp.getCurrentName())) {
+            jp.nextToken();
+            enumType.getAnnotations().add(jp.readValueAs(ClientCsdlAnnotation.class));
+          }
+        }
+      }
+
+      return enumType;
+    }
+  }
+}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/53b10f6b/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/ClientCsdlFunction.java
----------------------------------------------------------------------
diff --git a/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/ClientCsdlFunction.java b/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/ClientCsdlFunction.java
new file mode 100644
index 0000000..97fd637
--- /dev/null
+++ b/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/ClientCsdlFunction.java
@@ -0,0 +1,69 @@
+/*
+ * 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.client.core.edm.xml;
+
+import com.fasterxml.jackson.core.JsonParser;
+import com.fasterxml.jackson.core.JsonToken;
+import com.fasterxml.jackson.databind.DeserializationContext;
+import org.apache.commons.lang3.BooleanUtils;
+import org.apache.olingo.commons.api.edm.provider.CsdlFunction;
+
+import com.fasterxml.jackson.databind.annotation.JsonDeserialize;
+
+import java.io.IOException;
+
+@JsonDeserialize(using = ClientCsdlFunction.FunctionDeserializer.class)
+class ClientCsdlFunction extends CsdlFunction {
+
+  private static final long serialVersionUID = -5494898295282843362L;
+
+  static class FunctionDeserializer extends AbstractClientCsdlEdmDeserializer<ClientCsdlFunction> {
+    @Override
+    protected ClientCsdlFunction doDeserialize(final JsonParser jp, final DeserializationContext ctxt)
+            throws IOException {
+
+      final ClientCsdlFunction functionImpl = new ClientCsdlFunction();
+
+      for (; jp.getCurrentToken() != JsonToken.END_OBJECT; jp.nextToken()) {
+        final JsonToken token = jp.getCurrentToken();
+        if (token == JsonToken.FIELD_NAME) {
+          if ("Name".equals(jp.getCurrentName())) {
+            functionImpl.setName(jp.nextTextValue());
+          } else if ("IsBound".equals(jp.getCurrentName())) {
+            functionImpl.setBound(BooleanUtils.toBoolean(jp.nextTextValue()));
+          } else if ("IsComposable".equals(jp.getCurrentName())) {
+            functionImpl.setComposable(BooleanUtils.toBoolean(jp.nextTextValue()));
+          } else if ("EntitySetPath".equals(jp.getCurrentName())) {
+            functionImpl.setEntitySetPath(jp.nextTextValue());
+          } else if ("Parameter".equals(jp.getCurrentName())) {
+            jp.nextToken();
+            functionImpl.getParameters().add(jp.readValueAs(ClientCsdlParameter.class));
+          } else if ("ReturnType".equals(jp.getCurrentName())) {
+            functionImpl.setReturnType(parseReturnType(jp, "Function"));
+          } else if ("Annotation".equals(jp.getCurrentName())) {
+            jp.nextToken();
+            functionImpl.getAnnotations().add(jp.readValueAs(ClientCsdlAnnotation.class));
+          }
+        }
+      }
+
+      return functionImpl;
+    }
+  }
+}


[20/50] [abbrv] olingo-odata4 git commit: [OLINGO-564] Merge branch 'master' into OLINGO-564

Posted by mi...@apache.org.
[OLINGO-564] Merge branch 'master' into OLINGO-564


Project: http://git-wip-us.apache.org/repos/asf/olingo-odata4/repo
Commit: http://git-wip-us.apache.org/repos/asf/olingo-odata4/commit/3c099091
Tree: http://git-wip-us.apache.org/repos/asf/olingo-odata4/tree/3c099091
Diff: http://git-wip-us.apache.org/repos/asf/olingo-odata4/diff/3c099091

Branch: refs/heads/master
Commit: 3c0990910a5de761d7d142b7541bde9b13390c55
Parents: 2318953 d2b5449
Author: Michael Bolz <mi...@sap.com>
Authored: Tue Apr 28 12:56:08 2015 +0200
Committer: Michael Bolz <mi...@sap.com>
Committed: Tue Apr 28 12:56:08 2015 +0200

----------------------------------------------------------------------
 .../fit/tecsvc/client/ActionImportITCase.java   | 296 +++++++++++++++++++
 .../olingo/client/api/uri/SegmentType.java      |   2 +
 .../olingo/client/api/uri/URIBuilder.java       |   8 +
 .../olingo/client/core/uri/URIBuilderImpl.java  |  11 +-
 .../client/core/uri/v4/URIBuilderTest.java      |   4 +-
 .../apache/olingo/commons/api/data/Entity.java  |   1 +
 .../olingo/server/core/ServiceHandler.java      |  12 +-
 .../server/core/requests/BatchRequest.java      |  23 +-
 .../server/core/requests/DataRequest.java       |   5 +
 .../olingo/server/example/TripPinDataModel.java |  42 +++
 .../olingo/server/example/TripPinHandler.java   |  20 +-
 .../server/example/TripPinServiceTest.java      |  27 ++
 .../json/ODataJsonDeserializer.java             |  16 +
 .../olingo/server/tecsvc/data/ActionData.java   | 122 +++++---
 .../olingo/server/tecsvc/data/DataCreator.java  |  14 +-
 .../olingo/server/tecsvc/data/DataProvider.java |  20 ++
 .../server/tecsvc/data/EntityActionResult.java  |  43 +++
 .../processor/TechnicalEntityProcessor.java     | 117 ++++++--
 .../TechnicalPrimitiveComplexProcessor.java     |  76 +++--
 .../tecsvc/processor/TechnicalProcessor.java    |  15 +
 ...ataJsonDeserializerActionParametersTest.java |  16 +
 21 files changed, 770 insertions(+), 120 deletions(-)
----------------------------------------------------------------------



[44/50] [abbrv] olingo-odata4 git commit: [OLINGO-564] first step for common -> client extraction

Posted by mi...@apache.org.
http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/17152920/lib/commons-api/src/main/java/org/apache/olingo/commons/api/domain/ODataError.java
----------------------------------------------------------------------
diff --git a/lib/commons-api/src/main/java/org/apache/olingo/commons/api/domain/ODataError.java b/lib/commons-api/src/main/java/org/apache/olingo/commons/api/domain/ODataError.java
new file mode 100644
index 0000000..a910f08
--- /dev/null
+++ b/lib/commons-api/src/main/java/org/apache/olingo/commons/api/domain/ODataError.java
@@ -0,0 +1,132 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ * 
+ * http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.olingo.commons.api.domain;
+
+import java.util.List;
+import java.util.Map;
+
+/**
+ * OData error.
+ */
+public class ODataError {
+
+  private String code;
+  private String message;
+  private String target;
+  private List<ODataErrorDetail> details;
+  private Map<String, String> innerError;
+
+  /**
+   * The value for the code name/value pair is a language-independent string. Its value is a service-defined error code.
+   * This code serves as a sub-status for the HTTP error code specified in the response. MAY be null.
+   * @return the error code as a string
+   */
+  public String getCode() {
+    return code;
+  }
+
+  /**
+   * The value for the code name/value pair is a language-independent string. Its value is a service-defined error code.
+   * This code serves as a sub-status for the HTTP error code specified in the response. MAY be null.
+   * @param code
+   * @return this for method chaining
+   */
+  public ODataError setCode(String code) {
+    this.code = code;
+    return this;
+  }
+
+  /**
+   * The value for the message name/value pair MUST be a human-readable, language-dependent representation of the error.
+   * MUST not be null
+   * @return the message string
+   */
+  public String getMessage() {
+    return message;
+  }
+
+  /**
+   * The value for the message name/value pair MUST be a human-readable, language-dependent representation of the error.
+   * MUST not be null
+   * @param message
+   * @return this for method chaining
+   */
+  public ODataError setMessage(String message) {
+    this.message = message;
+    return this;
+  }
+
+  /**
+   * The value for the target name/value pair is the target of the particular error (for example, the name of the
+   * property in error). MAY be null.
+   * @return the target string
+   */
+  public String getTarget() {
+    return target;
+  }
+
+  /**
+   * The value for the target name/value pair is the target of the particular error (for example, the name of the
+   * property in error). MAY be null.
+   * @param target
+   * @return this for method chaining
+   */
+  public ODataError setTarget(String target) {
+    this.target = target;
+    return this;
+  }
+
+  /**
+   * Gets error details.
+   * 
+   * @return ODataErrorDetail list.
+   */
+  public List<ODataErrorDetail> getDetails() {
+    return details;
+  }
+
+  /**
+   * Sets error details.
+   * 
+   * @return this for method chaining.
+   */
+  public ODataError setDetails(List<ODataErrorDetail> details) {
+    this.details = details;
+    return this;
+  }
+
+  /**
+   * Gets server defined key-value pairs for debug environment only.
+   * 
+   * @return a pair representing server defined object. MAY be null.
+   */
+  public Map<String, String> getInnerError() {
+    return innerError;
+  }
+
+  /**
+   * Sets server defined key-value pairs for debug environment only.
+   * 
+   * @return this for method chaining.
+   */
+  public ODataError setInnerError(Map<String, String> innerError) {
+    this.innerError = innerError;
+    return this;
+  }
+}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/17152920/lib/commons-api/src/main/java/org/apache/olingo/commons/api/domain/ODataErrorDetail.java
----------------------------------------------------------------------
diff --git a/lib/commons-api/src/main/java/org/apache/olingo/commons/api/domain/ODataErrorDetail.java b/lib/commons-api/src/main/java/org/apache/olingo/commons/api/domain/ODataErrorDetail.java
new file mode 100644
index 0000000..573525d
--- /dev/null
+++ b/lib/commons-api/src/main/java/org/apache/olingo/commons/api/domain/ODataErrorDetail.java
@@ -0,0 +1,73 @@
+/*
+ * 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.commons.api.domain;
+
+/**
+ * OData details, for example <tt>{ "error": {..., "details":[
+ * {"code": "301","target": "$search" ,"message": "$search query option not supported"}
+ * ],...}}</tt>.
+ */
+public class ODataErrorDetail {
+
+  private String code;
+  private String message;
+  private String target;
+
+  /**
+   * Gets error code.
+   * 
+   * @return error code.
+   */
+  public String getCode() {
+    return code;
+  }
+
+  public ODataErrorDetail setCode(final String code) {
+    this.code = code;
+    return this;
+  }
+
+  /**
+   * Gets error message.
+   * 
+   * @return error message.
+   */
+  public String getMessage() {
+    return message;
+  }
+
+  public ODataErrorDetail setMessage(final String message) {
+    this.message = message;
+    return this;
+  }
+
+  /**
+   * Gets error target.
+   * 
+   * @return error message.
+   */
+  public String getTarget() {
+    return target;
+  }
+
+  public ODataErrorDetail setTarget(final String target) {
+    this.target = target;
+    return this;
+  }
+}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/17152920/lib/commons-api/src/main/java/org/apache/olingo/commons/api/domain/ODataPropertyType.java
----------------------------------------------------------------------
diff --git a/lib/commons-api/src/main/java/org/apache/olingo/commons/api/domain/ODataPropertyType.java b/lib/commons-api/src/main/java/org/apache/olingo/commons/api/domain/ODataPropertyType.java
new file mode 100644
index 0000000..e7b5b85
--- /dev/null
+++ b/lib/commons-api/src/main/java/org/apache/olingo/commons/api/domain/ODataPropertyType.java
@@ -0,0 +1,44 @@
+/*
+ * 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.commons.api.domain;
+
+public enum ODataPropertyType {
+
+  /**
+   * Primitive (including geospatial).
+   */
+  PRIMITIVE,
+  /**
+   * Enum.
+   */
+  ENUM,
+  /**
+   * Collection.
+   */
+  COLLECTION,
+  /**
+   * Complex.
+   */
+  COMPLEX,
+  /**
+   * Empty type (possibly, no type information could be retrieved).
+   */
+  EMPTY
+
+}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/17152920/lib/commons-api/src/main/java/org/apache/olingo/commons/api/edm/annotation/EdmConstantAnnotationExpression.java
----------------------------------------------------------------------
diff --git a/lib/commons-api/src/main/java/org/apache/olingo/commons/api/edm/annotation/EdmConstantAnnotationExpression.java b/lib/commons-api/src/main/java/org/apache/olingo/commons/api/edm/annotation/EdmConstantAnnotationExpression.java
index cc47fe6..0f0a34f 100644
--- a/lib/commons-api/src/main/java/org/apache/olingo/commons/api/edm/annotation/EdmConstantAnnotationExpression.java
+++ b/lib/commons-api/src/main/java/org/apache/olingo/commons/api/edm/annotation/EdmConstantAnnotationExpression.java
@@ -18,10 +18,10 @@
  */
 package org.apache.olingo.commons.api.edm.annotation;
 
-import org.apache.olingo.commons.api.domain.ClientValue;
+import org.apache.olingo.commons.api.data.Valuable;
 
 public interface EdmConstantAnnotationExpression extends EdmAnnotationExpression {
 
-  ClientValue getValue();
+  Valuable getValue();
 
 }

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/17152920/lib/commons-api/src/main/java/org/apache/olingo/commons/api/serialization/ODataDeserializer.java
----------------------------------------------------------------------
diff --git a/lib/commons-api/src/main/java/org/apache/olingo/commons/api/serialization/ODataDeserializer.java b/lib/commons-api/src/main/java/org/apache/olingo/commons/api/serialization/ODataDeserializer.java
index 38ad911..8e313b1 100755
--- a/lib/commons-api/src/main/java/org/apache/olingo/commons/api/serialization/ODataDeserializer.java
+++ b/lib/commons-api/src/main/java/org/apache/olingo/commons/api/serialization/ODataDeserializer.java
@@ -22,7 +22,7 @@ import org.apache.olingo.commons.api.data.Entity;
 import org.apache.olingo.commons.api.data.EntityCollection;
 import org.apache.olingo.commons.api.data.Property;
 import org.apache.olingo.commons.api.data.ResWrap;
-import org.apache.olingo.commons.api.domain.ClientError;
+import org.apache.olingo.commons.api.domain.ODataError;
 
 import java.io.InputStream;
 
@@ -61,5 +61,5 @@ public interface ODataDeserializer {
    * @param input stream to be parsed and de-serialized.
    * @return parsed ODataError object represented by the given InputStream
    */
-  ClientError toError(InputStream input) throws ODataDeserializerException;
+  ODataError toError(InputStream input) throws ODataDeserializerException;
 }

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/17152920/lib/commons-core/src/main/java/org/apache/olingo/commons/core/domain/AbstractClientEntitySet.java
----------------------------------------------------------------------
diff --git a/lib/commons-core/src/main/java/org/apache/olingo/commons/core/domain/AbstractClientEntitySet.java b/lib/commons-core/src/main/java/org/apache/olingo/commons/core/domain/AbstractClientEntitySet.java
deleted file mode 100644
index d11b799..0000000
--- a/lib/commons-core/src/main/java/org/apache/olingo/commons/core/domain/AbstractClientEntitySet.java
+++ /dev/null
@@ -1,71 +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.commons.core.domain;
-
-import org.apache.olingo.commons.api.domain.AbstractClientPayload;
-import org.apache.olingo.commons.api.domain.ClientEntitySet;
-
-import java.net.URI;
-
-public abstract class AbstractClientEntitySet extends AbstractClientPayload implements ClientEntitySet {
-
-  /**
-   * Link to the next page.
-   */
-  private URI next;
-
-  /**
-   * Number of ODataEntities contained in this entity set.
-   * <br/>
-   * If <tt>$inlinecount</tt> was requested, this value comes from there.
-   */
-  private Integer count;
-
-  /**
-   * Constructor.
-   */
-  public AbstractClientEntitySet() {
-    super(null);
-  }
-
-  /**
-   * Constructor.
-   * 
-   * @param next next link.
-   */
-  public AbstractClientEntitySet(final URI next) {
-    super(null);
-    this.next = next;
-  }
-
-  @Override
-  public URI getNext() {
-    return next;
-  }
-
-  @Override
-  public Integer getCount() {
-    return count;
-  }
-
-  @Override
-  public void setCount(final int count) {
-    this.count = count;
-  }
-}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/17152920/lib/commons-core/src/main/java/org/apache/olingo/commons/core/domain/ClientAnnotationImpl.java
----------------------------------------------------------------------
diff --git a/lib/commons-core/src/main/java/org/apache/olingo/commons/core/domain/ClientAnnotationImpl.java b/lib/commons-core/src/main/java/org/apache/olingo/commons/core/domain/ClientAnnotationImpl.java
deleted file mode 100644
index b5fae89..0000000
--- a/lib/commons-core/src/main/java/org/apache/olingo/commons/core/domain/ClientAnnotationImpl.java
+++ /dev/null
@@ -1,102 +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.commons.core.domain;
-
-import org.apache.olingo.commons.api.domain.ClientAnnotation;
-import org.apache.olingo.commons.api.domain.ClientCollectionValue;
-import org.apache.olingo.commons.api.domain.ClientComplexValue;
-import org.apache.olingo.commons.api.domain.ClientEnumValue;
-import org.apache.olingo.commons.api.domain.ClientPrimitiveValue;
-import org.apache.olingo.commons.api.domain.ClientValuable;
-import org.apache.olingo.commons.api.domain.ClientValue;
-
-public class ClientAnnotationImpl implements ClientAnnotation {
-
-  private final String term;
-
-  private final ClientValuable valuable;
-
-  public ClientAnnotationImpl(final String term, final ClientValue value) {
-    this.term = term;
-    valuable = new ClientValuableImpl(value);
-  }
-
-  @Override
-  public String getTerm() {
-    return term;
-  }
-
-  @Override
-  public ClientValue getValue() {
-    return valuable.getValue();
-  }
-
-  @Override
-  public boolean hasNullValue() {
-    return valuable.hasNullValue();
-  }
-
-  @Override
-  public boolean hasPrimitiveValue() {
-    return valuable.hasPrimitiveValue();
-  }
-
-  @Override
-  public ClientPrimitiveValue getPrimitiveValue() {
-    return valuable.getPrimitiveValue();
-  }
-
-  @Override
-  public boolean hasCollectionValue() {
-    return valuable.hasCollectionValue();
-  }
-
-  @Override
-  public ClientCollectionValue<ClientValue> getCollectionValue() {
-    return valuable.getCollectionValue();
-  }
-
-  @Override
-  public boolean hasComplexValue() {
-    return valuable.hasComplexValue();
-  }
-
-  @Override
-  public ClientComplexValue getComplexValue() {
-    return valuable.getComplexValue();
-  }
-
-  @Override
-  public boolean hasEnumValue() {
-    return valuable.hasEnumValue();
-  }
-
-  @Override
-  public ClientEnumValue getEnumValue() {
-    return valuable.getEnumValue();
-  }
-
-  @Override
-  public String toString() {
-    return "ODataPropertyImpl{"
-        + "term=" + term
-        + ",valuable=" + valuable
-        + '}';
-  }
-}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/17152920/lib/commons-core/src/main/java/org/apache/olingo/commons/core/domain/ClientCollectionValueImpl.java
----------------------------------------------------------------------
diff --git a/lib/commons-core/src/main/java/org/apache/olingo/commons/core/domain/ClientCollectionValueImpl.java b/lib/commons-core/src/main/java/org/apache/olingo/commons/core/domain/ClientCollectionValueImpl.java
deleted file mode 100644
index e7b53ff..0000000
--- a/lib/commons-core/src/main/java/org/apache/olingo/commons/core/domain/ClientCollectionValueImpl.java
+++ /dev/null
@@ -1,124 +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.commons.core.domain;
-
-import java.util.ArrayList;
-import java.util.Collection;
-import java.util.Iterator;
-import java.util.List;
-
-import org.apache.olingo.commons.api.domain.AbstractClientValue;
-import org.apache.olingo.commons.api.domain.ClientCollectionValue;
-import org.apache.olingo.commons.api.domain.ClientEnumValue;
-import org.apache.olingo.commons.api.domain.ClientValue;
-
-public class ClientCollectionValueImpl<OV extends ClientValue> extends AbstractClientValue
-        implements ClientCollectionValue<OV>, ClientValue {
-
-  /**
-   * Constructor.
-   *
-   * @param typeName type name.
-   */
-  public ClientCollectionValueImpl(final String typeName) {
-    super(typeName == null || typeName.startsWith("Collection(") ? typeName : "Collection(" + typeName + ")");
-  }
-
-  @Override
-  public boolean isEnum() {
-    return false;
-  }
-
-  @Override
-  public ClientEnumValue asEnum() {
-    return null;
-  }
-
-  @Override
-  public boolean isComplex() {
-    return false;
-  }
-
-  @Override
-  public Collection<Object> asJavaCollection() {
-    final List<Object> result = new ArrayList<Object>();
-    for (ClientValue value : values) {
-      if (value.isPrimitive()) {
-        result.add(value.asPrimitive().toValue());
-      } else if (value.isComplex()) {
-        result.add(value.asComplex().asJavaMap());
-      } else if (value.isCollection()) {
-        result.add(value.asCollection().asJavaCollection());
-      } else if (value.isEnum()) {
-        result.add(value.asEnum().toString());
-      }
-    }
-
-    return result;
-  }
-
-  /**
-   * Values.
-   */
-  protected final List<OV> values = new ArrayList<OV>();
-
-  /**
-   * Adds a value to the collection.
-   *
-   * @param value value to be added.
-   */
-  @Override
-  @SuppressWarnings("unchecked")
-  public ClientCollectionValue<OV> add(final ClientValue value) {
-    values.add((OV) value);
-    return this;
-  }
-
-  /**
-   * Value iterator.
-   *
-   * @return value iterator.
-   */
-  @Override
-  public Iterator<OV> iterator() {
-    return values.iterator();
-  }
-
-  /**
-   * Gets collection size.
-   *
-   * @return collection size.
-   */
-  @Override
-  public int size() {
-    return values.size();
-  }
-
-  /**
-   * Checks if collection is empty.
-   *
-   * @return 'TRUE' if empty; 'FALSE' otherwise.
-   */
-  @Override
-  public boolean isEmpty() {
-    return values.isEmpty();
-  }
-
-
-}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/17152920/lib/commons-core/src/main/java/org/apache/olingo/commons/core/domain/ClientComplexValueImpl.java
----------------------------------------------------------------------
diff --git a/lib/commons-core/src/main/java/org/apache/olingo/commons/core/domain/ClientComplexValueImpl.java b/lib/commons-core/src/main/java/org/apache/olingo/commons/core/domain/ClientComplexValueImpl.java
deleted file mode 100644
index 3881c3a..0000000
--- a/lib/commons-core/src/main/java/org/apache/olingo/commons/core/domain/ClientComplexValueImpl.java
+++ /dev/null
@@ -1,204 +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.commons.core.domain;
-
-import java.util.ArrayList;
-import java.util.Iterator;
-import java.util.LinkedHashMap;
-import java.util.List;
-import java.util.Map;
-
-import org.apache.olingo.commons.api.domain.AbstractClientValue;
-import org.apache.olingo.commons.api.domain.ClientAnnotation;
-import org.apache.olingo.commons.api.domain.ClientComplexValue;
-import org.apache.olingo.commons.api.domain.ClientEnumValue;
-import org.apache.olingo.commons.api.domain.ClientLink;
-import org.apache.olingo.commons.api.domain.ClientProperty;
-
-public class ClientComplexValueImpl extends AbstractClientValue implements ClientComplexValue {
-
-  /**
-   * Navigation links (might contain in-line entities or entity sets).
-   */
-  private final List<ClientLink> navigationLinks = new ArrayList<ClientLink>();
-
-  /**
-   * Association links.
-   */
-  private final List<ClientLink> associationLinks = new ArrayList<ClientLink>();
-
-  private final List<ClientAnnotation> annotations = new ArrayList<ClientAnnotation>();
-
-  /**
-   * Complex type fields.
-   */
-  private final Map<String, ClientProperty> fields = new LinkedHashMap<String, ClientProperty>();
-
-  /**
-   * Constructor.
-   *
-   * @param typeName type name.
-   */
-  public ClientComplexValueImpl(final String typeName) {
-    super(typeName);
-  }
-
-  @Override
-  public boolean isEnum() {
-    return false;
-  }
-
-  @Override
-  public ClientEnumValue asEnum() {
-    return null;
-  }
-
-  @Override
-  public boolean isComplex() {
-    return true;
-  }
-
-  @Override
-  public boolean addLink(final ClientLink link) {
-    boolean result = false;
-
-    switch (link.getType()) {
-    case ASSOCIATION:
-      result = associationLinks.contains(link) ? false : associationLinks.add(link);
-      break;
-
-    case ENTITY_NAVIGATION:
-    case ENTITY_SET_NAVIGATION:
-      result = navigationLinks.contains(link) ? false : navigationLinks.add(link);
-      break;
-
-    case MEDIA_EDIT:
-      throw new IllegalArgumentException("Complex values cannot have media links!");
-
-    default:
-    }
-
-    return result;
-  }
-
-  @Override
-  public boolean removeLink(final ClientLink link) {
-    return associationLinks.remove(link) || navigationLinks.remove(link);
-  }
-
-  private ClientLink getLink(final List<ClientLink> links, final String name) {
-    ClientLink result = null;
-    for (ClientLink link : links) {
-      if (name.equals(link.getName())) {
-        result = link;
-        break;
-      }
-    }
-
-    return result;
-  }
-
-  @Override
-  public ClientLink getNavigationLink(final String name) {
-    return getLink(navigationLinks, name);
-  }
-
-  @Override
-  public List<ClientLink> getNavigationLinks() {
-    return navigationLinks;
-  }
-
-  @Override
-  public ClientLink getAssociationLink(final String name) {
-    return getLink(associationLinks, name);
-  }
-
-  @Override
-  public List<ClientLink> getAssociationLinks() {
-    return associationLinks;
-  }
-
-  @Override
-  public Map<String, Object> asJavaMap() {
-    final Map<String, Object> result = new LinkedHashMap<String, Object>();
-    for (Map.Entry<String, ClientProperty> entry : fields.entrySet()) {
-      Object value = null;
-      if (entry.getValue().hasPrimitiveValue()) {
-        value = entry.getValue().getPrimitiveValue().toValue();
-      } else if (entry.getValue().hasComplexValue()) {
-        value = entry.getValue().getComplexValue().asJavaMap();
-      } else if (entry.getValue().hasCollectionValue()) {
-        value = entry.getValue().getCollectionValue().asJavaCollection();
-      } else if (entry.getValue().hasEnumValue()) {
-        value = entry.getValue().getEnumValue().toString();
-      }
-
-      result.put(entry.getKey(), value);
-    }
-
-    return result;
-  }
-
-  @Override
-  public List<ClientAnnotation> getAnnotations() {
-    return annotations;
-  }
-
-  /**
-   * Adds field to the complex type.
-   *
-   * @param field field to be added.
-   */
-  @Override
-  public ClientComplexValue add(final ClientProperty field) {
-    fields.put(field.getName(), field);
-    return this;
-  }
-
-  /**
-   * Gets field.
-   *
-   * @param name name of the field to be retrieved.
-   * @return requested field.
-   */
-  @Override
-  public ClientProperty get(final String name) {
-    return fields.get(name);
-  }
-
-  /**
-   * Complex property fields iterator.
-   *
-   * @return fields iterator.
-   */
-  @Override
-  public Iterator<ClientProperty> iterator() {
-    return fields.values().iterator();
-  }
-
-  /**
-   * Gets number of fields.
-   *
-   * @return number of fields.
-   */
-  @Override
-  public int size() {
-    return fields.size();
-  }
-}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/17152920/lib/commons-core/src/main/java/org/apache/olingo/commons/core/domain/ClientDeletedEntityImpl.java
----------------------------------------------------------------------
diff --git a/lib/commons-core/src/main/java/org/apache/olingo/commons/core/domain/ClientDeletedEntityImpl.java b/lib/commons-core/src/main/java/org/apache/olingo/commons/core/domain/ClientDeletedEntityImpl.java
deleted file mode 100644
index 9df7a18..0000000
--- a/lib/commons-core/src/main/java/org/apache/olingo/commons/core/domain/ClientDeletedEntityImpl.java
+++ /dev/null
@@ -1,54 +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.commons.core.domain;
-
-import org.apache.olingo.commons.api.domain.ClientDeletedEntity;
-import org.apache.olingo.commons.api.domain.ClientItem;
-
-import java.net.URI;
-
-public class ClientDeletedEntityImpl extends ClientItem implements ClientDeletedEntity {
-
-  private URI id;
-
-  private Reason reason;
-
-  public ClientDeletedEntityImpl() {
-    super(null);
-  }
-
-  @Override
-  public URI getId() {
-    return id;
-  }
-
-  public void setId(final URI id) {
-    this.id = id;
-  }
-
-  @Override
-  public Reason getReason() {
-    return reason;
-  }
-
-  public void setReason(final Reason reason) {
-    this.reason = reason;
-  }
-
-}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/17152920/lib/commons-core/src/main/java/org/apache/olingo/commons/core/domain/ClientDeltaImpl.java
----------------------------------------------------------------------
diff --git a/lib/commons-core/src/main/java/org/apache/olingo/commons/core/domain/ClientDeltaImpl.java b/lib/commons-core/src/main/java/org/apache/olingo/commons/core/domain/ClientDeltaImpl.java
deleted file mode 100644
index 1c1e521..0000000
--- a/lib/commons-core/src/main/java/org/apache/olingo/commons/core/domain/ClientDeltaImpl.java
+++ /dev/null
@@ -1,60 +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.commons.core.domain;
-
-import org.apache.olingo.commons.api.domain.ClientDeletedEntity;
-import org.apache.olingo.commons.api.domain.ClientDelta;
-import org.apache.olingo.commons.api.domain.ClientDeltaLink;
-
-import java.net.URI;
-import java.util.ArrayList;
-import java.util.List;
-
-public class ClientDeltaImpl extends ClientEntitySetImpl implements ClientDelta {
-
-  private final List<ClientDeletedEntity> deletedEntities = new ArrayList<ClientDeletedEntity>();
-
-  private final List<ClientDeltaLink> addedLinks = new ArrayList<ClientDeltaLink>();
-
-  private final List<ClientDeltaLink> deletedLinks = new ArrayList<ClientDeltaLink>();
-
-  public ClientDeltaImpl() {
-    super();
-  }
-
-  public ClientDeltaImpl(final URI next) {
-    super(next);
-  }
-
-  @Override
-  public List<ClientDeletedEntity> getDeletedEntities() {
-    return deletedEntities;
-  }
-
-  @Override
-  public List<ClientDeltaLink> getAddedLinks() {
-    return addedLinks;
-  }
-
-  @Override
-  public List<ClientDeltaLink> getDeletedLinks() {
-    return deletedLinks;
-  }
-
-}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/17152920/lib/commons-core/src/main/java/org/apache/olingo/commons/core/domain/ClientDeltaLinkImpl.java
----------------------------------------------------------------------
diff --git a/lib/commons-core/src/main/java/org/apache/olingo/commons/core/domain/ClientDeltaLinkImpl.java b/lib/commons-core/src/main/java/org/apache/olingo/commons/core/domain/ClientDeltaLinkImpl.java
deleted file mode 100644
index a21f7ae..0000000
--- a/lib/commons-core/src/main/java/org/apache/olingo/commons/core/domain/ClientDeltaLinkImpl.java
+++ /dev/null
@@ -1,78 +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.commons.core.domain;
-
-import org.apache.olingo.commons.api.domain.ClientAnnotation;
-import org.apache.olingo.commons.api.domain.ClientDeltaLink;
-import org.apache.olingo.commons.api.domain.ClientItem;
-
-import java.net.URI;
-import java.util.ArrayList;
-import java.util.List;
-
-public class ClientDeltaLinkImpl extends ClientItem implements ClientDeltaLink {
-
-  private URI source;
-
-  private String relationship;
-
-  private URI target;
-
-  private final List<ClientAnnotation> annotations = new ArrayList<ClientAnnotation>();
-
-  public ClientDeltaLinkImpl() {
-    super(null);
-  }
-
-  @Override
-  public URI getSource() {
-    return source;
-  }
-
-  @Override
-  public void setSource(final URI source) {
-    this.source = source;
-  }
-
-  @Override
-  public String getRelationship() {
-    return relationship;
-  }
-
-  @Override
-  public void setRelationship(final String relationship) {
-    this.relationship = relationship;
-  }
-
-  @Override
-  public URI getTarget() {
-    return target;
-  }
-
-  @Override
-  public void setTarget(final URI target) {
-    this.target = target;
-  }
-
-  @Override
-  public List<ClientAnnotation> getAnnotations() {
-    return annotations;
-  }
-
-}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/17152920/lib/commons-core/src/main/java/org/apache/olingo/commons/core/domain/ClientEntityImpl.java
----------------------------------------------------------------------
diff --git a/lib/commons-core/src/main/java/org/apache/olingo/commons/core/domain/ClientEntityImpl.java b/lib/commons-core/src/main/java/org/apache/olingo/commons/core/domain/ClientEntityImpl.java
deleted file mode 100644
index 0c2ef29..0000000
--- a/lib/commons-core/src/main/java/org/apache/olingo/commons/core/domain/ClientEntityImpl.java
+++ /dev/null
@@ -1,298 +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.commons.core.domain;
-
-import java.net.URI;
-import java.util.ArrayList;
-import java.util.List;
-
-import org.apache.commons.lang3.StringUtils;
-import org.apache.olingo.commons.api.domain.AbstractClientPayload;
-import org.apache.olingo.commons.api.domain.ClientAnnotation;
-import org.apache.olingo.commons.api.domain.ClientEntity;
-import org.apache.olingo.commons.api.domain.ClientLink;
-import org.apache.olingo.commons.api.domain.ClientOperation;
-import org.apache.olingo.commons.api.domain.ClientProperty;
-import org.apache.olingo.commons.api.domain.ClientSingleton;
-import org.apache.olingo.commons.api.edm.FullQualifiedName;
-
-public class ClientEntityImpl extends AbstractClientPayload implements ClientEntity, ClientSingleton {
-
-  /**
-   * Entity id.
-   */
-  private URI id;
-  /**
-   * ETag.
-   */
-  private String eTag;
-  /**
-   * Media entity flag.
-   */
-  private boolean mediaEntity = false;
-  /**
-   * In case of media entity, media content type.
-   */
-  private String mediaContentType;
-  /**
-   * In case of media entity, media content source.
-   */
-  private URI mediaContentSource;
-  /**
-   * Media ETag.
-   */
-  private String mediaETag;
-  /**
-   * Edit link.
-   */
-  private URI editLink;
-
-  private final List<ClientProperty> properties = new ArrayList<ClientProperty>();
-
-  private final List<ClientAnnotation> annotations = new ArrayList<ClientAnnotation>();
-
-  private final FullQualifiedName typeName;
-  /**
-   * Navigation links (might contain in-line entities or entity sets).
-   */
-  private final List<ClientLink> navigationLinks = new ArrayList<ClientLink>();
-  /**
-   * Association links.
-   */
-  private final List<ClientLink> associationLinks = new ArrayList<ClientLink>();
-  /**
-   * Media edit links.
-   */
-  private final List<ClientLink> mediaEditLinks = new ArrayList<ClientLink>();
-  /**
-   * Operations (legacy, functions, actions).
-   */
-  private final List<ClientOperation> operations = new ArrayList<ClientOperation>();
-
-  public ClientEntityImpl(final FullQualifiedName typeName) {
-    super(typeName == null ? null : typeName.toString());
-    this.typeName = typeName;
-  }
-
-  @Override
-  public FullQualifiedName getTypeName() {
-    return typeName;
-  }
-
-  @Override
-  public String getETag() {
-    return eTag;
-  }
-
-  @Override
-  public void setETag(final String eTag) {
-    this.eTag = eTag;
-  }
-
-  @Override
-  public ClientOperation getOperation(final String title) {
-    ClientOperation result = null;
-    for (ClientOperation operation : operations) {
-      if (title.equals(operation.getTitle())) {
-        result = operation;
-        break;
-      }
-    }
-
-    return result;
-  }
-
-  /**
-   * Gets operations.
-   *
-   * @return operations.
-   */
-  @Override
-  public List<ClientOperation> getOperations() {
-    return operations;
-  }
-
-
-  @Override
-  public ClientProperty getProperty(final String name) {
-    ClientProperty result = null;
-
-    if (StringUtils.isNotBlank(name)) {
-      for (ClientProperty property : getProperties()) {
-        if (name.equals(property.getName())) {
-          result = property;
-          break;
-        }
-      }
-    }
-
-    return result;
-  }
-
-  @Override
-  public boolean addLink(final ClientLink link) {
-    boolean result = false;
-
-    switch (link.getType()) {
-      case ASSOCIATION:
-        result = associationLinks.contains(link) ? false : associationLinks.add(link);
-        break;
-
-      case ENTITY_NAVIGATION:
-      case ENTITY_SET_NAVIGATION:
-        result = navigationLinks.contains(link) ? false : navigationLinks.add(link);
-        break;
-
-      case MEDIA_EDIT:
-        result = mediaEditLinks.contains(link) ? false : mediaEditLinks.add(link);
-        break;
-
-      default:
-    }
-
-    return result;
-  }
-
-  @Override
-  public boolean removeLink(final ClientLink link) {
-    return associationLinks.remove(link) || navigationLinks.remove(link);
-  }
-
-  private ClientLink getLink(final List<ClientLink> links, final String name) {
-    ClientLink result = null;
-    for (ClientLink link : links) {
-      if (name.equals(link.getName())) {
-        result = link;
-        break;
-      }
-    }
-
-    return result;
-  }
-
-  @Override
-  public ClientLink getNavigationLink(final String name) {
-    return getLink(navigationLinks, name);
-  }
-
-  @Override
-  public List<ClientLink> getNavigationLinks() {
-    return navigationLinks;
-  }
-
-  @Override
-  public ClientLink getAssociationLink(final String name) {
-    return getLink(associationLinks, name);
-  }
-
-  @Override
-  public List<ClientLink> getAssociationLinks() {
-    return associationLinks;
-  }
-
-  @Override
-  public ClientLink getMediaEditLink(final String name) {
-    return getLink(mediaEditLinks, name);
-  }
-
-  @Override
-  public List<ClientLink> getMediaEditLinks() {
-    return mediaEditLinks;
-  }
-
-  @Override
-  public URI getEditLink() {
-    return editLink;
-  }
-
-  @Override
-  public void setEditLink(final URI editLink) {
-    this.editLink = editLink;
-  }
-
-  @Override
-  public URI getLink() {
-    return super.getLink() == null ? getEditLink() : super.getLink();
-  }
-
-  @Override
-  public boolean isReadOnly() {
-    return super.getLink() != null;
-  }
-
-  @Override
-  public boolean isMediaEntity() {
-    return mediaEntity;
-  }
-
-  @Override
-  public void setMediaEntity(final boolean isMediaEntity) {
-    mediaEntity = isMediaEntity;
-  }
-
-  @Override
-  public String getMediaContentType() {
-    return mediaContentType;
-  }
-
-  @Override
-  public void setMediaContentType(final String mediaContentType) {
-    this.mediaContentType = mediaContentType;
-  }
-
-  @Override
-  public URI getMediaContentSource() {
-    return mediaContentSource;
-  }
-
-  @Override
-  public void setMediaContentSource(final URI mediaContentSource) {
-    this.mediaContentSource = mediaContentSource;
-  }
-
-  @Override
-  public String getMediaETag() {
-    return mediaETag;
-  }
-
-  @Override
-  public void setMediaETag(final String eTag) {
-    mediaETag = eTag;
-  }
-
-  @Override
-  public URI getId() {
-    return id;
-  }
-
-  @Override
-  public void setId(final URI id) {
-    this.id = id;
-  }
-
-  @Override
-  public List<ClientProperty> getProperties() {
-    return properties;
-  }
-
-  @Override
-  public List<ClientAnnotation> getAnnotations() {
-    return annotations;
-  }
-}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/17152920/lib/commons-core/src/main/java/org/apache/olingo/commons/core/domain/ClientEntitySetImpl.java
----------------------------------------------------------------------
diff --git a/lib/commons-core/src/main/java/org/apache/olingo/commons/core/domain/ClientEntitySetImpl.java b/lib/commons-core/src/main/java/org/apache/olingo/commons/core/domain/ClientEntitySetImpl.java
deleted file mode 100644
index 4e4d79b..0000000
--- a/lib/commons-core/src/main/java/org/apache/olingo/commons/core/domain/ClientEntitySetImpl.java
+++ /dev/null
@@ -1,65 +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.commons.core.domain;
-
-import org.apache.olingo.commons.api.domain.ClientAnnotation;
-import org.apache.olingo.commons.api.domain.ClientEntity;
-import org.apache.olingo.commons.api.domain.ClientEntitySet;
-
-import java.net.URI;
-import java.util.ArrayList;
-import java.util.List;
-
-public class ClientEntitySetImpl extends AbstractClientEntitySet implements ClientEntitySet {
-
-  private URI deltaLink;
-
-  private final List<ClientEntity> entities = new ArrayList<ClientEntity>();
-
-  private final List<ClientAnnotation> annotations = new ArrayList<ClientAnnotation>();
-
-  public ClientEntitySetImpl() {
-    super();
-  }
-
-  public ClientEntitySetImpl(final URI next) {
-    super(next);
-  }
-
-  @Override
-  public List<ClientEntity> getEntities() {
-    return entities;
-  }
-
-  @Override
-  public URI getDeltaLink() {
-    return deltaLink;
-  }
-
-  @Override
-  public void setDeltaLink(final URI deltaLink) {
-    this.deltaLink = deltaLink;
-  }
-
-  @Override
-  public List<ClientAnnotation> getAnnotations() {
-    return annotations;
-  }
-
-}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/17152920/lib/commons-core/src/main/java/org/apache/olingo/commons/core/domain/ClientEnumValueImpl.java
----------------------------------------------------------------------
diff --git a/lib/commons-core/src/main/java/org/apache/olingo/commons/core/domain/ClientEnumValueImpl.java b/lib/commons-core/src/main/java/org/apache/olingo/commons/core/domain/ClientEnumValueImpl.java
deleted file mode 100644
index 12634d4..0000000
--- a/lib/commons-core/src/main/java/org/apache/olingo/commons/core/domain/ClientEnumValueImpl.java
+++ /dev/null
@@ -1,59 +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.commons.core.domain;
-
-import org.apache.olingo.commons.api.domain.AbstractClientValue;
-import org.apache.olingo.commons.api.domain.ClientEnumValue;
-
-public class ClientEnumValueImpl extends AbstractClientValue implements ClientEnumValue {
-
-  private final String value;
-
-  public ClientEnumValueImpl(final String typeName, final String value) {
-    super(typeName);
-    this.value = value;
-  }
-
-  @Override
-  public String getValue() {
-    return value;
-  }
-
-  @Override
-  public boolean isEnum() {
-    return true;
-  }
-
-  @Override
-  public ClientEnumValue asEnum() {
-    return this;
-  }
-
-  @Override
-  public boolean isComplex() {
-    return false;
-  }
-
-  @Override
-  public String toString() {
-    return getTypeName() + "'" + getValue() + "'";
-
-  }
-
-}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/17152920/lib/commons-core/src/main/java/org/apache/olingo/commons/core/domain/ClientObjectFactoryImpl.java
----------------------------------------------------------------------
diff --git a/lib/commons-core/src/main/java/org/apache/olingo/commons/core/domain/ClientObjectFactoryImpl.java b/lib/commons-core/src/main/java/org/apache/olingo/commons/core/domain/ClientObjectFactoryImpl.java
deleted file mode 100644
index ed4692f..0000000
--- a/lib/commons-core/src/main/java/org/apache/olingo/commons/core/domain/ClientObjectFactoryImpl.java
+++ /dev/null
@@ -1,155 +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.commons.core.domain;
-
-import java.net.URI;
-
-import org.apache.olingo.commons.api.domain.ClientCollectionValue;
-import org.apache.olingo.commons.api.domain.ClientComplexValue;
-import org.apache.olingo.commons.api.domain.ClientDelta;
-import org.apache.olingo.commons.api.domain.ClientEntity;
-import org.apache.olingo.commons.api.domain.ClientEntitySet;
-import org.apache.olingo.commons.api.domain.ClientEnumValue;
-import org.apache.olingo.commons.api.domain.ClientInlineEntity;
-import org.apache.olingo.commons.api.domain.ClientInlineEntitySet;
-import org.apache.olingo.commons.api.domain.ClientLink;
-import org.apache.olingo.commons.api.domain.ClientLinkType;
-import org.apache.olingo.commons.api.domain.ClientObjectFactory;
-import org.apache.olingo.commons.api.domain.ClientPrimitiveValue;
-import org.apache.olingo.commons.api.domain.ClientProperty;
-import org.apache.olingo.commons.api.domain.ClientSingleton;
-import org.apache.olingo.commons.api.domain.ClientValue;
-import org.apache.olingo.commons.api.edm.FullQualifiedName;
-
-public class ClientObjectFactoryImpl implements ClientObjectFactory {
-
-  @Override
-  public ClientInlineEntitySet newDeepInsertEntitySet(final String name, final ClientEntitySet entitySet) {
-    return new ClientInlineEntitySet(null, ClientLinkType.ENTITY_SET_NAVIGATION, name, entitySet);
-  }
-
-  @Override
-  public ClientInlineEntity newDeepInsertEntity(final String name, final ClientEntity entity) {
-    return new ClientInlineEntity(null, ClientLinkType.ENTITY_NAVIGATION, name, entity);
-  }
-
-  @Override
-  public ClientEntitySet newEntitySet() {
-    return new ClientEntitySetImpl();
-  }
-
-  @Override
-  public ClientEntitySet newEntitySet(final URI next) {
-    return new ClientEntitySetImpl(next);
-  }
-
-  @Override
-  public ClientEntity newEntity(final FullQualifiedName typeName) {
-    return new ClientEntityImpl(typeName);
-  }
-
-  @Override
-  public ClientEntity newEntity(final FullQualifiedName typeName, final URI link) {
-    final ClientEntityImpl result = new ClientEntityImpl(typeName);
-    result.setLink(link);
-    return result;
-  }
-
-  @Override
-  public ClientSingleton newSingleton(final FullQualifiedName typeName) {
-    return new ClientEntityImpl(typeName);
-  }
-
-  @Override
-  public ClientLink newEntityNavigationLink(final String name, final URI link) {
-    return new ClientLink.Builder().setURI(link).
-        setType(ClientLinkType.ENTITY_NAVIGATION).setTitle(name).build();
-  }
-
-  @Override
-  public ClientLink newEntitySetNavigationLink(final String name, final URI link) {
-    return new ClientLink.Builder().setURI(link).
-        setType(ClientLinkType.ENTITY_SET_NAVIGATION).setTitle(name).build();
-  }
-
-  @Override
-  public ClientLink newAssociationLink(final String name, final URI link) {
-    return new ClientLink.Builder().setURI(link).
-        setType(ClientLinkType.ASSOCIATION).setTitle(name).build();
-  }
-
-  @Override
-  public ClientLink newMediaEditLink(final String name, final URI link) {
-    return new ClientLink.Builder().setURI(link).
-        setType(ClientLinkType.MEDIA_EDIT).setTitle(name).build();
-  }
-
-  @Override
-  public ClientPrimitiveValue.Builder newPrimitiveValueBuilder() {
-    return new ClientPrimitiveValueImpl.BuilderImpl();
-  }
-
-  @Override
-  public ClientEnumValue newEnumValue(final String typeName, final String value) {
-    return new ClientEnumValueImpl(typeName, value);
-  }
-
-  @Override
-  public ClientComplexValue newComplexValue(final String typeName) {
-    return new ClientComplexValueImpl(typeName);
-  }
-
-  @Override
-  public ClientCollectionValue<ClientValue> newCollectionValue(final String typeName) {
-    return new ClientCollectionValueImpl<ClientValue>(typeName);
-  }
-
-  @Override
-  public ClientProperty newPrimitiveProperty(final String name, final ClientPrimitiveValue value) {
-    return new ClientPropertyImpl(name, value);
-  }
-
-  @Override
-  public ClientProperty newComplexProperty(final String name, final ClientComplexValue value) {
-
-    return new ClientPropertyImpl(name, value);
-  }
-
-  @Override
-  public ClientProperty newCollectionProperty(final String name,
-      final ClientCollectionValue<? extends ClientValue> value) {
-
-    return new ClientPropertyImpl(name, value);
-  }
-
-  @Override
-  public ClientProperty newEnumProperty(final String name, final ClientEnumValue value) {
-    return new ClientPropertyImpl(name, value);
-  }
-
-  @Override
-  public ClientDelta newDelta() {
-    return new ClientDeltaImpl();
-  }
-
-  @Override
-  public ClientDelta newDelta(final URI next) {
-    return new ClientDeltaImpl(next);
-  }
-}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/17152920/lib/commons-core/src/main/java/org/apache/olingo/commons/core/domain/ClientPrimitiveValueImpl.java
----------------------------------------------------------------------
diff --git a/lib/commons-core/src/main/java/org/apache/olingo/commons/core/domain/ClientPrimitiveValueImpl.java b/lib/commons-core/src/main/java/org/apache/olingo/commons/core/domain/ClientPrimitiveValueImpl.java
deleted file mode 100644
index 0f6ad2b..0000000
--- a/lib/commons-core/src/main/java/org/apache/olingo/commons/core/domain/ClientPrimitiveValueImpl.java
+++ /dev/null
@@ -1,222 +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.commons.core.domain;
-
-import java.util.UUID;
-
-import org.apache.olingo.commons.api.Constants;
-import org.apache.olingo.commons.api.domain.AbstractClientValue;
-import org.apache.olingo.commons.api.domain.ClientEnumValue;
-import org.apache.olingo.commons.api.domain.ClientPrimitiveValue;
-import org.apache.olingo.commons.api.domain.ClientValue;
-import org.apache.olingo.commons.api.edm.EdmPrimitiveType;
-import org.apache.olingo.commons.api.edm.EdmPrimitiveTypeException;
-import org.apache.olingo.commons.api.edm.EdmPrimitiveTypeKind;
-import org.apache.olingo.commons.api.edm.EdmType;
-import org.apache.olingo.commons.api.edm.constants.EdmTypeKind;
-import org.apache.olingo.commons.core.edm.primitivetype.EdmPrimitiveTypeFactory;
-
-public class ClientPrimitiveValueImpl extends AbstractClientValue implements ClientValue, ClientPrimitiveValue {
-
-  public static class BuilderImpl implements Builder {
-
-    private final ClientPrimitiveValueImpl instance;
-
-    public BuilderImpl() {
-      instance = new ClientPrimitiveValueImpl();
-    }
-
-    @Override
-    public BuilderImpl setType(final EdmType type) {
-      EdmPrimitiveTypeKind primitiveTypeKind = null;
-      if (type != null) {
-        if (type.getKind() != EdmTypeKind.PRIMITIVE) {
-          throw new IllegalArgumentException(String.format("Provided type %s is not primitive", type));
-        }
-        primitiveTypeKind = EdmPrimitiveTypeKind.valueOf(type.getName());
-      }
-      return setType(primitiveTypeKind);
-    }
-
-    @Override
-    public BuilderImpl setType(final EdmPrimitiveTypeKind type) {
-      if (type == EdmPrimitiveTypeKind.Stream) {
-        throw new IllegalArgumentException(String.format(
-                "Cannot build a primitive value for %s", EdmPrimitiveTypeKind.Stream.toString()));
-      }
-      if (type == EdmPrimitiveTypeKind.Geography || type == EdmPrimitiveTypeKind.Geometry) {
-        throw new IllegalArgumentException(
-                type + "is not an instantiable type. "
-                        + "An entity can declare a property to be of type Geometry. "
-                        + "An instance of an entity MUST NOT have a value of type Geometry. "
-                        + "Each value MUST be of some subtype.");
-      }
-
-      instance.typeKind = type == null ? EdmPrimitiveTypeKind.String : type;
-      instance.type = EdmPrimitiveTypeFactory.getInstance(instance.typeKind);
-
-      return this;
-    }
-
-    @Override
-    public BuilderImpl setValue(final Object value) {
-      instance.value = value;
-      return this;
-    }
-
-    @Override
-    public ClientPrimitiveValue build() {
-      if (instance.type == null) {
-        setType(EdmPrimitiveTypeKind.String);
-      }
-      return instance;
-    }
-
-    @Override
-    public ClientPrimitiveValue buildBoolean(final Boolean value) {
-      return setType(EdmPrimitiveTypeKind.Boolean).setValue(value).build();
-    }
-
-    @Override
-    public ClientPrimitiveValue buildInt16(final Short value) {
-      return setType(EdmPrimitiveTypeKind.Int16).setValue(value).build();
-    }
-
-    @Override
-    public ClientPrimitiveValue buildInt32(final Integer value) {
-      return setType(EdmPrimitiveTypeKind.Int32).setValue(value).build();
-    }
-
-    @Override
-    public ClientPrimitiveValue buildInt64(final Long value) {
-      return setType(EdmPrimitiveTypeKind.Int64).setValue(value).build();
-    }
-
-    @Override
-    public ClientPrimitiveValue buildSingle(final Float value) {
-      return setType(EdmPrimitiveTypeKind.Single).setValue(value).build();
-    }
-
-    @Override
-    public ClientPrimitiveValue buildDouble(final Double value) {
-      return setType(EdmPrimitiveTypeKind.Double).setValue(value).build();
-    }
-
-    @Override
-    public ClientPrimitiveValue buildString(final String value) {
-      return setType(EdmPrimitiveTypeKind.String).setValue(value).build();
-    }
-
-    @Override
-    public ClientPrimitiveValue buildGuid(final UUID value) {
-      return setType(EdmPrimitiveTypeKind.Guid).setValue(value).build();
-    }
-
-    @Override
-    public ClientPrimitiveValue buildBinary(final byte[] value) {
-      return setType(EdmPrimitiveTypeKind.Binary).setValue(value).build();
-    }
-
-  }
-
-  /**
-   * Type kind.
-   */
-  private EdmPrimitiveTypeKind typeKind;
-
-  /**
-   * Type.
-   */
-  private EdmPrimitiveType type;
-
-  /**
-   * Actual value.
-   */
-  private Object value;
-
-  protected ClientPrimitiveValueImpl() {
-    super(null);
-  }
-
-  @Override
-  public String getTypeName() {
-    return typeKind.getFullQualifiedName().toString();
-  }
-
-  @Override
-  public EdmPrimitiveTypeKind getTypeKind() {
-    return typeKind;
-  }
-
-  @Override
-  public EdmPrimitiveType getType() {
-    return type;
-  }
-
-  @Override
-  public Object toValue() {
-    return value;
-  }
-
-  @Override
-  public <T> T toCastValue(final Class<T> reference) throws EdmPrimitiveTypeException {
-    if (value == null) {
-      return null;
-    } else if (typeKind.isGeospatial()) {
-      return reference.cast(value);
-    } else {
-      // TODO: set facets
-      return type.valueOfString(type.valueToString(value,
-                      null, null, Constants.DEFAULT_PRECISION, Constants.DEFAULT_SCALE, null),
-              null, null, Constants.DEFAULT_PRECISION, Constants.DEFAULT_SCALE, null, reference);
-    }
-  }
-
-  @Override
-  public String toString() {
-    if (value == null) {
-      return "";
-    } else if (typeKind.isGeospatial()) {
-      return value.toString();
-    } else {
-      try {
-        // TODO: set facets
-        return type.valueToString(value, null, null, Constants.DEFAULT_PRECISION, Constants.DEFAULT_SCALE, null);
-      } catch (EdmPrimitiveTypeException e) {
-        throw new IllegalArgumentException(e);
-      }
-    }
-  }
-
-  @Override
-  public boolean isEnum() {
-    return false;
-  }
-
-  @Override
-  public ClientEnumValue asEnum() {
-    return null;
-  }
-
-  @Override
-  public boolean isComplex() {
-    return false;
-  }
-
-}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/17152920/lib/commons-core/src/main/java/org/apache/olingo/commons/core/domain/ClientPropertyImpl.java
----------------------------------------------------------------------
diff --git a/lib/commons-core/src/main/java/org/apache/olingo/commons/core/domain/ClientPropertyImpl.java b/lib/commons-core/src/main/java/org/apache/olingo/commons/core/domain/ClientPropertyImpl.java
deleted file mode 100644
index e53c94b..0000000
--- a/lib/commons-core/src/main/java/org/apache/olingo/commons/core/domain/ClientPropertyImpl.java
+++ /dev/null
@@ -1,163 +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.commons.core.domain;
-
-import java.util.ArrayList;
-import java.util.List;
-
-import org.apache.commons.lang3.builder.EqualsBuilder;
-import org.apache.commons.lang3.builder.HashCodeBuilder;
-import org.apache.olingo.commons.api.domain.ClientAnnotatable;
-import org.apache.olingo.commons.api.domain.ClientAnnotation;
-import org.apache.olingo.commons.api.domain.ClientCollectionValue;
-import org.apache.olingo.commons.api.domain.ClientComplexValue;
-import org.apache.olingo.commons.api.domain.ClientEnumValue;
-import org.apache.olingo.commons.api.domain.ClientPrimitiveValue;
-import org.apache.olingo.commons.api.domain.ClientProperty;
-import org.apache.olingo.commons.api.domain.ClientValuable;
-import org.apache.olingo.commons.api.domain.ClientValue;
-
-public class ClientPropertyImpl implements ClientProperty, ClientAnnotatable, ClientValuable {
-
-
-  private final List<ClientAnnotation> annotations = new ArrayList<ClientAnnotation>();
-  private final String name;
-  private final ClientValue value;
-  private final ClientValuable valuable;
-
-  public ClientPropertyImpl(final String name, final ClientValue value) {
-    this.name = name;
-    this.value = value;
-    this.valuable = new ClientValuableImpl(value);
-  }
-
-  /**
-   * Returns property name.
-   *
-   * @return property name.
-   */
-  @Override
-  public String getName() {
-    return name;
-  }
-
-  /**
-   * Returns property value.
-   *
-   * @return property value.
-   */
-  @Override
-  public ClientValue getValue() {
-    return value;
-  }
-
-  /**
-   * Checks if has null value.
-   *
-   * @return 'TRUE' if has null value; 'FALSE' otherwise.
-   */
-  @Override
-  public boolean hasNullValue() {
-    return value == null || value.isPrimitive() && value.asPrimitive().toValue() == null;
-  }
-
-  /**
-   * Checks if has primitive value.
-   *
-   * @return 'TRUE' if has primitive value; 'FALSE' otherwise.
-   */
-  @Override
-  public boolean hasPrimitiveValue() {
-    return !hasNullValue() && value.isPrimitive();
-  }
-
-  /**
-   * Gets primitive value.
-   *
-   * @return primitive value if exists; null otherwise.
-   */
-  @Override
-  public ClientPrimitiveValue getPrimitiveValue() {
-    return hasPrimitiveValue() ? value.asPrimitive() : null;
-  }
-
-  /**
-   * Checks if has complex value.
-   *
-   * @return 'TRUE' if has complex value; 'FALSE' otherwise.
-   */
-  @Override
-  public boolean hasComplexValue() {
-    return !hasNullValue() && value.isComplex();
-  }
-
-  /**
-   * Checks if has collection value.
-   *
-   * @return 'TRUE' if has collection value; 'FALSE' otherwise.
-   */
-  @Override
-  public boolean hasCollectionValue() {
-    return !hasNullValue() && value.isCollection();
-  }
-
-  @Override
-  public boolean equals(final Object obj) {
-    return EqualsBuilder.reflectionEquals(this, obj);
-  }
-
-  @Override
-  public int hashCode() {
-    return HashCodeBuilder.reflectionHashCode(this);
-  }
-
-  @Override
-  public boolean hasEnumValue() {
-    return valuable.hasEnumValue();
-  }
-
-  @Override
-  public ClientEnumValue getEnumValue() {
-    return valuable.getEnumValue();
-  }
-
-  @Override
-  public ClientComplexValue getComplexValue() {
-    return valuable.getComplexValue();
-  }
-
-  @Override
-  public ClientCollectionValue<ClientValue> getCollectionValue() {
-    return valuable.getCollectionValue();
-  }
-
-  @Override
-  public List<ClientAnnotation> getAnnotations() {
-    return annotations;
-  }
-
-  @Override
-  public String toString() {
-    return "ODataPropertyImpl{"
-        + "name=" + getName()
-        + ",valuable=" + valuable
-        + ", annotations=" + annotations
-        + '}';
-  }
-}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/17152920/lib/commons-core/src/main/java/org/apache/olingo/commons/core/domain/ClientValuableImpl.java
----------------------------------------------------------------------
diff --git a/lib/commons-core/src/main/java/org/apache/olingo/commons/core/domain/ClientValuableImpl.java b/lib/commons-core/src/main/java/org/apache/olingo/commons/core/domain/ClientValuableImpl.java
deleted file mode 100644
index 561d3df..0000000
--- a/lib/commons-core/src/main/java/org/apache/olingo/commons/core/domain/ClientValuableImpl.java
+++ /dev/null
@@ -1,111 +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.commons.core.domain;
-
-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.commons.api.domain.ClientCollectionValue;
-import org.apache.olingo.commons.api.domain.ClientComplexValue;
-import org.apache.olingo.commons.api.domain.ClientEnumValue;
-import org.apache.olingo.commons.api.domain.ClientPrimitiveValue;
-import org.apache.olingo.commons.api.domain.ClientValuable;
-import org.apache.olingo.commons.api.domain.ClientValue;
-
-public class ClientValuableImpl implements ClientValuable {
-
-  private final ClientValue value;
-
-  public ClientValuableImpl(final ClientValue value) {
-    this.value = value;
-  }
-
-  @Override
-  public ClientValue getValue() {
-    return value;
-  }
-
-  @Override
-  public boolean hasNullValue() {
-    return value == null;
-  }
-
-  @Override
-  public boolean hasPrimitiveValue() {
-    return !hasNullValue() && value.isPrimitive();
-  }
-
-  @Override
-  public ClientPrimitiveValue getPrimitiveValue() {
-    return hasPrimitiveValue() ? value.asPrimitive() : null;
-  }
-
-  @Override
-  public boolean hasCollectionValue() {
-    return !hasNullValue() && value.isCollection();
-  }
-
-  @Override
-  public ClientCollectionValue<ClientValue> getCollectionValue() {
-    return hasCollectionValue()
-        ? getValue().<ClientValue> asCollection()
-        : null;
-  }
-
-  @Override
-  public boolean hasComplexValue() {
-    return !hasNullValue() && value.isComplex();
-  }
-
-  @Override
-  public ClientComplexValue getComplexValue() {
-    return hasComplexValue()
-        ? getValue().asComplex()
-        : null;
-  }
-
-  @Override
-  public boolean hasEnumValue() {
-    return !hasNullValue() && getValue().isEnum();
-  }
-
-  @Override
-  public ClientEnumValue getEnumValue() {
-    return hasEnumValue()
-        ? getValue().asEnum()
-        : null;
-  }
-
-  @Override
-  public boolean equals(final Object obj) {
-    return EqualsBuilder.reflectionEquals(this, obj);
-  }
-
-  @Override
-  public int hashCode() {
-    return HashCodeBuilder.reflectionHashCode(this);
-  }
-
-  @Override
-  public String toString() {
-    return ReflectionToStringBuilder.toString(this, ToStringStyle.MULTI_LINE_STYLE);
-  }
-
-}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/17152920/lib/commons-core/src/main/java/org/apache/olingo/commons/core/edm/annotation/EdmConstantAnnotationExpressionImpl.java
----------------------------------------------------------------------
diff --git a/lib/commons-core/src/main/java/org/apache/olingo/commons/core/edm/annotation/EdmConstantAnnotationExpressionImpl.java b/lib/commons-core/src/main/java/org/apache/olingo/commons/core/edm/annotation/EdmConstantAnnotationExpressionImpl.java
index 7adeb3e..9763596 100644
--- a/lib/commons-core/src/main/java/org/apache/olingo/commons/core/edm/annotation/EdmConstantAnnotationExpressionImpl.java
+++ b/lib/commons-core/src/main/java/org/apache/olingo/commons/core/edm/annotation/EdmConstantAnnotationExpressionImpl.java
@@ -23,42 +23,41 @@ import java.util.List;
 
 import org.apache.commons.lang3.StringUtils;
 import org.apache.olingo.commons.api.Constants;
-import org.apache.olingo.commons.api.domain.ClientEnumValue;
-import org.apache.olingo.commons.api.domain.ClientValue;
+import org.apache.olingo.commons.api.data.Property;
+import org.apache.olingo.commons.api.data.Valuable;
+import org.apache.olingo.commons.api.data.ValueType;
 import org.apache.olingo.commons.api.edm.EdmPrimitiveType;
 import org.apache.olingo.commons.api.edm.EdmPrimitiveTypeException;
 import org.apache.olingo.commons.api.edm.EdmPrimitiveTypeKind;
 import org.apache.olingo.commons.api.edm.annotation.EdmConstantAnnotationExpression;
 import org.apache.olingo.commons.api.edm.annotation.EdmDynamicAnnotationExpression;
 import org.apache.olingo.commons.api.edm.provider.annotation.ConstantAnnotationExpression;
-import org.apache.olingo.commons.core.domain.ClientCollectionValueImpl;
-import org.apache.olingo.commons.core.domain.ClientEnumValueImpl;
-import org.apache.olingo.commons.core.domain.ClientPrimitiveValueImpl;
 import org.apache.olingo.commons.core.edm.primitivetype.EdmPrimitiveTypeFactory;
 
 public class EdmConstantAnnotationExpressionImpl implements EdmConstantAnnotationExpression {
 
-  private final ClientValue value;
+  private final Valuable value;
+  private final EdmPrimitiveType type;
 
   public EdmConstantAnnotationExpressionImpl(final ConstantAnnotationExpression constExprConstruct) {
     if (constExprConstruct.getType() == ConstantAnnotationExpression.Type.EnumMember) {
-      final List<ClientEnumValue> enumValues = new ArrayList<ClientEnumValue>();
+      final List<Property> enumValues = new ArrayList<Property>();
       String enumTypeName = null;
       for (String split : StringUtils.split(constExprConstruct.getValue(), ' ')) {
         final String[] enumSplit = StringUtils.split(split, '/');
         enumTypeName = enumSplit[0];
-        enumValues.add(new ClientEnumValueImpl(enumSplit[0], enumSplit[1]));
+        enumValues.add(new Property(enumSplit[0], enumSplit[1]));
       }
       if (enumValues.size() == 1) {
         value = enumValues.get(0);
       } else {
-        final ClientCollectionValueImpl<ClientEnumValue> collValue
-          = new ClientCollectionValueImpl<ClientEnumValue>(enumTypeName);
-        for (ClientValue enumValue : enumValues) {
+        final List<Property> collValue = new ArrayList<Property>();
+        for (Property enumValue : enumValues) {
           collValue.add(enumValue);
         }
-        value = collValue;
+        value = new Property(enumTypeName, "name", ValueType.COLLECTION_ENUM, collValue);
       }
+      type = null;
     } else {
       EdmPrimitiveTypeKind kind;
       switch (constExprConstruct.getType()) {
@@ -96,19 +95,30 @@ public class EdmConstantAnnotationExpressionImpl implements EdmConstantAnnotatio
       default:
         kind = EdmPrimitiveTypeKind.String;
       }
-      final ClientPrimitiveValueImpl.BuilderImpl primitiveValueBuilder = new ClientPrimitiveValueImpl.BuilderImpl();
-      primitiveValueBuilder.setType(kind);
+//      final ClientPrimitiveValueImpl.BuilderImpl primitiveValueBuilder = new ClientPrimitiveValueImpl.BuilderImpl();
+//      primitiveValueBuilder.setType(kind);
+//      try {
+//        final EdmPrimitiveType type = EdmPrimitiveTypeFactory.getInstance(kind);
+//        primitiveValueBuilder.setValue(
+//            type.valueOfString(constExprConstruct.getValue(),
+//                null, null, Constants.DEFAULT_PRECISION, Constants.DEFAULT_SCALE, null,
+//                type.getDefaultType()));
+//      } catch (final EdmPrimitiveTypeException e) {
+//        throw new IllegalArgumentException(e);
+//      }
+//
+//      value = primitiveValueBuilder.build();
+
+      type = EdmPrimitiveTypeFactory.getInstance(kind);
       try {
-        final EdmPrimitiveType primitiveType = EdmPrimitiveTypeFactory.getInstance(kind);
-        primitiveValueBuilder.setValue(
-            primitiveType.valueOfString(constExprConstruct.getValue(),
+        Object test = type.valueOfString(constExprConstruct.getValue(),
                 null, null, Constants.DEFAULT_PRECISION, Constants.DEFAULT_SCALE, null,
-                primitiveType.getDefaultType()));
-      } catch (final EdmPrimitiveTypeException e) {
+                type.getDefaultType());
+        value = new Property(kind.getFullQualifiedName().getFullQualifiedNameAsString(),
+                "name", ValueType.PRIMITIVE, test);
+      } catch (EdmPrimitiveTypeException e) {
         throw new IllegalArgumentException(e);
       }
-
-      value = primitiveValueBuilder.build();
     }
   }
 
@@ -133,8 +143,26 @@ public class EdmConstantAnnotationExpressionImpl implements EdmConstantAnnotatio
   }
 
   @Override
-  public ClientValue getValue() {
+  public Valuable getValue() {
     return value;
   }
 
+  public String toString() {
+    if (value == null) {
+      return "";
+    } else if(value.isEnum()) {
+      return value.toString();
+    } else if (value.isGeospatial()) {
+      return value.toString();
+    } else {
+      // TODO: check after copied from ClientPrimitiveValueImpl
+      try {
+        return type.valueToString(value.getValue(), null, null,
+                Constants.DEFAULT_PRECISION, Constants.DEFAULT_SCALE, null);
+      } catch (EdmPrimitiveTypeException e) {
+        throw new IllegalArgumentException(e);
+      }
+    }
+  }
+
 }

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/17152920/lib/commons-core/src/main/java/org/apache/olingo/commons/core/serialization/AtomDeserializer.java
----------------------------------------------------------------------
diff --git a/lib/commons-core/src/main/java/org/apache/olingo/commons/core/serialization/AtomDeserializer.java b/lib/commons-core/src/main/java/org/apache/olingo/commons/core/serialization/AtomDeserializer.java
index 460e367..6b4b72c 100644
--- a/lib/commons-core/src/main/java/org/apache/olingo/commons/core/serialization/AtomDeserializer.java
+++ b/lib/commons-core/src/main/java/org/apache/olingo/commons/core/serialization/AtomDeserializer.java
@@ -46,13 +46,13 @@ import org.apache.olingo.commons.api.data.DeltaLink;
 import org.apache.olingo.commons.api.data.Entity;
 import org.apache.olingo.commons.api.data.EntityCollection;
 import org.apache.olingo.commons.api.data.Link;
+import org.apache.olingo.commons.api.data.Operation;
 import org.apache.olingo.commons.api.data.Property;
 import org.apache.olingo.commons.api.data.ResWrap;
 import org.apache.olingo.commons.api.data.Valuable;
 import org.apache.olingo.commons.api.data.ValueType;
-import org.apache.olingo.commons.api.domain.ClientError;
-import org.apache.olingo.commons.api.domain.ClientOperation;
-import org.apache.olingo.commons.api.domain.ClientPropertyType;
+import org.apache.olingo.commons.api.domain.ODataError;
+import org.apache.olingo.commons.api.domain.ODataPropertyType;
 import org.apache.olingo.commons.api.edm.EdmPrimitiveType;
 import org.apache.olingo.commons.api.edm.EdmPrimitiveTypeException;
 import org.apache.olingo.commons.api.edm.EdmPrimitiveTypeKind;
@@ -214,7 +214,7 @@ public class AtomDeserializer extends AbstractAtomDealer implements ODataDeseria
     valuable.setValue(valueType, values);
   }
 
-  private ClientPropertyType guessPropertyType(final XMLEventReader reader, final EdmTypeInfo typeInfo)
+  private ODataPropertyType guessPropertyType(final XMLEventReader reader, final EdmTypeInfo typeInfo)
       throws XMLStreamException {
 
     XMLEvent child = null;
@@ -227,24 +227,24 @@ public class AtomDeserializer extends AbstractAtomDealer implements ODataDeseria
       }
     }
 
-    final ClientPropertyType type;
+    final ODataPropertyType type;
     if (child == null) {
-      type = typeInfo == null || typeInfo.isPrimitiveType() ? ClientPropertyType.PRIMITIVE : ClientPropertyType.ENUM;
+      type = typeInfo == null || typeInfo.isPrimitiveType() ? ODataPropertyType.PRIMITIVE : ODataPropertyType.ENUM;
     } else {
       if (child.isStartElement()) {
         if (Constants.NS_GML.equals(child.asStartElement().getName().getNamespaceURI())) {
-          type = ClientPropertyType.PRIMITIVE;
+          type = ODataPropertyType.PRIMITIVE;
         } else if (elementQName.equals(child.asStartElement().getName())) {
-          type = ClientPropertyType.COLLECTION;
+          type = ODataPropertyType.COLLECTION;
         } else {
-          type = ClientPropertyType.COMPLEX;
+          type = ODataPropertyType.COMPLEX;
         }
       } else if (child.isCharacters()) {
         type = typeInfo == null || typeInfo.isPrimitiveType()
-            ? ClientPropertyType.PRIMITIVE
-            : ClientPropertyType.ENUM;
+            ? ODataPropertyType.PRIMITIVE
+            : ODataPropertyType.ENUM;
       } else {
-        type = ClientPropertyType.EMPTY;
+        type = ODataPropertyType.EMPTY;
       }
     }
 
@@ -286,9 +286,9 @@ public class AtomDeserializer extends AbstractAtomDealer implements ODataDeseria
       valuable.setType(typeInfo.internal());
     }
 
-    final ClientPropertyType propType = typeInfo == null ? guessPropertyType(reader, typeInfo) :
-        typeInfo.isCollection() ? ClientPropertyType.COLLECTION :
-            typeInfo.isPrimitiveType() ? ClientPropertyType.PRIMITIVE : ClientPropertyType.COMPLEX;
+    final ODataPropertyType propType = typeInfo == null ? guessPropertyType(reader, typeInfo) :
+        typeInfo.isCollection() ? ODataPropertyType.COLLECTION :
+            typeInfo.isPrimitiveType() ? ODataPropertyType.PRIMITIVE : ODataPropertyType.COMPLEX;
 
     if (nullAttr == null) {
       switch (propType) {
@@ -316,10 +316,10 @@ public class AtomDeserializer extends AbstractAtomDealer implements ODataDeseria
         valuable.setValue(ValueType.PRIMITIVE, StringUtils.EMPTY);
       }
     } else {
-      valuable.setValue(propType == ClientPropertyType.PRIMITIVE ? ValueType.PRIMITIVE :
-          propType == ClientPropertyType.ENUM ? ValueType.ENUM :
-              propType == ClientPropertyType.COMPLEX ? ValueType.COMPLEX :
-                  propType == ClientPropertyType.COLLECTION ? ValueType.COLLECTION_PRIMITIVE : ValueType.PRIMITIVE,
+      valuable.setValue(propType == ODataPropertyType.PRIMITIVE ? ValueType.PRIMITIVE :
+          propType == ODataPropertyType.ENUM ? ValueType.ENUM :
+              propType == ODataPropertyType.COMPLEX ? ValueType.COMPLEX :
+                  propType == ODataPropertyType.COLLECTION ? ValueType.COLLECTION_PRIMITIVE : ValueType.PRIMITIVE,
           null);
     }
   }
@@ -649,7 +649,7 @@ public class AtomDeserializer extends AbstractAtomDealer implements ODataDeseria
               entity.getMediaEditLinks().add(link);
             }
           } else if (actionQName.equals(event.asStartElement().getName())) {
-            final ClientOperation operation = new ClientOperation();
+            final Operation operation = new Operation();
             final Attribute metadata =
                 event.asStartElement().getAttributeByName(QName.valueOf(Constants.ATTR_METADATA));
             if (metadata != null) {
@@ -800,8 +800,8 @@ public class AtomDeserializer extends AbstractAtomDealer implements ODataDeseria
     }
   }
 
-  private ClientError error(final XMLEventReader reader, final StartElement start) throws XMLStreamException {
-    final ClientError error = new ClientError();
+  private ODataError error(final XMLEventReader reader, final StartElement start) throws XMLStreamException {
+    final ODataError error = new ODataError();
 
     boolean setCode = false;
     boolean codeSet = false;
@@ -851,7 +851,7 @@ public class AtomDeserializer extends AbstractAtomDealer implements ODataDeseria
   }
 
   @Override
-  public ClientError toError(final InputStream input) throws ODataDeserializerException {
+  public ODataError toError(final InputStream input) throws ODataDeserializerException {
     try {
       final XMLEventReader reader = getReader(input);
       final StartElement start = skipBeforeFirstStartElement(reader);

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/17152920/lib/commons-core/src/main/java/org/apache/olingo/commons/core/serialization/AtomSerializer.java
----------------------------------------------------------------------
diff --git a/lib/commons-core/src/main/java/org/apache/olingo/commons/core/serialization/AtomSerializer.java b/lib/commons-core/src/main/java/org/apache/olingo/commons/core/serialization/AtomSerializer.java
index 52a1bd3..2a3bb4a 100644
--- a/lib/commons-core/src/main/java/org/apache/olingo/commons/core/serialization/AtomSerializer.java
+++ b/lib/commons-core/src/main/java/org/apache/olingo/commons/core/serialization/AtomSerializer.java
@@ -38,10 +38,10 @@ import org.apache.olingo.commons.api.data.ContextURL;
 import org.apache.olingo.commons.api.data.Entity;
 import org.apache.olingo.commons.api.data.EntityCollection;
 import org.apache.olingo.commons.api.data.Link;
+import org.apache.olingo.commons.api.data.Operation;
 import org.apache.olingo.commons.api.data.Property;
 import org.apache.olingo.commons.api.data.ResWrap;
 import org.apache.olingo.commons.api.data.ValueType;
-import org.apache.olingo.commons.api.domain.ClientOperation;
 import org.apache.olingo.commons.api.edm.EdmPrimitiveTypeException;
 import org.apache.olingo.commons.api.edm.EdmPrimitiveTypeKind;
 import org.apache.olingo.commons.api.edm.geo.Geospatial;
@@ -302,7 +302,7 @@ public class AtomSerializer extends AbstractAtomDealer implements ODataSerialize
     links(writer, entity.getMediaEditLinks());
 
     if (serverMode) {
-      for (ClientOperation operation : entity.getOperations()) {
+      for (Operation operation : entity.getOperations()) {
         writer.writeStartElement(namespaceMetadata, Constants.ATOM_ELEM_ACTION);
         writer.writeAttribute(Constants.ATTR_METADATA, operation.getMetadataAnchor());
         writer.writeAttribute(Constants.ATTR_TITLE, operation.getTitle());


[10/50] [abbrv] olingo-odata4 git commit: [OLINGO-564] Renamed 'edm.provider.*' classes

Posted by mi...@apache.org.
http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/2318953c/lib/server-tecsvc/src/main/java/org/apache/olingo/server/tecsvc/provider/FunctionProvider.java
----------------------------------------------------------------------
diff --git a/lib/server-tecsvc/src/main/java/org/apache/olingo/server/tecsvc/provider/FunctionProvider.java b/lib/server-tecsvc/src/main/java/org/apache/olingo/server/tecsvc/provider/FunctionProvider.java
index f641c2a..960c7f7 100644
--- a/lib/server-tecsvc/src/main/java/org/apache/olingo/server/tecsvc/provider/FunctionProvider.java
+++ b/lib/server-tecsvc/src/main/java/org/apache/olingo/server/tecsvc/provider/FunctionProvider.java
@@ -20,9 +20,9 @@ package org.apache.olingo.server.tecsvc.provider;
 
 import org.apache.olingo.commons.api.ODataException;
 import org.apache.olingo.commons.api.edm.FullQualifiedName;
-import org.apache.olingo.commons.api.edm.provider.Function;
-import org.apache.olingo.commons.api.edm.provider.Parameter;
-import org.apache.olingo.commons.api.edm.provider.ReturnType;
+import org.apache.olingo.commons.api.edm.provider.CsdlFunction;
+import org.apache.olingo.commons.api.edm.provider.CsdlParameter;
+import org.apache.olingo.commons.api.edm.provider.CsdlReturnType;
 
 import java.util.ArrayList;
 import java.util.Arrays;
@@ -118,10 +118,10 @@ public class FunctionProvider {
 
   public static final FullQualifiedName nameBFCESTwoKeyNavRTCollCTNavFiveProp = new FullQualifiedName(
       SchemaProvider.NAMESPACE, "BFCESTwoKeyNavRTCollCTNavFiveProp");
-  
+
   public static final FullQualifiedName nameBFCESKeyNavRTESTwoKeyNav =
       new FullQualifiedName(SchemaProvider.NAMESPACE, "BFCESKeyNavRTESTwoKeyNav");
-  
+
   // Unbound Functions
   public static final FullQualifiedName nameUFCRTCollCTTwoPrim =
       new FullQualifiedName(SchemaProvider.NAMESPACE, "UFCRTCollCTTwoPrim");
@@ -166,339 +166,367 @@ public class FunctionProvider {
 
   public static final FullQualifiedName nameUFCRTCollETMixPrimCollCompTwoParam =
       new FullQualifiedName(SchemaProvider.NAMESPACE, "UFCRTCollETMixPrimCollCompTwoParam");
-  
+
   public static final FullQualifiedName nameUFCRTCollETKeyNavContParam =
       new FullQualifiedName(SchemaProvider.NAMESPACE, "UFCRTCollETKeyNavContParam");
-  
+
   public static final FullQualifiedName nameUFNRTInt16 =
       new FullQualifiedName(SchemaProvider.NAMESPACE, "UFNRTInt16");
 
   public static final FullQualifiedName nameUFNRTCollCTNavFiveProp = new FullQualifiedName(SchemaProvider.NAMESPACE,
       "UFNRTCollCTNavFiveProp");
 
-  public static final FullQualifiedName nameUFNRTCollETMixPrimCollCompTwoParam 
-    = new FullQualifiedName(SchemaProvider.NAMESPACE, "UFNRTCollETMixPrimCollCompTwoParam");
+  public static final FullQualifiedName nameUFNRTCollETMixPrimCollCompTwoParam = new FullQualifiedName(
+      SchemaProvider.NAMESPACE, "UFNRTCollETMixPrimCollCompTwoParam");
 
-  public List<Function> getFunctions(final FullQualifiedName functionName) throws ODataException {
+  public List<CsdlFunction> getFunctions(final FullQualifiedName functionName) throws ODataException {
 
     if (functionName.equals(nameUFNRTInt16)) {
       return Arrays.asList(
-          new Function()
+          new CsdlFunction()
               .setName(functionName.getName())
-              .setParameters(Collections.<Parameter> emptyList())
-              .setReturnType(new ReturnType().setType(PropertyProvider.nameInt16)));
+              .setParameters(Collections.<CsdlParameter> emptyList())
+              .setReturnType(new CsdlReturnType().setType(PropertyProvider.nameInt16)));
 
     } else if (functionName.equals(nameUFCRTETKeyNav)) {
       return Arrays.asList(
-          new Function()
+          new CsdlFunction()
               .setName("UFCRTETKeyNav")
-              .setParameters(new ArrayList<Parameter>())
+              .setParameters(new ArrayList<CsdlParameter>())
               .setComposable(true)
               .setReturnType(
-                  new ReturnType().setType(EntityTypeProvider.nameETKeyNav).setNullable(false))
+                  new CsdlReturnType().setType(EntityTypeProvider.nameETKeyNav).setNullable(false))
           );
 
     } else if (functionName.equals(nameUFCRTETTwoKeyNav)) {
       return Collections.singletonList(
-          new Function()
+          new CsdlFunction()
               .setName(functionName.getName())
-              .setParameters(Collections.<Parameter> emptyList())
+              .setParameters(Collections.<CsdlParameter> emptyList())
               .setComposable(true)
               .setReturnType(
-                  new ReturnType().setType(EntityTypeProvider.nameETTwoKeyNav).setNullable(false)));
+                  new CsdlReturnType().setType(EntityTypeProvider.nameETTwoKeyNav).setNullable(false)));
     } else if (functionName.equals(nameUFCRTETTwoKeyNavParam)) {
-      return Arrays.asList(
-          new Function()
+      return Arrays
+          .asList(
+          new CsdlFunction()
               .setName("UFCRTETTwoKeyNavParam")
               .setParameters(Arrays.asList(
-                  new Parameter().setName("ParameterInt16").setType(PropertyProvider.nameInt16).setNullable(false)))
+                  new CsdlParameter().setName("ParameterInt16").setType(PropertyProvider.nameInt16).setNullable(false)))
               .setComposable(true)
               .setReturnType(
-                  new ReturnType().setType(EntityTypeProvider.nameETTwoKeyNav).setNullable(false)
+                  new CsdlReturnType().setType(EntityTypeProvider.nameETTwoKeyNav).setNullable(false)
               )
           );
 
     } else if (functionName.equals(nameUFCRTETTwoKeyNavParamCTTwoPrim)) {
       return Arrays.asList(
-          new Function()
+          new CsdlFunction()
               .setName("UFCRTETTwoKeyNavParamCTTwoPrim")
               .setParameters(Arrays.asList(
-                  new Parameter().setName("ParameterCTTwoPrim").setType(ComplexTypeProvider.nameCTTwoPrim)
+                  new CsdlParameter().setName("ParameterCTTwoPrim").setType(ComplexTypeProvider.nameCTTwoPrim)
                       .setNullable(false)))
               .setComposable(true)
               .setReturnType(
-                  new ReturnType().setType(EntityTypeProvider.nameETTwoKeyNav).setNullable(false)
+                  new CsdlReturnType().setType(EntityTypeProvider.nameETTwoKeyNav).setNullable(false)
               )
           );
 
     } else if (functionName.equals(nameUFCRTStringTwoParam)) {
       return Arrays.asList(
-          new Function()
+          new CsdlFunction()
               .setName("UFCRTStringTwoParam")
               .setParameters(Arrays.asList(
-                  new Parameter()
+                  new CsdlParameter()
                       .setName("ParameterInt16")
                       .setType(PropertyProvider.nameInt16)
                       .setNullable(false)))
               .setComposable(true)
               .setReturnType(
-                  new ReturnType().setType(PropertyProvider.nameString).setNullable(false)),
-          new Function()
+                  new CsdlReturnType().setType(PropertyProvider.nameString).setNullable(false)),
+          new CsdlFunction()
               .setName("UFCRTStringTwoParam")
               .setParameters(Arrays.asList(
-                  new Parameter()
+                  new CsdlParameter()
                       .setName("ParameterString")
                       .setType(PropertyProvider.nameString)
                       .setNullable(false),
-                  new Parameter()
+                  new CsdlParameter()
                       .setName("ParameterInt16")
                       .setType(PropertyProvider.nameInt16)
                       .setNullable(false)))
               .setComposable(true)
-              .setReturnType(new ReturnType().setType(PropertyProvider.nameString).setNullable(false))
+              .setReturnType(new CsdlReturnType().setType(PropertyProvider.nameString).setNullable(false))
 
           );
 
     } else if (functionName.equals(nameUFCRTCollETTwoKeyNavParam)) {
       return Arrays.asList(
-          new Function()
+          new CsdlFunction()
               .setName(functionName.getName())
               .setParameters(Collections.singletonList(
-                  new Parameter()
+                  new CsdlParameter()
                       .setName("ParameterInt16")
                       .setType(PropertyProvider.nameInt16)
                       .setNullable(false)))
               .setComposable(true)
               .setReturnType(
-                  new ReturnType().setType(EntityTypeProvider.nameETTwoKeyNav).setCollection(true).setNullable(false))
+                  new CsdlReturnType().setType(EntityTypeProvider.nameETTwoKeyNav).setCollection(true).setNullable(
+                      false))
           );
-    
-    } else if(functionName.equals(nameUFCRTCollETKeyNavContParam)) {
+
+    } else if (functionName.equals(nameUFCRTCollETKeyNavContParam)) {
       return Arrays.asList(
-          new Function()
-            .setName("UFCRTCollETKeyNavContParam")
-            .setBound(true)
-            .setComposable(true)
-            .setParameters(Arrays.asList(
-                new Parameter().setName("ParameterInt16")
-                               .setNullable(false)
-                               .setType(PropertyProvider.nameInt16)))
-            .setReturnType(new ReturnType().setType(EntityTypeProvider.nameETKeyNavCont)
-                                           .setCollection(true)
-                                           .setNullable(false))
+          new CsdlFunction()
+              .setName("UFCRTCollETKeyNavContParam")
+              .setBound(true)
+              .setComposable(true)
+              .setParameters(Arrays.asList(
+                  new CsdlParameter().setName("ParameterInt16")
+                      .setNullable(false)
+                      .setType(PropertyProvider.nameInt16)))
+              .setReturnType(new CsdlReturnType().setType(EntityTypeProvider.nameETKeyNavCont)
+                  .setCollection(true)
+                  .setNullable(false))
           );
 
     } else if (functionName.equals(nameUFCRTString)) {
       return Arrays.asList(
-          new Function()
+          new CsdlFunction()
               .setName("UFCRTString")
 
               .setComposable(true)
-              .setParameters(new ArrayList<Parameter>())
+              .setParameters(new ArrayList<CsdlParameter>())
               .setComposable(true)
               .setReturnType(
-                  new ReturnType().setType(PropertyProvider.nameString).setNullable(false)
+                  new CsdlReturnType().setType(PropertyProvider.nameString).setNullable(false)
               )
           );
 
     } else if (functionName.equals(nameUFCRTCollStringTwoParam)) {
       return Arrays.asList(
-          new Function()
+          new CsdlFunction()
               .setName("UFCRTCollStringTwoParam")
-              .setParameters(Arrays.asList(
-                  new Parameter().setName("ParameterString").setType(PropertyProvider.nameString).setNullable(false),
-                  new Parameter().setName("ParameterInt16").setType(PropertyProvider.nameInt16).setNullable(false)))
+              .setParameters(
+                  Arrays.asList(
+                      new CsdlParameter().setName("ParameterString").setType(PropertyProvider.nameString).setNullable(
+                          false),
+                      new CsdlParameter().setName("ParameterInt16").setType(PropertyProvider.nameInt16).setNullable(
+                          false)))
               .setComposable(true)
               .setReturnType(
-                  new ReturnType().setType(PropertyProvider.nameString).setCollection(true).setNullable(false))
+                  new CsdlReturnType().setType(PropertyProvider.nameString).setCollection(true).setNullable(false))
           );
 
     } else if (functionName.equals(nameUFCRTCollString)) {
       return Arrays.asList(
-          new Function()
+          new CsdlFunction()
               .setName("UFCRTCollString")
-              .setParameters(new ArrayList<Parameter>())
+              .setParameters(new ArrayList<CsdlParameter>())
               .setComposable(true)
               .setReturnType(
-                  new ReturnType().setType(PropertyProvider.nameString).setCollection(true).setNullable(false))
+                  new CsdlReturnType().setType(PropertyProvider.nameString).setCollection(true).setNullable(false))
           );
 
     } else if (functionName.equals(nameUFCRTCTAllPrimTwoParam)) {
       return Arrays.asList(
-          new Function()
+          new CsdlFunction()
               .setName("UFCRTCTAllPrimTwoParam")
-              .setParameters(Arrays.asList(
-                  new Parameter().setName("ParameterString").setType(PropertyProvider.nameString).setNullable(false),
-                  new Parameter().setName("ParameterInt16").setType(PropertyProvider.nameInt16).setNullable(false)))
+              .setParameters(
+                  Arrays.asList(
+                      new CsdlParameter().setName("ParameterString").setType(PropertyProvider.nameString).setNullable(
+                          false),
+                      new CsdlParameter().setName("ParameterInt16").setType(PropertyProvider.nameInt16).setNullable(
+                          false)))
               .setComposable(true)
               .setReturnType(
-                  new ReturnType().setType(ComplexTypeProvider.nameCTAllPrim).setNullable(false))
+                  new CsdlReturnType().setType(ComplexTypeProvider.nameCTAllPrim).setNullable(false))
           );
 
-    } else if(functionName.equals(nameUFNRTCollETMixPrimCollCompTwoParam)) {
+    } else if (functionName.equals(nameUFNRTCollETMixPrimCollCompTwoParam)) {
       return Arrays.asList(
-          new Function()
+          new CsdlFunction()
               .setName("UFNRTCollETMixPrimCollCompTwoParam")
-              .setParameters(Arrays.asList(
-                  new Parameter().setName("ParameterString").setType(PropertyProvider.nameString).setNullable(false),
-                  new Parameter().setName("ParameterInt16").setType(PropertyProvider.nameInt16).setNullable(false)))
+              .setParameters(
+                  Arrays.asList(
+                      new CsdlParameter().setName("ParameterString").setType(PropertyProvider.nameString).setNullable(
+                          false),
+                      new CsdlParameter().setName("ParameterInt16").setType(PropertyProvider.nameInt16).setNullable(
+                          false)))
               .setComposable(false)
               .setBound(false)
               .setReturnType(
-                  new ReturnType().setType(ComplexTypeProvider.nameCTMixPrimCollComp)
-                                  .setNullable(false)
-                                  .setCollection(true))
+                  new CsdlReturnType().setType(ComplexTypeProvider.nameCTMixPrimCollComp)
+                      .setNullable(false)
+                      .setCollection(true))
           );
     } else if (functionName.equals(nameUFCRTCTTwoPrimParam)) {
       return Arrays.asList(
-          new Function()
+          new CsdlFunction()
               .setName("UFCRTCTTwoPrimParam")
-              .setParameters(Arrays.asList(
-                  new Parameter().setName("ParameterInt16").setType(PropertyProvider.nameInt16).setNullable(false),
-                  new Parameter().setName("ParameterString").setType(PropertyProvider.nameString).setNullable(false)))
+              .setParameters(
+                  Arrays.asList(
+                      new CsdlParameter().setName("ParameterInt16").setType(PropertyProvider.nameInt16).setNullable(
+                          false),
+                      new CsdlParameter().setName("ParameterString").setType(PropertyProvider.nameString).setNullable(
+                          false)))
               .setComposable(true)
               .setReturnType(
-                  new ReturnType().setType(ComplexTypeProvider.nameCTTwoPrim).setNullable(false))
+                  new CsdlReturnType().setType(ComplexTypeProvider.nameCTTwoPrim).setNullable(false))
           );
     } else if (functionName.equals(nameUFCRTCollCTTwoPrimParam)) {
       return Arrays.asList(
-          new Function()
+          new CsdlFunction()
               .setName("UFCRTCollCTTwoPrimParam")
-              .setParameters(Arrays.asList(
-                  new Parameter().setName("ParameterInt16").setType(PropertyProvider.nameInt16).setNullable(false),
-                  new Parameter().setName("ParameterString").setType(PropertyProvider.nameString).setNullable(true)))
+              .setParameters(
+                  Arrays.asList(
+                      new CsdlParameter().setName("ParameterInt16").setType(PropertyProvider.nameInt16).setNullable(
+                          false),
+                      new CsdlParameter().setName("ParameterString").setType(PropertyProvider.nameString).setNullable(
+                          true)))
               .setComposable(true)
               .setReturnType(
-                  new ReturnType().setType(ComplexTypeProvider.nameCTTwoPrim).setCollection(true).setNullable(false))
+                  new CsdlReturnType().setType(ComplexTypeProvider.nameCTTwoPrim).setCollection(true)
+                      .setNullable(false))
           );
 
     } else if (functionName.equals(nameUFCRTCTTwoPrim)) {
       return Arrays.asList(
-          new Function()
+          new CsdlFunction()
               .setName("UFCRTCTTwoPrim")
-              .setParameters(new ArrayList<Parameter>())
+              .setParameters(new ArrayList<CsdlParameter>())
               .setComposable(true)
               .setReturnType(
-                  new ReturnType().setType(ComplexTypeProvider.nameCTTwoPrim).setNullable(false))
+                  new CsdlReturnType().setType(ComplexTypeProvider.nameCTTwoPrim).setNullable(false))
           );
 
     } else if (functionName.equals(nameUFCRTCollCTTwoPrim)) {
       return Arrays.asList(
-          new Function()
+          new CsdlFunction()
               .setName("UFCRTCollCTTwoPrim")
               .setComposable(true)
-              .setParameters(new ArrayList<Parameter>())
+              .setParameters(new ArrayList<CsdlParameter>())
               .setReturnType(
-                  new ReturnType().setType(ComplexTypeProvider.nameCTTwoPrim).setCollection(true).setNullable(false))
+                  new CsdlReturnType().setType(ComplexTypeProvider.nameCTTwoPrim).setCollection(true)
+                      .setNullable(false))
           );
 
     } else if (functionName.equals(nameUFCRTETMedia)) {
       return Arrays.asList(
-          new Function()
+          new CsdlFunction()
               .setName("UFCRTETMedia")
               .setParameters(Arrays.asList(
-                  new Parameter().setName("ParameterInt16").setNullable(false).setType(PropertyProvider.nameInt16)
+                  new CsdlParameter().setName("ParameterInt16").setNullable(false).setType(PropertyProvider.nameInt16)
                   ))
               .setComposable(true)
               .setReturnType(
-                  new ReturnType().setType(EntityTypeProvider.nameETMedia).setNullable(false))
+                  new CsdlReturnType().setType(EntityTypeProvider.nameETMedia).setNullable(false))
           );
     } else if (functionName.equals(nameUFCRTCollETMedia)) {
       return Arrays.asList(
-          new Function()
+          new CsdlFunction()
               .setName(functionName.getName())
-              .setParameters(Collections.<Parameter> emptyList())
+              .setParameters(Collections.<CsdlParameter> emptyList())
               .setComposable(true)
               .setReturnType(
-                  new ReturnType().setType(EntityTypeProvider.nameETMedia).setCollection(true).setNullable(false)));
+                  new CsdlReturnType().setType(EntityTypeProvider.nameETMedia).setCollection(true).setNullable(false)));
 
     } else if (functionName.equals(nameUFCRTCollETMixPrimCollCompTwoParam)) {
       return Arrays.asList(
-          new Function()
+          new CsdlFunction()
               .setName(functionName.getName())
-              .setParameters(Arrays.asList(
-                  new Parameter().setName("ParameterString").setType(PropertyProvider.nameString).setNullable(false),
-                  new Parameter().setName("ParameterInt16").setType(PropertyProvider.nameInt16).setNullable(false)))
+              .setParameters(
+                  Arrays.asList(
+                      new CsdlParameter().setName("ParameterString").setType(PropertyProvider.nameString).setNullable(
+                          false),
+                      new CsdlParameter().setName("ParameterInt16").setType(PropertyProvider.nameInt16).setNullable(
+                          false)))
               .setComposable(false)
               .setReturnType(
-                  new ReturnType().setType(EntityTypeProvider.nameETMixPrimCollComp).setCollection(true)
+                  new CsdlReturnType().setType(EntityTypeProvider.nameETMixPrimCollComp).setCollection(true)
                       .setNullable(false))
           );
 
     } else if (functionName.equals(nameUFCRTETAllPrimTwoParam)) {
       return Arrays.asList(
-          new Function()
+          new CsdlFunction()
               .setName("UFCRTETAllPrimTwoParam")
-              .setParameters(Arrays.asList(
-                  new Parameter().setName("ParameterString").setType(PropertyProvider.nameString).setNullable(false),
-                  new Parameter().setName("ParameterInt16").setType(PropertyProvider.nameInt16).setNullable(false)))
+              .setParameters(
+                  Arrays.asList(
+                      new CsdlParameter().setName("ParameterString").setType(PropertyProvider.nameString).setNullable(
+                          false),
+                      new CsdlParameter().setName("ParameterInt16").setType(PropertyProvider.nameInt16).setNullable(
+                          false)))
               .setComposable(true)
               .setReturnType(
-                  new ReturnType().setType(EntityTypeProvider.nameETAllPrim).setNullable(false))
+                  new CsdlReturnType().setType(EntityTypeProvider.nameETAllPrim).setNullable(false))
           );
 
     } else if (functionName.equals(nameUFCRTESMixPrimCollCompTwoParam)) {
       return Arrays.asList(
-          new Function()
+          new CsdlFunction()
               .setName(functionName.getName())
-              .setParameters(Arrays.asList(
-                  new Parameter().setName("ParameterString").setType(PropertyProvider.nameString).setNullable(false),
-                  new Parameter().setName("ParameterInt16").setType(PropertyProvider.nameInt16).setNullable(false)
-                  ))
+              .setParameters(
+                  Arrays.asList(
+                      new CsdlParameter().setName("ParameterString").setType(PropertyProvider.nameString).setNullable(
+                          false),
+                      new CsdlParameter().setName("ParameterInt16").setType(PropertyProvider.nameInt16).setNullable(
+                          false)
+                      ))
               .setComposable(true)
               .setReturnType(
-                  new ReturnType().setType(EntityTypeProvider.nameETMixPrimCollComp).setCollection(true)
+                  new CsdlReturnType().setType(EntityTypeProvider.nameETMixPrimCollComp).setCollection(true)
                       .setNullable(false))
           );
 
     } else if (functionName.equals(nameUFNRTCollCTNavFiveProp)) {
       return Arrays.asList(
-          new Function()
+          new CsdlFunction()
               .setName("UFNRTCollCTNavFiveProp")
               .setReturnType(
-                  new ReturnType().setType(ComplexTypeProvider.nameCTNavFiveProp).setCollection(true))
+                  new CsdlReturnType().setType(ComplexTypeProvider.nameCTNavFiveProp).setCollection(true))
           );
     } else if (functionName.equals(nameBFCESTwoKeyNavRTESTwoKeyNav)) {
       return Arrays
           .asList(
-              new Function()
+              new CsdlFunction()
                   .setName("BFCESTwoKeyNavRTESTwoKeyNav")
                   .setEntitySetPath("BindingParam/NavPropertyETTwoKeyNavMany")
                   .setBound(true)
                   .setParameters(
                       Arrays.asList(
-                          new Parameter().setName("BindingParam").setType(EntityTypeProvider.nameETTwoKeyNav)
+                          new CsdlParameter().setName("BindingParam").setType(EntityTypeProvider.nameETTwoKeyNav)
                               .setCollection(true).setNullable(false)))
                   .setComposable(true)
                   .setReturnType(
-                      new ReturnType().setType(EntityTypeProvider.nameETTwoKeyNav).setCollection(true)
+                      new CsdlReturnType().setType(EntityTypeProvider.nameETTwoKeyNav).setCollection(true)
                           .setNullable(false)),
 
-              new Function()
+              new CsdlFunction()
                   .setName("BFCESTwoKeyNavRTESTwoKeyNav")
                   .setBound(true)
                   .setParameters(
                       Arrays.asList(
-                          new Parameter().setName("BindingParam").setType(EntityTypeProvider.nameETTwoKeyNav)
+                          new CsdlParameter().setName("BindingParam").setType(EntityTypeProvider.nameETTwoKeyNav)
                               .setCollection(true).setNullable(false),
-                          new Parameter().setName("ParameterString").setType(PropertyProvider.nameString)
+                          new CsdlParameter().setName("ParameterString").setType(PropertyProvider.nameString)
                               .setCollection(false).setNullable(false)))
                   .setComposable(true)
                   .setReturnType(
-                      new ReturnType().setType(EntityTypeProvider.nameETTwoKeyNav).setCollection(true)
+                      new CsdlReturnType().setType(EntityTypeProvider.nameETTwoKeyNav).setCollection(true)
                           .setNullable(false)),
-              new Function()
+              new CsdlFunction()
                   .setName("BFCESTwoKeyNavRTESTwoKeyNav")
                   .setBound(true)
                   .setParameters(
                       Arrays.asList(
-                          new Parameter().setName("BindingParam").setType(EntityTypeProvider.nameETKeyNav)
+                          new CsdlParameter().setName("BindingParam").setType(EntityTypeProvider.nameETKeyNav)
                               .setCollection(true).setNullable(false)))
                   .setComposable(true)
                   .setReturnType(
-                      new ReturnType().setType(EntityTypeProvider.nameETTwoKeyNav).setCollection(true)
+                      new CsdlReturnType().setType(EntityTypeProvider.nameETTwoKeyNav).setCollection(true)
                           .setNullable(false))
-//              new Function()
+          //              new Function()
 //                  .setName("BFCESTwoKeyNavRTESTwoKeyNav")
 //                  .setBound(true)
 //                  .setParameters(
@@ -514,418 +542,440 @@ public class FunctionProvider {
 
     } else if (functionName.equals(nameBFCStringRTESTwoKeyNav)) {
       return Arrays.asList(
-          new Function().setName("BFCStringRTESTwoKeyNav")
+          new CsdlFunction().setName("BFCStringRTESTwoKeyNav")
               .setBound(true)
               .setParameters(Arrays.asList(
-                  new Parameter().setName("BindingParam").setType(PropertyProvider.nameString).setNullable(false)))
+                  new CsdlParameter().setName("BindingParam").setType(PropertyProvider.nameString).setNullable(false)))
               .setComposable(true)
               .setReturnType(
-                  new ReturnType().setType(EntityTypeProvider.nameETTwoKeyNav).setCollection(true).setNullable(false))
+                  new CsdlReturnType().setType(EntityTypeProvider.nameETTwoKeyNav).setCollection(true).setNullable(
+                      false))
           );
 
     } else if (functionName.equals(nameBFCETBaseTwoKeyNavRTETTwoKeyNav)) {
       return Arrays.asList(
-          new Function()
+          new CsdlFunction()
               .setName("BFCETBaseTwoKeyNavRTETTwoKeyNav")
               .setBound(true)
               .setParameters(Arrays.asList(
-                  new Parameter().setName("BindingParam").setType(EntityTypeProvider.nameETBaseTwoKeyNav)
+                  new CsdlParameter().setName("BindingParam").setType(EntityTypeProvider.nameETBaseTwoKeyNav)
                       .setNullable(false)))
               .setComposable(true)
               .setReturnType(
-                  new ReturnType().setType(EntityTypeProvider.nameETTwoKeyNav).setNullable(false)
+                  new CsdlReturnType().setType(EntityTypeProvider.nameETTwoKeyNav).setNullable(false)
               )
           );
 
     } else if (functionName.equals(nameBFCESBaseTwoKeyNavRTESBaseTwoKey)) {
       return Arrays.asList(
-          new Function()
+          new CsdlFunction()
               .setName("BFCESBaseTwoKeyNavRTESBaseTwoKey")
               .setBound(true)
               .setParameters(Arrays.asList(
-                  new Parameter().setName("BindingParam").setType(EntityTypeProvider.nameETBaseTwoKeyNav)
+                  new CsdlParameter().setName("BindingParam").setType(EntityTypeProvider.nameETBaseTwoKeyNav)
                       .setCollection(true).setNullable(false)))
               .setComposable(true)
               .setReturnType(
-                  new ReturnType().setType(EntityTypeProvider.nameETBaseTwoKeyNav).setCollection(true)
+                  new CsdlReturnType().setType(EntityTypeProvider.nameETBaseTwoKeyNav).setCollection(true)
                       .setNullable(false))
           );
 
     } else if (functionName.equals(nameBFCESAllPrimRTCTAllPrim)) {
       return Arrays.asList(
-          new Function()
+          new CsdlFunction()
               .setName("BFCESAllPrimRTCTAllPrim")
               .setBound(true)
               .setParameters(
                   Arrays.asList(
-                      new Parameter().setName("BindingParam").setType(EntityTypeProvider.nameETAllPrim)
+                      new CsdlParameter().setName("BindingParam").setType(EntityTypeProvider.nameETAllPrim)
                           .setCollection(true).setNullable(false)))
               .setComposable(true)
               .setReturnType(
-                  new ReturnType().setType(ComplexTypeProvider.nameCTAllPrim).setNullable(false))
+                  new CsdlReturnType().setType(ComplexTypeProvider.nameCTAllPrim).setNullable(false))
           );
 
     } else if (functionName.equals(nameBFCESTwoKeyNavRTCTTwoPrim)) {
       return Arrays.asList(
-          new Function()
+          new CsdlFunction()
               .setName("BFCESTwoKeyNavRTCTTwoPrim")
               .setBound(true)
               .setParameters(
                   Arrays.asList(
-                      new Parameter().setName("BindingParam").setType(EntityTypeProvider.nameETTwoKeyNav)
+                      new CsdlParameter().setName("BindingParam").setType(EntityTypeProvider.nameETTwoKeyNav)
                           .setCollection(true).setNullable(false)))
               .setComposable(true)
               .setReturnType(
-                  new ReturnType().setType(ComplexTypeProvider.nameCTTwoPrim).setNullable(false))
+                  new CsdlReturnType().setType(ComplexTypeProvider.nameCTTwoPrim).setNullable(false))
           );
 
     } else if (functionName.equals(nameBFCESTwoKeyNavRTCollCTTwoPrim)) {
       return Arrays.asList(
-          new Function()
+          new CsdlFunction()
               .setName("BFCESTwoKeyNavRTCollCTTwoPrim")
               .setBound(true)
               .setParameters(
                   Arrays.asList(
-                      new Parameter().setName("BindingParam").setType(EntityTypeProvider.nameETTwoKeyNav)
+                      new CsdlParameter().setName("BindingParam").setType(EntityTypeProvider.nameETTwoKeyNav)
                           .setCollection(true).setNullable(false)))
               .setComposable(true)
               .setReturnType(
-                  new ReturnType().setType(ComplexTypeProvider.nameCTTwoPrim).setCollection(true).setNullable(false))
+                  new CsdlReturnType().setType(ComplexTypeProvider.nameCTTwoPrim).setCollection(true)
+                      .setNullable(false))
           );
 
     } else if (functionName.equals(nameBFCESTwoKeyNavRTString)) {
       return Arrays.asList(
-          new Function()
+          new CsdlFunction()
               .setName("BFCESTwoKeyNavRTString")
               .setBound(true)
               .setParameters(
                   Arrays.asList(
-                      new Parameter().setName("BindingParam").setType(EntityTypeProvider.nameETTwoKeyNav)
+                      new CsdlParameter().setName("BindingParam").setType(EntityTypeProvider.nameETTwoKeyNav)
                           .setCollection(true).setNullable(false)))
               .setComposable(true)
               .setReturnType(
-                  new ReturnType().setType(PropertyProvider.nameString).setNullable(false))
+                  new CsdlReturnType().setType(PropertyProvider.nameString).setNullable(false))
           );
 
     } else if (functionName.equals(nameBFCESTwoKeyNavRTCollString)) {
       return Arrays.asList(
-          new Function()
+          new CsdlFunction()
               .setName("BFCESTwoKeyNavRTCollString")
               .setBound(true)
               .setParameters(
                   Arrays.asList(
-                      new Parameter().setName("BindingParam").setType(EntityTypeProvider.nameETTwoKeyNav)
+                      new CsdlParameter().setName("BindingParam").setType(EntityTypeProvider.nameETTwoKeyNav)
                           .setCollection(true).setNullable(false)))
               .setComposable(true)
               .setReturnType(
-                  new ReturnType().setType(PropertyProvider.nameString).setCollection(true).setNullable(false))
+                  new CsdlReturnType().setType(PropertyProvider.nameString).setCollection(true).setNullable(false))
           );
 
     } else if (functionName.equals(nameBFCETTwoKeyNavRTESTwoKeyNav)) {
       return Arrays.asList(
-          new Function()
+          new CsdlFunction()
               .setName("BFCETTwoKeyNavRTESTwoKeyNav")
               .setEntitySetPath("BindingParam/NavPropertyETTwoKeyNavOne")
               .setBound(true)
               .setParameters(Arrays.asList(
-                  new Parameter().setName("BindingParam").setType(EntityTypeProvider.nameETTwoKeyNav)
+                  new CsdlParameter().setName("BindingParam").setType(EntityTypeProvider.nameETTwoKeyNav)
                       .setNullable(false)))
               .setComposable(true)
               .setReturnType(
-                  new ReturnType().setType(EntityTypeProvider.nameETTwoKeyNav).setCollection(true).setNullable(false))
+                  new CsdlReturnType().setType(EntityTypeProvider.nameETTwoKeyNav).setCollection(true).setNullable(
+                      false))
           );
 
     } else if (functionName.equals(nameBFCETBaseTwoKeyNavRTESTwoKeyNav)) {
       return Arrays.asList(
-          new Function()
+          new CsdlFunction()
               .setName("BFCETBaseTwoKeyNavRTESTwoKeyNav")
               .setBound(true)
               .setParameters(
                   Arrays.asList(
-                      new Parameter().setName("BindingParam").setType(EntityTypeProvider.nameETBaseTwoKeyNav)
+                      new CsdlParameter().setName("BindingParam").setType(EntityTypeProvider.nameETBaseTwoKeyNav)
                           .setNullable(false)))
               .setComposable(true)
               .setReturnType(
-                  new ReturnType().setType(EntityTypeProvider.nameETTwoKeyNav).setCollection(true).setNullable(false))
+                  new CsdlReturnType().setType(EntityTypeProvider.nameETTwoKeyNav).setCollection(true).setNullable(
+                      false))
           );
 
     } else if (functionName.equals(nameBFCSINavRTESTwoKeyNav)) {
       return Arrays.asList(
-          new Function()
+          new CsdlFunction()
               .setName("BFCSINavRTESTwoKeyNav")
               .setBound(true)
               .setParameters(
                   Arrays.asList(
-                      new Parameter().setName("BindingParam").setType(EntityTypeProvider.nameETTwoKeyNav).setNullable(
-                          false)))
+                      new CsdlParameter().setName("BindingParam").setType(EntityTypeProvider.nameETTwoKeyNav)
+                          .setNullable(
+                              false)))
               .setComposable(true)
               .setReturnType(
-                  new ReturnType().setType(EntityTypeProvider.nameETTwoKeyNav).setCollection(true).setNullable(false))
+                  new CsdlReturnType().setType(EntityTypeProvider.nameETTwoKeyNav).setCollection(true).setNullable(
+                      false))
           );
 
     } else if (functionName.equals(nameBFCETBaseTwoKeyNavRTESBaseTwoKey)) {
       return Arrays.asList(
-          new Function()
+          new CsdlFunction()
               .setName("BFCETBaseTwoKeyNavRTESBaseTwoKey")
               .setBound(true)
               .setParameters(
                   Arrays.asList(
-                      new Parameter().setName("BindingParam").setType(EntityTypeProvider.nameETBaseTwoKeyNav)
+                      new CsdlParameter().setName("BindingParam").setType(EntityTypeProvider.nameETBaseTwoKeyNav)
                           .setNullable(false)))
               .setComposable(true)
               .setReturnType(
-                  new ReturnType().setType(EntityTypeProvider.nameETBaseTwoKeyNav).setCollection(true).setNullable(
+                  new CsdlReturnType().setType(EntityTypeProvider.nameETBaseTwoKeyNav).setCollection(true).setNullable(
                       false))
           );
 
     } else if (functionName.equals(nameBFCCollStringRTESTwoKeyNav)) {
       return Arrays.asList(
-          new Function()
+          new CsdlFunction()
               .setName("BFCCollStringRTESTwoKeyNav")
               .setBound(true)
               .setParameters(
                   Arrays.asList(
-                      new Parameter().setName("BindingParam").setType(PropertyProvider.nameString).setCollection(true)
+                      new CsdlParameter().setName("BindingParam").setType(PropertyProvider.nameString).setCollection(
+                          true)
                           .setNullable(false)))
               .setComposable(true)
               .setReturnType(
-                  new ReturnType().setType(EntityTypeProvider.nameETTwoKeyNav).setCollection(true).setNullable(false))
+                  new CsdlReturnType().setType(EntityTypeProvider.nameETTwoKeyNav).setCollection(true).setNullable(
+                      false))
           );
 
     } else if (functionName.equals(nameBFCCTPrimCompRTESTwoKeyNav)) {
       return Arrays.asList(
-          new Function()
+          new CsdlFunction()
               .setName("BFCCTPrimCompRTESTwoKeyNav")
               .setBound(true)
               .setParameters(
                   Arrays.asList(
-                      new Parameter().setName("BindingParam").setType(ComplexTypeProvider.nameCTPrimComp).setNullable(
-                          false)))
+                      new CsdlParameter().setName("BindingParam").setType(ComplexTypeProvider.nameCTPrimComp)
+                          .setNullable(
+                              false)))
               .setComposable(true)
               .setReturnType(
-                  new ReturnType().setType(EntityTypeProvider.nameETTwoKeyNav).setCollection(true).setNullable(false))
+                  new CsdlReturnType().setType(EntityTypeProvider.nameETTwoKeyNav).setCollection(true).setNullable(
+                      false))
           );
 
     } else if (functionName.equals(nameBFCCTPrimCompRTESBaseTwoKeyNav)) {
       return Arrays.asList(
-          new Function()
+          new CsdlFunction()
               .setName("BFCCTPrimCompRTESBaseTwoKeyNav")
               .setBound(true)
               .setParameters(
                   Arrays.asList(
-                      new Parameter().setName("BindingParam").setType(ComplexTypeProvider.nameCTPrimComp).setNullable(
-                          false)))
+                      new CsdlParameter().setName("BindingParam").setType(ComplexTypeProvider.nameCTPrimComp)
+                          .setNullable(
+                              false)))
               .setComposable(true)
               .setReturnType(
-                  new ReturnType().setType(EntityTypeProvider.nameETBaseTwoKeyNav).setCollection(true).setNullable(
+                  new CsdlReturnType().setType(EntityTypeProvider.nameETBaseTwoKeyNav).setCollection(true).setNullable(
                       false))
           );
 
     } else if (functionName.equals(nameBFCCollCTPrimCompRTESAllPrim)) {
-      return Arrays.asList(
-          new Function()
+      return Arrays
+          .asList(
+          new CsdlFunction()
               .setName("BFCCollCTPrimCompRTESAllPrim")
               .setBound(true)
               .setParameters(
                   Arrays.asList(
-                      new Parameter().setName("BindingParam").setType(ComplexTypeProvider.nameCTPrimComp)
+                      new CsdlParameter().setName("BindingParam").setType(ComplexTypeProvider.nameCTPrimComp)
                           .setCollection(true).setNullable(false)))
               .setComposable(true)
               .setReturnType(
-                  new ReturnType().setType(EntityTypeProvider.nameETAllPrim).setCollection(true).setNullable(false))
+                  new CsdlReturnType().setType(EntityTypeProvider.nameETAllPrim).setCollection(true).setNullable(false))
           );
 
     } else if (functionName.equals(nameBFCESTwoKeyNavRTTwoKeyNav)) {
       return Arrays.asList(
-          new Function()
+          new CsdlFunction()
               .setName("BFCESTwoKeyNavRTTwoKeyNav")
               .setBound(true)
               .setParameters(
                   Arrays.asList(
-                      new Parameter().setName("BindingParam").setType(EntityTypeProvider.nameETTwoKeyNav)
+                      new CsdlParameter().setName("BindingParam").setType(EntityTypeProvider.nameETTwoKeyNav)
                           .setCollection(true).setNullable(false)))
               .setComposable(true)
               .setReturnType(
-                  new ReturnType().setType(EntityTypeProvider.nameETTwoKeyNav).setNullable(false))
+                  new CsdlReturnType().setType(EntityTypeProvider.nameETTwoKeyNav).setNullable(false))
           );
 
     } else if (functionName.equals(nameBFCESKeyNavRTETKeyNav)) {
       return Arrays
           .asList(
-          new Function()
+          new CsdlFunction()
               .setName("BFCESKeyNavRTETKeyNav")
               .setBound(true)
               .setParameters(
                   Arrays.asList(
-                      new Parameter().setName("BindingParam").setType(EntityTypeProvider.nameETKeyNav).setCollection(
-                          true).setNullable(false)))
+                      new CsdlParameter().setName("BindingParam").setType(EntityTypeProvider.nameETKeyNav)
+                          .setCollection(
+                              true).setNullable(false)))
               .setComposable(true)
               .setReturnType(
-                  new ReturnType().setType(EntityTypeProvider.nameETKeyNav).setNullable(false))
+                  new CsdlReturnType().setType(EntityTypeProvider.nameETKeyNav).setNullable(false))
           );
 
     } else if (functionName.equals(nameBFCETKeyNavRTETKeyNav)) {
       return Arrays.asList(
-          new Function()
+          new CsdlFunction()
               .setName("BFCETKeyNavRTETKeyNav")
               .setBound(true)
-              .setParameters(Arrays.asList(
-                  new Parameter().setName("BindingParam").setType(EntityTypeProvider.nameETKeyNav).setNullable(false)))
+              .setParameters(
+                  Arrays.asList(
+                      new CsdlParameter().setName("BindingParam").setType(EntityTypeProvider.nameETKeyNav).setNullable(
+                          false)))
               .setComposable(true)
               .setEntitySetPath("BindingParam/NavPropertyETKeyNavOne")
               .setReturnType(
-                  new ReturnType().setType(EntityTypeProvider.nameETKeyNav).setNullable(false))
+                  new CsdlReturnType().setType(EntityTypeProvider.nameETKeyNav).setNullable(false))
           );
     } else if (functionName.equals(nameBFESTwoKeyNavRTESTwoKeyNav)) {
       return Arrays.asList(
-          new Function()
+          new CsdlFunction()
               .setName("BFESTwoKeyNavRTESTwoKeyNav")
               .setBound(true)
               .setParameters(
                   Arrays.asList(
-                      new Parameter().setName("BindingParam").setType(EntityTypeProvider.nameETTwoKeyNav)
+                      new CsdlParameter().setName("BindingParam").setType(EntityTypeProvider.nameETTwoKeyNav)
                           .setCollection(true).setNullable(false)))
               .setComposable(true)
               .setReturnType(
-                  new ReturnType().setType(EntityTypeProvider.nameETTwoKeyNav).setCollection(true).setNullable(false))
+                  new CsdlReturnType().setType(EntityTypeProvider.nameETTwoKeyNav).setCollection(true).setNullable(
+                      false))
 
           );
-    } else if(functionName.equals(nameBFCESKeyNavRTESTwoKeyNav)) {
+    } else if (functionName.equals(nameBFCESKeyNavRTESTwoKeyNav)) {
       return Arrays.asList(
-            new Function()
+          new CsdlFunction()
               .setName("BFCESKeyNavRTESTwoKeyNav")
               .setEntitySetPath("BindingParam/NavPropertyETTwoKeyNavMany")
               .setBound(true)
               .setComposable(true)
               .setParameters(Arrays.asList(
-                  new Parameter().setName("BindingParam")
-                                 .setNullable(false)
-                                 .setType(EntityTypeProvider.nameETKeyNav)
-                                 .setCollection(true),
-                  new Parameter().setName("ParameterString")
-                                 .setNullable(false)
-                                 .setType(PropertyProvider.nameString)))
-             .setReturnType(new ReturnType()
-                               .setNullable(false)
-                               .setType(EntityTypeProvider.nameETTwoKeyNav)
-                               .setCollection(true))
-          );
-      
+                  new CsdlParameter().setName("BindingParam")
+                      .setNullable(false)
+                      .setType(EntityTypeProvider.nameETKeyNav)
+                      .setCollection(true),
+                  new CsdlParameter().setName("ParameterString")
+                      .setNullable(false)
+                      .setType(PropertyProvider.nameString)))
+              .setReturnType(new CsdlReturnType()
+                  .setNullable(false)
+                  .setType(EntityTypeProvider.nameETTwoKeyNav)
+                  .setCollection(true))
+          );
+
     } else if (functionName.equals(nameBFCETTwoKeyNavRTETTwoKeyNav)) {
       return Arrays.asList(
-          new Function()
+          new CsdlFunction()
               .setName("BFCETTwoKeyNavRTETTwoKeyNav")
               .setBound(true)
               .setParameters(
                   Arrays.asList(
-                      new Parameter().setName("BindingParam").setType(EntityTypeProvider.nameETTwoKeyNav).setNullable(
-                          false)))
+                      new CsdlParameter().setName("BindingParam").setType(EntityTypeProvider.nameETTwoKeyNav)
+                          .setNullable(
+                              false)))
               .setComposable(true)
               .setReturnType(
-                  new ReturnType().setType(EntityTypeProvider.nameETTwoKeyNav).setNullable(false))
+                  new CsdlReturnType().setType(EntityTypeProvider.nameETTwoKeyNav).setNullable(false))
           );
 
     } else if (functionName.equals(nameBFCETTwoKeyNavRTCTTwoPrim)) {
       return Arrays.asList(
-          new Function()
+          new CsdlFunction()
               .setName("BFCETTwoKeyNavRTCTTwoPrim")
               .setBound(true)
               .setParameters(
                   Arrays.asList(
-                      new Parameter().setName("BindingParam").setType(EntityTypeProvider.nameETTwoKeyNav).setNullable(
-                          false)))
+                      new CsdlParameter().setName("BindingParam").setType(EntityTypeProvider.nameETTwoKeyNav)
+                          .setNullable(
+                              false)))
               .setComposable(true)
               .setReturnType(
-                  new ReturnType().setType(ComplexTypeProvider.nameCTTwoPrim).setNullable(false))
+                  new CsdlReturnType().setType(ComplexTypeProvider.nameCTTwoPrim).setNullable(false))
           );
     } else if (functionName.equals(nameBFCESTwoKeyNavRTCTNavFiveProp)) {
       return Arrays.asList(
-          new Function()
+          new CsdlFunction()
               .setName("BFCESTwoKeyNavRTCTNavFiveProp")
               .setBound(true)
               .setParameters(
                   Arrays.asList(
-                      new Parameter().setName("BindingParam").setType(EntityTypeProvider.nameETTwoKeyNav)
+                      new CsdlParameter().setName("BindingParam").setType(EntityTypeProvider.nameETTwoKeyNav)
                           .setCollection(true).setNullable(false)))
               .setComposable(true)
               .setReturnType(
-                  new ReturnType().setType(ComplexTypeProvider.nameCTNavFiveProp).setNullable(false))
+                  new CsdlReturnType().setType(ComplexTypeProvider.nameCTNavFiveProp).setNullable(false))
           );
     } else if (functionName.equals(nameBFCESTwoKeyNavRTCollCTNavFiveProp)) {
       return Arrays.asList(
-          new Function()
+          new CsdlFunction()
               .setName("BFCESTwoKeyNavRTCollCTNavFiveProp")
               .setBound(true)
               .setParameters(
                   Arrays.asList(
-                      new Parameter().setName("BindingParam").setType(EntityTypeProvider.nameETTwoKeyNav)
+                      new CsdlParameter().setName("BindingParam").setType(EntityTypeProvider.nameETTwoKeyNav)
                           .setCollection(true).setNullable(false)))
               .setComposable(true)
               .setReturnType(
-                  new ReturnType().setType(ComplexTypeProvider.nameCTNavFiveProp).setCollection(true)
+                  new CsdlReturnType().setType(ComplexTypeProvider.nameCTNavFiveProp).setCollection(true)
                       .setNullable(false))
           );
     } else if (functionName.equals(nameBFCESTwoKeyNavRTStringParam)) {
       return Arrays.asList(
-          new Function()
+          new CsdlFunction()
               .setName("BFCESTwoKeyNavRTStringParam")
               .setBound(true)
               .setParameters(
                   Arrays.asList(
-                      new Parameter().setName("BindingParam").setType(EntityTypeProvider.nameETTwoKeyNav)
+                      new CsdlParameter().setName("BindingParam").setType(EntityTypeProvider.nameETTwoKeyNav)
                           .setCollection(true).setNullable(false),
-                      new Parameter().setName("ParameterComp").setType(ComplexTypeProvider.nameCTTwoPrim)
+                      new CsdlParameter().setName("ParameterComp").setType(ComplexTypeProvider.nameCTTwoPrim)
                           .setNullable(false)))
               .setComposable(true)
               .setReturnType(
-                  new ReturnType().setType(PropertyProvider.nameString).setNullable(false))
+                  new CsdlReturnType().setType(PropertyProvider.nameString).setNullable(false))
           );
 
     } else if (functionName.equals(nameBFCESKeyNavRTETKeyNavParam)) {
       return Arrays.asList(
-          new Function()
+          new CsdlFunction()
               .setName("BFCESKeyNavRTETKeyNavParam")
               .setBound(true)
               .setParameters(
                   Arrays.asList(
-                      new Parameter().setName("BindingParam").setType(EntityTypeProvider.nameETKeyNav).setCollection(
-                          true).setNullable(false),
-                      new Parameter().setName("ParameterString").setType(PropertyProvider.nameString)
+                      new CsdlParameter().setName("BindingParam").setType(EntityTypeProvider.nameETKeyNav)
+                          .setCollection(
+                              true).setNullable(false),
+                      new CsdlParameter().setName("ParameterString").setType(PropertyProvider.nameString)
                           .setNullable(false)))
               .setComposable(true)
               .setReturnType(
-                  new ReturnType().setType(EntityTypeProvider.nameETKeyNav).setNullable(false))
+                  new CsdlReturnType().setType(EntityTypeProvider.nameETKeyNav).setNullable(false))
           );
     } else if (functionName.equals(nameBFCCTPrimCompRTETTwoKeyNavParam)) {
       return Arrays.asList(
-          new Function()
+          new CsdlFunction()
               .setName("BFCCTPrimCompRTETTwoKeyNavParam")
               .setBound(true)
               .setParameters(
                   Arrays.asList(
-                      new Parameter().setName("BindingParam").setType(ComplexTypeProvider.nameCTPrimComp).setNullable(
-                          false),
-                      new Parameter().setName("ParameterString").setType(PropertyProvider.nameString)
+                      new CsdlParameter().setName("BindingParam").setType(ComplexTypeProvider.nameCTPrimComp)
+                          .setNullable(
+                              false),
+                      new CsdlParameter().setName("ParameterString").setType(PropertyProvider.nameString)
                           .setNullable(false)))
               .setComposable(true)
-              .setReturnType(new ReturnType()
+              .setReturnType(new CsdlReturnType()
                   .setType(EntityTypeProvider.nameETTwoKeyNav).setNullable(false)
               )
           );
     } else if (functionName.equals(nameBFCCTPrimCompRTESTwoKeyNavParam)) {
       return Arrays.asList(
-          new Function()
+          new CsdlFunction()
               .setName("BFCCTPrimCompRTESTwoKeyNavParam")
               .setBound(true)
               .setParameters(
                   Arrays.asList(
-                      new Parameter().setName("BindingParam").setType(ComplexTypeProvider.nameCTPrimComp).setNullable(
-                          false),
-                      new Parameter().setName("ParameterString").setType(PropertyProvider.nameString)
+                      new CsdlParameter().setName("BindingParam").setType(ComplexTypeProvider.nameCTPrimComp)
+                          .setNullable(
+                              false),
+                      new CsdlParameter().setName("ParameterString").setType(PropertyProvider.nameString)
                           .setNullable(false)))
               .setComposable(true)
               .setReturnType(
-                  new ReturnType().setType(EntityTypeProvider.nameETTwoKeyNav).setCollection(true).setNullable(false))
+                  new CsdlReturnType().setType(EntityTypeProvider.nameETTwoKeyNav).setCollection(true).setNullable(
+                      false))
           );
     }
 


[47/50] [abbrv] olingo-odata4 git commit: [OLINGO-564] first step for common -> client extraction

Posted by mi...@apache.org.
http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/17152920/lib/client-api/src/main/java/org/apache/olingo/client/api/domain/ClientEntitySet.java
----------------------------------------------------------------------
diff --git a/lib/client-api/src/main/java/org/apache/olingo/client/api/domain/ClientEntitySet.java b/lib/client-api/src/main/java/org/apache/olingo/client/api/domain/ClientEntitySet.java
new file mode 100644
index 0000000..6b5f1f1
--- /dev/null
+++ b/lib/client-api/src/main/java/org/apache/olingo/client/api/domain/ClientEntitySet.java
@@ -0,0 +1,71 @@
+/*
+ * 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.client.api.domain;
+
+import java.net.URI;
+import java.util.List;
+
+/**
+ * OData entity collection. If pagination was used to get this instance, forward page navigation URI will be available.
+ */
+public interface ClientEntitySet extends ClientInvokeResult, ClientAnnotatable {
+
+  /**
+   * Gets next page link.
+   * 
+   * @return next page link; null value if single page or last page reached.
+   */
+  URI getNext();
+
+  /**
+   * Gets contained entities.
+   * 
+   * @return entity set's entities.
+   */
+  List<ClientEntity> getEntities();
+
+  /**
+   * Gets in-line count.
+   *
+   * @return in-line count value.
+   */
+  Integer getCount();
+
+  /**
+   * Sets in-line count.
+   *
+   * @param count in-line count value.
+   */
+  void setCount(final int count);
+
+
+  /**
+   * Gets delta link if exists.
+   *
+   * @return delta link if exists; null otherwise.
+   */
+  URI getDeltaLink();
+
+  /**
+   * Sets delta link.
+   *
+   * @param deltaLink delta link.
+   */
+  void setDeltaLink(URI deltaLink);
+}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/17152920/lib/client-api/src/main/java/org/apache/olingo/client/api/domain/ClientEnumValue.java
----------------------------------------------------------------------
diff --git a/lib/client-api/src/main/java/org/apache/olingo/client/api/domain/ClientEnumValue.java b/lib/client-api/src/main/java/org/apache/olingo/client/api/domain/ClientEnumValue.java
new file mode 100644
index 0000000..c1c5937
--- /dev/null
+++ b/lib/client-api/src/main/java/org/apache/olingo/client/api/domain/ClientEnumValue.java
@@ -0,0 +1,27 @@
+/*
+ * 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.client.api.domain;
+
+public interface ClientEnumValue extends ClientValue {
+
+  String getValue();
+
+  @Override
+  String toString();
+}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/17152920/lib/client-api/src/main/java/org/apache/olingo/client/api/domain/ClientInlineEntity.java
----------------------------------------------------------------------
diff --git a/lib/client-api/src/main/java/org/apache/olingo/client/api/domain/ClientInlineEntity.java b/lib/client-api/src/main/java/org/apache/olingo/client/api/domain/ClientInlineEntity.java
new file mode 100644
index 0000000..b5ff829
--- /dev/null
+++ b/lib/client-api/src/main/java/org/apache/olingo/client/api/domain/ClientInlineEntity.java
@@ -0,0 +1,68 @@
+/*
+ * 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.client.api.domain;
+
+import java.net.URI;
+
+/**
+ * OData in-line entity.
+ */
+public class ClientInlineEntity extends ClientLink {
+
+  private final ClientEntity entity;
+
+  /**
+   * Constructor.
+   * 
+   * @param uri edit link.
+   * @param type type.
+   * @param title title.
+   * @param entity entity.
+   */
+  public ClientInlineEntity(final URI uri, final ClientLinkType type, final String title, final ClientEntity entity) {
+
+    super(uri, type, title);
+    this.entity = entity;
+  }
+
+  /**
+   * Constructor.
+   * 
+   * @param baseURI base URI.
+   * @param href href.
+   * @param type type.
+   * @param title title.
+   * @param entity entity.
+   */
+  public ClientInlineEntity(final URI baseURI, final String href, final ClientLinkType type, final String title,
+                            final ClientEntity entity) {
+
+    super(baseURI, href, type, title);
+    this.entity = entity;
+  }
+
+  /**
+   * Gets wrapped entity.
+   * 
+   * @return wrapped entity.
+   */
+  public ClientEntity getEntity() {
+    return entity;
+  }
+}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/17152920/lib/client-api/src/main/java/org/apache/olingo/client/api/domain/ClientInlineEntitySet.java
----------------------------------------------------------------------
diff --git a/lib/client-api/src/main/java/org/apache/olingo/client/api/domain/ClientInlineEntitySet.java b/lib/client-api/src/main/java/org/apache/olingo/client/api/domain/ClientInlineEntitySet.java
new file mode 100644
index 0000000..28c4ee6
--- /dev/null
+++ b/lib/client-api/src/main/java/org/apache/olingo/client/api/domain/ClientInlineEntitySet.java
@@ -0,0 +1,69 @@
+/*
+ * 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.client.api.domain;
+
+import java.net.URI;
+
+/**
+ * OData in-line entity set.
+ */
+public class ClientInlineEntitySet extends ClientLink {
+
+  private ClientEntitySet entitySet;
+
+  /**
+   * Constructor.
+   * 
+   * @param uri edit link.
+   * @param type type.
+   * @param title title.
+   * @param entitySet entity set.
+   */
+  public ClientInlineEntitySet(final URI uri, final ClientLinkType type,
+                               final String title, final ClientEntitySet entitySet) {
+
+    super(uri, type, title);
+    this.entitySet = entitySet;
+  }
+
+  /**
+   * Constructor.
+   * 
+   * @param baseURI base URI.
+   * @param href href.
+   * @param type type.
+   * @param title title.
+   * @param entitySet entity set.
+   */
+  public ClientInlineEntitySet(final URI baseURI, final String href,
+                               final ClientLinkType type, final String title, final ClientEntitySet entitySet) {
+
+    super(baseURI, href, type, title);
+    this.entitySet = entitySet;
+  }
+
+  /**
+   * Gets wrapped entity set.
+   * 
+   * @return wrapped entity set.
+   */
+  public ClientEntitySet getEntitySet() {
+    return entitySet;
+  }
+}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/17152920/lib/client-api/src/main/java/org/apache/olingo/client/api/domain/ClientInvokeResult.java
----------------------------------------------------------------------
diff --git a/lib/client-api/src/main/java/org/apache/olingo/client/api/domain/ClientInvokeResult.java b/lib/client-api/src/main/java/org/apache/olingo/client/api/domain/ClientInvokeResult.java
new file mode 100644
index 0000000..294aa1c
--- /dev/null
+++ b/lib/client-api/src/main/java/org/apache/olingo/client/api/domain/ClientInvokeResult.java
@@ -0,0 +1,30 @@
+/*
+ * 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.client.api.domain;
+
+/**
+ * Marker interface for any OData domain object that can be returned by an operation invocation.
+ * 
+ * @see ClientEntitySet
+ * @see ClientEntity
+ * @see ClientProperty
+ */
+public interface ClientInvokeResult {
+//No additional methods needed for now.
+}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/17152920/lib/client-api/src/main/java/org/apache/olingo/client/api/domain/ClientItem.java
----------------------------------------------------------------------
diff --git a/lib/client-api/src/main/java/org/apache/olingo/client/api/domain/ClientItem.java b/lib/client-api/src/main/java/org/apache/olingo/client/api/domain/ClientItem.java
new file mode 100644
index 0000000..32dcdce
--- /dev/null
+++ b/lib/client-api/src/main/java/org/apache/olingo/client/api/domain/ClientItem.java
@@ -0,0 +1,96 @@
+/*
+ * 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.client.api.domain;
+
+import java.net.URI;
+
+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.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+/**
+ * Abstract representation of OData entities and links.
+ */
+public abstract class ClientItem {
+
+  /**
+   * Logger.
+   */
+  protected static final Logger LOG = LoggerFactory.getLogger(ClientItem.class);
+
+  /**
+   * OData entity name/type.
+   */
+  private final String name;
+
+  /**
+   * OData item self link.
+   */
+  protected URI link;
+
+  /**
+   * Constructor.
+   * 
+   * @param name ODataItem name (it's entity type for {@link ClientEntity}).
+   */
+  public ClientItem(final String name) {
+    this.name = name;
+  }
+
+  /**
+   * @return ODataItem name (it's entity type for {@link ClientEntity}).
+   */
+  public String getName() {
+    return name;
+  }
+
+  /**
+   * @return ODataItem link (it's edit link for {@link ClientEntity}).
+   */
+  public URI getLink() {
+    return link;
+  }
+
+  /**
+   * Sets ODataItem link (it's edit link for {@link ClientEntity}).
+   * 
+   * @param link link.
+   */
+  public void setLink(final URI link) {
+    this.link = link;
+  }
+
+  @Override
+  public boolean equals(final Object obj) {
+    return EqualsBuilder.reflectionEquals(this, obj);
+  }
+
+  @Override
+  public int hashCode() {
+    return HashCodeBuilder.reflectionHashCode(this);
+  }
+
+  @Override
+  public String toString() {
+    return ReflectionToStringBuilder.toString(this, ToStringStyle.MULTI_LINE_STYLE);
+  }
+}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/17152920/lib/client-api/src/main/java/org/apache/olingo/client/api/domain/ClientLink.java
----------------------------------------------------------------------
diff --git a/lib/client-api/src/main/java/org/apache/olingo/client/api/domain/ClientLink.java b/lib/client-api/src/main/java/org/apache/olingo/client/api/domain/ClientLink.java
new file mode 100644
index 0000000..d4d6d23
--- /dev/null
+++ b/lib/client-api/src/main/java/org/apache/olingo/client/api/domain/ClientLink.java
@@ -0,0 +1,187 @@
+/*
+ * 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.client.api.domain;
+
+import java.net.URI;
+import java.util.ArrayList;
+import java.util.List;
+
+import org.apache.olingo.commons.api.Constants;
+
+/**
+ * OData link.
+ */
+public class ClientLink extends ClientItem implements ClientAnnotatable {
+
+  public static class Builder {
+
+    protected URI uri;
+
+    protected ClientLinkType type;
+
+    protected String title;
+
+    public Builder setURI(final URI uri) {
+      this.uri = uri;
+      return this;
+    }
+
+    public Builder setURI(final URI baseURI, final String href) {
+      uri = getURI(baseURI, href);
+      return this;
+    }
+
+    public Builder setType(final ClientLinkType type) {
+      this.type = type;
+      return this;
+    }
+
+    public Builder setTitle(final String title) {
+      this.title = title;
+      return this;
+    }
+
+    public ClientLink build() {
+      return new ClientLink(uri, type, title);
+    }
+  }
+
+  /**
+   * Build URI starting from the given base and href.
+   * <br/>
+   * If href is absolute or base is null then base will be ignored.
+   * 
+   * @param base URI prefix.
+   * @param href URI suffix.
+   * @return built URI.
+   */
+  private static URI getURI(final URI base, final String href) {
+    if (href == null) {
+      throw new IllegalArgumentException("Null link provided");
+    }
+
+    URI uri = URI.create(href);
+
+    if (!uri.isAbsolute() && base != null) {
+      uri = URI.create(base.toASCIIString() + "/" + href);
+    }
+
+    return uri.normalize();
+  }
+
+  /**
+   * Link type.
+   */
+  protected final ClientLinkType type;
+
+  /**
+   * Link rel.
+   */
+  protected final String rel;
+
+  /**
+   * ETag for media edit links.
+   */
+  protected String mediaETag;
+
+  private final List<ClientAnnotation> annotations = new ArrayList<ClientAnnotation>();
+
+  /**
+   * Constructor.
+   * 
+   * @param uri URI.
+   * @param type type.
+   * @param title title.
+   */
+  public ClientLink(final URI uri, final ClientLinkType type, final String title) {
+    super(title);
+
+    link = uri;
+    this.type = type;
+
+    switch (this.type) {
+    case ASSOCIATION:
+      rel = Constants.NS_ASSOCIATION_LINK_REL + title;
+      break;
+
+    case ENTITY_NAVIGATION:
+    case ENTITY_SET_NAVIGATION:
+      rel = Constants.NS_NAVIGATION_LINK_REL + title;
+      break;
+
+    case MEDIA_EDIT:
+    default:
+      rel = Constants.NS_MEDIA_EDIT_LINK_REL + title;
+      break;
+    }
+  }
+
+  /**
+   * Constructor.
+   * 
+   * @param version OData service version.
+   * @param baseURI base URI.
+   * @param href href.
+   * @param type type.
+   * @param title title.
+   */
+  protected ClientLink(final URI baseURI, final String href, final ClientLinkType type, final String title) {
+
+    this(getURI(baseURI, href), type, title);
+  }
+
+  /**
+   * Gets link type.
+   * 
+   * @return link type;
+   */
+  public ClientLinkType getType() {
+    return type;
+  }
+
+  public ClientInlineEntity asInlineEntity() {
+    return (this instanceof ClientInlineEntity) ? (ClientInlineEntity) this : null;
+  }
+
+  public ClientInlineEntitySet asInlineEntitySet() {
+    return (this instanceof ClientInlineEntitySet) ? (ClientInlineEntitySet) this : null;
+  }
+
+  /**
+   * Gets link rel.
+   * 
+   * @return link rel
+   */
+  public String getRel() {
+    return rel;
+  }
+
+  /**
+   * Gets Media ETag.
+   * 
+   * @return media ETag
+   */
+  public String getMediaETag() {
+    return mediaETag;
+  }
+
+  public List<ClientAnnotation> getAnnotations() {
+    return annotations;
+  }
+}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/17152920/lib/client-api/src/main/java/org/apache/olingo/client/api/domain/ClientLinkType.java
----------------------------------------------------------------------
diff --git a/lib/client-api/src/main/java/org/apache/olingo/client/api/domain/ClientLinkType.java b/lib/client-api/src/main/java/org/apache/olingo/client/api/domain/ClientLinkType.java
new file mode 100644
index 0000000..e4b6a22
--- /dev/null
+++ b/lib/client-api/src/main/java/org/apache/olingo/client/api/domain/ClientLinkType.java
@@ -0,0 +1,105 @@
+/*
+ * 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.client.api.domain;
+
+import org.apache.commons.lang3.StringUtils;
+import org.apache.olingo.commons.api.Constants;
+import org.apache.olingo.commons.api.format.ContentType;
+
+/**
+ * OData link types.
+ */
+public enum ClientLinkType {
+
+  /**
+   * Entity navigation link.
+   */
+  ENTITY_NAVIGATION(ContentType.APPLICATION_ATOM_XML_ENTRY),
+  /**
+   * Entity set navigation link.
+   */
+  ENTITY_SET_NAVIGATION(ContentType.APPLICATION_ATOM_XML_FEED),
+  /**
+   * Association link.
+   */
+  ASSOCIATION(ContentType.APPLICATION_XML),
+  /**
+   * Media-edit link.
+   */
+  MEDIA_EDIT("*/*"),
+
+  /**
+   * Entity binding link.
+   */
+  ENTITY_BINDING(ContentType.APPLICATION_XML),
+
+  /**
+   * Entity collection binding link.
+   */
+  ENTITY_COLLECTION_BINDING(ContentType.APPLICATION_XML);
+
+  private String type;
+
+  private ClientLinkType(final String type) {
+    this.type = type;
+  }
+
+  private ClientLinkType(final ContentType contentType) {
+    this(contentType.toContentTypeString());
+  }
+
+  private ClientLinkType setType(final String type) {
+    this.type = type;
+    return this;
+  }
+
+  /**
+   * Gets
+   * <code>LinkType</code> instance from the given rel and type.
+   * 
+   * @param rel rel.
+   * @param type type.
+   * @return <code>ODataLinkType</code> object.
+   */
+  public static ClientLinkType fromString(final String rel, final String type) {
+    if (StringUtils.isNotBlank(rel) && rel.startsWith(Constants.NS_MEDIA_EDIT_LINK_REL)) {
+
+      return MEDIA_EDIT.setType(StringUtils.isBlank(type) ? "*/*" : type);
+    }
+
+    if (ClientLinkType.ENTITY_NAVIGATION.type.equals(type)) {
+      return ENTITY_NAVIGATION;
+    }
+
+    if (ClientLinkType.ENTITY_SET_NAVIGATION.type.equals(type)) {
+      return ENTITY_SET_NAVIGATION;
+    }
+
+    if (ClientLinkType.ASSOCIATION.type.equals(type)) {
+      return ASSOCIATION;
+    }
+
+    throw new IllegalArgumentException("Invalid link type: " + type);
+  }
+
+  @Override
+  public String toString() {
+    return type;
+  }
+}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/17152920/lib/client-api/src/main/java/org/apache/olingo/client/api/domain/ClientLinked.java
----------------------------------------------------------------------
diff --git a/lib/client-api/src/main/java/org/apache/olingo/client/api/domain/ClientLinked.java b/lib/client-api/src/main/java/org/apache/olingo/client/api/domain/ClientLinked.java
new file mode 100644
index 0000000..92fec05
--- /dev/null
+++ b/lib/client-api/src/main/java/org/apache/olingo/client/api/domain/ClientLinked.java
@@ -0,0 +1,70 @@
+/*
+ * 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.client.api.domain;
+
+import java.util.List;
+
+public interface ClientLinked {
+
+  /**
+   * Puts the given link into one of available lists, based on its type.
+   * 
+   * @param link to be added
+   * @return <tt>true</tt> if the given link was added in one of available lists
+   */
+  boolean addLink(ClientLink link);
+
+  /**
+   * Removes the given link from any list (association, navigation, edit-media).
+   * 
+   * @param link to be removed
+   * @return <tt>true</tt> if the given link was contained in one of available lists
+   */
+  boolean removeLink(ClientLink link);
+
+  /**
+   * Gets association link with given name, if available, otherwise <tt>null</tt>.
+   * 
+   * @param name candidate link name
+   * @return association link with given name, if available, otherwise <tt>null</tt>
+   */
+  ClientLink getAssociationLink(String name);
+
+  /**
+   * Returns all entity association links.
+   * 
+   * @return OData entity links.
+   */
+  List<ClientLink> getAssociationLinks();
+
+  /**
+   * Gets navigation link with given name, if available, otherwise <tt>null</tt>.
+   * 
+   * @param name candidate link name
+   * @return navigation link with given name, if available, otherwise <tt>null</tt>
+   */
+  ClientLink getNavigationLink(String name);
+
+  /**
+   * Returns all entity navigation links (including inline entities / entity sets).
+   * 
+   * @return OData entity links.
+   */
+  List<ClientLink> getNavigationLinks();
+}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/17152920/lib/client-api/src/main/java/org/apache/olingo/client/api/domain/ClientObjectFactory.java
----------------------------------------------------------------------
diff --git a/lib/client-api/src/main/java/org/apache/olingo/client/api/domain/ClientObjectFactory.java b/lib/client-api/src/main/java/org/apache/olingo/client/api/domain/ClientObjectFactory.java
new file mode 100644
index 0000000..5bf1e08
--- /dev/null
+++ b/lib/client-api/src/main/java/org/apache/olingo/client/api/domain/ClientObjectFactory.java
@@ -0,0 +1,168 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ * 
+ * http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.olingo.client.api.domain;
+
+import org.apache.olingo.commons.api.edm.FullQualifiedName;
+
+import java.net.URI;
+
+/**
+ * Entry point for generating OData domain objects.
+ */
+public interface ClientObjectFactory {
+
+  /**
+   * Instantiates a new entity set.
+   * 
+   * @return entity set.
+   */
+  ClientEntitySet newEntitySet();
+
+  /**
+   * Instantiates a new entity set.
+   * 
+   * @param next next link.
+   * @return entity set.
+   */
+  ClientEntitySet newEntitySet(URI next);
+
+  /**
+   * Instantiates a new entity.
+   * 
+   * @param typeName OData entity type name.
+   * @return entity.
+   */
+  ClientEntity newEntity(FullQualifiedName typeName);
+
+  /**
+   * Instantiates a new entity.
+   * 
+   * @param typeName OData entity type name.
+   * @param link self link.
+   * @return entity.
+   */
+  ClientEntity newEntity(FullQualifiedName typeName, URI link);
+
+  /**
+   * Instantiates a new entity set (for deep insert).
+   * 
+   * @param name name.
+   * @param entitySet entity set.
+   * @return in-line entity set.
+   */
+  ClientInlineEntitySet newDeepInsertEntitySet(String name, ClientEntitySet entitySet);
+
+  /**
+   * Instantiates a new entity (for deep insert).
+   * 
+   * @param name name.
+   * @param entity entity.
+   * @return in-line entity.
+   */
+  ClientInlineEntity newDeepInsertEntity(String name, ClientEntity entity);
+
+  /**
+   * Instantiates a new entity set navigation link.
+   * 
+   * @param name name.
+   * @param link link.
+   * @return entity set navigation link.
+   */
+  ClientLink newEntitySetNavigationLink(String name, URI link);
+
+  /**
+   * Instantiates a new singleton entity.
+   *
+   * @param typeName OData singleton entity type name.
+   * @return new singleton entity.
+   */
+  ClientSingleton newSingleton(FullQualifiedName typeName);
+
+  /**
+   * Instantiates a new entity navigation link.
+   *
+   * @param name name.
+   * @param link link.
+   * @return entity navigation link.
+   */
+  ClientLink newEntityNavigationLink(String name, URI link);
+
+  ClientLink newAssociationLink(String name, URI link);
+
+  ClientLink newMediaEditLink(String name, URI link);
+
+  ClientPrimitiveValue.Builder newPrimitiveValueBuilder();
+
+  ClientEnumValue newEnumValue(String typeName, String value);
+
+  ClientComplexValue newComplexValue(String typeName);
+
+  ClientCollectionValue<ClientValue> newCollectionValue(String typeName);
+
+  /**
+   * Instantiates a new primitive property.
+   * 
+   * @param name name.
+   * @param value primitive value.
+   * @return primitive property.
+   */
+  ClientProperty newPrimitiveProperty(String name, ClientPrimitiveValue value);
+
+  /**
+   * Instantiates a new complex property.
+   * 
+   * @param name name.
+   * @param value value.
+   * @return complex property.
+   */
+  ClientProperty newComplexProperty(String name, ClientComplexValue value);
+
+  /**
+   * Instantiates a new collection property.
+   * 
+   * @param name name.
+   * @param value value.
+   * @return collection property.
+   */
+  ClientProperty newCollectionProperty(String name, ClientCollectionValue<? extends ClientValue> value);
+
+  /**
+   * Instantiates a new enum property.
+   *
+   * @param name name.
+   * @param value value.
+   * @return new enum property.
+   */
+  ClientProperty newEnumProperty(String name, ClientEnumValue value);
+
+  /**
+   * Instantiates a new delta property.
+   *
+   * @return new delta property.
+   */
+  ClientDelta newDelta();
+
+  /**
+   * Instantiates a new delta property.
+   *
+   * @param next next link for delta property
+   * @return new delta property.
+   */
+  ClientDelta newDelta(URI next);
+}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/17152920/lib/client-api/src/main/java/org/apache/olingo/client/api/domain/ClientOperation.java
----------------------------------------------------------------------
diff --git a/lib/client-api/src/main/java/org/apache/olingo/client/api/domain/ClientOperation.java b/lib/client-api/src/main/java/org/apache/olingo/client/api/domain/ClientOperation.java
new file mode 100644
index 0000000..a746437
--- /dev/null
+++ b/lib/client-api/src/main/java/org/apache/olingo/client/api/domain/ClientOperation.java
@@ -0,0 +1,85 @@
+/*
+ * 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.client.api.domain;
+
+import java.net.URI;
+
+public class ClientOperation {
+
+  private String metadataAnchor;
+
+  private String title;
+
+  private URI target;
+
+  /**
+   * Gets metadata anchor.
+   * 
+   * @return metadata anchor.
+   */
+  public String getMetadataAnchor() {
+    return metadataAnchor;
+  }
+
+  /**
+   * Sets metadata anchor.
+   * 
+   * @param metadataAnchor metadata anchor.
+   */
+  public void setMetadataAnchor(final String metadataAnchor) {
+    this.metadataAnchor = metadataAnchor;
+  }
+
+  /**
+   * Gets title.
+   * 
+   * @return title.
+   */
+  public String getTitle() {
+    return title;
+  }
+
+  /**
+   * Sets title.
+   * 
+   * @param title title.
+   */
+  public void setTitle(final String title) {
+    this.title = title;
+  }
+
+  /**
+   * Gets target.
+   * 
+   * @return target.
+   */
+  public URI getTarget() {
+    return target;
+  }
+
+  /**
+   * Sets target.
+   * 
+   * @param target target.
+   */
+  public void setTarget(final URI target) {
+    this.target = target;
+  }
+
+}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/17152920/lib/client-api/src/main/java/org/apache/olingo/client/api/domain/ClientPrimitiveValue.java
----------------------------------------------------------------------
diff --git a/lib/client-api/src/main/java/org/apache/olingo/client/api/domain/ClientPrimitiveValue.java b/lib/client-api/src/main/java/org/apache/olingo/client/api/domain/ClientPrimitiveValue.java
new file mode 100644
index 0000000..350efdb
--- /dev/null
+++ b/lib/client-api/src/main/java/org/apache/olingo/client/api/domain/ClientPrimitiveValue.java
@@ -0,0 +1,88 @@
+/*
+ * 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.client.api.domain;
+
+import org.apache.olingo.commons.api.edm.EdmPrimitiveType;
+import org.apache.olingo.commons.api.edm.EdmPrimitiveTypeException;
+import org.apache.olingo.commons.api.edm.EdmPrimitiveTypeKind;
+import org.apache.olingo.commons.api.edm.EdmType;
+
+import java.util.UUID;
+
+public interface ClientPrimitiveValue extends ClientValue {
+
+  interface Builder {
+
+    Builder setType(EdmType type);
+
+    Builder setType(EdmPrimitiveTypeKind type);
+
+    Builder setValue(Object value);
+
+    ClientPrimitiveValue build();
+
+    ClientPrimitiveValue buildBoolean(Boolean value);
+
+    ClientPrimitiveValue buildInt16(Short value);
+
+    ClientPrimitiveValue buildInt32(Integer value);
+
+    ClientPrimitiveValue buildInt64(Long value);
+
+    ClientPrimitiveValue buildSingle(Float value);
+
+    ClientPrimitiveValue buildDouble(Double value);
+
+    ClientPrimitiveValue buildString(String value);
+
+    ClientPrimitiveValue buildGuid(UUID value);
+
+    ClientPrimitiveValue buildBinary(byte[] value);
+  }
+
+  EdmPrimitiveTypeKind getTypeKind();
+
+  EdmPrimitiveType getType();
+
+  /**
+   * Returns the current value as generic Object.
+   * 
+   * @return an uncasted instance of this value
+   */
+  Object toValue();
+
+  /**
+   * Returns the current value casted to the given type.
+   * 
+   * @param <T> cast type
+   * @param reference class reference
+   * @return the current value as typed java instance
+   * @throws EdmPrimitiveTypeException if the object is not assignable to the type T.
+   */
+  <T> T toCastValue(Class<T> reference) throws EdmPrimitiveTypeException;
+
+  /**
+   * Serialize the current value as String.
+   * 
+   * @return a String representation of this value
+   */
+  @Override
+  String toString();
+
+}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/17152920/lib/client-api/src/main/java/org/apache/olingo/client/api/domain/ClientProperty.java
----------------------------------------------------------------------
diff --git a/lib/client-api/src/main/java/org/apache/olingo/client/api/domain/ClientProperty.java b/lib/client-api/src/main/java/org/apache/olingo/client/api/domain/ClientProperty.java
new file mode 100644
index 0000000..2e5dde8
--- /dev/null
+++ b/lib/client-api/src/main/java/org/apache/olingo/client/api/domain/ClientProperty.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.client.api.domain;
+
+/**
+ * OData entity property.
+ */
+public interface ClientProperty extends ClientInvokeResult, ClientAnnotatable, ClientValuable {
+
+  /**
+   * Returns property name.
+   *
+   * @return property name.
+   */
+  String getName();
+}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/17152920/lib/client-api/src/main/java/org/apache/olingo/client/api/domain/ClientServiceDocument.java
----------------------------------------------------------------------
diff --git a/lib/client-api/src/main/java/org/apache/olingo/client/api/domain/ClientServiceDocument.java b/lib/client-api/src/main/java/org/apache/olingo/client/api/domain/ClientServiceDocument.java
new file mode 100644
index 0000000..d78b7bf
--- /dev/null
+++ b/lib/client-api/src/main/java/org/apache/olingo/client/api/domain/ClientServiceDocument.java
@@ -0,0 +1,163 @@
+/*
+ * 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.client.api.domain;
+
+import java.net.URI;
+import java.util.Collection;
+import java.util.HashMap;
+import java.util.Map;
+
+public class ClientServiceDocument {
+
+  private final Map<String, URI> entitySets = new HashMap<String, URI>();
+
+  private final Map<String, URI> functionImports = new HashMap<String, URI>();
+
+  private final Map<String, URI> singletons = new HashMap<String, URI>();
+
+  private final Map<String, URI> relatedServiceDocuments = new HashMap<String, URI>();
+
+  public Map<String, URI> getEntitySets() {
+    return entitySets;
+  }
+
+  /**
+   * Gets entity set names.
+   * 
+   * @return entity set names.
+   */
+  public Collection<String> getEntitySetNames() {
+    return entitySets.keySet();
+  }
+
+  /**
+   * Gets entity set URIs.
+   * 
+   * @return entity set URIs.
+   */
+  public Collection<URI> getEntitySetURIs() {
+    return entitySets.values();
+  }
+
+  /**
+   * Gets URI about the given entity set.
+   * 
+   * @param name name.
+   * @return URI.
+   */
+  public URI getEntitySetURI(final String name) {
+    return entitySets.get(name);
+  }
+
+  public Map<String, URI> getFunctionImports() {
+    return functionImports;
+  }
+
+  /**
+   * Gets function import names.
+   * 
+   * @return function import names.
+   */
+  public Collection<String> getFunctionImportNames() {
+    return functionImports.keySet();
+  }
+
+  /**
+   * Gets function import URIs.
+   * 
+   * @return function import URIs.
+   */
+  public Collection<URI> getFunctionImportURIs() {
+    return functionImports.values();
+  }
+
+  /**
+   * Gets URI of the given function import.
+   * 
+   * @param name name.
+   * @return URI.
+   */
+  public URI getFunctionImportURI(final String name) {
+    return functionImports.get(name);
+  }
+
+  public Map<String, URI> getSingletons() {
+    return singletons;
+  }
+
+  /**
+   * Gets singleton names.
+   * 
+   * @return singleton names.
+   */
+  public Collection<String> getSingletonNames() {
+    return singletons.keySet();
+  }
+
+  /**
+   * Gets singleton URIs.
+   * 
+   * @return singleton URIs.
+   */
+  public Collection<URI> getSingletonURIs() {
+    return singletons.values();
+  }
+
+  /**
+   * Gets URI of the given singleton.
+   * 
+   * @param name name.
+   * @return URI.
+   */
+  public URI getSingletonURI(final String name) {
+    return singletons.get(name);
+  }
+
+  public Map<String, URI> getRelatedServiceDocuments() {
+    return relatedServiceDocuments;
+  }
+
+  /**
+   * Gets related service documents names.
+   * 
+   * @return related service documents names.
+   */
+  public Collection<String> getRelatedServiceDocumentsNames() {
+    return relatedServiceDocuments.keySet();
+  }
+
+  /**
+   * Gets related service documents URIs.
+   * 
+   * @return related service documents URIs.
+   */
+  public Collection<URI> getRelatedServiceDocumentsURIs() {
+    return relatedServiceDocuments.values();
+  }
+
+  /**
+   * Gets URI of the given related service documents.
+   * 
+   * @param name name.
+   * @return URI.
+   */
+  public URI getRelatedServiceDocumentURI(final String name) {
+    return relatedServiceDocuments.get(name);
+  }
+}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/17152920/lib/client-api/src/main/java/org/apache/olingo/client/api/domain/ClientSingleton.java
----------------------------------------------------------------------
diff --git a/lib/client-api/src/main/java/org/apache/olingo/client/api/domain/ClientSingleton.java b/lib/client-api/src/main/java/org/apache/olingo/client/api/domain/ClientSingleton.java
new file mode 100644
index 0000000..5c4629f
--- /dev/null
+++ b/lib/client-api/src/main/java/org/apache/olingo/client/api/domain/ClientSingleton.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.client.api.domain;
+
+public interface ClientSingleton extends ClientEntity {
+//No additional methods needed for now.
+}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/17152920/lib/client-api/src/main/java/org/apache/olingo/client/api/domain/ClientValuable.java
----------------------------------------------------------------------
diff --git a/lib/client-api/src/main/java/org/apache/olingo/client/api/domain/ClientValuable.java b/lib/client-api/src/main/java/org/apache/olingo/client/api/domain/ClientValuable.java
new file mode 100644
index 0000000..68456c8
--- /dev/null
+++ b/lib/client-api/src/main/java/org/apache/olingo/client/api/domain/ClientValuable.java
@@ -0,0 +1,94 @@
+/*
+ * 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.client.api.domain;
+
+
+public interface ClientValuable {
+
+  /**
+   * Returns annotation value.
+   * 
+   * @return annotation value.
+   */
+  ClientValue getValue();
+
+  /**
+   * Checks if has null value.
+   * 
+   * @return 'TRUE' if has null value; 'FALSE' otherwise.
+   */
+  boolean hasNullValue();
+
+  /**
+   * Checks if has primitive value.
+   * 
+   * @return 'TRUE' if has primitive value; 'FALSE' otherwise.
+   */
+  boolean hasPrimitiveValue();
+
+  /**
+   * Gets primitive value.
+   * 
+   * @return primitive value if exists; null otherwise.
+   */
+  ClientPrimitiveValue getPrimitiveValue();
+
+  /**
+   * Checks if has collection value.
+   * 
+   * @return 'TRUE' if has collection value; 'FALSE' otherwise.
+   */
+  boolean hasCollectionValue();
+
+  /**
+   * Gets collection value.
+   * 
+   * @return collection value if exists; null otherwise.
+   */
+  ClientCollectionValue<ClientValue> getCollectionValue();
+
+  /**
+   * Checks if has complex value.
+   * 
+   * @return 'TRUE' if has complex value; 'FALSE' otherwise.
+   */
+  boolean hasComplexValue();
+
+  /**
+   * Gets complex value.
+   * 
+   * @return complex value if exists; null otherwise.
+   */
+  ClientComplexValue getComplexValue();
+
+  /**
+   * Checks if has enum value.
+   * 
+   * @return 'TRUE' if has enum value; 'FALSE' otherwise.
+   */
+  boolean hasEnumValue();
+
+  /**
+   * Gets enum value.
+   * 
+   * @return enum value if exists; null otherwise.
+   */
+  ClientEnumValue getEnumValue();
+
+}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/17152920/lib/client-api/src/main/java/org/apache/olingo/client/api/domain/ClientValue.java
----------------------------------------------------------------------
diff --git a/lib/client-api/src/main/java/org/apache/olingo/client/api/domain/ClientValue.java b/lib/client-api/src/main/java/org/apache/olingo/client/api/domain/ClientValue.java
new file mode 100644
index 0000000..de778c5
--- /dev/null
+++ b/lib/client-api/src/main/java/org/apache/olingo/client/api/domain/ClientValue.java
@@ -0,0 +1,91 @@
+/*
+ * 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.client.api.domain;
+
+
+/**
+ * Abstract representation of an OData entity property value.
+ */
+public interface ClientValue {
+
+  /**
+   * Gets value type name.
+   * 
+   * @return value type name.
+   */
+  String getTypeName();
+
+  /**
+   * Check is is a primitive value.
+   * 
+   * @return 'TRUE' if primitive; 'FALSE' otherwise.
+   */
+  boolean isPrimitive();
+
+  /**
+   * Casts to primitive value.
+   * 
+   * @return primitive value.
+   */
+  ClientPrimitiveValue asPrimitive();
+
+  /**
+   * Check is is a collection value.
+   * 
+   * @return 'TRUE' if collection; 'FALSE' otherwise.
+   */
+  boolean isCollection();
+
+  /**
+   * Casts to collection value.
+   * 
+   * @param <OV> The actual ODataValue interface.
+   * @return collection value.
+   */
+  <OV extends ClientValue> ClientCollectionValue<OV> asCollection();
+
+  /**
+   * Casts to complex value.
+   * 
+   * @return complex value.
+   */
+  ClientComplexValue asComplex();
+
+  /**
+   * Check is is a linked complex value.
+   * 
+   * @return 'TRUE' if linked complex; 'FALSE' otherwise.
+   */
+  boolean isComplex();
+
+  /**
+   * Check is is an enum value.
+   * 
+   * @return 'TRUE' if enum; 'FALSE' otherwise.
+   */
+  boolean isEnum();
+
+  /**
+   * Casts to enum value.
+   * 
+   * @return enum value.
+   */
+  ClientEnumValue asEnum();
+  
+}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/17152920/lib/client-api/src/main/java/org/apache/olingo/client/api/domain/ODataEntitySetIterator.java
----------------------------------------------------------------------
diff --git a/lib/client-api/src/main/java/org/apache/olingo/client/api/domain/ODataEntitySetIterator.java b/lib/client-api/src/main/java/org/apache/olingo/client/api/domain/ODataEntitySetIterator.java
index 60fd352..64bf0f2 100644
--- a/lib/client-api/src/main/java/org/apache/olingo/client/api/domain/ODataEntitySetIterator.java
+++ b/lib/client-api/src/main/java/org/apache/olingo/client/api/domain/ODataEntitySetIterator.java
@@ -33,8 +33,6 @@ import org.apache.olingo.client.api.ODataClient;
 import org.apache.olingo.commons.api.Constants;
 import org.apache.olingo.commons.api.data.Entity;
 import org.apache.olingo.commons.api.data.ResWrap;
-import org.apache.olingo.commons.api.domain.ClientEntity;
-import org.apache.olingo.commons.api.domain.ClientEntitySet;
 import org.apache.olingo.commons.api.format.ODataFormat;
 import org.apache.olingo.commons.api.serialization.ODataDeserializerException;
 import org.slf4j.Logger;

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/17152920/lib/client-api/src/main/java/org/apache/olingo/client/api/serialization/ODataBinder.java
----------------------------------------------------------------------
diff --git a/lib/client-api/src/main/java/org/apache/olingo/client/api/serialization/ODataBinder.java b/lib/client-api/src/main/java/org/apache/olingo/client/api/serialization/ODataBinder.java
index 9be8744..aeabf3b 100644
--- a/lib/client-api/src/main/java/org/apache/olingo/client/api/serialization/ODataBinder.java
+++ b/lib/client-api/src/main/java/org/apache/olingo/client/api/serialization/ODataBinder.java
@@ -25,12 +25,12 @@ import org.apache.olingo.commons.api.data.EntityCollection;
 import org.apache.olingo.commons.api.data.Link;
 import org.apache.olingo.commons.api.data.Property;
 import org.apache.olingo.commons.api.data.ResWrap;
-import org.apache.olingo.commons.api.domain.ClientDelta;
-import org.apache.olingo.commons.api.domain.ClientEntity;
-import org.apache.olingo.commons.api.domain.ClientEntitySet;
-import org.apache.olingo.commons.api.domain.ClientLink;
-import org.apache.olingo.commons.api.domain.ClientProperty;
-import org.apache.olingo.commons.api.domain.ClientServiceDocument;
+import org.apache.olingo.client.api.domain.ClientDelta;
+import org.apache.olingo.client.api.domain.ClientEntity;
+import org.apache.olingo.client.api.domain.ClientEntitySet;
+import org.apache.olingo.client.api.domain.ClientLink;
+import org.apache.olingo.client.api.domain.ClientProperty;
+import org.apache.olingo.client.api.domain.ClientServiceDocument;
 
 public interface ODataBinder {
 

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/17152920/lib/client-api/src/main/java/org/apache/olingo/client/api/serialization/ODataReader.java
----------------------------------------------------------------------
diff --git a/lib/client-api/src/main/java/org/apache/olingo/client/api/serialization/ODataReader.java b/lib/client-api/src/main/java/org/apache/olingo/client/api/serialization/ODataReader.java
index 8519a66..8c5ccc4 100644
--- a/lib/client-api/src/main/java/org/apache/olingo/client/api/serialization/ODataReader.java
+++ b/lib/client-api/src/main/java/org/apache/olingo/client/api/serialization/ODataReader.java
@@ -22,11 +22,11 @@ import java.io.InputStream;
 import java.util.Map;
 
 import org.apache.olingo.commons.api.data.ResWrap;
-import org.apache.olingo.commons.api.domain.ClientEntity;
-import org.apache.olingo.commons.api.domain.ClientEntitySet;
-import org.apache.olingo.commons.api.domain.ClientError;
-import org.apache.olingo.commons.api.domain.ClientProperty;
-import org.apache.olingo.commons.api.domain.ClientServiceDocument;
+import org.apache.olingo.client.api.domain.ClientEntity;
+import org.apache.olingo.client.api.domain.ClientEntitySet;
+import org.apache.olingo.commons.api.domain.ODataError;
+import org.apache.olingo.client.api.domain.ClientProperty;
+import org.apache.olingo.client.api.domain.ClientServiceDocument;
 import org.apache.olingo.commons.api.edm.Edm;
 import org.apache.olingo.commons.api.edm.provider.CsdlSchema;
 import org.apache.olingo.commons.api.format.ODataFormat;
@@ -105,7 +105,7 @@ public interface ODataReader {
    * @return OData error.
    * @throws ODataDeserializerException
    */
-  ClientError readError(InputStream inputStream, ODataFormat format) throws ODataDeserializerException;
+  ODataError readError(InputStream inputStream, ODataFormat format) throws ODataDeserializerException;
 
   /**
    * Parses a stream into the object type specified by the given reference.

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/17152920/lib/client-api/src/main/java/org/apache/olingo/client/api/serialization/ODataWriter.java
----------------------------------------------------------------------
diff --git a/lib/client-api/src/main/java/org/apache/olingo/client/api/serialization/ODataWriter.java b/lib/client-api/src/main/java/org/apache/olingo/client/api/serialization/ODataWriter.java
index 81f07a6..5287c94 100644
--- a/lib/client-api/src/main/java/org/apache/olingo/client/api/serialization/ODataWriter.java
+++ b/lib/client-api/src/main/java/org/apache/olingo/client/api/serialization/ODataWriter.java
@@ -23,9 +23,9 @@ import java.net.URI;
 import java.util.Collection;
 
 import org.apache.olingo.commons.api.data.ResWrap;
-import org.apache.olingo.commons.api.domain.ClientEntity;
-import org.apache.olingo.commons.api.domain.ClientProperty;
-import org.apache.olingo.commons.api.domain.ClientLink;
+import org.apache.olingo.client.api.domain.ClientEntity;
+import org.apache.olingo.client.api.domain.ClientProperty;
+import org.apache.olingo.client.api.domain.ClientLink;
 import org.apache.olingo.commons.api.format.ODataFormat;
 import org.apache.olingo.commons.api.serialization.ODataSerializerException;
 

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/17152920/lib/client-core/src/main/java/org/apache/olingo/client/core/ODataClientImpl.java
----------------------------------------------------------------------
diff --git a/lib/client-core/src/main/java/org/apache/olingo/client/core/ODataClientImpl.java b/lib/client-core/src/main/java/org/apache/olingo/client/core/ODataClientImpl.java
index 55d4169..a934e3e 100644
--- a/lib/client-core/src/main/java/org/apache/olingo/client/core/ODataClientImpl.java
+++ b/lib/client-core/src/main/java/org/apache/olingo/client/core/ODataClientImpl.java
@@ -47,11 +47,11 @@ import org.apache.olingo.client.core.serialization.ODataReaderImpl;
 import org.apache.olingo.client.core.serialization.ODataWriterImpl;
 import org.apache.olingo.client.core.uri.FilterFactoryImpl;
 import org.apache.olingo.client.core.uri.URIBuilderImpl;
-import org.apache.olingo.commons.api.domain.ClientObjectFactory;
+import org.apache.olingo.client.api.domain.ClientObjectFactory;
 import org.apache.olingo.commons.api.edm.constants.ODataServiceVersion;
 import org.apache.olingo.commons.api.format.ODataFormat;
 import org.apache.olingo.commons.api.serialization.ODataSerializer;
-import org.apache.olingo.commons.core.domain.ClientObjectFactoryImpl;
+import org.apache.olingo.client.core.domain.ClientObjectFactoryImpl;
 import org.apache.olingo.commons.core.serialization.AtomSerializer;
 import org.apache.olingo.commons.core.serialization.JsonSerializer;
 

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/17152920/lib/client-core/src/main/java/org/apache/olingo/client/core/communication/header/ODataErrorResponseChecker.java
----------------------------------------------------------------------
diff --git a/lib/client-core/src/main/java/org/apache/olingo/client/core/communication/header/ODataErrorResponseChecker.java b/lib/client-core/src/main/java/org/apache/olingo/client/core/communication/header/ODataErrorResponseChecker.java
index 717096d..f1cc64a 100644
--- a/lib/client-core/src/main/java/org/apache/olingo/client/core/communication/header/ODataErrorResponseChecker.java
+++ b/lib/client-core/src/main/java/org/apache/olingo/client/core/communication/header/ODataErrorResponseChecker.java
@@ -25,7 +25,7 @@ import org.apache.olingo.client.api.ODataClient;
 import org.apache.olingo.client.api.communication.ODataClientErrorException;
 import org.apache.olingo.client.api.communication.ODataServerErrorException;
 import org.apache.olingo.commons.api.ODataRuntimeException;
-import org.apache.olingo.commons.api.domain.ClientError;
+import org.apache.olingo.commons.api.domain.ODataError;
 import org.apache.olingo.commons.api.format.ODataFormat;
 import org.apache.olingo.commons.api.serialization.ODataDeserializerException;
 import org.slf4j.Logger;
@@ -35,8 +35,8 @@ public final class ODataErrorResponseChecker {
 
   protected static final Logger LOG = LoggerFactory.getLogger(ODataErrorResponseChecker.class);
 
-  private static ClientError getGenericError(final int code, final String errorMsg) {
-    final ClientError error = new ClientError();
+  private static ODataError getGenericError(final int code, final String errorMsg) {
+    final ODataError error = new ODataError();
     error.setCode(String.valueOf(code));
     error.setMessage(errorMsg);
     return error;
@@ -53,7 +53,7 @@ public final class ODataErrorResponseChecker {
     } else {
       final ODataFormat format = accept.contains("xml") ? ODataFormat.XML : ODataFormat.JSON;
 
-      ClientError error;
+      ODataError error;
       try {
         error = odataClient.getReader().readError(entity, format);
       } catch (final RuntimeException e) {

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/17152920/lib/client-core/src/main/java/org/apache/olingo/client/core/communication/request/cud/CUDRequestFactoryImpl.java
----------------------------------------------------------------------
diff --git a/lib/client-core/src/main/java/org/apache/olingo/client/core/communication/request/cud/CUDRequestFactoryImpl.java b/lib/client-core/src/main/java/org/apache/olingo/client/core/communication/request/cud/CUDRequestFactoryImpl.java
index be0960a..8f33e09 100644
--- a/lib/client-core/src/main/java/org/apache/olingo/client/core/communication/request/cud/CUDRequestFactoryImpl.java
+++ b/lib/client-core/src/main/java/org/apache/olingo/client/core/communication/request/cud/CUDRequestFactoryImpl.java
@@ -38,10 +38,10 @@ import org.apache.olingo.client.core.communication.request.streamed.ODataMediaEn
 import org.apache.olingo.client.core.communication.request.streamed.ODataStreamUpdateRequestImpl;
 import org.apache.olingo.client.core.uri.URIUtils;
 import org.apache.olingo.commons.api.data.ResWrap;
-import org.apache.olingo.commons.api.domain.ClientEntity;
-import org.apache.olingo.commons.api.domain.ClientPrimitiveValue;
-import org.apache.olingo.commons.api.domain.ClientProperty;
-import org.apache.olingo.commons.api.domain.ClientSingleton;
+import org.apache.olingo.client.api.domain.ClientEntity;
+import org.apache.olingo.client.api.domain.ClientPrimitiveValue;
+import org.apache.olingo.client.api.domain.ClientProperty;
+import org.apache.olingo.client.api.domain.ClientSingleton;
 import org.apache.olingo.commons.api.http.HttpMethod;
 
 public class CUDRequestFactoryImpl implements CUDRequestFactory {

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/17152920/lib/client-core/src/main/java/org/apache/olingo/client/core/communication/request/cud/ODataEntityCreateRequestImpl.java
----------------------------------------------------------------------
diff --git a/lib/client-core/src/main/java/org/apache/olingo/client/core/communication/request/cud/ODataEntityCreateRequestImpl.java b/lib/client-core/src/main/java/org/apache/olingo/client/core/communication/request/cud/ODataEntityCreateRequestImpl.java
index 86d5395..b2aba3d 100644
--- a/lib/client-core/src/main/java/org/apache/olingo/client/core/communication/request/cud/ODataEntityCreateRequestImpl.java
+++ b/lib/client-core/src/main/java/org/apache/olingo/client/core/communication/request/cud/ODataEntityCreateRequestImpl.java
@@ -33,7 +33,7 @@ import org.apache.olingo.client.core.communication.response.AbstractODataRespons
 import org.apache.olingo.client.core.uri.URIUtils;
 import org.apache.olingo.commons.api.data.Entity;
 import org.apache.olingo.commons.api.data.ResWrap;
-import org.apache.olingo.commons.api.domain.ClientEntity;
+import org.apache.olingo.client.api.domain.ClientEntity;
 import org.apache.olingo.commons.api.format.ODataFormat;
 import org.apache.olingo.commons.api.http.HttpMethod;
 import org.apache.olingo.commons.api.serialization.ODataDeserializerException;

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/17152920/lib/client-core/src/main/java/org/apache/olingo/client/core/communication/request/cud/ODataEntityUpdateRequestImpl.java
----------------------------------------------------------------------
diff --git a/lib/client-core/src/main/java/org/apache/olingo/client/core/communication/request/cud/ODataEntityUpdateRequestImpl.java b/lib/client-core/src/main/java/org/apache/olingo/client/core/communication/request/cud/ODataEntityUpdateRequestImpl.java
index b86e6ae..195eaeb 100644
--- a/lib/client-core/src/main/java/org/apache/olingo/client/core/communication/request/cud/ODataEntityUpdateRequestImpl.java
+++ b/lib/client-core/src/main/java/org/apache/olingo/client/core/communication/request/cud/ODataEntityUpdateRequestImpl.java
@@ -34,7 +34,7 @@ import org.apache.olingo.client.core.communication.response.AbstractODataRespons
 import org.apache.olingo.client.core.uri.URIUtils;
 import org.apache.olingo.commons.api.data.Entity;
 import org.apache.olingo.commons.api.data.ResWrap;
-import org.apache.olingo.commons.api.domain.ClientEntity;
+import org.apache.olingo.client.api.domain.ClientEntity;
 import org.apache.olingo.commons.api.format.ODataFormat;
 import org.apache.olingo.commons.api.http.HttpMethod;
 import org.apache.olingo.commons.api.serialization.ODataDeserializerException;

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/17152920/lib/client-core/src/main/java/org/apache/olingo/client/core/communication/request/cud/ODataPropertyUpdateRequestImpl.java
----------------------------------------------------------------------
diff --git a/lib/client-core/src/main/java/org/apache/olingo/client/core/communication/request/cud/ODataPropertyUpdateRequestImpl.java b/lib/client-core/src/main/java/org/apache/olingo/client/core/communication/request/cud/ODataPropertyUpdateRequestImpl.java
index 674a342..a88652f 100644
--- a/lib/client-core/src/main/java/org/apache/olingo/client/core/communication/request/cud/ODataPropertyUpdateRequestImpl.java
+++ b/lib/client-core/src/main/java/org/apache/olingo/client/core/communication/request/cud/ODataPropertyUpdateRequestImpl.java
@@ -33,7 +33,7 @@ import org.apache.olingo.client.core.communication.response.AbstractODataRespons
 import org.apache.olingo.client.core.uri.URIUtils;
 import org.apache.olingo.commons.api.data.Property;
 import org.apache.olingo.commons.api.data.ResWrap;
-import org.apache.olingo.commons.api.domain.ClientProperty;
+import org.apache.olingo.client.api.domain.ClientProperty;
 import org.apache.olingo.commons.api.format.ODataFormat;
 import org.apache.olingo.commons.api.http.HttpMethod;
 import org.apache.olingo.commons.api.serialization.ODataDeserializerException;

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/17152920/lib/client-core/src/main/java/org/apache/olingo/client/core/communication/request/cud/ODataValueUpdateRequestImpl.java
----------------------------------------------------------------------
diff --git a/lib/client-core/src/main/java/org/apache/olingo/client/core/communication/request/cud/ODataValueUpdateRequestImpl.java b/lib/client-core/src/main/java/org/apache/olingo/client/core/communication/request/cud/ODataValueUpdateRequestImpl.java
index a7dfb5f..93f4b59 100644
--- a/lib/client-core/src/main/java/org/apache/olingo/client/core/communication/request/cud/ODataValueUpdateRequestImpl.java
+++ b/lib/client-core/src/main/java/org/apache/olingo/client/core/communication/request/cud/ODataValueUpdateRequestImpl.java
@@ -32,7 +32,7 @@ import org.apache.olingo.client.api.http.HttpClientException;
 import org.apache.olingo.client.core.communication.request.AbstractODataBasicRequest;
 import org.apache.olingo.client.core.communication.response.AbstractODataResponse;
 import org.apache.olingo.client.core.uri.URIUtils;
-import org.apache.olingo.commons.api.domain.ClientPrimitiveValue;
+import org.apache.olingo.client.api.domain.ClientPrimitiveValue;
 import org.apache.olingo.commons.api.edm.EdmPrimitiveTypeKind;
 import org.apache.olingo.commons.api.format.ODataFormat;
 import org.apache.olingo.commons.api.http.HttpMethod;

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/17152920/lib/client-core/src/main/java/org/apache/olingo/client/core/communication/request/invoke/AbstractEdmEnabledInvokeRequestFactory.java
----------------------------------------------------------------------
diff --git a/lib/client-core/src/main/java/org/apache/olingo/client/core/communication/request/invoke/AbstractEdmEnabledInvokeRequestFactory.java b/lib/client-core/src/main/java/org/apache/olingo/client/core/communication/request/invoke/AbstractEdmEnabledInvokeRequestFactory.java
index e4d67b5..6431b83 100644
--- a/lib/client-core/src/main/java/org/apache/olingo/client/core/communication/request/invoke/AbstractEdmEnabledInvokeRequestFactory.java
+++ b/lib/client-core/src/main/java/org/apache/olingo/client/core/communication/request/invoke/AbstractEdmEnabledInvokeRequestFactory.java
@@ -25,8 +25,8 @@ import java.util.Map;
 import org.apache.olingo.client.api.EdmEnabledODataClient;
 import org.apache.olingo.client.api.communication.request.invoke.EdmEnabledInvokeRequestFactory;
 import org.apache.olingo.client.api.communication.request.invoke.ODataInvokeRequest;
-import org.apache.olingo.commons.api.domain.ClientInvokeResult;
-import org.apache.olingo.commons.api.domain.ClientValue;
+import org.apache.olingo.client.api.domain.ClientInvokeResult;
+import org.apache.olingo.client.api.domain.ClientValue;
 import org.apache.olingo.commons.api.edm.EdmAction;
 import org.apache.olingo.commons.api.edm.EdmActionImport;
 import org.apache.olingo.commons.api.edm.EdmEntityContainer;

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/17152920/lib/client-core/src/main/java/org/apache/olingo/client/core/communication/request/invoke/AbstractInvokeRequestFactory.java
----------------------------------------------------------------------
diff --git a/lib/client-core/src/main/java/org/apache/olingo/client/core/communication/request/invoke/AbstractInvokeRequestFactory.java b/lib/client-core/src/main/java/org/apache/olingo/client/core/communication/request/invoke/AbstractInvokeRequestFactory.java
index 75ee264..ec41777 100644
--- a/lib/client-core/src/main/java/org/apache/olingo/client/core/communication/request/invoke/AbstractInvokeRequestFactory.java
+++ b/lib/client-core/src/main/java/org/apache/olingo/client/core/communication/request/invoke/AbstractInvokeRequestFactory.java
@@ -24,11 +24,11 @@ import java.util.Map;
 import org.apache.olingo.client.api.communication.request.invoke.InvokeRequestFactory;
 import org.apache.olingo.client.api.communication.request.invoke.ODataInvokeRequest;
 import org.apache.olingo.client.api.communication.request.invoke.ClientNoContent;
-import org.apache.olingo.commons.api.domain.ClientEntity;
-import org.apache.olingo.commons.api.domain.ClientEntitySet;
-import org.apache.olingo.commons.api.domain.ClientProperty;
-import org.apache.olingo.commons.api.domain.ClientInvokeResult;
-import org.apache.olingo.commons.api.domain.ClientValue;
+import org.apache.olingo.client.api.domain.ClientEntity;
+import org.apache.olingo.client.api.domain.ClientEntitySet;
+import org.apache.olingo.client.api.domain.ClientProperty;
+import org.apache.olingo.client.api.domain.ClientInvokeResult;
+import org.apache.olingo.client.api.domain.ClientValue;
 import org.apache.olingo.commons.api.edm.EdmReturnType;
 import org.apache.olingo.commons.api.edm.constants.EdmTypeKind;
 import org.apache.olingo.commons.api.http.HttpMethod;

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/17152920/lib/client-core/src/main/java/org/apache/olingo/client/core/communication/request/invoke/AbstractODataInvokeRequest.java
----------------------------------------------------------------------
diff --git a/lib/client-core/src/main/java/org/apache/olingo/client/core/communication/request/invoke/AbstractODataInvokeRequest.java b/lib/client-core/src/main/java/org/apache/olingo/client/core/communication/request/invoke/AbstractODataInvokeRequest.java
index 2f26161..5bd259c 100644
--- a/lib/client-core/src/main/java/org/apache/olingo/client/core/communication/request/invoke/AbstractODataInvokeRequest.java
+++ b/lib/client-core/src/main/java/org/apache/olingo/client/core/communication/request/invoke/AbstractODataInvokeRequest.java
@@ -38,11 +38,11 @@ import org.apache.olingo.client.api.http.HttpClientException;
 import org.apache.olingo.client.core.communication.request.AbstractODataBasicRequest;
 import org.apache.olingo.client.core.communication.response.AbstractODataResponse;
 import org.apache.olingo.client.core.uri.URIUtils;
-import org.apache.olingo.commons.api.domain.ClientEntity;
-import org.apache.olingo.commons.api.domain.ClientEntitySet;
-import org.apache.olingo.commons.api.domain.ClientInvokeResult;
-import org.apache.olingo.commons.api.domain.ClientProperty;
-import org.apache.olingo.commons.api.domain.ClientValue;
+import org.apache.olingo.client.api.domain.ClientEntity;
+import org.apache.olingo.client.api.domain.ClientEntitySet;
+import org.apache.olingo.client.api.domain.ClientInvokeResult;
+import org.apache.olingo.client.api.domain.ClientProperty;
+import org.apache.olingo.client.api.domain.ClientValue;
 import org.apache.olingo.commons.api.format.ODataFormat;
 import org.apache.olingo.commons.api.http.HttpMethod;
 import org.apache.olingo.commons.api.serialization.ODataDeserializerException;

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/17152920/lib/client-core/src/main/java/org/apache/olingo/client/core/communication/request/invoke/EdmEnabledInvokeRequestFactoryImpl.java
----------------------------------------------------------------------
diff --git a/lib/client-core/src/main/java/org/apache/olingo/client/core/communication/request/invoke/EdmEnabledInvokeRequestFactoryImpl.java b/lib/client-core/src/main/java/org/apache/olingo/client/core/communication/request/invoke/EdmEnabledInvokeRequestFactoryImpl.java
index 27691c5..bb488d5 100644
--- a/lib/client-core/src/main/java/org/apache/olingo/client/core/communication/request/invoke/EdmEnabledInvokeRequestFactoryImpl.java
+++ b/lib/client-core/src/main/java/org/apache/olingo/client/core/communication/request/invoke/EdmEnabledInvokeRequestFactoryImpl.java
@@ -23,8 +23,8 @@ import java.util.Map;
 
 import org.apache.olingo.client.api.EdmEnabledODataClient;
 import org.apache.olingo.client.api.communication.request.invoke.ODataInvokeRequest;
-import org.apache.olingo.commons.api.domain.ClientInvokeResult;
-import org.apache.olingo.commons.api.domain.ClientValue;
+import org.apache.olingo.client.api.domain.ClientInvokeResult;
+import org.apache.olingo.client.api.domain.ClientValue;
 import org.apache.olingo.commons.api.http.HttpMethod;
 
 public class EdmEnabledInvokeRequestFactoryImpl extends AbstractEdmEnabledInvokeRequestFactory {

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/17152920/lib/client-core/src/main/java/org/apache/olingo/client/core/communication/request/invoke/InvokeRequestFactoryImpl.java
----------------------------------------------------------------------
diff --git a/lib/client-core/src/main/java/org/apache/olingo/client/core/communication/request/invoke/InvokeRequestFactoryImpl.java b/lib/client-core/src/main/java/org/apache/olingo/client/core/communication/request/invoke/InvokeRequestFactoryImpl.java
index 7b8506c..b01c54a 100644
--- a/lib/client-core/src/main/java/org/apache/olingo/client/core/communication/request/invoke/InvokeRequestFactoryImpl.java
+++ b/lib/client-core/src/main/java/org/apache/olingo/client/core/communication/request/invoke/InvokeRequestFactoryImpl.java
@@ -23,8 +23,8 @@ import java.util.Map;
 
 import org.apache.olingo.client.api.ODataClient;
 import org.apache.olingo.client.api.communication.request.invoke.ODataInvokeRequest;
-import org.apache.olingo.commons.api.domain.ClientInvokeResult;
-import org.apache.olingo.commons.api.domain.ClientValue;
+import org.apache.olingo.client.api.domain.ClientInvokeResult;
+import org.apache.olingo.client.api.domain.ClientValue;
 import org.apache.olingo.commons.api.http.HttpMethod;
 
 public class InvokeRequestFactoryImpl extends AbstractInvokeRequestFactory {

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/17152920/lib/client-core/src/main/java/org/apache/olingo/client/core/communication/request/invoke/ODataInvokeRequestImpl.java
----------------------------------------------------------------------
diff --git a/lib/client-core/src/main/java/org/apache/olingo/client/core/communication/request/invoke/ODataInvokeRequestImpl.java b/lib/client-core/src/main/java/org/apache/olingo/client/core/communication/request/invoke/ODataInvokeRequestImpl.java
index adf2214..5e8736e 100644
--- a/lib/client-core/src/main/java/org/apache/olingo/client/core/communication/request/invoke/ODataInvokeRequestImpl.java
+++ b/lib/client-core/src/main/java/org/apache/olingo/client/core/communication/request/invoke/ODataInvokeRequestImpl.java
@@ -21,7 +21,7 @@ package org.apache.olingo.client.core.communication.request.invoke;
 import java.net.URI;
 
 import org.apache.olingo.client.api.ODataClient;
-import org.apache.olingo.commons.api.domain.ClientInvokeResult;
+import org.apache.olingo.client.api.domain.ClientInvokeResult;
 import org.apache.olingo.commons.api.format.ODataFormat;
 import org.apache.olingo.commons.api.http.HttpMethod;
 

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/17152920/lib/client-core/src/main/java/org/apache/olingo/client/core/communication/request/retrieve/ODataDeltaRequestImpl.java
----------------------------------------------------------------------
diff --git a/lib/client-core/src/main/java/org/apache/olingo/client/core/communication/request/retrieve/ODataDeltaRequestImpl.java b/lib/client-core/src/main/java/org/apache/olingo/client/core/communication/request/retrieve/ODataDeltaRequestImpl.java
index 4412ef0..601e4ba 100644
--- a/lib/client-core/src/main/java/org/apache/olingo/client/core/communication/request/retrieve/ODataDeltaRequestImpl.java
+++ b/lib/client-core/src/main/java/org/apache/olingo/client/core/communication/request/retrieve/ODataDeltaRequestImpl.java
@@ -29,7 +29,7 @@ import org.apache.olingo.client.api.communication.response.ODataRetrieveResponse
 import org.apache.olingo.client.api.http.HttpClientException;
 import org.apache.olingo.commons.api.data.Delta;
 import org.apache.olingo.commons.api.data.ResWrap;
-import org.apache.olingo.commons.api.domain.ClientDelta;
+import org.apache.olingo.client.api.domain.ClientDelta;
 import org.apache.olingo.commons.api.format.ODataFormat;
 import org.apache.olingo.commons.api.serialization.ODataDeserializerException;
 

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/17152920/lib/client-core/src/main/java/org/apache/olingo/client/core/communication/request/retrieve/ODataEntityRequestImpl.java
----------------------------------------------------------------------
diff --git a/lib/client-core/src/main/java/org/apache/olingo/client/core/communication/request/retrieve/ODataEntityRequestImpl.java b/lib/client-core/src/main/java/org/apache/olingo/client/core/communication/request/retrieve/ODataEntityRequestImpl.java
index eec258b..57acf2a 100644
--- a/lib/client-core/src/main/java/org/apache/olingo/client/core/communication/request/retrieve/ODataEntityRequestImpl.java
+++ b/lib/client-core/src/main/java/org/apache/olingo/client/core/communication/request/retrieve/ODataEntityRequestImpl.java
@@ -27,7 +27,7 @@ import org.apache.olingo.client.api.communication.request.retrieve.ODataEntityRe
 import org.apache.olingo.client.api.communication.response.ODataRetrieveResponse;
 import org.apache.olingo.commons.api.data.Entity;
 import org.apache.olingo.commons.api.data.ResWrap;
-import org.apache.olingo.commons.api.domain.ClientEntity;
+import org.apache.olingo.client.api.domain.ClientEntity;
 import org.apache.olingo.commons.api.format.ODataFormat;
 import org.apache.olingo.commons.api.serialization.ODataDeserializerException;
 

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/17152920/lib/client-core/src/main/java/org/apache/olingo/client/core/communication/request/retrieve/ODataEntitySetIteratorRequestImpl.java
----------------------------------------------------------------------
diff --git a/lib/client-core/src/main/java/org/apache/olingo/client/core/communication/request/retrieve/ODataEntitySetIteratorRequestImpl.java b/lib/client-core/src/main/java/org/apache/olingo/client/core/communication/request/retrieve/ODataEntitySetIteratorRequestImpl.java
index 04adfb6..9c47b69 100644
--- a/lib/client-core/src/main/java/org/apache/olingo/client/core/communication/request/retrieve/ODataEntitySetIteratorRequestImpl.java
+++ b/lib/client-core/src/main/java/org/apache/olingo/client/core/communication/request/retrieve/ODataEntitySetIteratorRequestImpl.java
@@ -26,8 +26,8 @@ import org.apache.olingo.client.api.ODataClient;
 import org.apache.olingo.client.api.communication.request.retrieve.ODataEntitySetIteratorRequest;
 import org.apache.olingo.client.api.communication.response.ODataRetrieveResponse;
 import org.apache.olingo.client.api.domain.ODataEntitySetIterator;
-import org.apache.olingo.commons.api.domain.ClientEntity;
-import org.apache.olingo.commons.api.domain.ClientEntitySet;
+import org.apache.olingo.client.api.domain.ClientEntity;
+import org.apache.olingo.client.api.domain.ClientEntitySet;
 import org.apache.olingo.commons.api.format.ODataFormat;
 
 /**

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/17152920/lib/client-core/src/main/java/org/apache/olingo/client/core/communication/request/retrieve/ODataEntitySetRequestImpl.java
----------------------------------------------------------------------
diff --git a/lib/client-core/src/main/java/org/apache/olingo/client/core/communication/request/retrieve/ODataEntitySetRequestImpl.java b/lib/client-core/src/main/java/org/apache/olingo/client/core/communication/request/retrieve/ODataEntitySetRequestImpl.java
index 44de4c1..620a88d 100644
--- a/lib/client-core/src/main/java/org/apache/olingo/client/core/communication/request/retrieve/ODataEntitySetRequestImpl.java
+++ b/lib/client-core/src/main/java/org/apache/olingo/client/core/communication/request/retrieve/ODataEntitySetRequestImpl.java
@@ -27,7 +27,7 @@ import org.apache.olingo.client.api.communication.request.retrieve.ODataEntitySe
 import org.apache.olingo.client.api.communication.response.ODataRetrieveResponse;
 import org.apache.olingo.commons.api.data.EntityCollection;
 import org.apache.olingo.commons.api.data.ResWrap;
-import org.apache.olingo.commons.api.domain.ClientEntitySet;
+import org.apache.olingo.client.api.domain.ClientEntitySet;
 import org.apache.olingo.commons.api.format.ODataFormat;
 import org.apache.olingo.commons.api.serialization.ODataDeserializerException;
 

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/17152920/lib/client-core/src/main/java/org/apache/olingo/client/core/communication/request/retrieve/ODataPropertyRequestImpl.java
----------------------------------------------------------------------
diff --git a/lib/client-core/src/main/java/org/apache/olingo/client/core/communication/request/retrieve/ODataPropertyRequestImpl.java b/lib/client-core/src/main/java/org/apache/olingo/client/core/communication/request/retrieve/ODataPropertyRequestImpl.java
index 91644bf..36e9d0c 100644
--- a/lib/client-core/src/main/java/org/apache/olingo/client/core/communication/request/retrieve/ODataPropertyRequestImpl.java
+++ b/lib/client-core/src/main/java/org/apache/olingo/client/core/communication/request/retrieve/ODataPropertyRequestImpl.java
@@ -29,7 +29,7 @@ import org.apache.olingo.client.api.communication.response.ODataRetrieveResponse
 import org.apache.olingo.client.api.http.HttpClientException;
 import org.apache.olingo.commons.api.data.Property;
 import org.apache.olingo.commons.api.data.ResWrap;
-import org.apache.olingo.commons.api.domain.ClientProperty;
+import org.apache.olingo.client.api.domain.ClientProperty;
 import org.apache.olingo.commons.api.format.ODataFormat;
 import org.apache.olingo.commons.api.serialization.ODataDeserializerException;
 

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/17152920/lib/client-core/src/main/java/org/apache/olingo/client/core/communication/request/retrieve/ODataServiceDocumentRequestImpl.java
----------------------------------------------------------------------
diff --git a/lib/client-core/src/main/java/org/apache/olingo/client/core/communication/request/retrieve/ODataServiceDocumentRequestImpl.java b/lib/client-core/src/main/java/org/apache/olingo/client/core/communication/request/retrieve/ODataServiceDocumentRequestImpl.java
index 771525e..363ba87 100644
--- a/lib/client-core/src/main/java/org/apache/olingo/client/core/communication/request/retrieve/ODataServiceDocumentRequestImpl.java
+++ b/lib/client-core/src/main/java/org/apache/olingo/client/core/communication/request/retrieve/ODataServiceDocumentRequestImpl.java
@@ -27,7 +27,7 @@ import org.apache.olingo.client.api.communication.request.retrieve.ODataServiceD
 import org.apache.olingo.client.api.communication.response.ODataRetrieveResponse;
 import org.apache.olingo.client.api.data.ServiceDocument;
 import org.apache.olingo.commons.api.data.ResWrap;
-import org.apache.olingo.commons.api.domain.ClientServiceDocument;
+import org.apache.olingo.client.api.domain.ClientServiceDocument;
 import org.apache.olingo.commons.api.format.ODataFormat;
 import org.apache.olingo.commons.api.serialization.ODataDeserializerException;
 

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/17152920/lib/client-core/src/main/java/org/apache/olingo/client/core/communication/request/retrieve/ODataValueRequestImpl.java
----------------------------------------------------------------------
diff --git a/lib/client-core/src/main/java/org/apache/olingo/client/core/communication/request/retrieve/ODataValueRequestImpl.java b/lib/client-core/src/main/java/org/apache/olingo/client/core/communication/request/retrieve/ODataValueRequestImpl.java
index e6de8a6..9bbce7c 100644
--- a/lib/client-core/src/main/java/org/apache/olingo/client/core/communication/request/retrieve/ODataValueRequestImpl.java
+++ b/lib/client-core/src/main/java/org/apache/olingo/client/core/communication/request/retrieve/ODataValueRequestImpl.java
@@ -27,7 +27,7 @@ import org.apache.olingo.client.api.ODataClient;
 import org.apache.olingo.client.api.communication.request.retrieve.ODataValueRequest;
 import org.apache.olingo.client.api.communication.response.ODataRetrieveResponse;
 import org.apache.olingo.client.api.http.HttpClientException;
-import org.apache.olingo.commons.api.domain.ClientPrimitiveValue;
+import org.apache.olingo.client.api.domain.ClientPrimitiveValue;
 import org.apache.olingo.commons.api.edm.EdmPrimitiveTypeKind;
 import org.apache.olingo.commons.api.format.ODataFormat;
 

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/17152920/lib/client-core/src/main/java/org/apache/olingo/client/core/communication/request/retrieve/RetrieveRequestFactoryImpl.java
----------------------------------------------------------------------
diff --git a/lib/client-core/src/main/java/org/apache/olingo/client/core/communication/request/retrieve/RetrieveRequestFactoryImpl.java b/lib/client-core/src/main/java/org/apache/olingo/client/core/communication/request/retrieve/RetrieveRequestFactoryImpl.java
index 4717f7a..1f5d80b 100644
--- a/lib/client-core/src/main/java/org/apache/olingo/client/core/communication/request/retrieve/RetrieveRequestFactoryImpl.java
+++ b/lib/client-core/src/main/java/org/apache/olingo/client/core/communication/request/retrieve/RetrieveRequestFactoryImpl.java
@@ -35,10 +35,10 @@ import org.apache.olingo.client.api.communication.request.retrieve.ODataValueReq
 import org.apache.olingo.client.api.communication.request.retrieve.RetrieveRequestFactory;
 import org.apache.olingo.client.api.communication.request.retrieve.XMLMetadataRequest;
 import org.apache.olingo.client.core.uri.URIUtils;
-import org.apache.olingo.commons.api.domain.ClientEntity;
-import org.apache.olingo.commons.api.domain.ClientEntitySet;
-import org.apache.olingo.commons.api.domain.ClientProperty;
-import org.apache.olingo.commons.api.domain.ClientSingleton;
+import org.apache.olingo.client.api.domain.ClientEntity;
+import org.apache.olingo.client.api.domain.ClientEntitySet;
+import org.apache.olingo.client.api.domain.ClientProperty;
+import org.apache.olingo.client.api.domain.ClientSingleton;
 
 public class RetrieveRequestFactoryImpl implements RetrieveRequestFactory {
 

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/17152920/lib/client-core/src/main/java/org/apache/olingo/client/core/communication/request/streamed/ODataMediaEntityCreateRequestImpl.java
----------------------------------------------------------------------
diff --git a/lib/client-core/src/main/java/org/apache/olingo/client/core/communication/request/streamed/ODataMediaEntityCreateRequestImpl.java b/lib/client-core/src/main/java/org/apache/olingo/client/core/communication/request/streamed/ODataMediaEntityCreateRequestImpl.java
index a6bcb13..175258b 100644
--- a/lib/client-core/src/main/java/org/apache/olingo/client/core/communication/request/streamed/ODataMediaEntityCreateRequestImpl.java
+++ b/lib/client-core/src/main/java/org/apache/olingo/client/core/communication/request/streamed/ODataMediaEntityCreateRequestImpl.java
@@ -32,7 +32,7 @@ import org.apache.olingo.client.core.communication.request.AbstractODataStreamMa
 import org.apache.olingo.client.core.communication.response.AbstractODataResponse;
 import org.apache.olingo.commons.api.data.Entity;
 import org.apache.olingo.commons.api.data.ResWrap;
-import org.apache.olingo.commons.api.domain.ClientEntity;
+import org.apache.olingo.client.api.domain.ClientEntity;
 import org.apache.olingo.commons.api.http.HttpMethod;
 import org.apache.olingo.commons.api.serialization.ODataDeserializerException;
 


[28/50] [abbrv] olingo-odata4 git commit: [OLINGO-564] Renamed 'OData*' to 'Client*' classes

Posted by mi...@apache.org.
http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/c37d4da5/lib/commons-core/src/main/java/org/apache/olingo/commons/core/domain/ClientDeltaLinkImpl.java
----------------------------------------------------------------------
diff --git a/lib/commons-core/src/main/java/org/apache/olingo/commons/core/domain/ClientDeltaLinkImpl.java b/lib/commons-core/src/main/java/org/apache/olingo/commons/core/domain/ClientDeltaLinkImpl.java
new file mode 100644
index 0000000..a21f7ae
--- /dev/null
+++ b/lib/commons-core/src/main/java/org/apache/olingo/commons/core/domain/ClientDeltaLinkImpl.java
@@ -0,0 +1,78 @@
+/*
+ * 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.commons.core.domain;
+
+import org.apache.olingo.commons.api.domain.ClientAnnotation;
+import org.apache.olingo.commons.api.domain.ClientDeltaLink;
+import org.apache.olingo.commons.api.domain.ClientItem;
+
+import java.net.URI;
+import java.util.ArrayList;
+import java.util.List;
+
+public class ClientDeltaLinkImpl extends ClientItem implements ClientDeltaLink {
+
+  private URI source;
+
+  private String relationship;
+
+  private URI target;
+
+  private final List<ClientAnnotation> annotations = new ArrayList<ClientAnnotation>();
+
+  public ClientDeltaLinkImpl() {
+    super(null);
+  }
+
+  @Override
+  public URI getSource() {
+    return source;
+  }
+
+  @Override
+  public void setSource(final URI source) {
+    this.source = source;
+  }
+
+  @Override
+  public String getRelationship() {
+    return relationship;
+  }
+
+  @Override
+  public void setRelationship(final String relationship) {
+    this.relationship = relationship;
+  }
+
+  @Override
+  public URI getTarget() {
+    return target;
+  }
+
+  @Override
+  public void setTarget(final URI target) {
+    this.target = target;
+  }
+
+  @Override
+  public List<ClientAnnotation> getAnnotations() {
+    return annotations;
+  }
+
+}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/c37d4da5/lib/commons-core/src/main/java/org/apache/olingo/commons/core/domain/ClientEntityImpl.java
----------------------------------------------------------------------
diff --git a/lib/commons-core/src/main/java/org/apache/olingo/commons/core/domain/ClientEntityImpl.java b/lib/commons-core/src/main/java/org/apache/olingo/commons/core/domain/ClientEntityImpl.java
new file mode 100644
index 0000000..0c2ef29
--- /dev/null
+++ b/lib/commons-core/src/main/java/org/apache/olingo/commons/core/domain/ClientEntityImpl.java
@@ -0,0 +1,298 @@
+/*
+ * 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.commons.core.domain;
+
+import java.net.URI;
+import java.util.ArrayList;
+import java.util.List;
+
+import org.apache.commons.lang3.StringUtils;
+import org.apache.olingo.commons.api.domain.AbstractClientPayload;
+import org.apache.olingo.commons.api.domain.ClientAnnotation;
+import org.apache.olingo.commons.api.domain.ClientEntity;
+import org.apache.olingo.commons.api.domain.ClientLink;
+import org.apache.olingo.commons.api.domain.ClientOperation;
+import org.apache.olingo.commons.api.domain.ClientProperty;
+import org.apache.olingo.commons.api.domain.ClientSingleton;
+import org.apache.olingo.commons.api.edm.FullQualifiedName;
+
+public class ClientEntityImpl extends AbstractClientPayload implements ClientEntity, ClientSingleton {
+
+  /**
+   * Entity id.
+   */
+  private URI id;
+  /**
+   * ETag.
+   */
+  private String eTag;
+  /**
+   * Media entity flag.
+   */
+  private boolean mediaEntity = false;
+  /**
+   * In case of media entity, media content type.
+   */
+  private String mediaContentType;
+  /**
+   * In case of media entity, media content source.
+   */
+  private URI mediaContentSource;
+  /**
+   * Media ETag.
+   */
+  private String mediaETag;
+  /**
+   * Edit link.
+   */
+  private URI editLink;
+
+  private final List<ClientProperty> properties = new ArrayList<ClientProperty>();
+
+  private final List<ClientAnnotation> annotations = new ArrayList<ClientAnnotation>();
+
+  private final FullQualifiedName typeName;
+  /**
+   * Navigation links (might contain in-line entities or entity sets).
+   */
+  private final List<ClientLink> navigationLinks = new ArrayList<ClientLink>();
+  /**
+   * Association links.
+   */
+  private final List<ClientLink> associationLinks = new ArrayList<ClientLink>();
+  /**
+   * Media edit links.
+   */
+  private final List<ClientLink> mediaEditLinks = new ArrayList<ClientLink>();
+  /**
+   * Operations (legacy, functions, actions).
+   */
+  private final List<ClientOperation> operations = new ArrayList<ClientOperation>();
+
+  public ClientEntityImpl(final FullQualifiedName typeName) {
+    super(typeName == null ? null : typeName.toString());
+    this.typeName = typeName;
+  }
+
+  @Override
+  public FullQualifiedName getTypeName() {
+    return typeName;
+  }
+
+  @Override
+  public String getETag() {
+    return eTag;
+  }
+
+  @Override
+  public void setETag(final String eTag) {
+    this.eTag = eTag;
+  }
+
+  @Override
+  public ClientOperation getOperation(final String title) {
+    ClientOperation result = null;
+    for (ClientOperation operation : operations) {
+      if (title.equals(operation.getTitle())) {
+        result = operation;
+        break;
+      }
+    }
+
+    return result;
+  }
+
+  /**
+   * Gets operations.
+   *
+   * @return operations.
+   */
+  @Override
+  public List<ClientOperation> getOperations() {
+    return operations;
+  }
+
+
+  @Override
+  public ClientProperty getProperty(final String name) {
+    ClientProperty result = null;
+
+    if (StringUtils.isNotBlank(name)) {
+      for (ClientProperty property : getProperties()) {
+        if (name.equals(property.getName())) {
+          result = property;
+          break;
+        }
+      }
+    }
+
+    return result;
+  }
+
+  @Override
+  public boolean addLink(final ClientLink link) {
+    boolean result = false;
+
+    switch (link.getType()) {
+      case ASSOCIATION:
+        result = associationLinks.contains(link) ? false : associationLinks.add(link);
+        break;
+
+      case ENTITY_NAVIGATION:
+      case ENTITY_SET_NAVIGATION:
+        result = navigationLinks.contains(link) ? false : navigationLinks.add(link);
+        break;
+
+      case MEDIA_EDIT:
+        result = mediaEditLinks.contains(link) ? false : mediaEditLinks.add(link);
+        break;
+
+      default:
+    }
+
+    return result;
+  }
+
+  @Override
+  public boolean removeLink(final ClientLink link) {
+    return associationLinks.remove(link) || navigationLinks.remove(link);
+  }
+
+  private ClientLink getLink(final List<ClientLink> links, final String name) {
+    ClientLink result = null;
+    for (ClientLink link : links) {
+      if (name.equals(link.getName())) {
+        result = link;
+        break;
+      }
+    }
+
+    return result;
+  }
+
+  @Override
+  public ClientLink getNavigationLink(final String name) {
+    return getLink(navigationLinks, name);
+  }
+
+  @Override
+  public List<ClientLink> getNavigationLinks() {
+    return navigationLinks;
+  }
+
+  @Override
+  public ClientLink getAssociationLink(final String name) {
+    return getLink(associationLinks, name);
+  }
+
+  @Override
+  public List<ClientLink> getAssociationLinks() {
+    return associationLinks;
+  }
+
+  @Override
+  public ClientLink getMediaEditLink(final String name) {
+    return getLink(mediaEditLinks, name);
+  }
+
+  @Override
+  public List<ClientLink> getMediaEditLinks() {
+    return mediaEditLinks;
+  }
+
+  @Override
+  public URI getEditLink() {
+    return editLink;
+  }
+
+  @Override
+  public void setEditLink(final URI editLink) {
+    this.editLink = editLink;
+  }
+
+  @Override
+  public URI getLink() {
+    return super.getLink() == null ? getEditLink() : super.getLink();
+  }
+
+  @Override
+  public boolean isReadOnly() {
+    return super.getLink() != null;
+  }
+
+  @Override
+  public boolean isMediaEntity() {
+    return mediaEntity;
+  }
+
+  @Override
+  public void setMediaEntity(final boolean isMediaEntity) {
+    mediaEntity = isMediaEntity;
+  }
+
+  @Override
+  public String getMediaContentType() {
+    return mediaContentType;
+  }
+
+  @Override
+  public void setMediaContentType(final String mediaContentType) {
+    this.mediaContentType = mediaContentType;
+  }
+
+  @Override
+  public URI getMediaContentSource() {
+    return mediaContentSource;
+  }
+
+  @Override
+  public void setMediaContentSource(final URI mediaContentSource) {
+    this.mediaContentSource = mediaContentSource;
+  }
+
+  @Override
+  public String getMediaETag() {
+    return mediaETag;
+  }
+
+  @Override
+  public void setMediaETag(final String eTag) {
+    mediaETag = eTag;
+  }
+
+  @Override
+  public URI getId() {
+    return id;
+  }
+
+  @Override
+  public void setId(final URI id) {
+    this.id = id;
+  }
+
+  @Override
+  public List<ClientProperty> getProperties() {
+    return properties;
+  }
+
+  @Override
+  public List<ClientAnnotation> getAnnotations() {
+    return annotations;
+  }
+}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/c37d4da5/lib/commons-core/src/main/java/org/apache/olingo/commons/core/domain/ClientEntitySetImpl.java
----------------------------------------------------------------------
diff --git a/lib/commons-core/src/main/java/org/apache/olingo/commons/core/domain/ClientEntitySetImpl.java b/lib/commons-core/src/main/java/org/apache/olingo/commons/core/domain/ClientEntitySetImpl.java
new file mode 100644
index 0000000..4e4d79b
--- /dev/null
+++ b/lib/commons-core/src/main/java/org/apache/olingo/commons/core/domain/ClientEntitySetImpl.java
@@ -0,0 +1,65 @@
+/*
+ * 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.commons.core.domain;
+
+import org.apache.olingo.commons.api.domain.ClientAnnotation;
+import org.apache.olingo.commons.api.domain.ClientEntity;
+import org.apache.olingo.commons.api.domain.ClientEntitySet;
+
+import java.net.URI;
+import java.util.ArrayList;
+import java.util.List;
+
+public class ClientEntitySetImpl extends AbstractClientEntitySet implements ClientEntitySet {
+
+  private URI deltaLink;
+
+  private final List<ClientEntity> entities = new ArrayList<ClientEntity>();
+
+  private final List<ClientAnnotation> annotations = new ArrayList<ClientAnnotation>();
+
+  public ClientEntitySetImpl() {
+    super();
+  }
+
+  public ClientEntitySetImpl(final URI next) {
+    super(next);
+  }
+
+  @Override
+  public List<ClientEntity> getEntities() {
+    return entities;
+  }
+
+  @Override
+  public URI getDeltaLink() {
+    return deltaLink;
+  }
+
+  @Override
+  public void setDeltaLink(final URI deltaLink) {
+    this.deltaLink = deltaLink;
+  }
+
+  @Override
+  public List<ClientAnnotation> getAnnotations() {
+    return annotations;
+  }
+
+}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/c37d4da5/lib/commons-core/src/main/java/org/apache/olingo/commons/core/domain/ClientEnumValueImpl.java
----------------------------------------------------------------------
diff --git a/lib/commons-core/src/main/java/org/apache/olingo/commons/core/domain/ClientEnumValueImpl.java b/lib/commons-core/src/main/java/org/apache/olingo/commons/core/domain/ClientEnumValueImpl.java
new file mode 100644
index 0000000..12634d4
--- /dev/null
+++ b/lib/commons-core/src/main/java/org/apache/olingo/commons/core/domain/ClientEnumValueImpl.java
@@ -0,0 +1,59 @@
+/*
+ * 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.commons.core.domain;
+
+import org.apache.olingo.commons.api.domain.AbstractClientValue;
+import org.apache.olingo.commons.api.domain.ClientEnumValue;
+
+public class ClientEnumValueImpl extends AbstractClientValue implements ClientEnumValue {
+
+  private final String value;
+
+  public ClientEnumValueImpl(final String typeName, final String value) {
+    super(typeName);
+    this.value = value;
+  }
+
+  @Override
+  public String getValue() {
+    return value;
+  }
+
+  @Override
+  public boolean isEnum() {
+    return true;
+  }
+
+  @Override
+  public ClientEnumValue asEnum() {
+    return this;
+  }
+
+  @Override
+  public boolean isComplex() {
+    return false;
+  }
+
+  @Override
+  public String toString() {
+    return getTypeName() + "'" + getValue() + "'";
+
+  }
+
+}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/c37d4da5/lib/commons-core/src/main/java/org/apache/olingo/commons/core/domain/ClientObjectFactoryImpl.java
----------------------------------------------------------------------
diff --git a/lib/commons-core/src/main/java/org/apache/olingo/commons/core/domain/ClientObjectFactoryImpl.java b/lib/commons-core/src/main/java/org/apache/olingo/commons/core/domain/ClientObjectFactoryImpl.java
new file mode 100644
index 0000000..ed4692f
--- /dev/null
+++ b/lib/commons-core/src/main/java/org/apache/olingo/commons/core/domain/ClientObjectFactoryImpl.java
@@ -0,0 +1,155 @@
+/*
+ * 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.commons.core.domain;
+
+import java.net.URI;
+
+import org.apache.olingo.commons.api.domain.ClientCollectionValue;
+import org.apache.olingo.commons.api.domain.ClientComplexValue;
+import org.apache.olingo.commons.api.domain.ClientDelta;
+import org.apache.olingo.commons.api.domain.ClientEntity;
+import org.apache.olingo.commons.api.domain.ClientEntitySet;
+import org.apache.olingo.commons.api.domain.ClientEnumValue;
+import org.apache.olingo.commons.api.domain.ClientInlineEntity;
+import org.apache.olingo.commons.api.domain.ClientInlineEntitySet;
+import org.apache.olingo.commons.api.domain.ClientLink;
+import org.apache.olingo.commons.api.domain.ClientLinkType;
+import org.apache.olingo.commons.api.domain.ClientObjectFactory;
+import org.apache.olingo.commons.api.domain.ClientPrimitiveValue;
+import org.apache.olingo.commons.api.domain.ClientProperty;
+import org.apache.olingo.commons.api.domain.ClientSingleton;
+import org.apache.olingo.commons.api.domain.ClientValue;
+import org.apache.olingo.commons.api.edm.FullQualifiedName;
+
+public class ClientObjectFactoryImpl implements ClientObjectFactory {
+
+  @Override
+  public ClientInlineEntitySet newDeepInsertEntitySet(final String name, final ClientEntitySet entitySet) {
+    return new ClientInlineEntitySet(null, ClientLinkType.ENTITY_SET_NAVIGATION, name, entitySet);
+  }
+
+  @Override
+  public ClientInlineEntity newDeepInsertEntity(final String name, final ClientEntity entity) {
+    return new ClientInlineEntity(null, ClientLinkType.ENTITY_NAVIGATION, name, entity);
+  }
+
+  @Override
+  public ClientEntitySet newEntitySet() {
+    return new ClientEntitySetImpl();
+  }
+
+  @Override
+  public ClientEntitySet newEntitySet(final URI next) {
+    return new ClientEntitySetImpl(next);
+  }
+
+  @Override
+  public ClientEntity newEntity(final FullQualifiedName typeName) {
+    return new ClientEntityImpl(typeName);
+  }
+
+  @Override
+  public ClientEntity newEntity(final FullQualifiedName typeName, final URI link) {
+    final ClientEntityImpl result = new ClientEntityImpl(typeName);
+    result.setLink(link);
+    return result;
+  }
+
+  @Override
+  public ClientSingleton newSingleton(final FullQualifiedName typeName) {
+    return new ClientEntityImpl(typeName);
+  }
+
+  @Override
+  public ClientLink newEntityNavigationLink(final String name, final URI link) {
+    return new ClientLink.Builder().setURI(link).
+        setType(ClientLinkType.ENTITY_NAVIGATION).setTitle(name).build();
+  }
+
+  @Override
+  public ClientLink newEntitySetNavigationLink(final String name, final URI link) {
+    return new ClientLink.Builder().setURI(link).
+        setType(ClientLinkType.ENTITY_SET_NAVIGATION).setTitle(name).build();
+  }
+
+  @Override
+  public ClientLink newAssociationLink(final String name, final URI link) {
+    return new ClientLink.Builder().setURI(link).
+        setType(ClientLinkType.ASSOCIATION).setTitle(name).build();
+  }
+
+  @Override
+  public ClientLink newMediaEditLink(final String name, final URI link) {
+    return new ClientLink.Builder().setURI(link).
+        setType(ClientLinkType.MEDIA_EDIT).setTitle(name).build();
+  }
+
+  @Override
+  public ClientPrimitiveValue.Builder newPrimitiveValueBuilder() {
+    return new ClientPrimitiveValueImpl.BuilderImpl();
+  }
+
+  @Override
+  public ClientEnumValue newEnumValue(final String typeName, final String value) {
+    return new ClientEnumValueImpl(typeName, value);
+  }
+
+  @Override
+  public ClientComplexValue newComplexValue(final String typeName) {
+    return new ClientComplexValueImpl(typeName);
+  }
+
+  @Override
+  public ClientCollectionValue<ClientValue> newCollectionValue(final String typeName) {
+    return new ClientCollectionValueImpl<ClientValue>(typeName);
+  }
+
+  @Override
+  public ClientProperty newPrimitiveProperty(final String name, final ClientPrimitiveValue value) {
+    return new ClientPropertyImpl(name, value);
+  }
+
+  @Override
+  public ClientProperty newComplexProperty(final String name, final ClientComplexValue value) {
+
+    return new ClientPropertyImpl(name, value);
+  }
+
+  @Override
+  public ClientProperty newCollectionProperty(final String name,
+      final ClientCollectionValue<? extends ClientValue> value) {
+
+    return new ClientPropertyImpl(name, value);
+  }
+
+  @Override
+  public ClientProperty newEnumProperty(final String name, final ClientEnumValue value) {
+    return new ClientPropertyImpl(name, value);
+  }
+
+  @Override
+  public ClientDelta newDelta() {
+    return new ClientDeltaImpl();
+  }
+
+  @Override
+  public ClientDelta newDelta(final URI next) {
+    return new ClientDeltaImpl(next);
+  }
+}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/c37d4da5/lib/commons-core/src/main/java/org/apache/olingo/commons/core/domain/ClientPrimitiveValueImpl.java
----------------------------------------------------------------------
diff --git a/lib/commons-core/src/main/java/org/apache/olingo/commons/core/domain/ClientPrimitiveValueImpl.java b/lib/commons-core/src/main/java/org/apache/olingo/commons/core/domain/ClientPrimitiveValueImpl.java
new file mode 100644
index 0000000..0f6ad2b
--- /dev/null
+++ b/lib/commons-core/src/main/java/org/apache/olingo/commons/core/domain/ClientPrimitiveValueImpl.java
@@ -0,0 +1,222 @@
+/*
+ * 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.commons.core.domain;
+
+import java.util.UUID;
+
+import org.apache.olingo.commons.api.Constants;
+import org.apache.olingo.commons.api.domain.AbstractClientValue;
+import org.apache.olingo.commons.api.domain.ClientEnumValue;
+import org.apache.olingo.commons.api.domain.ClientPrimitiveValue;
+import org.apache.olingo.commons.api.domain.ClientValue;
+import org.apache.olingo.commons.api.edm.EdmPrimitiveType;
+import org.apache.olingo.commons.api.edm.EdmPrimitiveTypeException;
+import org.apache.olingo.commons.api.edm.EdmPrimitiveTypeKind;
+import org.apache.olingo.commons.api.edm.EdmType;
+import org.apache.olingo.commons.api.edm.constants.EdmTypeKind;
+import org.apache.olingo.commons.core.edm.primitivetype.EdmPrimitiveTypeFactory;
+
+public class ClientPrimitiveValueImpl extends AbstractClientValue implements ClientValue, ClientPrimitiveValue {
+
+  public static class BuilderImpl implements Builder {
+
+    private final ClientPrimitiveValueImpl instance;
+
+    public BuilderImpl() {
+      instance = new ClientPrimitiveValueImpl();
+    }
+
+    @Override
+    public BuilderImpl setType(final EdmType type) {
+      EdmPrimitiveTypeKind primitiveTypeKind = null;
+      if (type != null) {
+        if (type.getKind() != EdmTypeKind.PRIMITIVE) {
+          throw new IllegalArgumentException(String.format("Provided type %s is not primitive", type));
+        }
+        primitiveTypeKind = EdmPrimitiveTypeKind.valueOf(type.getName());
+      }
+      return setType(primitiveTypeKind);
+    }
+
+    @Override
+    public BuilderImpl setType(final EdmPrimitiveTypeKind type) {
+      if (type == EdmPrimitiveTypeKind.Stream) {
+        throw new IllegalArgumentException(String.format(
+                "Cannot build a primitive value for %s", EdmPrimitiveTypeKind.Stream.toString()));
+      }
+      if (type == EdmPrimitiveTypeKind.Geography || type == EdmPrimitiveTypeKind.Geometry) {
+        throw new IllegalArgumentException(
+                type + "is not an instantiable type. "
+                        + "An entity can declare a property to be of type Geometry. "
+                        + "An instance of an entity MUST NOT have a value of type Geometry. "
+                        + "Each value MUST be of some subtype.");
+      }
+
+      instance.typeKind = type == null ? EdmPrimitiveTypeKind.String : type;
+      instance.type = EdmPrimitiveTypeFactory.getInstance(instance.typeKind);
+
+      return this;
+    }
+
+    @Override
+    public BuilderImpl setValue(final Object value) {
+      instance.value = value;
+      return this;
+    }
+
+    @Override
+    public ClientPrimitiveValue build() {
+      if (instance.type == null) {
+        setType(EdmPrimitiveTypeKind.String);
+      }
+      return instance;
+    }
+
+    @Override
+    public ClientPrimitiveValue buildBoolean(final Boolean value) {
+      return setType(EdmPrimitiveTypeKind.Boolean).setValue(value).build();
+    }
+
+    @Override
+    public ClientPrimitiveValue buildInt16(final Short value) {
+      return setType(EdmPrimitiveTypeKind.Int16).setValue(value).build();
+    }
+
+    @Override
+    public ClientPrimitiveValue buildInt32(final Integer value) {
+      return setType(EdmPrimitiveTypeKind.Int32).setValue(value).build();
+    }
+
+    @Override
+    public ClientPrimitiveValue buildInt64(final Long value) {
+      return setType(EdmPrimitiveTypeKind.Int64).setValue(value).build();
+    }
+
+    @Override
+    public ClientPrimitiveValue buildSingle(final Float value) {
+      return setType(EdmPrimitiveTypeKind.Single).setValue(value).build();
+    }
+
+    @Override
+    public ClientPrimitiveValue buildDouble(final Double value) {
+      return setType(EdmPrimitiveTypeKind.Double).setValue(value).build();
+    }
+
+    @Override
+    public ClientPrimitiveValue buildString(final String value) {
+      return setType(EdmPrimitiveTypeKind.String).setValue(value).build();
+    }
+
+    @Override
+    public ClientPrimitiveValue buildGuid(final UUID value) {
+      return setType(EdmPrimitiveTypeKind.Guid).setValue(value).build();
+    }
+
+    @Override
+    public ClientPrimitiveValue buildBinary(final byte[] value) {
+      return setType(EdmPrimitiveTypeKind.Binary).setValue(value).build();
+    }
+
+  }
+
+  /**
+   * Type kind.
+   */
+  private EdmPrimitiveTypeKind typeKind;
+
+  /**
+   * Type.
+   */
+  private EdmPrimitiveType type;
+
+  /**
+   * Actual value.
+   */
+  private Object value;
+
+  protected ClientPrimitiveValueImpl() {
+    super(null);
+  }
+
+  @Override
+  public String getTypeName() {
+    return typeKind.getFullQualifiedName().toString();
+  }
+
+  @Override
+  public EdmPrimitiveTypeKind getTypeKind() {
+    return typeKind;
+  }
+
+  @Override
+  public EdmPrimitiveType getType() {
+    return type;
+  }
+
+  @Override
+  public Object toValue() {
+    return value;
+  }
+
+  @Override
+  public <T> T toCastValue(final Class<T> reference) throws EdmPrimitiveTypeException {
+    if (value == null) {
+      return null;
+    } else if (typeKind.isGeospatial()) {
+      return reference.cast(value);
+    } else {
+      // TODO: set facets
+      return type.valueOfString(type.valueToString(value,
+                      null, null, Constants.DEFAULT_PRECISION, Constants.DEFAULT_SCALE, null),
+              null, null, Constants.DEFAULT_PRECISION, Constants.DEFAULT_SCALE, null, reference);
+    }
+  }
+
+  @Override
+  public String toString() {
+    if (value == null) {
+      return "";
+    } else if (typeKind.isGeospatial()) {
+      return value.toString();
+    } else {
+      try {
+        // TODO: set facets
+        return type.valueToString(value, null, null, Constants.DEFAULT_PRECISION, Constants.DEFAULT_SCALE, null);
+      } catch (EdmPrimitiveTypeException e) {
+        throw new IllegalArgumentException(e);
+      }
+    }
+  }
+
+  @Override
+  public boolean isEnum() {
+    return false;
+  }
+
+  @Override
+  public ClientEnumValue asEnum() {
+    return null;
+  }
+
+  @Override
+  public boolean isComplex() {
+    return false;
+  }
+
+}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/c37d4da5/lib/commons-core/src/main/java/org/apache/olingo/commons/core/domain/ClientPropertyImpl.java
----------------------------------------------------------------------
diff --git a/lib/commons-core/src/main/java/org/apache/olingo/commons/core/domain/ClientPropertyImpl.java b/lib/commons-core/src/main/java/org/apache/olingo/commons/core/domain/ClientPropertyImpl.java
new file mode 100644
index 0000000..e53c94b
--- /dev/null
+++ b/lib/commons-core/src/main/java/org/apache/olingo/commons/core/domain/ClientPropertyImpl.java
@@ -0,0 +1,163 @@
+/*
+ * 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.commons.core.domain;
+
+import java.util.ArrayList;
+import java.util.List;
+
+import org.apache.commons.lang3.builder.EqualsBuilder;
+import org.apache.commons.lang3.builder.HashCodeBuilder;
+import org.apache.olingo.commons.api.domain.ClientAnnotatable;
+import org.apache.olingo.commons.api.domain.ClientAnnotation;
+import org.apache.olingo.commons.api.domain.ClientCollectionValue;
+import org.apache.olingo.commons.api.domain.ClientComplexValue;
+import org.apache.olingo.commons.api.domain.ClientEnumValue;
+import org.apache.olingo.commons.api.domain.ClientPrimitiveValue;
+import org.apache.olingo.commons.api.domain.ClientProperty;
+import org.apache.olingo.commons.api.domain.ClientValuable;
+import org.apache.olingo.commons.api.domain.ClientValue;
+
+public class ClientPropertyImpl implements ClientProperty, ClientAnnotatable, ClientValuable {
+
+
+  private final List<ClientAnnotation> annotations = new ArrayList<ClientAnnotation>();
+  private final String name;
+  private final ClientValue value;
+  private final ClientValuable valuable;
+
+  public ClientPropertyImpl(final String name, final ClientValue value) {
+    this.name = name;
+    this.value = value;
+    this.valuable = new ClientValuableImpl(value);
+  }
+
+  /**
+   * Returns property name.
+   *
+   * @return property name.
+   */
+  @Override
+  public String getName() {
+    return name;
+  }
+
+  /**
+   * Returns property value.
+   *
+   * @return property value.
+   */
+  @Override
+  public ClientValue getValue() {
+    return value;
+  }
+
+  /**
+   * Checks if has null value.
+   *
+   * @return 'TRUE' if has null value; 'FALSE' otherwise.
+   */
+  @Override
+  public boolean hasNullValue() {
+    return value == null || value.isPrimitive() && value.asPrimitive().toValue() == null;
+  }
+
+  /**
+   * Checks if has primitive value.
+   *
+   * @return 'TRUE' if has primitive value; 'FALSE' otherwise.
+   */
+  @Override
+  public boolean hasPrimitiveValue() {
+    return !hasNullValue() && value.isPrimitive();
+  }
+
+  /**
+   * Gets primitive value.
+   *
+   * @return primitive value if exists; null otherwise.
+   */
+  @Override
+  public ClientPrimitiveValue getPrimitiveValue() {
+    return hasPrimitiveValue() ? value.asPrimitive() : null;
+  }
+
+  /**
+   * Checks if has complex value.
+   *
+   * @return 'TRUE' if has complex value; 'FALSE' otherwise.
+   */
+  @Override
+  public boolean hasComplexValue() {
+    return !hasNullValue() && value.isComplex();
+  }
+
+  /**
+   * Checks if has collection value.
+   *
+   * @return 'TRUE' if has collection value; 'FALSE' otherwise.
+   */
+  @Override
+  public boolean hasCollectionValue() {
+    return !hasNullValue() && value.isCollection();
+  }
+
+  @Override
+  public boolean equals(final Object obj) {
+    return EqualsBuilder.reflectionEquals(this, obj);
+  }
+
+  @Override
+  public int hashCode() {
+    return HashCodeBuilder.reflectionHashCode(this);
+  }
+
+  @Override
+  public boolean hasEnumValue() {
+    return valuable.hasEnumValue();
+  }
+
+  @Override
+  public ClientEnumValue getEnumValue() {
+    return valuable.getEnumValue();
+  }
+
+  @Override
+  public ClientComplexValue getComplexValue() {
+    return valuable.getComplexValue();
+  }
+
+  @Override
+  public ClientCollectionValue<ClientValue> getCollectionValue() {
+    return valuable.getCollectionValue();
+  }
+
+  @Override
+  public List<ClientAnnotation> getAnnotations() {
+    return annotations;
+  }
+
+  @Override
+  public String toString() {
+    return "ODataPropertyImpl{"
+        + "name=" + getName()
+        + ",valuable=" + valuable
+        + ", annotations=" + annotations
+        + '}';
+  }
+}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/c37d4da5/lib/commons-core/src/main/java/org/apache/olingo/commons/core/domain/ClientValuableImpl.java
----------------------------------------------------------------------
diff --git a/lib/commons-core/src/main/java/org/apache/olingo/commons/core/domain/ClientValuableImpl.java b/lib/commons-core/src/main/java/org/apache/olingo/commons/core/domain/ClientValuableImpl.java
new file mode 100644
index 0000000..561d3df
--- /dev/null
+++ b/lib/commons-core/src/main/java/org/apache/olingo/commons/core/domain/ClientValuableImpl.java
@@ -0,0 +1,111 @@
+/*
+ * 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.commons.core.domain;
+
+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.commons.api.domain.ClientCollectionValue;
+import org.apache.olingo.commons.api.domain.ClientComplexValue;
+import org.apache.olingo.commons.api.domain.ClientEnumValue;
+import org.apache.olingo.commons.api.domain.ClientPrimitiveValue;
+import org.apache.olingo.commons.api.domain.ClientValuable;
+import org.apache.olingo.commons.api.domain.ClientValue;
+
+public class ClientValuableImpl implements ClientValuable {
+
+  private final ClientValue value;
+
+  public ClientValuableImpl(final ClientValue value) {
+    this.value = value;
+  }
+
+  @Override
+  public ClientValue getValue() {
+    return value;
+  }
+
+  @Override
+  public boolean hasNullValue() {
+    return value == null;
+  }
+
+  @Override
+  public boolean hasPrimitiveValue() {
+    return !hasNullValue() && value.isPrimitive();
+  }
+
+  @Override
+  public ClientPrimitiveValue getPrimitiveValue() {
+    return hasPrimitiveValue() ? value.asPrimitive() : null;
+  }
+
+  @Override
+  public boolean hasCollectionValue() {
+    return !hasNullValue() && value.isCollection();
+  }
+
+  @Override
+  public ClientCollectionValue<ClientValue> getCollectionValue() {
+    return hasCollectionValue()
+        ? getValue().<ClientValue> asCollection()
+        : null;
+  }
+
+  @Override
+  public boolean hasComplexValue() {
+    return !hasNullValue() && value.isComplex();
+  }
+
+  @Override
+  public ClientComplexValue getComplexValue() {
+    return hasComplexValue()
+        ? getValue().asComplex()
+        : null;
+  }
+
+  @Override
+  public boolean hasEnumValue() {
+    return !hasNullValue() && getValue().isEnum();
+  }
+
+  @Override
+  public ClientEnumValue getEnumValue() {
+    return hasEnumValue()
+        ? getValue().asEnum()
+        : null;
+  }
+
+  @Override
+  public boolean equals(final Object obj) {
+    return EqualsBuilder.reflectionEquals(this, obj);
+  }
+
+  @Override
+  public int hashCode() {
+    return HashCodeBuilder.reflectionHashCode(this);
+  }
+
+  @Override
+  public String toString() {
+    return ReflectionToStringBuilder.toString(this, ToStringStyle.MULTI_LINE_STYLE);
+  }
+
+}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/c37d4da5/lib/commons-core/src/main/java/org/apache/olingo/commons/core/domain/ODataAnnotationImpl.java
----------------------------------------------------------------------
diff --git a/lib/commons-core/src/main/java/org/apache/olingo/commons/core/domain/ODataAnnotationImpl.java b/lib/commons-core/src/main/java/org/apache/olingo/commons/core/domain/ODataAnnotationImpl.java
deleted file mode 100644
index 1ca150b..0000000
--- a/lib/commons-core/src/main/java/org/apache/olingo/commons/core/domain/ODataAnnotationImpl.java
+++ /dev/null
@@ -1,102 +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.commons.core.domain;
-
-import org.apache.olingo.commons.api.domain.ODataAnnotation;
-import org.apache.olingo.commons.api.domain.ODataCollectionValue;
-import org.apache.olingo.commons.api.domain.ODataComplexValue;
-import org.apache.olingo.commons.api.domain.ODataEnumValue;
-import org.apache.olingo.commons.api.domain.ODataPrimitiveValue;
-import org.apache.olingo.commons.api.domain.ODataValuable;
-import org.apache.olingo.commons.api.domain.ODataValue;
-
-public class ODataAnnotationImpl implements ODataAnnotation {
-
-  private final String term;
-
-  private final ODataValuable valuable;
-
-  public ODataAnnotationImpl(final String term, final ODataValue value) {
-    this.term = term;
-    valuable = new ODataValuableImpl(value);
-  }
-
-  @Override
-  public String getTerm() {
-    return term;
-  }
-
-  @Override
-  public ODataValue getValue() {
-    return valuable.getValue();
-  }
-
-  @Override
-  public boolean hasNullValue() {
-    return valuable.hasNullValue();
-  }
-
-  @Override
-  public boolean hasPrimitiveValue() {
-    return valuable.hasPrimitiveValue();
-  }
-
-  @Override
-  public ODataPrimitiveValue getPrimitiveValue() {
-    return valuable.getPrimitiveValue();
-  }
-
-  @Override
-  public boolean hasCollectionValue() {
-    return valuable.hasCollectionValue();
-  }
-
-  @Override
-  public ODataCollectionValue<ODataValue> getCollectionValue() {
-    return valuable.getCollectionValue();
-  }
-
-  @Override
-  public boolean hasComplexValue() {
-    return valuable.hasComplexValue();
-  }
-
-  @Override
-  public ODataComplexValue getComplexValue() {
-    return valuable.getComplexValue();
-  }
-
-  @Override
-  public boolean hasEnumValue() {
-    return valuable.hasEnumValue();
-  }
-
-  @Override
-  public ODataEnumValue getEnumValue() {
-    return valuable.getEnumValue();
-  }
-
-  @Override
-  public String toString() {
-    return "ODataPropertyImpl{"
-        + "term=" + term
-        + ",valuable=" + valuable
-        + '}';
-  }
-}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/c37d4da5/lib/commons-core/src/main/java/org/apache/olingo/commons/core/domain/ODataCollectionValueImpl.java
----------------------------------------------------------------------
diff --git a/lib/commons-core/src/main/java/org/apache/olingo/commons/core/domain/ODataCollectionValueImpl.java b/lib/commons-core/src/main/java/org/apache/olingo/commons/core/domain/ODataCollectionValueImpl.java
deleted file mode 100644
index c608313..0000000
--- a/lib/commons-core/src/main/java/org/apache/olingo/commons/core/domain/ODataCollectionValueImpl.java
+++ /dev/null
@@ -1,124 +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.commons.core.domain;
-
-import java.util.ArrayList;
-import java.util.Collection;
-import java.util.Iterator;
-import java.util.List;
-
-import org.apache.olingo.commons.api.domain.AbstractODataValue;
-import org.apache.olingo.commons.api.domain.ODataCollectionValue;
-import org.apache.olingo.commons.api.domain.ODataEnumValue;
-import org.apache.olingo.commons.api.domain.ODataValue;
-
-public class ODataCollectionValueImpl<OV extends ODataValue> extends AbstractODataValue
-        implements ODataCollectionValue<OV>, ODataValue {
-
-  /**
-   * Constructor.
-   *
-   * @param typeName type name.
-   */
-  public ODataCollectionValueImpl(final String typeName) {
-    super(typeName == null || typeName.startsWith("Collection(") ? typeName : "Collection(" + typeName + ")");
-  }
-
-  @Override
-  public boolean isEnum() {
-    return false;
-  }
-
-  @Override
-  public ODataEnumValue asEnum() {
-    return null;
-  }
-
-  @Override
-  public boolean isComplex() {
-    return false;
-  }
-
-  @Override
-  public Collection<Object> asJavaCollection() {
-    final List<Object> result = new ArrayList<Object>();
-    for (ODataValue value : values) {
-      if (value.isPrimitive()) {
-        result.add(value.asPrimitive().toValue());
-      } else if (value.isComplex()) {
-        result.add(value.asComplex().asJavaMap());
-      } else if (value.isCollection()) {
-        result.add(value.asCollection().asJavaCollection());
-      } else if (value.isEnum()) {
-        result.add(value.asEnum().toString());
-      }
-    }
-
-    return result;
-  }
-
-  /**
-   * Values.
-   */
-  protected final List<OV> values = new ArrayList<OV>();
-
-  /**
-   * Adds a value to the collection.
-   *
-   * @param value value to be added.
-   */
-  @Override
-  @SuppressWarnings("unchecked")
-  public ODataCollectionValue<OV> add(final ODataValue value) {
-    values.add((OV) value);
-    return this;
-  }
-
-  /**
-   * Value iterator.
-   *
-   * @return value iterator.
-   */
-  @Override
-  public Iterator<OV> iterator() {
-    return values.iterator();
-  }
-
-  /**
-   * Gets collection size.
-   *
-   * @return collection size.
-   */
-  @Override
-  public int size() {
-    return values.size();
-  }
-
-  /**
-   * Checks if collection is empty.
-   *
-   * @return 'TRUE' if empty; 'FALSE' otherwise.
-   */
-  @Override
-  public boolean isEmpty() {
-    return values.isEmpty();
-  }
-
-
-}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/c37d4da5/lib/commons-core/src/main/java/org/apache/olingo/commons/core/domain/ODataComplexValueImpl.java
----------------------------------------------------------------------
diff --git a/lib/commons-core/src/main/java/org/apache/olingo/commons/core/domain/ODataComplexValueImpl.java b/lib/commons-core/src/main/java/org/apache/olingo/commons/core/domain/ODataComplexValueImpl.java
deleted file mode 100644
index efb5744..0000000
--- a/lib/commons-core/src/main/java/org/apache/olingo/commons/core/domain/ODataComplexValueImpl.java
+++ /dev/null
@@ -1,204 +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.commons.core.domain;
-
-import java.util.ArrayList;
-import java.util.Iterator;
-import java.util.LinkedHashMap;
-import java.util.List;
-import java.util.Map;
-
-import org.apache.olingo.commons.api.domain.AbstractODataValue;
-import org.apache.olingo.commons.api.domain.ODataAnnotation;
-import org.apache.olingo.commons.api.domain.ODataComplexValue;
-import org.apache.olingo.commons.api.domain.ODataEnumValue;
-import org.apache.olingo.commons.api.domain.ODataLink;
-import org.apache.olingo.commons.api.domain.ODataProperty;
-
-public class ODataComplexValueImpl extends AbstractODataValue implements ODataComplexValue {
-
-  /**
-   * Navigation links (might contain in-line entities or entity sets).
-   */
-  private final List<ODataLink> navigationLinks = new ArrayList<ODataLink>();
-
-  /**
-   * Association links.
-   */
-  private final List<ODataLink> associationLinks = new ArrayList<ODataLink>();
-
-  private final List<ODataAnnotation> annotations = new ArrayList<ODataAnnotation>();
-
-  /**
-   * Complex type fields.
-   */
-  private final Map<String, ODataProperty> fields = new LinkedHashMap<String, ODataProperty>();
-
-  /**
-   * Constructor.
-   *
-   * @param typeName type name.
-   */
-  public ODataComplexValueImpl(final String typeName) {
-    super(typeName);
-  }
-
-  @Override
-  public boolean isEnum() {
-    return false;
-  }
-
-  @Override
-  public ODataEnumValue asEnum() {
-    return null;
-  }
-
-  @Override
-  public boolean isComplex() {
-    return true;
-  }
-
-  @Override
-  public boolean addLink(final ODataLink link) {
-    boolean result = false;
-
-    switch (link.getType()) {
-    case ASSOCIATION:
-      result = associationLinks.contains(link) ? false : associationLinks.add(link);
-      break;
-
-    case ENTITY_NAVIGATION:
-    case ENTITY_SET_NAVIGATION:
-      result = navigationLinks.contains(link) ? false : navigationLinks.add(link);
-      break;
-
-    case MEDIA_EDIT:
-      throw new IllegalArgumentException("Complex values cannot have media links!");
-
-    default:
-    }
-
-    return result;
-  }
-
-  @Override
-  public boolean removeLink(final ODataLink link) {
-    return associationLinks.remove(link) || navigationLinks.remove(link);
-  }
-
-  private ODataLink getLink(final List<ODataLink> links, final String name) {
-    ODataLink result = null;
-    for (ODataLink link : links) {
-      if (name.equals(link.getName())) {
-        result = link;
-        break;
-      }
-    }
-
-    return result;
-  }
-
-  @Override
-  public ODataLink getNavigationLink(final String name) {
-    return getLink(navigationLinks, name);
-  }
-
-  @Override
-  public List<ODataLink> getNavigationLinks() {
-    return navigationLinks;
-  }
-
-  @Override
-  public ODataLink getAssociationLink(final String name) {
-    return getLink(associationLinks, name);
-  }
-
-  @Override
-  public List<ODataLink> getAssociationLinks() {
-    return associationLinks;
-  }
-
-  @Override
-  public Map<String, Object> asJavaMap() {
-    final Map<String, Object> result = new LinkedHashMap<String, Object>();
-    for (Map.Entry<String, ODataProperty> entry : fields.entrySet()) {
-      Object value = null;
-      if (entry.getValue().hasPrimitiveValue()) {
-        value = entry.getValue().getPrimitiveValue().toValue();
-      } else if (entry.getValue().hasComplexValue()) {
-        value = entry.getValue().getComplexValue().asJavaMap();
-      } else if (entry.getValue().hasCollectionValue()) {
-        value = entry.getValue().getCollectionValue().asJavaCollection();
-      } else if (entry.getValue().hasEnumValue()) {
-        value = entry.getValue().getEnumValue().toString();
-      }
-
-      result.put(entry.getKey(), value);
-    }
-
-    return result;
-  }
-
-  @Override
-  public List<ODataAnnotation> getAnnotations() {
-    return annotations;
-  }
-
-  /**
-   * Adds field to the complex type.
-   *
-   * @param field field to be added.
-   */
-  @Override
-  public ODataComplexValue add(final ODataProperty field) {
-    fields.put(field.getName(), field);
-    return this;
-  }
-
-  /**
-   * Gets field.
-   *
-   * @param name name of the field to be retrieved.
-   * @return requested field.
-   */
-  @Override
-  public ODataProperty get(final String name) {
-    return fields.get(name);
-  }
-
-  /**
-   * Complex property fields iterator.
-   *
-   * @return fields iterator.
-   */
-  @Override
-  public Iterator<ODataProperty> iterator() {
-    return fields.values().iterator();
-  }
-
-  /**
-   * Gets number of fields.
-   *
-   * @return number of fields.
-   */
-  @Override
-  public int size() {
-    return fields.size();
-  }
-}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/c37d4da5/lib/commons-core/src/main/java/org/apache/olingo/commons/core/domain/ODataDeletedEntityImpl.java
----------------------------------------------------------------------
diff --git a/lib/commons-core/src/main/java/org/apache/olingo/commons/core/domain/ODataDeletedEntityImpl.java b/lib/commons-core/src/main/java/org/apache/olingo/commons/core/domain/ODataDeletedEntityImpl.java
deleted file mode 100644
index 4021996..0000000
--- a/lib/commons-core/src/main/java/org/apache/olingo/commons/core/domain/ODataDeletedEntityImpl.java
+++ /dev/null
@@ -1,54 +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.commons.core.domain;
-
-import org.apache.olingo.commons.api.domain.ODataDeletedEntity;
-import org.apache.olingo.commons.api.domain.ODataItem;
-
-import java.net.URI;
-
-public class ODataDeletedEntityImpl extends ODataItem implements ODataDeletedEntity {
-
-  private URI id;
-
-  private Reason reason;
-
-  public ODataDeletedEntityImpl() {
-    super(null);
-  }
-
-  @Override
-  public URI getId() {
-    return id;
-  }
-
-  public void setId(final URI id) {
-    this.id = id;
-  }
-
-  @Override
-  public Reason getReason() {
-    return reason;
-  }
-
-  public void setReason(final Reason reason) {
-    this.reason = reason;
-  }
-
-}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/c37d4da5/lib/commons-core/src/main/java/org/apache/olingo/commons/core/domain/ODataDeltaImpl.java
----------------------------------------------------------------------
diff --git a/lib/commons-core/src/main/java/org/apache/olingo/commons/core/domain/ODataDeltaImpl.java b/lib/commons-core/src/main/java/org/apache/olingo/commons/core/domain/ODataDeltaImpl.java
deleted file mode 100644
index f8d6fdf..0000000
--- a/lib/commons-core/src/main/java/org/apache/olingo/commons/core/domain/ODataDeltaImpl.java
+++ /dev/null
@@ -1,60 +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.commons.core.domain;
-
-import org.apache.olingo.commons.api.domain.ODataDeletedEntity;
-import org.apache.olingo.commons.api.domain.ODataDelta;
-import org.apache.olingo.commons.api.domain.ODataDeltaLink;
-
-import java.net.URI;
-import java.util.ArrayList;
-import java.util.List;
-
-public class ODataDeltaImpl extends ODataEntitySetImpl implements ODataDelta {
-
-  private final List<ODataDeletedEntity> deletedEntities = new ArrayList<ODataDeletedEntity>();
-
-  private final List<ODataDeltaLink> addedLinks = new ArrayList<ODataDeltaLink>();
-
-  private final List<ODataDeltaLink> deletedLinks = new ArrayList<ODataDeltaLink>();
-
-  public ODataDeltaImpl() {
-    super();
-  }
-
-  public ODataDeltaImpl(final URI next) {
-    super(next);
-  }
-
-  @Override
-  public List<ODataDeletedEntity> getDeletedEntities() {
-    return deletedEntities;
-  }
-
-  @Override
-  public List<ODataDeltaLink> getAddedLinks() {
-    return addedLinks;
-  }
-
-  @Override
-  public List<ODataDeltaLink> getDeletedLinks() {
-    return deletedLinks;
-  }
-
-}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/c37d4da5/lib/commons-core/src/main/java/org/apache/olingo/commons/core/domain/ODataDeltaLinkImpl.java
----------------------------------------------------------------------
diff --git a/lib/commons-core/src/main/java/org/apache/olingo/commons/core/domain/ODataDeltaLinkImpl.java b/lib/commons-core/src/main/java/org/apache/olingo/commons/core/domain/ODataDeltaLinkImpl.java
deleted file mode 100644
index 5a39382..0000000
--- a/lib/commons-core/src/main/java/org/apache/olingo/commons/core/domain/ODataDeltaLinkImpl.java
+++ /dev/null
@@ -1,78 +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.commons.core.domain;
-
-import org.apache.olingo.commons.api.domain.ODataAnnotation;
-import org.apache.olingo.commons.api.domain.ODataDeltaLink;
-import org.apache.olingo.commons.api.domain.ODataItem;
-
-import java.net.URI;
-import java.util.ArrayList;
-import java.util.List;
-
-public class ODataDeltaLinkImpl extends ODataItem implements ODataDeltaLink {
-
-  private URI source;
-
-  private String relationship;
-
-  private URI target;
-
-  private final List<ODataAnnotation> annotations = new ArrayList<ODataAnnotation>();
-
-  public ODataDeltaLinkImpl() {
-    super(null);
-  }
-
-  @Override
-  public URI getSource() {
-    return source;
-  }
-
-  @Override
-  public void setSource(final URI source) {
-    this.source = source;
-  }
-
-  @Override
-  public String getRelationship() {
-    return relationship;
-  }
-
-  @Override
-  public void setRelationship(final String relationship) {
-    this.relationship = relationship;
-  }
-
-  @Override
-  public URI getTarget() {
-    return target;
-  }
-
-  @Override
-  public void setTarget(final URI target) {
-    this.target = target;
-  }
-
-  @Override
-  public List<ODataAnnotation> getAnnotations() {
-    return annotations;
-  }
-
-}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/c37d4da5/lib/commons-core/src/main/java/org/apache/olingo/commons/core/domain/ODataEntityImpl.java
----------------------------------------------------------------------
diff --git a/lib/commons-core/src/main/java/org/apache/olingo/commons/core/domain/ODataEntityImpl.java b/lib/commons-core/src/main/java/org/apache/olingo/commons/core/domain/ODataEntityImpl.java
deleted file mode 100644
index f3bbe0c..0000000
--- a/lib/commons-core/src/main/java/org/apache/olingo/commons/core/domain/ODataEntityImpl.java
+++ /dev/null
@@ -1,298 +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.commons.core.domain;
-
-import java.net.URI;
-import java.util.ArrayList;
-import java.util.List;
-
-import org.apache.commons.lang3.StringUtils;
-import org.apache.olingo.commons.api.domain.AbstractODataPayload;
-import org.apache.olingo.commons.api.domain.ODataAnnotation;
-import org.apache.olingo.commons.api.domain.ODataEntity;
-import org.apache.olingo.commons.api.domain.ODataLink;
-import org.apache.olingo.commons.api.domain.ODataOperation;
-import org.apache.olingo.commons.api.domain.ODataProperty;
-import org.apache.olingo.commons.api.domain.ODataSingleton;
-import org.apache.olingo.commons.api.edm.FullQualifiedName;
-
-public class ODataEntityImpl  extends AbstractODataPayload implements ODataEntity, ODataSingleton {
-
-  /**
-   * Entity id.
-   */
-  private URI id;
-  /**
-   * ETag.
-   */
-  private String eTag;
-  /**
-   * Media entity flag.
-   */
-  private boolean mediaEntity = false;
-  /**
-   * In case of media entity, media content type.
-   */
-  private String mediaContentType;
-  /**
-   * In case of media entity, media content source.
-   */
-  private URI mediaContentSource;
-  /**
-   * Media ETag.
-   */
-  private String mediaETag;
-  /**
-   * Edit link.
-   */
-  private URI editLink;
-
-  private final List<ODataProperty> properties = new ArrayList<ODataProperty>();
-
-  private final List<ODataAnnotation> annotations = new ArrayList<ODataAnnotation>();
-
-  private final FullQualifiedName typeName;
-  /**
-   * Navigation links (might contain in-line entities or entity sets).
-   */
-  private final List<ODataLink> navigationLinks = new ArrayList<ODataLink>();
-  /**
-   * Association links.
-   */
-  private final List<ODataLink> associationLinks = new ArrayList<ODataLink>();
-  /**
-   * Media edit links.
-   */
-  private final List<ODataLink> mediaEditLinks = new ArrayList<ODataLink>();
-  /**
-   * Operations (legacy, functions, actions).
-   */
-  private final List<ODataOperation> operations = new ArrayList<ODataOperation>();
-
-  public ODataEntityImpl(final FullQualifiedName typeName) {
-    super(typeName == null ? null : typeName.toString());
-    this.typeName = typeName;
-  }
-
-  @Override
-  public FullQualifiedName getTypeName() {
-    return typeName;
-  }
-
-  @Override
-  public String getETag() {
-    return eTag;
-  }
-
-  @Override
-  public void setETag(final String eTag) {
-    this.eTag = eTag;
-  }
-
-  @Override
-  public ODataOperation getOperation(final String title) {
-    ODataOperation result = null;
-    for (ODataOperation operation : operations) {
-      if (title.equals(operation.getTitle())) {
-        result = operation;
-        break;
-      }
-    }
-
-    return result;
-  }
-
-  /**
-   * Gets operations.
-   *
-   * @return operations.
-   */
-  @Override
-  public List<ODataOperation> getOperations() {
-    return operations;
-  }
-
-
-  @Override
-  public ODataProperty getProperty(final String name) {
-    ODataProperty result = null;
-
-    if (StringUtils.isNotBlank(name)) {
-      for (ODataProperty property : getProperties()) {
-        if (name.equals(property.getName())) {
-          result = property;
-          break;
-        }
-      }
-    }
-
-    return result;
-  }
-
-  @Override
-  public boolean addLink(final ODataLink link) {
-    boolean result = false;
-
-    switch (link.getType()) {
-      case ASSOCIATION:
-        result = associationLinks.contains(link) ? false : associationLinks.add(link);
-        break;
-
-      case ENTITY_NAVIGATION:
-      case ENTITY_SET_NAVIGATION:
-        result = navigationLinks.contains(link) ? false : navigationLinks.add(link);
-        break;
-
-      case MEDIA_EDIT:
-        result = mediaEditLinks.contains(link) ? false : mediaEditLinks.add(link);
-        break;
-
-      default:
-    }
-
-    return result;
-  }
-
-  @Override
-  public boolean removeLink(final ODataLink link) {
-    return associationLinks.remove(link) || navigationLinks.remove(link);
-  }
-
-  private ODataLink getLink(final List<ODataLink> links, final String name) {
-    ODataLink result = null;
-    for (ODataLink link : links) {
-      if (name.equals(link.getName())) {
-        result = link;
-        break;
-      }
-    }
-
-    return result;
-  }
-
-  @Override
-  public ODataLink getNavigationLink(final String name) {
-    return getLink(navigationLinks, name);
-  }
-
-  @Override
-  public List<ODataLink> getNavigationLinks() {
-    return navigationLinks;
-  }
-
-  @Override
-  public ODataLink getAssociationLink(final String name) {
-    return getLink(associationLinks, name);
-  }
-
-  @Override
-  public List<ODataLink> getAssociationLinks() {
-    return associationLinks;
-  }
-
-  @Override
-  public ODataLink getMediaEditLink(final String name) {
-    return getLink(mediaEditLinks, name);
-  }
-
-  @Override
-  public List<ODataLink> getMediaEditLinks() {
-    return mediaEditLinks;
-  }
-
-  @Override
-  public URI getEditLink() {
-    return editLink;
-  }
-
-  @Override
-  public void setEditLink(final URI editLink) {
-    this.editLink = editLink;
-  }
-
-  @Override
-  public URI getLink() {
-    return super.getLink() == null ? getEditLink() : super.getLink();
-  }
-
-  @Override
-  public boolean isReadOnly() {
-    return super.getLink() != null;
-  }
-
-  @Override
-  public boolean isMediaEntity() {
-    return mediaEntity;
-  }
-
-  @Override
-  public void setMediaEntity(final boolean isMediaEntity) {
-    mediaEntity = isMediaEntity;
-  }
-
-  @Override
-  public String getMediaContentType() {
-    return mediaContentType;
-  }
-
-  @Override
-  public void setMediaContentType(final String mediaContentType) {
-    this.mediaContentType = mediaContentType;
-  }
-
-  @Override
-  public URI getMediaContentSource() {
-    return mediaContentSource;
-  }
-
-  @Override
-  public void setMediaContentSource(final URI mediaContentSource) {
-    this.mediaContentSource = mediaContentSource;
-  }
-
-  @Override
-  public String getMediaETag() {
-    return mediaETag;
-  }
-
-  @Override
-  public void setMediaETag(final String eTag) {
-    mediaETag = eTag;
-  }
-
-  @Override
-  public URI getId() {
-    return id;
-  }
-
-  @Override
-  public void setId(final URI id) {
-    this.id = id;
-  }
-
-  @Override
-  public List<ODataProperty> getProperties() {
-    return properties;
-  }
-
-  @Override
-  public List<ODataAnnotation> getAnnotations() {
-    return annotations;
-  }
-}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/c37d4da5/lib/commons-core/src/main/java/org/apache/olingo/commons/core/domain/ODataEntitySetImpl.java
----------------------------------------------------------------------
diff --git a/lib/commons-core/src/main/java/org/apache/olingo/commons/core/domain/ODataEntitySetImpl.java b/lib/commons-core/src/main/java/org/apache/olingo/commons/core/domain/ODataEntitySetImpl.java
deleted file mode 100644
index b6853c1..0000000
--- a/lib/commons-core/src/main/java/org/apache/olingo/commons/core/domain/ODataEntitySetImpl.java
+++ /dev/null
@@ -1,65 +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.commons.core.domain;
-
-import org.apache.olingo.commons.api.domain.ODataAnnotation;
-import org.apache.olingo.commons.api.domain.ODataEntity;
-import org.apache.olingo.commons.api.domain.ODataEntitySet;
-
-import java.net.URI;
-import java.util.ArrayList;
-import java.util.List;
-
-public class ODataEntitySetImpl extends AbstractODataEntitySet implements ODataEntitySet {
-
-  private URI deltaLink;
-
-  private final List<ODataEntity> entities = new ArrayList<ODataEntity>();
-
-  private final List<ODataAnnotation> annotations = new ArrayList<ODataAnnotation>();
-
-  public ODataEntitySetImpl() {
-    super();
-  }
-
-  public ODataEntitySetImpl(final URI next) {
-    super(next);
-  }
-
-  @Override
-  public List<ODataEntity> getEntities() {
-    return entities;
-  }
-
-  @Override
-  public URI getDeltaLink() {
-    return deltaLink;
-  }
-
-  @Override
-  public void setDeltaLink(final URI deltaLink) {
-    this.deltaLink = deltaLink;
-  }
-
-  @Override
-  public List<ODataAnnotation> getAnnotations() {
-    return annotations;
-  }
-
-}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/c37d4da5/lib/commons-core/src/main/java/org/apache/olingo/commons/core/domain/ODataEnumValueImpl.java
----------------------------------------------------------------------
diff --git a/lib/commons-core/src/main/java/org/apache/olingo/commons/core/domain/ODataEnumValueImpl.java b/lib/commons-core/src/main/java/org/apache/olingo/commons/core/domain/ODataEnumValueImpl.java
deleted file mode 100644
index 9ef7ed1..0000000
--- a/lib/commons-core/src/main/java/org/apache/olingo/commons/core/domain/ODataEnumValueImpl.java
+++ /dev/null
@@ -1,59 +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.commons.core.domain;
-
-import org.apache.olingo.commons.api.domain.AbstractODataValue;
-import org.apache.olingo.commons.api.domain.ODataEnumValue;
-
-public class ODataEnumValueImpl extends AbstractODataValue implements ODataEnumValue {
-
-  private final String value;
-
-  public ODataEnumValueImpl(final String typeName, final String value) {
-    super(typeName);
-    this.value = value;
-  }
-
-  @Override
-  public String getValue() {
-    return value;
-  }
-
-  @Override
-  public boolean isEnum() {
-    return true;
-  }
-
-  @Override
-  public ODataEnumValue asEnum() {
-    return this;
-  }
-
-  @Override
-  public boolean isComplex() {
-    return false;
-  }
-
-  @Override
-  public String toString() {
-    return getTypeName() + "'" + getValue() + "'";
-
-  }
-
-}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/c37d4da5/lib/commons-core/src/main/java/org/apache/olingo/commons/core/domain/ODataObjectFactoryImpl.java
----------------------------------------------------------------------
diff --git a/lib/commons-core/src/main/java/org/apache/olingo/commons/core/domain/ODataObjectFactoryImpl.java b/lib/commons-core/src/main/java/org/apache/olingo/commons/core/domain/ODataObjectFactoryImpl.java
deleted file mode 100644
index eb82364..0000000
--- a/lib/commons-core/src/main/java/org/apache/olingo/commons/core/domain/ODataObjectFactoryImpl.java
+++ /dev/null
@@ -1,155 +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.commons.core.domain;
-
-import java.net.URI;
-
-import org.apache.olingo.commons.api.domain.ODataCollectionValue;
-import org.apache.olingo.commons.api.domain.ODataComplexValue;
-import org.apache.olingo.commons.api.domain.ODataDelta;
-import org.apache.olingo.commons.api.domain.ODataEntity;
-import org.apache.olingo.commons.api.domain.ODataEntitySet;
-import org.apache.olingo.commons.api.domain.ODataEnumValue;
-import org.apache.olingo.commons.api.domain.ODataInlineEntity;
-import org.apache.olingo.commons.api.domain.ODataInlineEntitySet;
-import org.apache.olingo.commons.api.domain.ODataLink;
-import org.apache.olingo.commons.api.domain.ODataLinkType;
-import org.apache.olingo.commons.api.domain.ODataObjectFactory;
-import org.apache.olingo.commons.api.domain.ODataPrimitiveValue;
-import org.apache.olingo.commons.api.domain.ODataProperty;
-import org.apache.olingo.commons.api.domain.ODataSingleton;
-import org.apache.olingo.commons.api.domain.ODataValue;
-import org.apache.olingo.commons.api.edm.FullQualifiedName;
-
-public class ODataObjectFactoryImpl implements ODataObjectFactory {
-
-  @Override
-  public ODataInlineEntitySet newDeepInsertEntitySet(final String name, final ODataEntitySet entitySet) {
-    return new ODataInlineEntitySet(null, ODataLinkType.ENTITY_SET_NAVIGATION, name, entitySet);
-  }
-
-  @Override
-  public ODataInlineEntity newDeepInsertEntity(final String name, final ODataEntity entity) {
-    return new ODataInlineEntity(null, ODataLinkType.ENTITY_NAVIGATION, name, entity);
-  }
-
-  @Override
-  public ODataEntitySet newEntitySet() {
-    return new ODataEntitySetImpl();
-  }
-
-  @Override
-  public ODataEntitySet newEntitySet(final URI next) {
-    return new ODataEntitySetImpl(next);
-  }
-
-  @Override
-  public ODataEntity newEntity(final FullQualifiedName typeName) {
-    return new ODataEntityImpl(typeName);
-  }
-
-  @Override
-  public ODataEntity newEntity(final FullQualifiedName typeName, final URI link) {
-    final ODataEntityImpl result = new ODataEntityImpl(typeName);
-    result.setLink(link);
-    return result;
-  }
-
-  @Override
-  public ODataSingleton newSingleton(final FullQualifiedName typeName) {
-    return new ODataEntityImpl(typeName);
-  }
-
-  @Override
-  public ODataLink newEntityNavigationLink(final String name, final URI link) {
-    return new ODataLink.Builder().setURI(link).
-        setType(ODataLinkType.ENTITY_NAVIGATION).setTitle(name).build();
-  }
-
-  @Override
-  public ODataLink newEntitySetNavigationLink(final String name, final URI link) {
-    return new ODataLink.Builder().setURI(link).
-        setType(ODataLinkType.ENTITY_SET_NAVIGATION).setTitle(name).build();
-  }
-
-  @Override
-  public ODataLink newAssociationLink(final String name, final URI link) {
-    return new ODataLink.Builder().setURI(link).
-        setType(ODataLinkType.ASSOCIATION).setTitle(name).build();
-  }
-
-  @Override
-  public ODataLink newMediaEditLink(final String name, final URI link) {
-    return new ODataLink.Builder().setURI(link).
-        setType(ODataLinkType.MEDIA_EDIT).setTitle(name).build();
-  }
-
-  @Override
-  public ODataPrimitiveValue.Builder newPrimitiveValueBuilder() {
-    return new ODataPrimitiveValueImpl.BuilderImpl();
-  }
-
-  @Override
-  public ODataEnumValue newEnumValue(final String typeName, final String value) {
-    return new ODataEnumValueImpl(typeName, value);
-  }
-
-  @Override
-  public ODataComplexValue newComplexValue(final String typeName) {
-    return new ODataComplexValueImpl(typeName);
-  }
-
-  @Override
-  public ODataCollectionValue<ODataValue> newCollectionValue(final String typeName) {
-    return new ODataCollectionValueImpl<ODataValue>(typeName);
-  }
-
-  @Override
-  public ODataProperty newPrimitiveProperty(final String name, final ODataPrimitiveValue value) {
-    return new ODataPropertyImpl(name, value);
-  }
-
-  @Override
-  public ODataProperty newComplexProperty(final String name, final ODataComplexValue value) {
-
-    return new ODataPropertyImpl(name, value);
-  }
-
-  @Override
-  public ODataProperty newCollectionProperty(final String name,
-      final ODataCollectionValue<? extends org.apache.olingo.commons.api.domain.ODataValue> value) {
-
-    return new ODataPropertyImpl(name, value);
-  }
-
-  @Override
-  public ODataProperty newEnumProperty(final String name, final ODataEnumValue value) {
-    return new ODataPropertyImpl(name, value);
-  }
-
-  @Override
-  public ODataDelta newDelta() {
-    return new ODataDeltaImpl();
-  }
-
-  @Override
-  public ODataDelta newDelta(final URI next) {
-    return new ODataDeltaImpl(next);
-  }
-}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/c37d4da5/lib/commons-core/src/main/java/org/apache/olingo/commons/core/domain/ODataPrimitiveValueImpl.java
----------------------------------------------------------------------
diff --git a/lib/commons-core/src/main/java/org/apache/olingo/commons/core/domain/ODataPrimitiveValueImpl.java b/lib/commons-core/src/main/java/org/apache/olingo/commons/core/domain/ODataPrimitiveValueImpl.java
deleted file mode 100644
index 64ef5db..0000000
--- a/lib/commons-core/src/main/java/org/apache/olingo/commons/core/domain/ODataPrimitiveValueImpl.java
+++ /dev/null
@@ -1,222 +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.commons.core.domain;
-
-import java.util.UUID;
-
-import org.apache.olingo.commons.api.Constants;
-import org.apache.olingo.commons.api.domain.AbstractODataValue;
-import org.apache.olingo.commons.api.domain.ODataEnumValue;
-import org.apache.olingo.commons.api.domain.ODataPrimitiveValue;
-import org.apache.olingo.commons.api.domain.ODataValue;
-import org.apache.olingo.commons.api.edm.EdmPrimitiveType;
-import org.apache.olingo.commons.api.edm.EdmPrimitiveTypeException;
-import org.apache.olingo.commons.api.edm.EdmPrimitiveTypeKind;
-import org.apache.olingo.commons.api.edm.EdmType;
-import org.apache.olingo.commons.api.edm.constants.EdmTypeKind;
-import org.apache.olingo.commons.core.edm.primitivetype.EdmPrimitiveTypeFactory;
-
-public class ODataPrimitiveValueImpl extends AbstractODataValue implements ODataValue, ODataPrimitiveValue {
-
-  public static class BuilderImpl implements Builder {
-
-    private final ODataPrimitiveValueImpl instance;
-
-    public BuilderImpl() {
-      instance = new ODataPrimitiveValueImpl();
-    }
-
-    @Override
-    public BuilderImpl setType(final EdmType type) {
-      EdmPrimitiveTypeKind primitiveTypeKind = null;
-      if (type != null) {
-        if (type.getKind() != EdmTypeKind.PRIMITIVE) {
-          throw new IllegalArgumentException(String.format("Provided type %s is not primitive", type));
-        }
-        primitiveTypeKind = EdmPrimitiveTypeKind.valueOf(type.getName());
-      }
-      return setType(primitiveTypeKind);
-    }
-
-    @Override
-    public BuilderImpl setType(final EdmPrimitiveTypeKind type) {
-      if (type == EdmPrimitiveTypeKind.Stream) {
-        throw new IllegalArgumentException(String.format(
-                "Cannot build a primitive value for %s", EdmPrimitiveTypeKind.Stream.toString()));
-      }
-      if (type == EdmPrimitiveTypeKind.Geography || type == EdmPrimitiveTypeKind.Geometry) {
-        throw new IllegalArgumentException(
-                type + "is not an instantiable type. "
-                        + "An entity can declare a property to be of type Geometry. "
-                        + "An instance of an entity MUST NOT have a value of type Geometry. "
-                        + "Each value MUST be of some subtype.");
-      }
-
-      instance.typeKind = type == null ? EdmPrimitiveTypeKind.String : type;
-      instance.type = EdmPrimitiveTypeFactory.getInstance(instance.typeKind);
-
-      return this;
-    }
-
-    @Override
-    public BuilderImpl setValue(final Object value) {
-      instance.value = value;
-      return this;
-    }
-
-    @Override
-    public ODataPrimitiveValue build() {
-      if (instance.type == null) {
-        setType(EdmPrimitiveTypeKind.String);
-      }
-      return instance;
-    }
-
-    @Override
-    public ODataPrimitiveValue buildBoolean(final Boolean value) {
-      return setType(EdmPrimitiveTypeKind.Boolean).setValue(value).build();
-    }
-
-    @Override
-    public ODataPrimitiveValue buildInt16(final Short value) {
-      return setType(EdmPrimitiveTypeKind.Int16).setValue(value).build();
-    }
-
-    @Override
-    public ODataPrimitiveValue buildInt32(final Integer value) {
-      return setType(EdmPrimitiveTypeKind.Int32).setValue(value).build();
-    }
-
-    @Override
-    public ODataPrimitiveValue buildInt64(final Long value) {
-      return setType(EdmPrimitiveTypeKind.Int64).setValue(value).build();
-    }
-
-    @Override
-    public ODataPrimitiveValue buildSingle(final Float value) {
-      return setType(EdmPrimitiveTypeKind.Single).setValue(value).build();
-    }
-
-    @Override
-    public ODataPrimitiveValue buildDouble(final Double value) {
-      return setType(EdmPrimitiveTypeKind.Double).setValue(value).build();
-    }
-
-    @Override
-    public ODataPrimitiveValue buildString(final String value) {
-      return setType(EdmPrimitiveTypeKind.String).setValue(value).build();
-    }
-
-    @Override
-    public ODataPrimitiveValue buildGuid(final UUID value) {
-      return setType(EdmPrimitiveTypeKind.Guid).setValue(value).build();
-    }
-
-    @Override
-    public ODataPrimitiveValue buildBinary(final byte[] value) {
-      return setType(EdmPrimitiveTypeKind.Binary).setValue(value).build();
-    }
-
-  }
-
-  /**
-   * Type kind.
-   */
-  private EdmPrimitiveTypeKind typeKind;
-
-  /**
-   * Type.
-   */
-  private EdmPrimitiveType type;
-
-  /**
-   * Actual value.
-   */
-  private Object value;
-
-  protected ODataPrimitiveValueImpl() {
-    super(null);
-  }
-
-  @Override
-  public String getTypeName() {
-    return typeKind.getFullQualifiedName().toString();
-  }
-
-  @Override
-  public EdmPrimitiveTypeKind getTypeKind() {
-    return typeKind;
-  }
-
-  @Override
-  public EdmPrimitiveType getType() {
-    return type;
-  }
-
-  @Override
-  public Object toValue() {
-    return value;
-  }
-
-  @Override
-  public <T> T toCastValue(final Class<T> reference) throws EdmPrimitiveTypeException {
-    if (value == null) {
-      return null;
-    } else if (typeKind.isGeospatial()) {
-      return reference.cast(value);
-    } else {
-      // TODO: set facets
-      return type.valueOfString(type.valueToString(value,
-                      null, null, Constants.DEFAULT_PRECISION, Constants.DEFAULT_SCALE, null),
-              null, null, Constants.DEFAULT_PRECISION, Constants.DEFAULT_SCALE, null, reference);
-    }
-  }
-
-  @Override
-  public String toString() {
-    if (value == null) {
-      return "";
-    } else if (typeKind.isGeospatial()) {
-      return value.toString();
-    } else {
-      try {
-        // TODO: set facets
-        return type.valueToString(value, null, null, Constants.DEFAULT_PRECISION, Constants.DEFAULT_SCALE, null);
-      } catch (EdmPrimitiveTypeException e) {
-        throw new IllegalArgumentException(e);
-      }
-    }
-  }
-
-  @Override
-  public boolean isEnum() {
-    return false;
-  }
-
-  @Override
-  public ODataEnumValue asEnum() {
-    return null;
-  }
-
-  @Override
-  public boolean isComplex() {
-    return false;
-  }
-
-}