+/**\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<T extends StrategyBase> implements IStrategy {\r
+public abstract class StrategyBase implements IStrategy, Serializable {\r
+ private static final long serialVersionUID = -274791080847215663L;\r
+ @SuppressWarnings("unused")\r
private static final Logger logger = Logger.getLogger(StrategyBase.class);\r
\r
final static UUID uuid = UUID.fromString("2ff2b1d6-17a6-4807-a55f-f6b45bf429b7");\r
\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
+\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
+ * @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
- @Override\r
- public void setStrategyObject(Object versionableEntity) {\r
- this.strategyObject = (VersionableEntity)versionableEntity;\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
+ /**\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