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® 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