[OLINGO-245] Fix for names of foreign key names. 
Properties representing foreign key are prefixed with FK


Signed-off-by: Chandan V A <[email protected]>

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

Branch: refs/heads/Olingo-129_PocJpaDataStore
Commit: 2dd0181d4fce203d6cf4e67367b25ffe54540340
Parents: 74dff0f
Author: Chandan V A <[email protected]>
Authored: Sat Apr 19 16:07:44 2014 +0530
Committer: Chandan V A <[email protected]>
Committed: Sat Apr 19 16:07:44 2014 +0530

----------------------------------------------------------------------
 .../jpa/processor/core/access/model/JPAEdmNameBuilder.java  | 6 +++++-
 .../odata2/jpa/processor/core/model/JPAEdmProperty.java     | 9 +++++----
 .../processor/core/access/model/JPAEdmNameBuilderTest.java  | 4 ++--
 3 files changed, 12 insertions(+), 7 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/olingo-odata2/blob/2dd0181d/odata2-jpa-processor/jpa-core/src/main/java/org/apache/olingo/odata2/jpa/processor/core/access/model/JPAEdmNameBuilder.java
----------------------------------------------------------------------
diff --git 
a/odata2-jpa-processor/jpa-core/src/main/java/org/apache/olingo/odata2/jpa/processor/core/access/model/JPAEdmNameBuilder.java
 
b/odata2-jpa-processor/jpa-core/src/main/java/org/apache/olingo/odata2/jpa/processor/core/access/model/JPAEdmNameBuilder.java
index 9c22364..1f0e152 100644
--- 
a/odata2-jpa-processor/jpa-core/src/main/java/org/apache/olingo/odata2/jpa/processor/core/access/model/JPAEdmNameBuilder.java
+++ 
b/odata2-jpa-processor/jpa-core/src/main/java/org/apache/olingo/odata2/jpa/processor/core/access/model/JPAEdmNameBuilder.java
@@ -58,6 +58,7 @@ public class JPAEdmNameBuilder {
   private static final String ASSOCIATIONSET_SUFFIX = "Set";
   private static final String NAVIGATION_NAME = "Details";
   private static final String UNDERSCORE = "_";
+  private static final String FK_PREFIX = "FK";
 
   public static FullQualifiedName build(final JPAEdmBaseView view, final 
String name) {
     FullQualifiedName fqName = new FullQualifiedName(buildNamespace(view), 
name);
@@ -124,7 +125,7 @@ public class JPAEdmNameBuilder {
    * ************************************************************************
    */
   public static void build(final JPAEdmPropertyView view, final boolean 
isComplexMode,
-      final boolean skipDefaultNaming) {
+      final boolean skipDefaultNaming, final boolean isForeignKey) {
     Attribute<?, ?> jpaAttribute = view.getJPAAttribute();
     String jpaAttributeName = jpaAttribute.getName();
     String propertyName = null;
@@ -145,6 +146,9 @@ public class JPAEdmNameBuilder {
       propertyName = Character.toUpperCase(jpaAttributeName.charAt(0)) + 
jpaAttributeName.substring(1);
     } else if (propertyName == null) {
       propertyName = jpaAttributeName;
+      if (isForeignKey == true) {
+        propertyName = FK_PREFIX + UNDERSCORE + propertyName;
+      }
     }
 
     view.getEdmSimpleProperty().setName(propertyName);

http://git-wip-us.apache.org/repos/asf/olingo-odata2/blob/2dd0181d/odata2-jpa-processor/jpa-core/src/main/java/org/apache/olingo/odata2/jpa/processor/core/model/JPAEdmProperty.java
----------------------------------------------------------------------
diff --git 
a/odata2-jpa-processor/jpa-core/src/main/java/org/apache/olingo/odata2/jpa/processor/core/model/JPAEdmProperty.java
 
b/odata2-jpa-processor/jpa-core/src/main/java/org/apache/olingo/odata2/jpa/processor/core/model/JPAEdmProperty.java
index e23f3b1..8ea02f7 100644
--- 
a/odata2-jpa-processor/jpa-core/src/main/java/org/apache/olingo/odata2/jpa/processor/core/model/JPAEdmProperty.java
+++ 
b/odata2-jpa-processor/jpa-core/src/main/java/org/apache/olingo/odata2/jpa/processor/core/model/JPAEdmProperty.java
@@ -210,7 +210,7 @@ public class JPAEdmProperty extends JPAEdmBaseViewImpl 
implements
         switch (attributeType) {
         case BASIC:
           currentSimpleProperty = new SimpleProperty();
-          properties.add(buildSimpleProperty(currentAttribute, 
currentSimpleProperty));
+          properties.add(buildSimpleProperty(currentAttribute, 
currentSimpleProperty, false));
           if (((SingularAttribute<?, ?>) currentAttribute).isId()) {
             if (keyView == null) {
               keyView = new JPAEdmKey(JPAEdmProperty.this);
@@ -321,12 +321,13 @@ public class JPAEdmProperty extends JPAEdmBaseViewImpl 
implements
 
     }
 
-    private SimpleProperty buildSimpleProperty(final Attribute<?, ?> 
jpaAttribute, final SimpleProperty simpleProperty)
+    private SimpleProperty buildSimpleProperty(final Attribute<?, ?> 
jpaAttribute, final SimpleProperty simpleProperty,
+        final boolean isFK)
         throws ODataJPAModelException,
         ODataJPARuntimeException {
 
       JPAEdmNameBuilder
-          .build((JPAEdmPropertyView) JPAEdmProperty.this, 
isBuildModeComplexType, skipDefaultNaming);
+          .build((JPAEdmPropertyView) JPAEdmProperty.this, 
isBuildModeComplexType, skipDefaultNaming, isFK);
       EdmSimpleTypeKind simpleTypeKind = JPATypeConvertor
           .convertToEdmSimpleType(jpaAttribute
               .getJavaType(), jpaAttribute);
@@ -360,7 +361,7 @@ public class JPAEdmProperty extends JPAEdmBaseViewImpl 
implements
               if (referencedColumn != null && 
referencedColumn.name().equals((joinColumn.referencedColumnName()))) {
                 currentRefAttribute = referencedAttribute;
                 currentSimpleProperty = new SimpleProperty();
-                properties.add(buildSimpleProperty(currentRefAttribute, 
currentSimpleProperty));
+                properties.add(buildSimpleProperty(currentRefAttribute, 
currentSimpleProperty, true));
                 break;
               }
             }

http://git-wip-us.apache.org/repos/asf/olingo-odata2/blob/2dd0181d/odata2-jpa-processor/jpa-core/src/test/java/org/apache/olingo/odata2/jpa/processor/core/access/model/JPAEdmNameBuilderTest.java
----------------------------------------------------------------------
diff --git 
a/odata2-jpa-processor/jpa-core/src/test/java/org/apache/olingo/odata2/jpa/processor/core/access/model/JPAEdmNameBuilderTest.java
 
b/odata2-jpa-processor/jpa-core/src/test/java/org/apache/olingo/odata2/jpa/processor/core/access/model/JPAEdmNameBuilderTest.java
index 542d37f..aebea64 100644
--- 
a/odata2-jpa-processor/jpa-core/src/test/java/org/apache/olingo/odata2/jpa/processor/core/access/model/JPAEdmNameBuilderTest.java
+++ 
b/odata2-jpa-processor/jpa-core/src/test/java/org/apache/olingo/odata2/jpa/processor/core/access/model/JPAEdmNameBuilderTest.java
@@ -49,7 +49,7 @@ public class JPAEdmNameBuilderTest {
     
EasyMock.expect(propertyView.getEdmSimpleProperty()).andStubReturn(simpleProperty);
     EasyMock.replay(propertyView);
 
-    JPAEdmNameBuilder.build(propertyView, false, false);
+    JPAEdmNameBuilder.build(propertyView, false, false,false);
     assertEquals("Id", simpleProperty.getName());
   }
 
@@ -69,7 +69,7 @@ public class JPAEdmNameBuilderTest {
     
EasyMock.expect(propertyView.getEdmSimpleProperty()).andStubReturn(simpleProperty);
     EasyMock.replay(propertyView);
 
-    JPAEdmNameBuilder.build(propertyView, false, true);
+    JPAEdmNameBuilder.build(propertyView, false, true,false);
     assertEquals("id", simpleProperty.getName());
   }
 

Reply via email to