minor fixes in consistency with datawarehouse export
[cdmlib.git] / cdmlib-io / src / main / java / eu / etaxonomy / cdm / io / faunaEuropaea / FaunaEuropaeaTransformer.java
index b3bfa55b1c386a4127c1b50f2d2722f0c336d0f5..fabed907a6ffda74f9adad3c9d590be925bd9031 100644 (file)
@@ -13,20 +13,16 @@ import java.sql.ResultSet;
 import java.sql.SQLException;\r
 import java.util.HashMap;\r
 import java.util.Map;\r
+import java.util.UUID;\r
 \r
 import org.apache.log4j.Logger;\r
-import org.springframework.stereotype.Component;\r
 \r
-import eu.etaxonomy.cdm.common.ResultWrapper;\r
-import eu.etaxonomy.cdm.model.description.Feature;\r
+import eu.etaxonomy.cdm.model.description.AbsenceTerm;\r
 import eu.etaxonomy.cdm.model.description.PresenceAbsenceTermBase;\r
 import eu.etaxonomy.cdm.model.description.PresenceTerm;\r
 import eu.etaxonomy.cdm.model.location.NamedArea;\r
 import eu.etaxonomy.cdm.model.location.TdwgArea;\r
-import eu.etaxonomy.cdm.model.name.HybridRelationshipType;\r
 import eu.etaxonomy.cdm.model.name.Rank;\r
-import eu.etaxonomy.cdm.model.name.SpecimenTypeDesignationStatus;\r
-import eu.etaxonomy.cdm.model.taxon.TaxonRelationshipType;\r
 import eu.etaxonomy.cdm.strategy.exceptions.UnknownCdmTypeException;\r
 \r
 /**\r
@@ -46,11 +42,17 @@ public final class FaunaEuropaeaTransformer {
        public static final int T_STATUS_NOT_ACCEPTED = 0;\r
        \r
        // Author\r
-       public static final int A_AUCT = 1;\r
+       public static final int A_AUCT = 0; // Was A_AUCT = 1\r
+       public static final String A_AUCTNAME = "auct.";\r
        \r
        // Parenthesis\r
        public static final int P_PARENTHESIS = 1;\r
        \r
+       //new AbsencePresenceTermUUIDs\r
+       \r
+       public static UUID noData;\r
+       //public static UUID doubtfull_present;\r
+       \r
        // Rank\r
        public static final int R_KINGDOM = 1;\r
        public static final int R_SUBKINGDOM = 2;\r
@@ -77,12 +79,37 @@ public final class FaunaEuropaeaTransformer {
        \r
        private static Map<String, String> tdwgAreas = null;\r
 \r
-       public static PresenceAbsenceTermBase<?> occStatus2PresenceAbsence (int occStatusId)  throws UnknownCdmTypeException{\r
+       public static PresenceAbsenceTermBase<?> occStatus2PresenceAbsence(int occStatusId)  throws UnknownCdmTypeException{\r
+       \r
+               if (Integer.valueOf(occStatusId) == null) {\r
+                       return PresenceTerm.PRESENT();\r
+               }\r
+               switch (occStatusId){\r
+               case 0: return PresenceTerm.PRESENT();\r
+               case 2: return AbsenceTerm.ABSENT();\r
+               case 1: return PresenceTerm.PRESENT_DOUBTFULLY();\r
+\r
+               default: {\r
+\r
+                       return null;\r
+               \r
+\r
+               }\r
+               \r
+       }\r
+       }\r
+       public static void setUUIDs(HashMap<String,UUID> uuids){\r
+               noData = uuids.get("noData");\r
+               //doubtfull_present = uuids.get("doubtfullPresent");\r
+       \r
+       }\r
+       \r
+       public static PresenceAbsenceTermBase<?> occStatus2PresenceAbsence_ (int occStatusId)  throws UnknownCdmTypeException{\r
                switch (occStatusId){\r
                        case 0: return null;\r
-                       case 110: return PresenceTerm.CULTIVATED_REPORTED_IN_ERROR();\r
+                       //case 110: return AbsenceTerm.CULTIVATED_REPORTED_IN_ERROR();\r
                        case 120: return PresenceTerm.CULTIVATED();\r
-                       case 210: return PresenceTerm.INTRODUCED_REPORTED_IN_ERROR();\r
+               //      case 210: return AbsenceTerm.INTRODUCED_REPORTED_IN_ERROR();\r
                        case 220: return PresenceTerm.INTRODUCED_PRESENCE_QUESTIONABLE();\r
                        case 230: return PresenceTerm.INTRODUCED_FORMERLY_INTRODUCED();\r
                        case 240: return PresenceTerm.INTRODUCED_DOUBTFULLY_INTRODUCED();\r
@@ -90,7 +117,7 @@ public final class FaunaEuropaeaTransformer {
                        case 260: return PresenceTerm.INTRODUCED_UNCERTAIN_DEGREE_OF_NATURALISATION();\r
                        case 270: return PresenceTerm.INTRODUCED_ADVENTITIOUS();\r
                        case 280: return PresenceTerm.INTRODUCED_NATURALIZED();\r
-                       case 310: return PresenceTerm.NATIVE_REPORTED_IN_ERROR();\r
+                       //case 310: return AbsenceTerm.NATIVE_REPORTED_IN_ERROR();\r
                        case 320: return PresenceTerm.NATIVE_PRESENCE_QUESTIONABLE();\r
                        case 330: return PresenceTerm.NATIVE_FORMERLY_NATIVE();\r
                        case 340: return PresenceTerm.NATIVE_DOUBTFULLY_NATIVE();\r
@@ -167,23 +194,24 @@ public final class FaunaEuropaeaTransformer {
        }\r
        \r
        \r
-       public static NamedArea areaId2TdwgArea (ResultSet rs) throws UnknownCdmTypeException {\r
+       public static NamedArea areaId2TdwgArea (FaunaEuropaeaDistribution fauEuDistribution) \r
+       throws UnknownCdmTypeException {\r
                \r
                NamedArea tdwgArea = null;\r
                \r
                try {\r
-                       int areaId = rs.getInt("ara_id");\r
-                       String areaName = rs.getString("ara_name");\r
-                       String areaCode = rs.getString("ara_code");\r
-                       int extraLimital = rs.getInt("ara_extralimital");\r
+                       int areaId = fauEuDistribution.getAreaId();\r
+                       String areaName = fauEuDistribution.getAreaName();\r
+                       String areaCode = fauEuDistribution.getAreaCode();\r
+                       int extraLimital = fauEuDistribution.getExtraLimital();\r
                        \r
-                       //TODO: Verify mappings with comments. Are those the best matches?\r
+                       //TODO: Verify mappings with comments. Those don't map to TDWG areas.\r
                        \r
                        if (areaCode.equals("AD")) tdwgArea = TdwgArea.getAreaByTdwgAbbreviation("SPA-AN");\r
-                       else if (areaCode.equals("AFR")) tdwgArea = TdwgArea.getAreaByTdwgAbbreviation("24"); // Afro-tropical region - Northeast Tropical Africa\r
+                       //else if (areaCode.equals("AFR")) tdwgArea = TdwgArea.getAreaByTdwgAbbreviation("24"); // Afro-tropical region - Northeast Tropical Africa\r
                        else if (areaCode.equals("AL")) tdwgArea = TdwgArea.getAreaByTdwgAbbreviation("ALB-OO");\r
                        else if (areaCode.equals("AT")) tdwgArea = TdwgArea.getAreaByTdwgAbbreviation("AUT-AU");\r
-                       else if (areaCode.equals("AUS")) tdwgArea = TdwgArea.getAreaByTdwgAbbreviation("50"); // Australian region - Australia\r
+                       //else if (areaCode.equals("AUS")) tdwgArea = TdwgArea.getAreaByTdwgAbbreviation("50"); // Australian region - Australia\r
                        else if (areaCode.equals("BA")) tdwgArea = TdwgArea.getAreaByTdwgAbbreviation("YUG-BH"); \r
                        else if (areaCode.equals("BE")) tdwgArea = TdwgArea.getAreaByTdwgAbbreviation("BGM-BE");\r
                        else if (areaCode.equals("BG")) tdwgArea = TdwgArea.getAreaByTdwgAbbreviation("BUL-OO");\r
@@ -195,7 +223,7 @@ public final class FaunaEuropaeaTransformer {
                        else if (areaCode.equals("DK-DEN")) tdwgArea = TdwgArea.getAreaByTdwgAbbreviation("DEN-OO");\r
                        else if (areaCode.equals("DK-FOR")) tdwgArea = TdwgArea.getAreaByTdwgAbbreviation("FOR-OO");\r
                        else if (areaCode.equals("EE")) tdwgArea = TdwgArea.getAreaByTdwgAbbreviation("BLT-ES");\r
-                       else if (areaCode.equals("EPA")) tdwgArea = TdwgArea.getAreaByTdwgAbbreviation("Palaearctic");\r
+                       //else if (areaCode.equals("EPA")) tdwgArea = TdwgArea.getAreaByTdwgAbbreviation("3");   // Palaearctic - Asia-Temperate\r
                        else if (areaCode.equals("ES-BAL")) tdwgArea = TdwgArea.getAreaByTdwgAbbreviation("BLT-ES");\r
                        else if (areaCode.equals("ES-CNY")) tdwgArea = TdwgArea.getAreaByTdwgAbbreviation("CNY-OO");\r
                        else if (areaCode.equals("ES-SPA")) tdwgArea = TdwgArea.getAreaByTdwgAbbreviation("SPA-SP");\r
@@ -206,9 +234,9 @@ public final class FaunaEuropaeaTransformer {
                        else if (areaCode.equals("GB-GI")) tdwgArea = TdwgArea.getAreaByTdwgAbbreviation("SPA-GI");\r
                        else if (areaCode.equals("GB-GRB")) tdwgArea = TdwgArea.getAreaByTdwgAbbreviation("GRB-OO");\r
                        else if (areaCode.equals("GB-NI")) tdwgArea = TdwgArea.getAreaByTdwgAbbreviation("IRE-NI");\r
-                       else if (areaCode.equals("GR-AEG")) tdwgArea = TdwgArea.getAreaByTdwgAbbreviation("EAI-OO"); // North Aegean Is. - East Aegean Is.\r
-                       else if (areaCode.equals("GR-CYC")) tdwgArea = TdwgArea.getAreaByTdwgAbbreviation("GRC-OO"); // Cyclades Is. - Greece\r
-                       else if (areaCode.equals("GR-DOD")) tdwgArea = TdwgArea.getAreaByTdwgAbbreviation("EAI-OO"); // Dodecanese Is. - East Aegean Is.\r
+                       //else if (areaCode.equals("GR-AEG")) tdwgArea = TdwgArea.getAreaByTdwgAbbreviation("EAI-OO"); // North Aegean Is. - East Aegean Is.\r
+                       //else if (areaCode.equals("GR-CYC")) tdwgArea = TdwgArea.getAreaByTdwgAbbreviation("GRC-OO"); // Cyclades Is. - Greece\r
+                       //else if (areaCode.equals("GR-DOD")) tdwgArea = TdwgArea.getAreaByTdwgAbbreviation("EAI-OO"); // Dodecanese Is. - East Aegean Is.\r
                        else if (areaCode.equals("GR-GRC")) tdwgArea = TdwgArea.getAreaByTdwgAbbreviation("GRC-OO");\r
                        else if (areaCode.equals("GR-KRI")) tdwgArea = TdwgArea.getAreaByTdwgAbbreviation("KRI-OO");\r
                        else if (areaCode.equals("HR")) tdwgArea = TdwgArea.getAreaByTdwgAbbreviation("YUG-CR");\r
@@ -226,14 +254,14 @@ public final class FaunaEuropaeaTransformer {
                        else if (areaCode.equals("MD")) tdwgArea = TdwgArea.getAreaByTdwgAbbreviation("UKR-MO");\r
                        else if (areaCode.equals("MK")) tdwgArea = TdwgArea.getAreaByTdwgAbbreviation("YUG-MA");\r
                        else if (areaCode.equals("MT")) tdwgArea = TdwgArea.getAreaByTdwgAbbreviation("SIC-MA");\r
-                       else if (areaCode.equals("NAF")) tdwgArea = TdwgArea.getAreaByTdwgAbbreviation("20"); // North Africa - Northern Africa\r
-                       else if (areaCode.equals("NEA")) tdwgArea = TdwgArea.getAreaByTdwgAbbreviation("7");    // Nearctic region - Northern America\r
-                       else if (areaCode.equals("NEO")) tdwgArea = TdwgArea.getAreaByTdwgAbbreviation("8"); // Neotropical region - Southern America\r
+                       //else if (areaCode.equals("NAF")) tdwgArea = TdwgArea.getAreaByTdwgAbbreviation("20");   // North Africa - Northern Africa\r
+                       //else if (areaCode.equals("NEA")) tdwgArea = TdwgArea.getAreaByTdwgAbbreviation("7");  // Nearctic region - Northern America\r
+                       //else if (areaCode.equals("NEO")) tdwgArea = TdwgArea.getAreaByTdwgAbbreviation("8");    // Neotropical region - Southern America\r
                        else if (areaCode.equals("NL")) tdwgArea = TdwgArea.getAreaByTdwgAbbreviation("NET-OO");\r
                        else if (areaCode.equals("NO-NOR")) tdwgArea = TdwgArea.getAreaByTdwgAbbreviation("NOR-OO");\r
                        else if (areaCode.equals("NO-SVA")) tdwgArea = TdwgArea.getAreaByTdwgAbbreviation("SVA-OO");\r
-                       else if (areaCode.equals("NRE")) tdwgArea = TdwgArea.getAreaByTdwgAbbreviation("34"); // Near East - Western Asia\r
-                       else if (areaCode.equals("ORR")) tdwgArea = TdwgArea.getAreaByTdwgAbbreviation("35");   // Oriental region - Arabian Peninsula\r
+                       //else if (areaCode.equals("NRE")) tdwgArea = TdwgArea.getAreaByTdwgAbbreviation("34");   // Near East - Western Asia\r
+                       //else if (areaCode.equals("ORR")) tdwgArea = TdwgArea.getAreaByTdwgAbbreviation("35"); // Oriental region - Arabian Peninsula\r
                        else if (areaCode.equals("PL")) tdwgArea = TdwgArea.getAreaByTdwgAbbreviation("POL-OO");\r
                        else if (areaCode.equals("PT-AZO")) tdwgArea = TdwgArea.getAreaByTdwgAbbreviation("AZO-OO");\r
                        else if (areaCode.equals("PT-MDR")) tdwgArea = TdwgArea.getAreaByTdwgAbbreviation("MDR-OO");\r
@@ -259,18 +287,36 @@ public final class FaunaEuropaeaTransformer {
                        else                                    \r
                                throw new UnknownCdmTypeException("Unknown Area " + areaCode);\r
 \r
-                               \r
                        if (logger.isDebugEnabled()) {\r
                                logger.debug(areaId + ", " + areaName + ", " + areaCode + ", " + extraLimital);\r
                        }\r
                        \r
-               } catch (SQLException e) {\r
-                       e.printStackTrace();\r
-                       logger.warn("Exception occurred. Area could not be mapped.");\r
+               } catch (Exception e) {\r
+                       //e.printStackTrace();\r
+                       logger.debug("Exception occurred. Area could not be mapped." + fauEuDistribution.getAreaName());\r
                        return null;\r
                }       \r
                \r
                return tdwgArea;\r
        }\r
        \r
+       public final static HashMap<String, UUID> abbrToUUID = new HashMap<String,UUID>();\r
+               static\r
+               {       \r
+                       abbrToUUID.put("AUS", UUID.fromString("cf979ca8-8cb6-42df-b2ce-1f432ec7c26b"));\r
+                       abbrToUUID.put("AFR", UUID.fromString("07ac5e75-9fc9-4aa0-938c-1324c9618b97"));\r
+                       abbrToUUID.put("EPA", UUID.fromString("e83446d7-7379-4beb-be05-295f8da6f5ae"));\r
+                       abbrToUUID.put("GR-AEG", UUID.fromString("6bd422aa-9911-4b80-8595-0f6d1ecd5eee"));\r
+                       abbrToUUID.put("GR-CYC", UUID.fromString("8e7d7f1e-3e4d-4f7c-96ec-93ec91e528d6"));\r
+                       abbrToUUID.put("GR-DOD", UUID.fromString("6d6f6842-924e-440b-9e7e-3df1922bf4a6"));\r
+                       abbrToUUID.put("NAF", UUID.fromString("d2c54b1e-5f9f-455d-b308-6859cb153c7b"));\r
+                       abbrToUUID.put("NEA", UUID.fromString("aa87f6b8-110b-44b5-a329-91a08f1a4cc9"));\r
+                       abbrToUUID.put("NEO", UUID.fromString("0e6e0ce9-c6ab-46bc-80b9-aee4a0620e78"));\r
+                       abbrToUUID.put("NRE", UUID.fromString("d51876c2-eaf6-4c7f-963e-337dd3e0d729"));\r
+                       abbrToUUID.put("ORR", UUID.fromString("04cab4f8-b316-4e21-9bcc-236a45e4e83d"));\r
+               }\r
+       public static UUID getUUIDByAreaAbbr(String abbr){\r
+               return abbrToUUID.get(abbr);\r
+       }\r
+       \r
 }\r