factory method for IndividualAssociation
[cdmlib.git] / cdmlib-model / src / main / java / eu / etaxonomy / cdm / strategy / StrategyBase.java
index ebb8af08c2f8bbe540a34fe53fb7855361835624..8e0de651eff1d9b748c5c79013e2c125743a010f 100644 (file)
@@ -1,14 +1,30 @@
+/**\r
+* Copyright (C) 2009 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.strategy;\r
 \r
 import java.io.Serializable;\r
+import java.net.URI;\r
+import java.util.Collection;\r
 import java.util.UUID;\r
 \r
 import org.apache.log4j.Logger;\r
+import org.joda.time.DateTime;\r
+\r
+import eu.etaxonomy.cdm.model.agent.Contact;\r
+import eu.etaxonomy.cdm.model.common.CdmBase;\r
+import eu.etaxonomy.cdm.model.common.LSID;\r
+import eu.etaxonomy.cdm.model.common.TimePeriod;\r
 \r
 \r
 public abstract class StrategyBase implements IStrategy, Serializable {\r
        private static final long serialVersionUID = -274791080847215663L;\r
-\r
        @SuppressWarnings("unused")\r
        private static final Logger logger = Logger.getLogger(StrategyBase.class);\r
        \r
@@ -16,16 +32,64 @@ public abstract class StrategyBase implements IStrategy, Serializable {
 \r
        abstract protected UUID getUuid();\r
        \r
-       //protected VersionableEntity strategyObject;\r
-       \r
-       //make use of NewInstance() instead of Constructor\r
        protected StrategyBase(){\r
        }\r
+\r
        \r
-       /*\r
-       @Override\r
-       public void setStrategyObject(Object versionableEntity) {\r
-               this.strategyObject = (VersionableEntity)versionableEntity;\r
+\r
+\r
+       /**\r
+        * @param fieldType\r
+        * @return\r
+        */\r
+       protected static boolean isCollection(Class<?> fieldType) {\r
+               if (Collection.class.isAssignableFrom(fieldType) ){\r
+                       return true;\r
+               }else{\r
+                       return false;\r
+               }\r
        }\r
-       */\r
+       \r
+       /**\r
+        * @param fieldType\r
+        * @return\r
+        */\r
+       protected boolean isPrimitive(Class<?> fieldType) {\r
+               if (fieldType.isPrimitive()){\r
+                       return true;\r
+               }else{\r
+                       return false;\r
+               }\r
+       }\r
+       \r
+       /**\r
+        * @param fieldType\r
+        * @return\r
+        */\r
+       protected boolean isSingleCdmBaseObject(Class<?> fieldType) {\r
+               if (CdmBase.class.isAssignableFrom(fieldType)){\r
+                       return true;\r
+               }else{\r
+                       return false;\r
+               }\r
+       }\r
+\r
+       /**\r
+        * @param fieldType\r
+        * @return\r
+        */\r
+       protected boolean isUserType(Class<?> fieldType) {\r
+               if (    fieldType == TimePeriod.class ||\r
+                               fieldType == DateTime.class ||\r
+                               fieldType == LSID.class ||\r
+                               fieldType == Contact.class ||\r
+                               fieldType == URI.class\r
+                       ){\r
+                               return true;\r
+               }else{\r
+                       return false;\r
+               }\r
+       }\r
+       \r
+       \r
 }\r