Ordered input for easier comparison
[cdmlib-apps.git] / app-import / src / main / java / eu / etaxonomy / cdm / io / algaterra / AlgaTerraImportTransformer.java
1 /**
2 *
3 */
4 package eu.etaxonomy.cdm.io.algaterra;
5
6 import java.util.UUID;
7
8 import org.apache.log4j.Logger;
9
10 import eu.etaxonomy.cdm.io.berlinModel.BerlinModelTransformer;
11 import eu.etaxonomy.cdm.io.common.mapping.UndefinedTransformerMethodException;
12 import eu.etaxonomy.cdm.model.description.Feature;
13
14 /**
15 * @author a.mueller
16 * @created 13.09.2012
17 *
18 */
19 public class AlgaTerraImportTransformer extends BerlinModelTransformer {
20 private static final Logger logger = Logger.getLogger(AlgaTerraImportTransformer.class);
21
22 // feature - parameter
23 public static final UUID uuidFeaturePH = UUID.fromString("99354dac-0695-44b3-a0e6-c4d4f5684006");
24 public static final UUID uuidFeatureConductivity = UUID.fromString("7ddb72ef-dd88-4320-848b-1c36de548459");
25 public static final UUID uuidFeatureWaterTemperature = UUID.fromString("4b45fb58-c6d0-486d-82b7-e1355d177859");
26 public static final UUID uuidFeatureSilica = UUID.fromString("435ff3a7-b117-4eda-bdc7-b68b1e2403d9");
27 public static final UUID uuidFeatureNitrate = UUID.fromString("7d527547-2d2f-405a-bc07-f69884acc3dd");
28 public static final UUID uuidFeatureAmmonium = UUID.fromString("1245d380-ab78-4aef-bcdc-c23bd207bb52");
29 public static final UUID uuidFeatureNitrite = UUID.fromString("0012a3eb-abc5-4022-abbe-286658d6a6dc");
30 public static final UUID uuidFeaturePhosphate = UUID.fromString("f60b5fa6-6600-47e4-9c6d-ca341e3a440c");
31 public static final UUID uuidFeatureDIN = UUID.fromString("1f54453b-91ab-4e15-9664-f21aed90bc8c");
32 public static final UUID uuidFeatureNPRation = UUID.fromString("5ee7741b-da0e-4e0e-8362-1d277350f6ad");
33 public static final UUID uuidFeatureSRP = UUID.fromString("94977e8d-8cad-41d3-bb24-1252474fa884");
34 public static final UUID uuidFeatureOxygenSaturation = UUID.fromString("23c0ca33-ad6b-4cd0-96da-98ab3573deb8");
35 public static final UUID uuidFeatureCommunity = UUID.fromString("3ff5b1ab-3999-4b5a-b8f7-01fd2f6c12c7");
36 public static final UUID uuidFeatureCl = UUID.fromString("0eacde9f-d245-4452-aade-28eb849155e8");
37 public static final UUID uuidFeatureOrthoPhosphate = UUID.fromString("00281ea0-5cb4-4b2f-93f1-c59d6e11cb41");
38 public static final UUID uuidFeatureSecchiDepth = UUID.fromString("4282d63f-107a-4818-abfc-0c23b3d0da83");
39
40 public static final UUID uuidFeatureChloroplastPosition = UUID.fromString("e48f97a5-b066-41fb-87bd-4d69e18acf1b");
41 public static final UUID uuidFeatureChloroplastShape = UUID.fromString("89e4aed5-c4ea-4830-a6bc-227d2e7d9a01");
42 public static final UUID uuidFeatureChloroplastStructure = UUID.fromString("a04ca566-2020-4992-8d16-f218932c58c3");
43 public static final UUID uuidFeatureGrowthForm = UUID.fromString("8e55bcaa-3b7e-4d21-80d0-41c2a2c4f8ab");
44 public static final UUID uuidFeatureOrganisationLevel = UUID.fromString("ae958c09-e528-4183-9b9c-3b53012b12e7");
45 public static final UUID uuidFeatureRaphe = UUID.fromString("b6743a16-23d4-4645-a63d-3b2f711971c1");
46 public static final UUID uuidFeatureShape = UUID.fromString("a8f9b43f-53cb-4f0c-bb5e-8f9f8748882b");
47 public static final UUID uuidFeatureSymmetrie = UUID.fromString("cc5e4ce9-c259-4744-9c99-f16144ca7a55");
48
49 public static final UUID uuidFeatureApices = UUID.fromString("34d3dd86-cfce-4b65-9866-71a9be020edf");
50 public static final UUID uuidFeatureChloroplastNumber = UUID.fromString("d1ef5be9-9c67-4ed0-84d4-d3bb57adddd9");
51 public static final UUID uuidFeaturePyrenoid = UUID.fromString("6a42b427-69be-4cc1-a2de-fd813474d522");
52 public static final UUID uuidFeatureCellWall = UUID.fromString("676f01de-416b-4cdb-b7bb-f806f7142449");
53 public static final UUID uuidFeatureReproductiveStages = UUID.fromString("281de060-64aa-42d8-8c3b-7a764d207fdb");
54
55 public static final UUID uuidFeatureSize = UUID.fromString("b12ca3be-2a49-46ec-96fe-12059de361db");
56 public static final UUID uuidFeatureLength = UUID.fromString("492e24e1-40a1-47db-824a-180cc1f9e205");
57 public static final UUID uuidFeatureWidth = UUID.fromString("50632b76-82ae-403f-b65f-a681b6788e62");
58 public static final UUID uuidFeatureHeigth = UUID.fromString("cd48ed93-7eef-4387-9002-4849d2dbc040");
59
60 public static final UUID uuidFeatureValve1 = UUID.fromString("50df186b-2efb-4e9e-b58b-35f8f2959f29");
61 public static final UUID uuidFeatureStriaeFrequencyValve1 = UUID.fromString("e6c14666-0fd2-4361-a6f5-f6cf15b1734d");
62 public static final UUID uuidFeatureStriaeOrientationMidValve1 = UUID.fromString("596ba634-ef39-4073-a5f1-4e3b7c0031f5");
63 public static final UUID uuidFeatureStriaeOrientationApicesValve1 = UUID.fromString("8d95ea61-4bbc-4885-b7ab-dd4ad506133b");
64 public static final UUID uuidFeatureCentralAreaValve1 = UUID.fromString("cacd7b76-080c-4de2-a19d-c3f382729a04");
65 public static final UUID uuidFeatureAxialAreaValve1 = UUID.fromString("450578cd-0a53-4fe0-9d43-aecfc1d7fdd9");
66 public static final UUID uuidFeatureHasRapheValve1 = UUID.fromString("69acb582-7a3e-4e12-9a9e-ab1871e0a0c9");
67
68 public static final UUID uuidFeatureValve2 = UUID.fromString("5e34f17f-9628-4a3d-a974-df4e709d68fb");
69 public static final UUID uuidFeatureStriaeFrequencyValve2 = UUID.fromString("db8f1200-5c17-4410-a58d-d93abcb3059b");
70 public static final UUID uuidFeatureStriaeOrientationMidValve2 = UUID.fromString("87d50361-25f6-4d10-a830-ce17c9392825");
71 public static final UUID uuidFeatureStriaeOrientationApicesValve2 = UUID.fromString("b21a9bf7-987b-49ed-b4ef-905fdfa89057");
72 public static final UUID uuidFeatureCentralAreaValve2 = UUID.fromString("ac7a95c0-e388-4ab1-bf87-5bd1c17a1ad0");
73 public static final UUID uuidFeatureAxialAreaValve2 = UUID.fromString("0d84c46b-789f-430a-ab55-81e2b280d8d4");
74 public static final UUID uuidFeatureHasRapheValve2 = UUID.fromString("b0d99b12-8de2-43e6-83d0-2e94ca71a53e");
75 public static final UUID uuidFeatureSalinity = UUID.fromString("2c9377d6-73d9-4401-a113-799eb3752ef3");
76
77 public static final UUID uuidFeatureLivingSpecimen = UUID.fromString("0f167e2e-6494-4cf6-93a5-d92266626ec9");
78
79
80 public static final UUID uuidVocChloroplastPosition = UUID.fromString("0ef57573-09e0-4ed6-a6bc-d80a8f927113");
81 public static final UUID uuidVocChloroplastShape = UUID.fromString("7777329d-a5e5-4f3d-a85b-2cd5be82080a");
82 public static final UUID uuidVocChloroplastStructure = UUID.fromString("cd41aefa-8ca8-469c-9793-78f8eb2e66f1");
83 public static final UUID uuidVocGrowthForm = UUID.fromString("8ad0597d-82c5-4d96-9113-3080cd6074e7");
84 public static final UUID uuidVocOrganisationLevel = UUID.fromString("0b09e2a5-cb38-45b7-a4fd-dd46817c9fab");
85 public static final UUID uuidVocRaphe = UUID.fromString("93a6f107-af4c-42c9-9a04-3c715f23742d");
86 public static final UUID uuidVocShape = UUID.fromString("11f9f0af-da1b-44a0-8673-99e418ad6b97");
87 public static final UUID uuidVocSymmetry = UUID.fromString("3b7b921f-5d49-4cd7-b73d-29c4710f95da");
88
89
90 public static final UUID uuidMeasurementUnitMgL = UUID.fromString("7ac302c5-3cbd-4334-964a-bf5d11eb9ead");
91 public static final UUID uuidMeasurementUnitMolMol = UUID.fromString("96b78d78-3e49-448f-8100-e7779b71dd53");
92 public static final UUID uuidMeasurementUnitMicroMolSiL = UUID.fromString("2cb8bc85-a4af-42f1-b80b-34c36c9f75d4");
93 public static final UUID uuidMeasurementUnitMicroMolL = UUID.fromString("a631f62e-377e-405c-bd1a-76885b13a72b");
94 public static final UUID uuidMeasurementUnitDegreeC = UUID.fromString("55222aec-d5be-413e-8db7-d9a48c316c6c");
95 public static final UUID uuidMeasurementUnitPercent = UUID.fromString("3ea3110e-f048-4bed-8bfe-33c60f63626f");
96 public static final UUID uuidMeasurementUnitCm = UUID.fromString("3ea3110e-f048-4bed-8bfe-33c60f63626f");
97 public static final UUID uuidMeasurementUnitMicroSiCm = UUID.fromString("3ea3110e-f048-4bed-8bfe-33c60f63626f");
98
99
100 public static final UUID uuidNamedAreaVocAlgaTerraInformalAreas = UUID.fromString("ebce2f16-2a5d-4845-b4b8-f7841796a093");
101 public static final UUID uuidNamedAreaPatagonia = UUID.fromString("e0423d0a-87c3-41aa-afa3-8f2a86aa06dd");
102 public static final UUID uuidNamedAreaTierraDelFuego = UUID.fromString("53cf6dc2-b5cc-42be-9fad-7158b8f682f4");
103 public static final UUID uuidNamedAreaBorneo = UUID.fromString("6bb908af-be16-402b-973b-3ea20df1d70d");
104
105 public static final UUID uuidKindOfUnitVoc = UUID.fromString("400d3ef7-1882-4ed6-bb76-f98f636b595c");
106
107
108 /* (non-Javadoc)
109 * @see eu.etaxonomy.cdm.io.common.mapping.IInputTransformer#getFeatureByKey(java.lang.String)
110 */
111 public Feature getFeatureByKey(String key) throws UndefinedTransformerMethodException {
112 String warning = "getFeatureByKey is not implemented in implementing transformer class";
113 throw new UndefinedTransformerMethodException(warning);
114 }
115
116 /* (non-Javadoc)
117 * @see eu.etaxonomy.cdm.io.common.mapping.IInputTransformer#getFeatureUuid(java.lang.String)
118 */
119 public static UUID getFeatureUuid(String key) throws UndefinedTransformerMethodException {
120 if (key == null){ return null;
121 }else if(key.equalsIgnoreCase("pH")){return uuidFeaturePH;
122 }else if(key.equalsIgnoreCase("Conductivity")){return uuidFeatureConductivity;
123 }else if(key.equalsIgnoreCase("Water temperature")){return uuidFeatureWaterTemperature;
124 }else if(key.equalsIgnoreCase("Silica")){return uuidFeatureSilica;
125 }else if(key.equalsIgnoreCase("Nitrate")){return uuidFeatureNitrate;
126 }else if(key.equalsIgnoreCase("Nitrite")){return uuidFeatureNitrite;
127 }else if(key.equalsIgnoreCase("Ammonium")){return uuidFeatureAmmonium;
128 }else if(key.equalsIgnoreCase("Phosphate")){return uuidFeaturePhosphate;
129 }else if(key.equalsIgnoreCase("DIN")){return uuidFeatureDIN;
130 }else if(key.equalsIgnoreCase("N/P-ratio")){return uuidFeatureNPRation;
131 }else if(key.equalsIgnoreCase("SRP")){return uuidFeatureSRP;
132 }else if(key.equalsIgnoreCase("Oxygen saturation")){return uuidFeatureOxygenSaturation;
133 }else if(key.equalsIgnoreCase("Community")){return uuidFeatureCommunity;
134 }else if(key.equalsIgnoreCase("Cl")){return uuidFeatureCl;
135 }else if(key.equalsIgnoreCase("Ortho-phosphate")){return uuidFeatureOrthoPhosphate;
136 }else if(key.equalsIgnoreCase("Secchi depth")){return uuidFeatureSecchiDepth;
137
138 }else if (key.equalsIgnoreCase("Chloroplast Position")){return uuidFeatureChloroplastPosition;
139 }else if (key.equalsIgnoreCase("Chloroplast Shape")){return uuidFeatureChloroplastShape;
140 }else if (key.equalsIgnoreCase("Chloroplast Structure")){return uuidFeatureChloroplastStructure;
141 }else if (key.equalsIgnoreCase("Growth Form")){return uuidFeatureGrowthForm;
142 }else if (key.equalsIgnoreCase("Organisation Level")){return uuidFeatureOrganisationLevel;
143 }else if (key.equalsIgnoreCase("Raphe")){return uuidFeatureRaphe;
144 }else if (key.equalsIgnoreCase("Shape")){return uuidFeatureShape;
145 }else if (key.equalsIgnoreCase("Symmetry")){return uuidFeatureSymmetrie;
146
147 }else if (key.equalsIgnoreCase("Apices")){return uuidFeatureApices;
148 }else if (key.equalsIgnoreCase("Chloroplast Number")){return uuidFeatureChloroplastNumber;
149 }else if (key.equalsIgnoreCase("Pyrenoid")){return uuidFeaturePyrenoid;
150 }else if (key.equalsIgnoreCase("Cell Wall")){return uuidFeatureCellWall;
151 }else if (key.equalsIgnoreCase("Reproductive Stages")){return uuidFeatureReproductiveStages;
152
153 }else if (key.equalsIgnoreCase("Valve 1")){return uuidFeatureValve1;
154 }else if (key.equalsIgnoreCase("Striae Frequency Valve 1")){return uuidFeatureStriaeFrequencyValve1;
155 }else if (key.equalsIgnoreCase("Striae Orientation Mid Valve 1")){return uuidFeatureStriaeOrientationMidValve1;
156 }else if (key.equalsIgnoreCase("Striae Orientation Apices Valve 1")){return uuidFeatureStriaeOrientationApicesValve1;
157 }else if (key.equalsIgnoreCase("Central Area Valve 1")){return uuidFeatureCentralAreaValve1;
158 }else if (key.equalsIgnoreCase("Axial Area Valve 1")){return uuidFeatureAxialAreaValve1;
159 }else if (key.equalsIgnoreCase("has Raphe Valve 1")){return uuidFeatureHasRapheValve1;
160
161 }else if (key.equalsIgnoreCase("Valve 2")){return uuidFeatureValve2;
162 }else if (key.equalsIgnoreCase("Striae Frequency Valve 2")){return uuidFeatureStriaeFrequencyValve2;
163 }else if (key.equalsIgnoreCase("Striae Orientation Mid Valve 2")){return uuidFeatureStriaeOrientationMidValve2;
164 }else if (key.equalsIgnoreCase("Striae Orientation Apices Valve 2")){return uuidFeatureStriaeOrientationApicesValve2;
165 }else if (key.equalsIgnoreCase("Central Area Valve 2")){return uuidFeatureCentralAreaValve2;
166 }else if (key.equalsIgnoreCase("Axial Area Valve 2")){return uuidFeatureAxialAreaValve2;
167 }else if (key.equalsIgnoreCase("has Raphe Valve 2")){return uuidFeatureHasRapheValve2;
168
169 }else if (key.equalsIgnoreCase("Salinity")){return uuidFeatureSalinity;
170
171 }else{
172 logger.warn("Feature was not recognized: " + key);
173 return null;
174 }
175 }
176
177
178 public static UUID getMeasurementUnitUuid(String key) {
179 if (key == null){ return null;
180 }else if (key.equalsIgnoreCase("mg/L")){ return uuidMeasurementUnitMgL;
181 }else if (key.equalsIgnoreCase("mol/mol")){ return uuidMeasurementUnitMolMol;
182 }else if (key.equalsIgnoreCase("\u00B5mol Si/L")){return uuidMeasurementUnitMicroMolSiL; //µmol Si/L
183 }else if (key.equalsIgnoreCase("\u00B5mol/L")){ return uuidMeasurementUnitMicroMolL; //µmol/L
184 }else if (key.equalsIgnoreCase("\u00B0C")){ return uuidMeasurementUnitDegreeC; //°C
185 }else if (key.equalsIgnoreCase("%")){ return uuidMeasurementUnitPercent;
186 }else if (key.equalsIgnoreCase("cm")){ return uuidMeasurementUnitCm;
187 }else if (key.equalsIgnoreCase("\u00B5S/cm")){ return uuidMeasurementUnitMicroSiCm; //µS/cm
188 }else{
189 logger.warn("MeasurementUnit was not recognized");
190 return null;
191 }
192 }
193 }