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 2013/09/13 17:21:22 UTC

git commit: JPA - Changes to Ref sceanrio showcasing char support

Updated Branches:
  refs/heads/master b6fbd3be4 -> 211b2d258


JPA - Changes to Ref sceanrio showcasing char support


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

Branch: refs/heads/master
Commit: 211b2d25807bec773b6ad86b7a1815f844682f0b
Parents: b6fbd3b
Author: Chandan V A <ch...@sap.com>
Authored: Fri Sep 13 20:51:06 2013 +0530
Committer: Chandan V A <ch...@sap.com>
Committed: Fri Sep 13 20:51:06 2013 +0530

----------------------------------------------------------------------
 .../core/jpa/access/data/JPAEntity.java         | 10 +++-
 .../core/jpa/access/data/JPAEntityParser.java   |  8 +++
 .../processor/ref/model/SalesOrderHeader.java   | 52 ++++++++++++++++++--
 3 files changed, 65 insertions(+), 5 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-olingo-odata2/blob/211b2d25/jpa-core/src/main/java/org/apache/olingo/odata2/processor/core/jpa/access/data/JPAEntity.java
----------------------------------------------------------------------
diff --git a/jpa-core/src/main/java/org/apache/olingo/odata2/processor/core/jpa/access/data/JPAEntity.java b/jpa-core/src/main/java/org/apache/olingo/odata2/processor/core/jpa/access/data/JPAEntity.java
index 59b8313..2e03fbd 100644
--- a/jpa-core/src/main/java/org/apache/olingo/odata2/processor/core/jpa/access/data/JPAEntity.java
+++ b/jpa-core/src/main/java/org/apache/olingo/odata2/processor/core/jpa/access/data/JPAEntity.java
@@ -252,10 +252,18 @@ public class JPAEntity {
         char[] characters = ((String) entityPropertyValue).toCharArray();
         method.invoke(entity, characters);
       }
+      else if (parameterType.equals(char.class)) {
+        char c = ((String) entityPropertyValue).charAt(0);
+        method.invoke(entity, c);
+      }
       else if (parameterType.equals(Character[].class))
       {
         Character[] characters = JPAEntityParser.toCharacterArray((String) entityPropertyValue);
-        method.invoke(entity, (Object)characters);
+        method.invoke(entity, (Object) characters);
+      }
+      else if (parameterType.equals(Character.class)) {
+        Character c = Character.valueOf(((String) entityPropertyValue).charAt(0));
+        method.invoke(entity, c);
       }
       else
         method.invoke(entity, entityPropertyValue);

http://git-wip-us.apache.org/repos/asf/incubator-olingo-odata2/blob/211b2d25/jpa-core/src/main/java/org/apache/olingo/odata2/processor/core/jpa/access/data/JPAEntityParser.java
----------------------------------------------------------------------
diff --git a/jpa-core/src/main/java/org/apache/olingo/odata2/processor/core/jpa/access/data/JPAEntityParser.java b/jpa-core/src/main/java/org/apache/olingo/odata2/processor/core/jpa/access/data/JPAEntityParser.java
index f22fd79..d7a8c97 100644
--- a/jpa-core/src/main/java/org/apache/olingo/odata2/processor/core/jpa/access/data/JPAEntityParser.java
+++ b/jpa-core/src/main/java/org/apache/olingo/odata2/processor/core/jpa/access/data/JPAEntityParser.java
@@ -349,6 +349,14 @@ public final class JPAEntityParser {
         propertyValue = (String) String.valueOf((char[]) method.invoke(entity));
       else if (returnType.equals(Character[].class))
         propertyValue = (String) toString((Character[]) method.invoke(entity));
+      else if (returnType.equals(char.class)) {
+        char c = (Character) method.invoke(entity);
+        propertyValue = (String) String.valueOf(c);
+      }
+      else if (returnType.equals(Character.class)) {
+        Character c = (Character) method.invoke(entity);
+        propertyValue = toString(new Character[] { c });
+      }
       else
         propertyValue = method.invoke(entity);
     } catch (IllegalAccessException e) {

http://git-wip-us.apache.org/repos/asf/incubator-olingo-odata2/blob/211b2d25/jpa-ref/src/main/java/org/apache/olingo/odata2/jpa/processor/ref/model/SalesOrderHeader.java
----------------------------------------------------------------------
diff --git a/jpa-ref/src/main/java/org/apache/olingo/odata2/jpa/processor/ref/model/SalesOrderHeader.java b/jpa-ref/src/main/java/org/apache/olingo/odata2/jpa/processor/ref/model/SalesOrderHeader.java
index 2b034c4..c40512c 100644
--- a/jpa-ref/src/main/java/org/apache/olingo/odata2/jpa/processor/ref/model/SalesOrderHeader.java
+++ b/jpa-ref/src/main/java/org/apache/olingo/odata2/jpa/processor/ref/model/SalesOrderHeader.java
@@ -30,6 +30,7 @@ import javax.persistence.Embedded;
 import javax.persistence.Entity;
 import javax.persistence.Id;
 import javax.persistence.OneToMany;
+import javax.persistence.PostPersist;
 import javax.persistence.Table;
 import javax.persistence.Temporal;
 import javax.persistence.TemporalType;
@@ -42,7 +43,7 @@ public class SalesOrderHeader {
 
   public SalesOrderHeader(final Calendar creationDate, final int buyerId, final String buyerName,
       final Address buyerAddress, final String currencyCode, final double netAmount,
-      final String deliveryStatus) {
+      final String deliveryStatus, final char[] shortText, final Character[] longText) {
     super();
     this.creationDate = creationDate;
     this.buyerId = buyerId;
@@ -50,6 +51,8 @@ public class SalesOrderHeader {
     this.buyerAddress = buyerAddress;
     this.currencyCode = currencyCode;
     this.deliveryStatus = deliveryStatus;
+    this.shortText = shortText;
+    this.longText = longText;
   }
 
   @Id
@@ -58,6 +61,23 @@ public class SalesOrderHeader {
 
   @Temporal(TemporalType.TIMESTAMP)
   private Calendar creationDate;
+  
+  @Column
+  private Character status;
+  
+  public Character getStatus() {
+    return status;
+  }
+
+  public void setStatus(Character status) {
+    this.status = status;
+  }
+
+  @Column(name = "SHORT_TEXT", length = 20)
+  private char[] shortText;
+
+  @Column(name = "LONG_TEXT", length = 40)
+  private Character[] longText;
 
   @Column(name = "BUYER_ID")
   private int buyerId;
@@ -104,10 +124,12 @@ public class SalesOrderHeader {
   }
 
   public void setCreationDate(final Calendar creationDate) {
-    if (creationDate == null) {
-      return;
+    long originalTime;
+    if (creationDate != null) {
+      originalTime = creationDate.getTime().getTime();
     }
-    long originalTime = creationDate.getTime().getTime();
+    else
+      originalTime = Calendar.getInstance(TimeZone.getDefault()).getTime().getTime();
     Date newDate = new Date(originalTime - TimeZone.getDefault().getOffset(originalTime));
     Calendar newCalendar = Calendar.getInstance();
     newCalendar.setTime(newDate);
@@ -185,4 +207,26 @@ public class SalesOrderHeader {
   public void setNotes(final List<Note> notes) {
     this.notes = notes;
   }
+
+  public char[] getShortText() {
+    return shortText;
+  }
+
+  public void setShortText(char[] shortText) {
+    this.shortText = shortText;
+  }
+
+  public Character[] getLongText() {
+    return longText;
+  }
+
+  public void setLongText(Character[] longText) {
+    this.longText = longText;
+  }
+
+  @PostPersist
+  public void defaultValues() {
+    if (this.creationDate == null) setCreationDate(this.creationDate);
+  }
+  
 }