(no commit message)
authorAndreas Müller <a.mueller@bgbm.org>
Tue, 22 Jul 2008 20:35:45 +0000 (20:35 +0000)
committerAndreas Müller <a.mueller@bgbm.org>
Tue, 22 Jul 2008 20:35:45 +0000 (20:35 +0000)
.gitattributes
cdmlib-model/src/main/java/eu/etaxonomy/cdm/model/common/RelationshipTermBase.java
cdmlib-model/src/main/java/eu/etaxonomy/cdm/model/common/UUIDUserType.java [new file with mode: 0644]

index 091cd93119d15629fd720f2152b3ee9ffd3f5225..f21c54f9ccd5bc3fb9fcec35606140df33c3518d 100644 (file)
@@ -132,6 +132,7 @@ cdmlib-model/src/main/java/eu/etaxonomy/cdm/model/common/TermBase.java -text
 cdmlib-model/src/main/java/eu/etaxonomy/cdm/model/common/TermLanguageComparator.java -text
 cdmlib-model/src/main/java/eu/etaxonomy/cdm/model/common/TermVocabulary.java -text
 cdmlib-model/src/main/java/eu/etaxonomy/cdm/model/common/TimePeriod.java -text
+cdmlib-model/src/main/java/eu/etaxonomy/cdm/model/common/UUIDUserType.java -text
 cdmlib-model/src/main/java/eu/etaxonomy/cdm/model/common/VersionableEntity.java -text
 cdmlib-model/src/main/java/eu/etaxonomy/cdm/model/common/WrongTermTypeException.java -text
 cdmlib-model/src/main/java/eu/etaxonomy/cdm/model/common/init/DefaultVocabularyStore.java -text
index ba69ab440d43dba54691c077ad04e322ae69a326..6d73c81bd45b3f05146e39c0ff944a61da31aa01 100644 (file)
@@ -1,17 +1,12 @@
 package eu.etaxonomy.cdm.model.common;
 
-import java.util.ArrayList;
 import java.util.HashSet;
 import java.util.List;
 import java.util.Set;
 
-import javax.persistence.Entity;
-import javax.persistence.Inheritance;
-import javax.persistence.InheritanceType;
 import javax.persistence.JoinTable;
 import javax.persistence.MappedSuperclass;
 import javax.persistence.OneToMany;
-import javax.persistence.Table;
 import javax.persistence.Transient;
 
 import org.apache.log4j.Logger;
diff --git a/cdmlib-model/src/main/java/eu/etaxonomy/cdm/model/common/UUIDUserType.java b/cdmlib-model/src/main/java/eu/etaxonomy/cdm/model/common/UUIDUserType.java
new file mode 100644 (file)
index 0000000..8e14049
--- /dev/null
@@ -0,0 +1,127 @@
+/**\r
+* Copyright (C) 2007 EDIT\r
+* European Distributed Institute of Taxonomy \r
+* http://www.e-taxonomy.eu\r
+* \r
+* The contents of this file are subject to the Mozilla Public License Version 1.1\r
+* See LICENSE.TXT at the top of this package for the full license terms.\r
+*/\r
+\r
+package eu.etaxonomy.cdm.model.common;\r
+\r
+import java.io.Serializable;\r
+import java.sql.PreparedStatement;\r
+import java.sql.ResultSet;\r
+import java.sql.SQLException;\r
+import java.sql.Types;\r
+import java.util.UUID;\r
+\r
+import org.apache.log4j.Logger;\r
+import org.hibernate.Hibernate;\r
+import org.hibernate.HibernateException;\r
+import org.hibernate.usertype.UserType;\r
+\r
+/**\r
+ * @author a.mueller\r
+ * @created 22.07.2008\r
+ * @version 1.0\r
+ */\r
+public class UUIDUserType implements UserType {\r
+       private static final Logger logger = Logger.getLogger(UUIDUserType.class);\r
+\r
+       private static final int[] TYPES = { Types.VARCHAR };\r
+\r
+       \r
+       /**\r
+        * \r
+        */\r
+       public UUIDUserType() {\r
+               // TODO Auto-generated constructor stub\r
+       }\r
+\r
+       public Object assemble(Serializable cached, Object owner) throws HibernateException {\r
+               try {\r
+                       if(cached == null) {\r
+                               return null;\r
+                       } else {\r
+                           return UUID.fromString(cached.toString());\r
+                       }\r
+               } catch (IllegalArgumentException e) {\r
+                       throw new HibernateException(e);\r
+               }\r
+       }\r
+\r
+       public Object deepCopy(Object o) throws HibernateException {\r
+               if (o == null) {\r
+            return null;\r
+        }\r
+               \r
+               UUID uuid = (UUID) o;\r
+\r
+        try {\r
+                       return UUID.fromString(uuid.toString());\r
+               } catch (IllegalArgumentException e) {\r
+                       throw new HibernateException(e);\r
+               }\r
+       }\r
+\r
+       public Serializable disassemble(Object value) throws HibernateException {\r
+               if(value == null) {\r
+                       return null;\r
+               } else {\r
+                   UUID uuid = (UUID) value;\r
+                   return uuid.toString();\r
+               }\r
+       }\r
+\r
+       public boolean equals(Object x, Object y) throws HibernateException {\r
+               return (x == y) || (x != null && y != null && (x.equals(y)));\r
+       }\r
+\r
+       public int hashCode(Object x) throws HibernateException {\r
+               return x.hashCode();\r
+       }\r
+\r
+       public boolean isMutable() {\r
+               return false;\r
+       }\r
+\r
+       public Object nullSafeGet(ResultSet resultSet, String[] names, Object o)\r
+                       throws HibernateException, SQLException {\r
+        String val = (String) Hibernate.STRING.nullSafeGet(resultSet, names[0]);\r
+               \r
+               if(val == null) {\r
+                       return null;\r
+               } else {\r
+\r
+            try {\r
+                           return UUID.fromString(val);\r
+                   } catch (IllegalArgumentException e) {\r
+                           throw new HibernateException(e);\r
+                   }\r
+               }\r
+       }\r
+\r
+       public void nullSafeSet(PreparedStatement preparedStatement, Object o, int index)\r
+                       throws HibernateException, SQLException {\r
+               if (null == o) { \r
+            preparedStatement.setNull(index, Types.VARCHAR); \r
+        } else { \r
+               UUID uuid = (UUID)o;\r
+            preparedStatement.setString(index, uuid.toString()); \r
+        }\r
+       }\r
+\r
+       public Object replace(Object original, Object target, Object owner)\r
+                       throws HibernateException {\r
+               return original;\r
+       }\r
+\r
+       public Class returnedClass() {\r
+               return UUID.class;\r
+       }\r
+\r
+       public int[] sqlTypes() {\r
+               return TYPES;\r
+       }\r
+}\r