details:   /erp/devel/pi/rev/9f67838a3ea8
changeset: 6535:9f67838a3ea8
user:      Martin Taal <martin.taal <at> openbravo.com>
date:      Mon Mar 01 13:24:11 2010 +0100
summary:   fixes issue 12507: New customizable references should make it 
possible to use a custom hibernate user type

diffstat:

 src/org/openbravo/base/model/Property.java                           |  14 
++++++++++
 src/org/openbravo/base/model/domaintype/BasePrimitiveDomainType.java |   9 
++++++
 src/org/openbravo/base/model/domaintype/PrimitiveDomainType.java     |   9 
++++++
 src/org/openbravo/dal/core/DalMappingGenerator.java                  |  14 
+++++-----
 4 files changed, 39 insertions(+), 7 deletions(-)

diffs (104 lines):

diff -r 7470dce633ac -r 9f67838a3ea8 src/org/openbravo/base/model/Property.java
--- a/src/org/openbravo/base/model/Property.java        Mon Mar 01 11:36:14 
2010 +0100
+++ b/src/org/openbravo/base/model/Property.java        Mon Mar 01 13:24:11 
2010 +0100
@@ -277,10 +277,24 @@
     this.targetEntity = targetEntity;
   }
 
+  /**
+   * @return the primitive type defined by the domain type of the property.
+   * @see #getDomainType()
+   * @see PrimitiveDomainType#getPrimitiveType()
+   */
   public Class<?> getPrimitiveType() {
     return ((PrimitiveDomainType) getDomainType()).getPrimitiveType();
   }
 
+  /**
+   * @return the type used in the hibernate mapping for a primitive typed 
property.
+   * @see #getDomainType()
+   * @see PrimitiveDomainType#getHibernateType()
+   */
+  public Class<?> getHibernateType() {
+    return ((PrimitiveDomainType) getDomainType()).getHibernateType();
+  }
+
   public String getColumnName() {
     return columnName;
   }
diff -r 7470dce633ac -r 9f67838a3ea8 
src/org/openbravo/base/model/domaintype/BasePrimitiveDomainType.java
--- a/src/org/openbravo/base/model/domaintype/BasePrimitiveDomainType.java      
Mon Mar 01 11:36:14 2010 +0100
+++ b/src/org/openbravo/base/model/domaintype/BasePrimitiveDomainType.java      
Mon Mar 01 13:24:11 2010 +0100
@@ -34,6 +34,15 @@
   /*
    * (non-Javadoc)
    * 
+   * @see 
org.openbravo.base.model.domaintype.PrimitiveDomainType#getHibernateType()
+   */
+  public Class<?> getHibernateType() {
+    return getPrimitiveType();
+  }
+
+  /*
+   * (non-Javadoc)
+   * 
    * @see
    * 
org.openbravo.base.model.domaintype.DomainType#checkIsValidValue(org.openbravo.base.model.Property
    * , java.lang.Object)
diff -r 7470dce633ac -r 9f67838a3ea8 
src/org/openbravo/base/model/domaintype/PrimitiveDomainType.java
--- a/src/org/openbravo/base/model/domaintype/PrimitiveDomainType.java  Mon Mar 
01 11:36:14 2010 +0100
+++ b/src/org/openbravo/base/model/domaintype/PrimitiveDomainType.java  Mon Mar 
01 13:24:11 2010 +0100
@@ -38,6 +38,15 @@
   Class<?> getPrimitiveType();
 
   /**
+   * The type used in the hibernate mapping. Most of the time is the same as 
the
+   * {...@link #getPrimitiveType()}. Can be used to set a hibnernate user type 
class. See the hibernate
+   * documentation for more information on this.
+   * 
+   * @return the class representing the hibernate type
+   */
+  Class<?> getHibernateType();
+
+  /**
    * Returns the id of the format definition to use for this domain type. Is 
normally only relevant
    * for numeric domain types. The id is the prefix part of the name in the 
Format.xml file. So for
    * example the id 'integer' maps to all the Format.xml entries with integer 
as a prefix.
diff -r 7470dce633ac -r 9f67838a3ea8 
src/org/openbravo/dal/core/DalMappingGenerator.java
--- a/src/org/openbravo/dal/core/DalMappingGenerator.java       Mon Mar 01 
11:36:14 2010 +0100
+++ b/src/org/openbravo/dal/core/DalMappingGenerator.java       Mon Mar 01 
13:24:11 2010 +0100
@@ -167,17 +167,17 @@
   }
 
   private String generatePrimitiveMapping(Property p) {
-    if (p.getPrimitiveType() == Object.class) {
+    if (p.getHibernateType() == Object.class) {
       return "";
     }
     final StringBuffer sb = new StringBuffer();
     sb.append(TAB2 + "<property name=\"" + p.getName() + "\"");
     sb.append(getAccessorAttribute());
     String type;
-    if (p.getPrimitiveType().isArray()) {
-      type = p.getPrimitiveType().getComponentType().getName() + "[]";
+    if (p.getHibernateType().isArray()) {
+      type = p.getHibernateType().getComponentType().getName() + "[]";
     } else {
-      type = p.getPrimitiveType().getName();
+      type = p.getHibernateType().getName();
     }
     if (p.isBoolean()) {
       type = YesNoType.class.getName(); // "yes_no";
@@ -301,9 +301,9 @@
         .isTrue(compId.isCompositeId(), "Property " + compId + " is expected 
to be a composite Id");
     for (final Property p : compId.getIdParts()) {
       if (p.isPrimitive()) {
-        String type = p.getPrimitiveType().getName();
-        if (boolean.class.isAssignableFrom(p.getPrimitiveType().getClass())
-            || Boolean.class == p.getPrimitiveType()) {
+        String type = p.getHibernateType().getName();
+        if (boolean.class.isAssignableFrom(p.getHibernateType().getClass())
+            || Boolean.class == p.getHibernateType()) {
           type = "yes_no";
         }
         sb.append(TAB3 + "<key-property name=\"" + p.getName() + "\" 
column=\"" + p.getColumnName()

------------------------------------------------------------------------------
Download Intel&#174; Parallel Studio Eval
Try the new software tools for yourself. Speed compiling, find bugs
proactively, and fine-tune applications for parallel performance.
See why Intel Parallel Studio got high marks during beta.
http://p.sf.net/sfu/intel-sw-dev
_______________________________________________
Openbravo-commits mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/openbravo-commits

Reply via email to