You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@olingo.apache.org by ch...@apache.org on 2014/02/07 16:14:49 UTC

git commit: [OLINGO-62] Referntial Constraint support at edm

Updated Branches:
  refs/heads/master b14e278ab -> 3e0798675


[OLINGO-62] Referntial Constraint support at edm


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

Branch: refs/heads/master
Commit: 3e0798675ae572869fcaab50b357258bc2894fb5
Parents: b14e278
Author: Christian Amend <ch...@apache.org>
Authored: Fri Feb 7 16:14:03 2014 +0100
Committer: Christian Amend <ch...@apache.org>
Committed: Fri Feb 7 16:14:36 2014 +0100

----------------------------------------------------------------------
 .../odata4/commons/api/edm/EdmException.java    |  2 +-
 .../odata4/commons/api/edm/EdmMappable.java     |  1 -
 .../commons/api/edm/EdmNavigationProperty.java  |  7 ++
 .../odata4/commons/api/edm/EdmParameter.java    |  1 -
 .../odata4/commons/api/edm/EdmProperty.java     |  1 -
 .../commons/api/edm/EdmServiceMetadata.java     |  1 -
 .../commons/api/edm/EdmStructuralType.java      |  2 +-
 .../olingo/odata4/commons/api/edm/EdmType.java  |  2 -
 .../commons/api/edm/provider/ActionImport.java  |  1 -
 .../commons/api/edm/provider/Annotation.java    |  1 -
 .../commons/api/edm/provider/BindingTarget.java |  1 -
 .../commons/api/edm/provider/ComplexType.java   |  1 -
 .../api/edm/provider/EntityContainer.java       |  1 -
 .../api/edm/provider/EntityContainerInfo.java   |  1 -
 .../commons/api/edm/provider/EntitySet.java     |  1 -
 .../commons/api/edm/provider/EntityType.java    |  1 -
 .../commons/api/edm/provider/EnumMember.java    |  4 +-
 .../commons/api/edm/provider/EnumType.java      |  1 -
 .../api/edm/provider/FunctionImport.java        |  1 -
 .../commons/api/edm/provider/Parameter.java     |  1 -
 .../commons/api/edm/provider/Property.java      |  3 +-
 .../commons/api/edm/provider/ReturnType.java    |  1 -
 .../commons/api/edm/provider/Singleton.java     |  1 -
 .../api/edm/provider/StructuralType.java        |  1 -
 .../odata4/commons/api/edm/provider/Target.java |  1 -
 .../odata4/commons/api/edm/provider/Term.java   |  3 +-
 .../api/edm/provider/TypeDefinition.java        |  1 -
 .../edm/provider/EdmNavigationPropertyImpl.java | 40 +++++++++++
 .../provider/EdmNavigationPropertyImplTest.java | 71 ++++++++++++++++++++
 29 files changed, 125 insertions(+), 29 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-olingo-odata4/blob/3e079867/odata4-lib/odata4-commons-api/src/main/java/org/apache/olingo/odata4/commons/api/edm/EdmException.java
----------------------------------------------------------------------
diff --git a/odata4-lib/odata4-commons-api/src/main/java/org/apache/olingo/odata4/commons/api/edm/EdmException.java b/odata4-lib/odata4-commons-api/src/main/java/org/apache/olingo/odata4/commons/api/edm/EdmException.java
index 05350b8..ec756f9 100644
--- a/odata4-lib/odata4-commons-api/src/main/java/org/apache/olingo/odata4/commons/api/edm/EdmException.java
+++ b/odata4-lib/odata4-commons-api/src/main/java/org/apache/olingo/odata4/commons/api/edm/EdmException.java
@@ -33,7 +33,7 @@ public class EdmException extends RuntimeException {
     super(msg);
   }
 
-  public EdmException(String string, Exception e) {
+  public EdmException(final String string, final Exception e) {
     super(string, e);
   }
 

http://git-wip-us.apache.org/repos/asf/incubator-olingo-odata4/blob/3e079867/odata4-lib/odata4-commons-api/src/main/java/org/apache/olingo/odata4/commons/api/edm/EdmMappable.java
----------------------------------------------------------------------
diff --git a/odata4-lib/odata4-commons-api/src/main/java/org/apache/olingo/odata4/commons/api/edm/EdmMappable.java b/odata4-lib/odata4-commons-api/src/main/java/org/apache/olingo/odata4/commons/api/edm/EdmMappable.java
index 28fa16a..b698a0b 100644
--- a/odata4-lib/odata4-commons-api/src/main/java/org/apache/olingo/odata4/commons/api/edm/EdmMappable.java
+++ b/odata4-lib/odata4-commons-api/src/main/java/org/apache/olingo/odata4/commons/api/edm/EdmMappable.java
@@ -18,7 +18,6 @@
  ******************************************************************************/
 package org.apache.olingo.odata4.commons.api.edm;
 
-
 /**
  * EdmMappable can be applied to CSDL elements to associate additional information.
  */

http://git-wip-us.apache.org/repos/asf/incubator-olingo-odata4/blob/3e079867/odata4-lib/odata4-commons-api/src/main/java/org/apache/olingo/odata4/commons/api/edm/EdmNavigationProperty.java
----------------------------------------------------------------------
diff --git a/odata4-lib/odata4-commons-api/src/main/java/org/apache/olingo/odata4/commons/api/edm/EdmNavigationProperty.java b/odata4-lib/odata4-commons-api/src/main/java/org/apache/olingo/odata4/commons/api/edm/EdmNavigationProperty.java
index cb87300..aa317e4 100644
--- a/odata4-lib/odata4-commons-api/src/main/java/org/apache/olingo/odata4/commons/api/edm/EdmNavigationProperty.java
+++ b/odata4-lib/odata4-commons-api/src/main/java/org/apache/olingo/odata4/commons/api/edm/EdmNavigationProperty.java
@@ -29,4 +29,11 @@ public interface EdmNavigationProperty extends EdmElement {
    */
   Boolean isNullable();
 
+  /**
+   * @return the partner navigation property
+   */
+  EdmNavigationProperty getPartner();
+
+  String getReferencingPropertyName(String referencedPropertyName);
+
 }
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-olingo-odata4/blob/3e079867/odata4-lib/odata4-commons-api/src/main/java/org/apache/olingo/odata4/commons/api/edm/EdmParameter.java
----------------------------------------------------------------------
diff --git a/odata4-lib/odata4-commons-api/src/main/java/org/apache/olingo/odata4/commons/api/edm/EdmParameter.java b/odata4-lib/odata4-commons-api/src/main/java/org/apache/olingo/odata4/commons/api/edm/EdmParameter.java
index c89f917..5ee9b7e 100644
--- a/odata4-lib/odata4-commons-api/src/main/java/org/apache/olingo/odata4/commons/api/edm/EdmParameter.java
+++ b/odata4-lib/odata4-commons-api/src/main/java/org/apache/olingo/odata4/commons/api/edm/EdmParameter.java
@@ -18,7 +18,6 @@
  ******************************************************************************/
 package org.apache.olingo.odata4.commons.api.edm;
 
-
 /**
  * A CSDL parameter element
  */

http://git-wip-us.apache.org/repos/asf/incubator-olingo-odata4/blob/3e079867/odata4-lib/odata4-commons-api/src/main/java/org/apache/olingo/odata4/commons/api/edm/EdmProperty.java
----------------------------------------------------------------------
diff --git a/odata4-lib/odata4-commons-api/src/main/java/org/apache/olingo/odata4/commons/api/edm/EdmProperty.java b/odata4-lib/odata4-commons-api/src/main/java/org/apache/olingo/odata4/commons/api/edm/EdmProperty.java
index 89ee766..9856c32 100644
--- a/odata4-lib/odata4-commons-api/src/main/java/org/apache/olingo/odata4/commons/api/edm/EdmProperty.java
+++ b/odata4-lib/odata4-commons-api/src/main/java/org/apache/olingo/odata4/commons/api/edm/EdmProperty.java
@@ -18,7 +18,6 @@
  ******************************************************************************/
 package org.apache.olingo.odata4.commons.api.edm;
 
-
 /**
  * A CSDL Property element
  * <p>EdmProperty defines a simple type or a complex type.

http://git-wip-us.apache.org/repos/asf/incubator-olingo-odata4/blob/3e079867/odata4-lib/odata4-commons-api/src/main/java/org/apache/olingo/odata4/commons/api/edm/EdmServiceMetadata.java
----------------------------------------------------------------------
diff --git a/odata4-lib/odata4-commons-api/src/main/java/org/apache/olingo/odata4/commons/api/edm/EdmServiceMetadata.java b/odata4-lib/odata4-commons-api/src/main/java/org/apache/olingo/odata4/commons/api/edm/EdmServiceMetadata.java
index d7b49b2..a41c8bd 100644
--- a/odata4-lib/odata4-commons-api/src/main/java/org/apache/olingo/odata4/commons/api/edm/EdmServiceMetadata.java
+++ b/odata4-lib/odata4-commons-api/src/main/java/org/apache/olingo/odata4/commons/api/edm/EdmServiceMetadata.java
@@ -21,7 +21,6 @@ package org.apache.olingo.odata4.commons.api.edm;
 import java.io.InputStream;
 import java.util.List;
 
-
 /**
  * This interface gives access to the metadata of a service,
  * the calculated Data Service Version and an info list of all entity sets, singletons, and function imports

http://git-wip-us.apache.org/repos/asf/incubator-olingo-odata4/blob/3e079867/odata4-lib/odata4-commons-api/src/main/java/org/apache/olingo/odata4/commons/api/edm/EdmStructuralType.java
----------------------------------------------------------------------
diff --git a/odata4-lib/odata4-commons-api/src/main/java/org/apache/olingo/odata4/commons/api/edm/EdmStructuralType.java b/odata4-lib/odata4-commons-api/src/main/java/org/apache/olingo/odata4/commons/api/edm/EdmStructuralType.java
index 440c3e7..ceb63cb 100644
--- a/odata4-lib/odata4-commons-api/src/main/java/org/apache/olingo/odata4/commons/api/edm/EdmStructuralType.java
+++ b/odata4-lib/odata4-commons-api/src/main/java/org/apache/olingo/odata4/commons/api/edm/EdmStructuralType.java
@@ -51,7 +51,7 @@ public interface EdmStructuralType extends EdmType {
    * @return {@link EdmStructuralType}
    */
   EdmStructuralType getBaseType();
-  
+
   /**
    * Checks if this type is convertable to parameter {@link targetType}
    * 

http://git-wip-us.apache.org/repos/asf/incubator-olingo-odata4/blob/3e079867/odata4-lib/odata4-commons-api/src/main/java/org/apache/olingo/odata4/commons/api/edm/EdmType.java
----------------------------------------------------------------------
diff --git a/odata4-lib/odata4-commons-api/src/main/java/org/apache/olingo/odata4/commons/api/edm/EdmType.java b/odata4-lib/odata4-commons-api/src/main/java/org/apache/olingo/odata4/commons/api/edm/EdmType.java
index 0248a19..9ca54f5 100644
--- a/odata4-lib/odata4-commons-api/src/main/java/org/apache/olingo/odata4/commons/api/edm/EdmType.java
+++ b/odata4-lib/odata4-commons-api/src/main/java/org/apache/olingo/odata4/commons/api/edm/EdmType.java
@@ -36,6 +36,4 @@ public interface EdmType extends EdmNamed {
    */
   EdmTypeKind getKind();
 
-
-  
 }
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-olingo-odata4/blob/3e079867/odata4-lib/odata4-commons-api/src/main/java/org/apache/olingo/odata4/commons/api/edm/provider/ActionImport.java
----------------------------------------------------------------------
diff --git a/odata4-lib/odata4-commons-api/src/main/java/org/apache/olingo/odata4/commons/api/edm/provider/ActionImport.java b/odata4-lib/odata4-commons-api/src/main/java/org/apache/olingo/odata4/commons/api/edm/provider/ActionImport.java
index 6023fd4..bca2e9f 100644
--- a/odata4-lib/odata4-commons-api/src/main/java/org/apache/olingo/odata4/commons/api/edm/provider/ActionImport.java
+++ b/odata4-lib/odata4-commons-api/src/main/java/org/apache/olingo/odata4/commons/api/edm/provider/ActionImport.java
@@ -18,7 +18,6 @@
  ******************************************************************************/
 package org.apache.olingo.odata4.commons.api.edm.provider;
 
-
 public class ActionImport extends OperationImport {
   private FullQualifiedName action;
 

http://git-wip-us.apache.org/repos/asf/incubator-olingo-odata4/blob/3e079867/odata4-lib/odata4-commons-api/src/main/java/org/apache/olingo/odata4/commons/api/edm/provider/Annotation.java
----------------------------------------------------------------------
diff --git a/odata4-lib/odata4-commons-api/src/main/java/org/apache/olingo/odata4/commons/api/edm/provider/Annotation.java b/odata4-lib/odata4-commons-api/src/main/java/org/apache/olingo/odata4/commons/api/edm/provider/Annotation.java
index c2a71f6..b54f767 100644
--- a/odata4-lib/odata4-commons-api/src/main/java/org/apache/olingo/odata4/commons/api/edm/provider/Annotation.java
+++ b/odata4-lib/odata4-commons-api/src/main/java/org/apache/olingo/odata4/commons/api/edm/provider/Annotation.java
@@ -20,7 +20,6 @@ package org.apache.olingo.odata4.commons.api.edm.provider;
 
 import java.util.List;
 
-
 public class Annotation {
   private FullQualifiedName term;
   // Target should be a target path

http://git-wip-us.apache.org/repos/asf/incubator-olingo-odata4/blob/3e079867/odata4-lib/odata4-commons-api/src/main/java/org/apache/olingo/odata4/commons/api/edm/provider/BindingTarget.java
----------------------------------------------------------------------
diff --git a/odata4-lib/odata4-commons-api/src/main/java/org/apache/olingo/odata4/commons/api/edm/provider/BindingTarget.java b/odata4-lib/odata4-commons-api/src/main/java/org/apache/olingo/odata4/commons/api/edm/provider/BindingTarget.java
index 0ce5dcb..412eeed 100644
--- a/odata4-lib/odata4-commons-api/src/main/java/org/apache/olingo/odata4/commons/api/edm/provider/BindingTarget.java
+++ b/odata4-lib/odata4-commons-api/src/main/java/org/apache/olingo/odata4/commons/api/edm/provider/BindingTarget.java
@@ -20,7 +20,6 @@ package org.apache.olingo.odata4.commons.api.edm.provider;
 
 import java.util.List;
 
-
 public abstract class BindingTarget {
 
   protected String name;

http://git-wip-us.apache.org/repos/asf/incubator-olingo-odata4/blob/3e079867/odata4-lib/odata4-commons-api/src/main/java/org/apache/olingo/odata4/commons/api/edm/provider/ComplexType.java
----------------------------------------------------------------------
diff --git a/odata4-lib/odata4-commons-api/src/main/java/org/apache/olingo/odata4/commons/api/edm/provider/ComplexType.java b/odata4-lib/odata4-commons-api/src/main/java/org/apache/olingo/odata4/commons/api/edm/provider/ComplexType.java
index acbcade..cd51413 100644
--- a/odata4-lib/odata4-commons-api/src/main/java/org/apache/olingo/odata4/commons/api/edm/provider/ComplexType.java
+++ b/odata4-lib/odata4-commons-api/src/main/java/org/apache/olingo/odata4/commons/api/edm/provider/ComplexType.java
@@ -20,7 +20,6 @@ package org.apache.olingo.odata4.commons.api.edm.provider;
 
 import java.util.List;
 
-
 public class ComplexType extends StructuralType {
 
   @Override

http://git-wip-us.apache.org/repos/asf/incubator-olingo-odata4/blob/3e079867/odata4-lib/odata4-commons-api/src/main/java/org/apache/olingo/odata4/commons/api/edm/provider/EntityContainer.java
----------------------------------------------------------------------
diff --git a/odata4-lib/odata4-commons-api/src/main/java/org/apache/olingo/odata4/commons/api/edm/provider/EntityContainer.java b/odata4-lib/odata4-commons-api/src/main/java/org/apache/olingo/odata4/commons/api/edm/provider/EntityContainer.java
index bf4626d..9334292 100644
--- a/odata4-lib/odata4-commons-api/src/main/java/org/apache/olingo/odata4/commons/api/edm/provider/EntityContainer.java
+++ b/odata4-lib/odata4-commons-api/src/main/java/org/apache/olingo/odata4/commons/api/edm/provider/EntityContainer.java
@@ -20,7 +20,6 @@ package org.apache.olingo.odata4.commons.api.edm.provider;
 
 import java.util.List;
 
-
 public class EntityContainer {
 
   private String name;

http://git-wip-us.apache.org/repos/asf/incubator-olingo-odata4/blob/3e079867/odata4-lib/odata4-commons-api/src/main/java/org/apache/olingo/odata4/commons/api/edm/provider/EntityContainerInfo.java
----------------------------------------------------------------------
diff --git a/odata4-lib/odata4-commons-api/src/main/java/org/apache/olingo/odata4/commons/api/edm/provider/EntityContainerInfo.java b/odata4-lib/odata4-commons-api/src/main/java/org/apache/olingo/odata4/commons/api/edm/provider/EntityContainerInfo.java
index 61f4907..e7de3a9 100644
--- a/odata4-lib/odata4-commons-api/src/main/java/org/apache/olingo/odata4/commons/api/edm/provider/EntityContainerInfo.java
+++ b/odata4-lib/odata4-commons-api/src/main/java/org/apache/olingo/odata4/commons/api/edm/provider/EntityContainerInfo.java
@@ -18,7 +18,6 @@
  ******************************************************************************/
 package org.apache.olingo.odata4.commons.api.edm.provider;
 
-
 public class EntityContainerInfo {
   private FullQualifiedName containerName;
   private FullQualifiedName extendsContainer;

http://git-wip-us.apache.org/repos/asf/incubator-olingo-odata4/blob/3e079867/odata4-lib/odata4-commons-api/src/main/java/org/apache/olingo/odata4/commons/api/edm/provider/EntitySet.java
----------------------------------------------------------------------
diff --git a/odata4-lib/odata4-commons-api/src/main/java/org/apache/olingo/odata4/commons/api/edm/provider/EntitySet.java b/odata4-lib/odata4-commons-api/src/main/java/org/apache/olingo/odata4/commons/api/edm/provider/EntitySet.java
index f21cb06..26969e5 100644
--- a/odata4-lib/odata4-commons-api/src/main/java/org/apache/olingo/odata4/commons/api/edm/provider/EntitySet.java
+++ b/odata4-lib/odata4-commons-api/src/main/java/org/apache/olingo/odata4/commons/api/edm/provider/EntitySet.java
@@ -20,7 +20,6 @@ package org.apache.olingo.odata4.commons.api.edm.provider;
 
 import java.util.List;
 
-
 public class EntitySet extends BindingTarget {
 
   private boolean includeInServiceDocument;

http://git-wip-us.apache.org/repos/asf/incubator-olingo-odata4/blob/3e079867/odata4-lib/odata4-commons-api/src/main/java/org/apache/olingo/odata4/commons/api/edm/provider/EntityType.java
----------------------------------------------------------------------
diff --git a/odata4-lib/odata4-commons-api/src/main/java/org/apache/olingo/odata4/commons/api/edm/provider/EntityType.java b/odata4-lib/odata4-commons-api/src/main/java/org/apache/olingo/odata4/commons/api/edm/provider/EntityType.java
index 0eaaad1..d1d07d8 100644
--- a/odata4-lib/odata4-commons-api/src/main/java/org/apache/olingo/odata4/commons/api/edm/provider/EntityType.java
+++ b/odata4-lib/odata4-commons-api/src/main/java/org/apache/olingo/odata4/commons/api/edm/provider/EntityType.java
@@ -20,7 +20,6 @@ package org.apache.olingo.odata4.commons.api.edm.provider;
 
 import java.util.List;
 
-
 public class EntityType extends StructuralType {
 
   private List<PropertyRef> key;

http://git-wip-us.apache.org/repos/asf/incubator-olingo-odata4/blob/3e079867/odata4-lib/odata4-commons-api/src/main/java/org/apache/olingo/odata4/commons/api/edm/provider/EnumMember.java
----------------------------------------------------------------------
diff --git a/odata4-lib/odata4-commons-api/src/main/java/org/apache/olingo/odata4/commons/api/edm/provider/EnumMember.java b/odata4-lib/odata4-commons-api/src/main/java/org/apache/olingo/odata4/commons/api/edm/provider/EnumMember.java
index 0857418..bfc6467 100644
--- a/odata4-lib/odata4-commons-api/src/main/java/org/apache/olingo/odata4/commons/api/edm/provider/EnumMember.java
+++ b/odata4-lib/odata4-commons-api/src/main/java/org/apache/olingo/odata4/commons/api/edm/provider/EnumMember.java
@@ -20,13 +20,14 @@ package org.apache.olingo.odata4.commons.api.edm.provider;
 
 import org.apache.olingo.odata4.commons.api.edm.EdmMember;
 
-public class EnumMember implements EdmMember{
+public class EnumMember implements EdmMember {
 
   private String name;
   private String value;
 
   // Annotations?
 
+  @Override
   public String getName() {
     return name;
   }
@@ -36,6 +37,7 @@ public class EnumMember implements EdmMember{
     return this;
   }
 
+  @Override
   public String getValue() {
     return value;
   }

http://git-wip-us.apache.org/repos/asf/incubator-olingo-odata4/blob/3e079867/odata4-lib/odata4-commons-api/src/main/java/org/apache/olingo/odata4/commons/api/edm/provider/EnumType.java
----------------------------------------------------------------------
diff --git a/odata4-lib/odata4-commons-api/src/main/java/org/apache/olingo/odata4/commons/api/edm/provider/EnumType.java b/odata4-lib/odata4-commons-api/src/main/java/org/apache/olingo/odata4/commons/api/edm/provider/EnumType.java
index 6252e67..0103827 100644
--- a/odata4-lib/odata4-commons-api/src/main/java/org/apache/olingo/odata4/commons/api/edm/provider/EnumType.java
+++ b/odata4-lib/odata4-commons-api/src/main/java/org/apache/olingo/odata4/commons/api/edm/provider/EnumType.java
@@ -20,7 +20,6 @@ package org.apache.olingo.odata4.commons.api.edm.provider;
 
 import java.util.List;
 
-
 public class EnumType {
 
   private String name;

http://git-wip-us.apache.org/repos/asf/incubator-olingo-odata4/blob/3e079867/odata4-lib/odata4-commons-api/src/main/java/org/apache/olingo/odata4/commons/api/edm/provider/FunctionImport.java
----------------------------------------------------------------------
diff --git a/odata4-lib/odata4-commons-api/src/main/java/org/apache/olingo/odata4/commons/api/edm/provider/FunctionImport.java b/odata4-lib/odata4-commons-api/src/main/java/org/apache/olingo/odata4/commons/api/edm/provider/FunctionImport.java
index 79e5b78..503f776 100644
--- a/odata4-lib/odata4-commons-api/src/main/java/org/apache/olingo/odata4/commons/api/edm/provider/FunctionImport.java
+++ b/odata4-lib/odata4-commons-api/src/main/java/org/apache/olingo/odata4/commons/api/edm/provider/FunctionImport.java
@@ -18,7 +18,6 @@
  ******************************************************************************/
 package org.apache.olingo.odata4.commons.api.edm.provider;
 
-
 public class FunctionImport extends OperationImport {
 
   private FullQualifiedName function;

http://git-wip-us.apache.org/repos/asf/incubator-olingo-odata4/blob/3e079867/odata4-lib/odata4-commons-api/src/main/java/org/apache/olingo/odata4/commons/api/edm/provider/Parameter.java
----------------------------------------------------------------------
diff --git a/odata4-lib/odata4-commons-api/src/main/java/org/apache/olingo/odata4/commons/api/edm/provider/Parameter.java b/odata4-lib/odata4-commons-api/src/main/java/org/apache/olingo/odata4/commons/api/edm/provider/Parameter.java
index cd95487..4b195e4 100644
--- a/odata4-lib/odata4-commons-api/src/main/java/org/apache/olingo/odata4/commons/api/edm/provider/Parameter.java
+++ b/odata4-lib/odata4-commons-api/src/main/java/org/apache/olingo/odata4/commons/api/edm/provider/Parameter.java
@@ -18,7 +18,6 @@
  ******************************************************************************/
 package org.apache.olingo.odata4.commons.api.edm.provider;
 
-
 public class Parameter {
 
   private String name;

http://git-wip-us.apache.org/repos/asf/incubator-olingo-odata4/blob/3e079867/odata4-lib/odata4-commons-api/src/main/java/org/apache/olingo/odata4/commons/api/edm/provider/Property.java
----------------------------------------------------------------------
diff --git a/odata4-lib/odata4-commons-api/src/main/java/org/apache/olingo/odata4/commons/api/edm/provider/Property.java b/odata4-lib/odata4-commons-api/src/main/java/org/apache/olingo/odata4/commons/api/edm/provider/Property.java
index 6eba8d1..a053b1d 100644
--- a/odata4-lib/odata4-commons-api/src/main/java/org/apache/olingo/odata4/commons/api/edm/provider/Property.java
+++ b/odata4-lib/odata4-commons-api/src/main/java/org/apache/olingo/odata4/commons/api/edm/provider/Property.java
@@ -18,7 +18,6 @@
  ******************************************************************************/
 package org.apache.olingo.odata4.commons.api.edm.provider;
 
-
 public class Property {
 
   private String name;
@@ -26,7 +25,7 @@ public class Property {
   private FullQualifiedName type;
   private boolean collection;
 
-  //TODO: Mimetype and mapping what here
+  // TODO: Mimetype and mapping what here
   private String mimeType;
   private Mapping mapping;
 

http://git-wip-us.apache.org/repos/asf/incubator-olingo-odata4/blob/3e079867/odata4-lib/odata4-commons-api/src/main/java/org/apache/olingo/odata4/commons/api/edm/provider/ReturnType.java
----------------------------------------------------------------------
diff --git a/odata4-lib/odata4-commons-api/src/main/java/org/apache/olingo/odata4/commons/api/edm/provider/ReturnType.java b/odata4-lib/odata4-commons-api/src/main/java/org/apache/olingo/odata4/commons/api/edm/provider/ReturnType.java
index f76d68b..4b4b388 100644
--- a/odata4-lib/odata4-commons-api/src/main/java/org/apache/olingo/odata4/commons/api/edm/provider/ReturnType.java
+++ b/odata4-lib/odata4-commons-api/src/main/java/org/apache/olingo/odata4/commons/api/edm/provider/ReturnType.java
@@ -18,7 +18,6 @@
  ******************************************************************************/
 package org.apache.olingo.odata4.commons.api.edm.provider;
 
-
 public class ReturnType {
 
   private FullQualifiedName type;

http://git-wip-us.apache.org/repos/asf/incubator-olingo-odata4/blob/3e079867/odata4-lib/odata4-commons-api/src/main/java/org/apache/olingo/odata4/commons/api/edm/provider/Singleton.java
----------------------------------------------------------------------
diff --git a/odata4-lib/odata4-commons-api/src/main/java/org/apache/olingo/odata4/commons/api/edm/provider/Singleton.java b/odata4-lib/odata4-commons-api/src/main/java/org/apache/olingo/odata4/commons/api/edm/provider/Singleton.java
index 18ec7d5..3dd1044 100644
--- a/odata4-lib/odata4-commons-api/src/main/java/org/apache/olingo/odata4/commons/api/edm/provider/Singleton.java
+++ b/odata4-lib/odata4-commons-api/src/main/java/org/apache/olingo/odata4/commons/api/edm/provider/Singleton.java
@@ -20,7 +20,6 @@ package org.apache.olingo.odata4.commons.api.edm.provider;
 
 import java.util.List;
 
-
 public class Singleton extends BindingTarget {
 
   @Override

http://git-wip-us.apache.org/repos/asf/incubator-olingo-odata4/blob/3e079867/odata4-lib/odata4-commons-api/src/main/java/org/apache/olingo/odata4/commons/api/edm/provider/StructuralType.java
----------------------------------------------------------------------
diff --git a/odata4-lib/odata4-commons-api/src/main/java/org/apache/olingo/odata4/commons/api/edm/provider/StructuralType.java b/odata4-lib/odata4-commons-api/src/main/java/org/apache/olingo/odata4/commons/api/edm/provider/StructuralType.java
index ba41508..ad67a7d 100644
--- a/odata4-lib/odata4-commons-api/src/main/java/org/apache/olingo/odata4/commons/api/edm/provider/StructuralType.java
+++ b/odata4-lib/odata4-commons-api/src/main/java/org/apache/olingo/odata4/commons/api/edm/provider/StructuralType.java
@@ -20,7 +20,6 @@ package org.apache.olingo.odata4.commons.api.edm.provider;
 
 import java.util.List;
 
-
 public abstract class StructuralType {
 
   protected String name;

http://git-wip-us.apache.org/repos/asf/incubator-olingo-odata4/blob/3e079867/odata4-lib/odata4-commons-api/src/main/java/org/apache/olingo/odata4/commons/api/edm/provider/Target.java
----------------------------------------------------------------------
diff --git a/odata4-lib/odata4-commons-api/src/main/java/org/apache/olingo/odata4/commons/api/edm/provider/Target.java b/odata4-lib/odata4-commons-api/src/main/java/org/apache/olingo/odata4/commons/api/edm/provider/Target.java
index 33ec922..ced9497 100644
--- a/odata4-lib/odata4-commons-api/src/main/java/org/apache/olingo/odata4/commons/api/edm/provider/Target.java
+++ b/odata4-lib/odata4-commons-api/src/main/java/org/apache/olingo/odata4/commons/api/edm/provider/Target.java
@@ -18,7 +18,6 @@
  ******************************************************************************/
 package org.apache.olingo.odata4.commons.api.edm.provider;
 
-
 public class Target {
 
   private String targetName;

http://git-wip-us.apache.org/repos/asf/incubator-olingo-odata4/blob/3e079867/odata4-lib/odata4-commons-api/src/main/java/org/apache/olingo/odata4/commons/api/edm/provider/Term.java
----------------------------------------------------------------------
diff --git a/odata4-lib/odata4-commons-api/src/main/java/org/apache/olingo/odata4/commons/api/edm/provider/Term.java b/odata4-lib/odata4-commons-api/src/main/java/org/apache/olingo/odata4/commons/api/edm/provider/Term.java
index dbf8c63..452c79a 100644
--- a/odata4-lib/odata4-commons-api/src/main/java/org/apache/olingo/odata4/commons/api/edm/provider/Term.java
+++ b/odata4-lib/odata4-commons-api/src/main/java/org/apache/olingo/odata4/commons/api/edm/provider/Term.java
@@ -20,12 +20,11 @@ package org.apache.olingo.odata4.commons.api.edm.provider;
 
 import java.util.List;
 
-
 public class Term {
   private String name;
   private FullQualifiedName type;
   private FullQualifiedName baseTerm;
-  //TODO: AppliesTo is a list of csdl elements => should we put this list inside an enum?
+  // TODO: AppliesTo is a list of csdl elements => should we put this list inside an enum?
   private String appliesTo;
   private boolean isCollection;
 

http://git-wip-us.apache.org/repos/asf/incubator-olingo-odata4/blob/3e079867/odata4-lib/odata4-commons-api/src/main/java/org/apache/olingo/odata4/commons/api/edm/provider/TypeDefinition.java
----------------------------------------------------------------------
diff --git a/odata4-lib/odata4-commons-api/src/main/java/org/apache/olingo/odata4/commons/api/edm/provider/TypeDefinition.java b/odata4-lib/odata4-commons-api/src/main/java/org/apache/olingo/odata4/commons/api/edm/provider/TypeDefinition.java
index dfd1a1e..5c3670a 100644
--- a/odata4-lib/odata4-commons-api/src/main/java/org/apache/olingo/odata4/commons/api/edm/provider/TypeDefinition.java
+++ b/odata4-lib/odata4-commons-api/src/main/java/org/apache/olingo/odata4/commons/api/edm/provider/TypeDefinition.java
@@ -18,7 +18,6 @@
  ******************************************************************************/
 package org.apache.olingo.odata4.commons.api.edm.provider;
 
-
 public class TypeDefinition {
 
   private String name;

http://git-wip-us.apache.org/repos/asf/incubator-olingo-odata4/blob/3e079867/odata4-lib/odata4-commons-core/src/main/java/org/apache/olingo/odata4/commons/core/edm/provider/EdmNavigationPropertyImpl.java
----------------------------------------------------------------------
diff --git a/odata4-lib/odata4-commons-core/src/main/java/org/apache/olingo/odata4/commons/core/edm/provider/EdmNavigationPropertyImpl.java b/odata4-lib/odata4-commons-core/src/main/java/org/apache/olingo/odata4/commons/core/edm/provider/EdmNavigationPropertyImpl.java
index 86a6e39..e11738b 100644
--- a/odata4-lib/odata4-commons-core/src/main/java/org/apache/olingo/odata4/commons/core/edm/provider/EdmNavigationPropertyImpl.java
+++ b/odata4-lib/odata4-commons-core/src/main/java/org/apache/olingo/odata4/commons/core/edm/provider/EdmNavigationPropertyImpl.java
@@ -18,16 +18,22 @@
  ******************************************************************************/
 package org.apache.olingo.odata4.commons.core.edm.provider;
 
+import java.util.List;
+
+import org.apache.olingo.odata4.commons.api.edm.EdmElement;
 import org.apache.olingo.odata4.commons.api.edm.EdmEntityType;
 import org.apache.olingo.odata4.commons.api.edm.EdmException;
 import org.apache.olingo.odata4.commons.api.edm.EdmNavigationProperty;
+import org.apache.olingo.odata4.commons.api.edm.EdmStructuralType;
 import org.apache.olingo.odata4.commons.api.edm.EdmType;
 import org.apache.olingo.odata4.commons.api.edm.provider.NavigationProperty;
+import org.apache.olingo.odata4.commons.api.edm.provider.ReferentialConstraint;
 
 public class EdmNavigationPropertyImpl extends EdmElementImpl implements EdmNavigationProperty {
 
   private final NavigationProperty navigationProperty;
   private EdmEntityType typeImpl;
+  private EdmNavigationProperty partnerNavigationProperty;
 
   public EdmNavigationPropertyImpl(final EdmProviderImpl edm, final NavigationProperty navigationProperty) {
     super(edm, navigationProperty.getName());
@@ -55,4 +61,38 @@ public class EdmNavigationPropertyImpl extends EdmElementImpl implements EdmNavi
     return navigationProperty.getNullable();
   }
 
+  @Override
+  public EdmNavigationProperty getPartner() {
+    if (partnerNavigationProperty == null) {
+      String partner = navigationProperty.getPartner();
+      if (partner != null) {
+        EdmStructuralType type = (EdmStructuralType) getType();
+        EdmElement property = null;
+        String[] split = partner.split("/");
+        for (String element : split) {
+          property = type.getProperty(element);
+          if (property == null) {
+            throw new EdmException("Cannot find property with name: " + element + " at type " + type.getName());
+          }
+          type = (EdmStructuralType) property.getType();
+        }
+        partnerNavigationProperty = (EdmNavigationProperty) property;
+      }
+    }
+    return partnerNavigationProperty;
+  }
+
+  @Override
+  public String getReferencingPropertyName(final String referencedPropertyName) {
+    List<ReferentialConstraint> referentialConstraints = navigationProperty.getReferentialConstraints();
+    if (referentialConstraints != null) {
+      for (ReferentialConstraint constraint : referentialConstraints) {
+        if (constraint.getReferencedProperty().equals(referencedPropertyName)) {
+          return constraint.getProperty();
+        }
+      }
+    }
+    return null;
+  }
+
 }

http://git-wip-us.apache.org/repos/asf/incubator-olingo-odata4/blob/3e079867/odata4-lib/odata4-commons-core/src/test/java/org/apache/olingo/odata4/commons/core/edm/provider/EdmNavigationPropertyImplTest.java
----------------------------------------------------------------------
diff --git a/odata4-lib/odata4-commons-core/src/test/java/org/apache/olingo/odata4/commons/core/edm/provider/EdmNavigationPropertyImplTest.java b/odata4-lib/odata4-commons-core/src/test/java/org/apache/olingo/odata4/commons/core/edm/provider/EdmNavigationPropertyImplTest.java
index 8ef61e2..d1bc879 100644
--- a/odata4-lib/odata4-commons-core/src/test/java/org/apache/olingo/odata4/commons/core/edm/provider/EdmNavigationPropertyImplTest.java
+++ b/odata4-lib/odata4-commons-core/src/test/java/org/apache/olingo/odata4/commons/core/edm/provider/EdmNavigationPropertyImplTest.java
@@ -20,11 +20,15 @@ package org.apache.olingo.odata4.commons.core.edm.provider;
 
 import static org.junit.Assert.assertEquals;
 import static org.junit.Assert.assertFalse;
+import static org.junit.Assert.assertNotNull;
+import static org.junit.Assert.assertNull;
 import static org.junit.Assert.assertTrue;
 import static org.mockito.Mockito.mock;
 import static org.mockito.Mockito.when;
 
+import java.util.ArrayList;
 import java.util.Collections;
+import java.util.List;
 
 import org.apache.olingo.odata4.commons.api.edm.EdmException;
 import org.apache.olingo.odata4.commons.api.edm.EdmNavigationProperty;
@@ -35,6 +39,7 @@ import org.apache.olingo.odata4.commons.api.edm.provider.EntityType;
 import org.apache.olingo.odata4.commons.api.edm.provider.FullQualifiedName;
 import org.apache.olingo.odata4.commons.api.edm.provider.NavigationProperty;
 import org.apache.olingo.odata4.commons.api.edm.provider.PropertyRef;
+import org.apache.olingo.odata4.commons.api.edm.provider.ReferentialConstraint;
 import org.junit.Test;
 
 public class EdmNavigationPropertyImplTest {
@@ -57,12 +62,78 @@ public class EdmNavigationPropertyImplTest {
     assertEquals(EdmTypeKind.ENTITY, type.getKind());
     assertEquals("ns", type.getNamespace());
     assertEquals("entity", type.getName());
+    assertNull(property.getReferencingPropertyName("referencedPropertyName"));
+    assertNull(property.getPartner());
 
     // Test caching
     EdmType cachedType = property.getType();
     assertTrue(type == cachedType);
   }
 
+  @Test
+  public void navigationPropertyWithReferntialConstraint() throws Exception {
+    EdmProvider provider = mock(EdmProvider.class);
+    EdmProviderImpl edm = new EdmProviderImpl(provider);
+    final FullQualifiedName entityTypeName = new FullQualifiedName("ns", "entity");
+    EntityType entityTypeProvider = new EntityType();
+    entityTypeProvider.setKey(Collections.<PropertyRef> emptyList());
+    when(provider.getEntityType(entityTypeName)).thenReturn(entityTypeProvider);
+    NavigationProperty propertyProvider = new NavigationProperty();
+    propertyProvider.setType(entityTypeName);
+    propertyProvider.setNullable(false);
+    List<ReferentialConstraint> referentialConstraints = new ArrayList<ReferentialConstraint>();
+    referentialConstraints.add(new ReferentialConstraint().setProperty("property").setReferencedProperty(
+        "referencedProperty"));
+    propertyProvider.setReferentialConstraints(referentialConstraints);
+    EdmNavigationProperty property = new EdmNavigationPropertyImpl(edm, propertyProvider);
+    assertEquals("property", property.getReferencingPropertyName("referencedProperty"));
+    assertNull(property.getReferencingPropertyName("wrong"));
+  }
+
+  @Test
+  public void navigationPropertyWithPartner() throws Exception {
+    EdmProvider provider = mock(EdmProvider.class);
+    EdmProviderImpl edm = new EdmProviderImpl(provider);
+    final FullQualifiedName entityTypeName = new FullQualifiedName("ns", "entity");
+    EntityType entityTypeProvider = new EntityType();
+    entityTypeProvider.setKey(Collections.<PropertyRef> emptyList());
+
+    List<NavigationProperty> navigationProperties = new ArrayList<NavigationProperty>();
+    navigationProperties.add(new NavigationProperty().setName("partnerName").setType(entityTypeName));
+    entityTypeProvider.setNavigationProperties(navigationProperties);
+    when(provider.getEntityType(entityTypeName)).thenReturn(entityTypeProvider);
+    NavigationProperty propertyProvider = new NavigationProperty();
+    propertyProvider.setType(entityTypeName);
+    propertyProvider.setNullable(false);
+    propertyProvider.setPartner("partnerName");
+    EdmNavigationProperty property = new EdmNavigationPropertyImpl(edm, propertyProvider);
+    EdmNavigationProperty partner = property.getPartner();
+    assertNotNull(partner);
+
+    // Caching
+    assertTrue(partner == property.getPartner());
+  }
+
+  @Test(expected = EdmException.class)
+  public void navigationPropertyWithNonexistentPartner() throws Exception {
+    EdmProvider provider = mock(EdmProvider.class);
+    EdmProviderImpl edm = new EdmProviderImpl(provider);
+    final FullQualifiedName entityTypeName = new FullQualifiedName("ns", "entity");
+    EntityType entityTypeProvider = new EntityType();
+    entityTypeProvider.setKey(Collections.<PropertyRef> emptyList());
+
+    List<NavigationProperty> navigationProperties = new ArrayList<NavigationProperty>();
+    navigationProperties.add(new NavigationProperty().setName("partnerName").setType(entityTypeName));
+    entityTypeProvider.setNavigationProperties(navigationProperties);
+    when(provider.getEntityType(entityTypeName)).thenReturn(entityTypeProvider);
+    NavigationProperty propertyProvider = new NavigationProperty();
+    propertyProvider.setType(entityTypeName);
+    propertyProvider.setNullable(false);
+    propertyProvider.setPartner("wrong");
+    EdmNavigationProperty property = new EdmNavigationPropertyImpl(edm, propertyProvider);
+    property.getPartner();
+  }
+
   @Test(expected = EdmException.class)
   public void navigationPropertyWithNonExistentType() throws Exception {
     EdmProviderImpl edm = mock(EdmProviderImpl.class);