(no commit message)
[cdmlib.git] / cdmlib-io / src / main / java / eu / etaxonomy / cdm / io / berlinModel / BerlinModelTransformer.java
1 package eu.etaxonomy.cdm.io.berlinModel;
2
3 import org.apache.log4j.Logger;
4
5 import eu.etaxonomy.cdm.model.name.Rank;
6 import eu.etaxonomy.cdm.model.taxon.Synonym;
7 import eu.etaxonomy.cdm.model.taxon.SynonymRelationshipType;
8 import eu.etaxonomy.cdm.model.taxon.Taxon;
9 import eu.etaxonomy.cdm.strategy.exceptions.UnknownCdmTypeException;
10
11 public final class BerlinModelTransformer {
12 private static final Logger logger = Logger.getLogger(BerlinModelTransformer.class);
13
14 //REFERENCES
15 public static int REF_ARTICLE = 1;
16 public static int REF_PART_OF_OTHER_TITLE = 2;
17 public static int REF_BOOK = 3;
18 public static int REF_DATABASE = 4;
19 public static int REF_INFORMAL = 5;
20 public static int REF_NOT_APPLICABLE = 6;
21 public static int REF_WEBSITE = 7;
22 public static int REF_CD = 8;
23 public static int REF_JOURNAL = 9;
24 public static int REF_UNKNOWN = 10;
25
26
27 //NameStatus
28 public static int NAME_ST_NOM_INVAL = 1;
29 public static int NAME_ST_NOM_ILLEG = 2;
30 public static int NAME_ST_NOM_NUD = 3;
31 public static int NAME_ST_NOM_REJ = 4;
32 public static int NAME_ST_NOM_REJ_PROP = 5;
33 public static int NAME_ST_NOM_UTIQUE_REJ = 6;
34 public static int NAME_ST_NOM_UTIQUE_REJ_PROP = 7;
35 public static int NAME_ST_NOM_CONS = 8;
36 public static int NAME_ST_NOM_CONS_PROP = 9;
37 public static int NAME_ST_ORTH_CONS = 10;
38 public static int NAME_ST_ORTH_CONS_PROP = 11;
39 public static int NAME_ST_NOM_SUPERFL = 12;
40 public static int NAME_ST_NOM_AMBIG = 13;
41 public static int NAME_ST_NOM_PROVIS = 14;
42 public static int NAME_ST_NOM_DUB = 15;
43 public static int NAME_ST_NOM_NOV = 16;
44 public static int NAME_ST_NOM_CONFUS = 17;
45 public static int NAME_ST_NOM_ALTERN = 18;
46 public static int NAME_ST_COMB_INVAL = 19;
47
48
49 //NameRelationShip
50 public static int NAME_REL_IS_BASIONYM_FOR = 1;
51 public static int NAME_REL_IS_LATER_HOMONYM_OF = 2;
52 public static int NAME_REL_IS_REPLACED_SYNONYM_FOR = 3;
53 public static int NAME_REL_IS_VALIDATION_OF = 4;
54 public static int NAME_REL_IS_LATER_VALIDATION_OF = 5;
55 public static int NAME_REL_IS_TYPE_OF = 6;
56 public static int NAME_REL_IS_CONSERVED_TYPE_OF =7;
57 public static int NAME_REL_IS_REJECTED_TYPE_OF = 8;
58 public static int NAME_REL_IS_FIRST_PARENT_OF = 9;
59 public static int NAME_REL_IS_SECOND_PARENT_OF = 10;
60 public static int NAME_REL_IS_FEMALE_PARENT_OF = 11;
61 public static int NAME_REL_IS_MALE_PARENT_OF = 12;
62 public static int NAME_REL_IS_CONSERVED_AGAINST =13;
63 public static int NAME_REL_IS_REJECTED_IN_FAVOUR_OF = 14;
64 public static int NAME_REL_IS_TREATED_AS_LATER_HOMONYM_OF = 15;
65 public static int NAME_REL_IS_ORTHOGRAPHIC_VARIANT_OF = 16;
66 public static int NAME_REL_HAS_SAME_TYPE_AS = 18;
67 public static int NAME_REL_IS_LECTOTYPE_OF = 61;
68 public static int NAME_REL_TYPE_NOT_DESIGNATED = 62;
69
70
71 //TaxonRelationShip
72 public static int TAX_REL_IS_INCLUDED_IN = 1;
73 public static int TAX_REL_IS_SYNONYM_OF = 2;
74 public static int TAX_REL_IS_MISAPPLIED_NAME_OF = 3;
75 public static int TAX_REL_IS_HOMOTYPIC_SYNONYM_OF = 6;
76 public static int TAX_REL_IS_HETEROTYPIC_SYNONYM_OF = 7;
77
78
79 //TaxonStatus
80 public static int T_STATUS_ACCEPTED = 1;
81 public static int T_STATUS_SYNONYM = 2;
82 public static int T_STATUS_PARTIAL_SYN = 3;
83 public static int T_STATUS_PRO_PARTE_SYN = 4;
84 public static int T_STATUS_UNRESOLVED = 5;
85 public static int T_STATUS_ORPHANED = 6;
86
87
88 //Facts
89 public static int FACT_DESCRIPTION = 1;
90 public static int FACT_GROWTH_FORM = 2;
91 public static int FACT_HARDINESS = 3;
92 public static int FACT_ECOLOGY = 4;
93 public static int FACT_PHENOLOGY = 5;
94 public static int FACT_KARYOLOGY = 6;
95 public static int FACT_ILLUSTRATION = 7;
96 public static int FACT_IDENTIFICATION = 8;
97 public static int FACT_OBSERVATION = 9;
98 public static int FACT_DISTIRBUTION_EM = 10;
99 public static int FACT_DISTIRBUTION_WORLD = 11;
100
101 /** Creates an cdm-Rank by the berlinModel rankId
102 * @param doubt doubtfulFalg
103 * @return "true" if doubt = "a"
104 */
105 public static Rank rankId2Rank (int rankId) throws UnknownCdmTypeException{
106 switch (rankId){
107 case 1: return Rank.KINGDOM();
108 case 3: return Rank.SUBKINGDOM();
109 case 5: return Rank.PHYLUM();
110 case 7: return Rank.SUBPHYLUM();
111 case 8: return Rank.DIVISION();
112 case 9: return Rank.SUBDIVISION();
113 case 10: return Rank.CLASS();
114 case 13: return Rank.SUBCLASS();
115 case 16: return Rank.SUPERORDER();
116 case 18: return Rank.ORDER();
117 case 19: return Rank.SUBORDER();
118 case 20: return Rank.FAMILY();
119 case 25: return Rank.SUBFAMILY();
120 case 30: return Rank.TRIBE();
121 case 35: return Rank.SUBTRIBE();
122 case 40: return Rank.GENUS();
123 case 42: return Rank.SUBGENUS();
124 case 45: return Rank.SECTION();
125 case 47: return Rank.SUBSECTION();
126 case 50: return Rank.SERIES();
127 case 52: return Rank.SUBSERIES();
128 case 58: return Rank.SPECIESAGGREGATE();
129 //FIXME
130 //case 59: return Rank.SPECIESAGGREGATE();
131 case 60: return Rank.SPECIES();
132 case 65: return Rank.SUBSPECIES();
133 case 68: return Rank.CONVAR();
134 case 70: return Rank.VARIETY();
135 case 73: return Rank.SUBVARIETY();
136 case 80: return Rank.FORM();
137 case 82: return Rank.SUBFORM();
138 case 84: return Rank.SPECIALFORM();
139 case 98: return Rank.INFRAGENERICTAXON();
140 case 99: return Rank.INFRASPECIFICTAXON();
141 default: {
142 throw new UnknownCdmTypeException("Unknown Rank id" + Integer.valueOf(rankId).toString());
143 }
144 }
145 }
146
147
148 }