parser improvement
[cdmlib.git] / cdmlib-model / src / main / java / eu / etaxonomy / cdm / strategy / StrategyBase.java
1 package eu.etaxonomy.cdm.strategy;
2
3 import java.io.Serializable;
4 import java.lang.annotation.Annotation;
5 import java.lang.reflect.Field;
6 import java.lang.reflect.Modifier;
7 import java.util.Collection;
8 import java.util.HashMap;
9 import java.util.Map;
10 import java.util.UUID;
11
12 import javax.persistence.Transient;
13
14 import org.apache.log4j.Logger;
15 import org.joda.time.DateTime;
16
17 import eu.etaxonomy.cdm.model.agent.Contact;
18 import eu.etaxonomy.cdm.model.common.CdmBase;
19 import eu.etaxonomy.cdm.model.common.LSID;
20 import eu.etaxonomy.cdm.model.common.TimePeriod;
21
22
23 public abstract class StrategyBase implements IStrategy, Serializable {
24 private static final long serialVersionUID = -274791080847215663L;
25 @SuppressWarnings("unused")
26 private static final Logger logger = Logger.getLogger(StrategyBase.class);
27
28 final static UUID uuid = UUID.fromString("2ff2b1d6-17a6-4807-a55f-f6b45bf429b7");
29
30 abstract protected UUID getUuid();
31
32 protected StrategyBase(){
33 }
34
35
36
37
38 /**
39 * @param fieldType
40 * @return
41 */
42 protected static boolean isCollection(Class<?> fieldType) {
43 if (Collection.class.isAssignableFrom(fieldType) ){
44 return true;
45 }else{
46 return false;
47 }
48 }
49
50 /**
51 * @param fieldType
52 * @return
53 */
54 protected boolean isPrimitive(Class<?> fieldType) {
55 if (fieldType.isPrimitive()){
56 return true;
57 }else{
58 return false;
59 }
60 }
61
62 /**
63 * @param fieldType
64 * @return
65 */
66 protected boolean isSingleCdmBaseObject(Class<?> fieldType) {
67 if (CdmBase.class.isAssignableFrom(fieldType)){
68 return true;
69 }else{
70 return false;
71 }
72 }
73
74 /**
75 * @param fieldType
76 * @return
77 */
78 protected boolean isUserType(Class<?> fieldType) {
79 if ( fieldType == TimePeriod.class ||
80 fieldType == DateTime.class ||
81 fieldType == LSID.class ||
82 fieldType == Contact.class
83 ){
84 return true;
85 }else{
86 return false;
87 }
88 }
89
90
91 }