further cleaning up for PESI export status
authorAndreas Müller <a.mueller@bgbm.org>
Wed, 6 Jun 2012 20:58:51 +0000 (20:58 +0000)
committerAndreas Müller <a.mueller@bgbm.org>
Wed, 6 Jun 2012 20:58:51 +0000 (20:58 +0000)
cdm-pesi/src/main/java/eu/etaxonomy/cdm/io/pesi/out/PesiOccurrenceExport.java
cdm-pesi/src/main/java/eu/etaxonomy/cdm/io/pesi/out/PesiTransformer.java

index 1547fc888e396f9a056fe967b701834043a2e3bb..bb93a5caa7aa740e4a8d6e42bd110676f43b002b 100644 (file)
@@ -395,14 +395,15 @@ public class PesiOccurrenceExport extends PesiExportBase {
         * Returns the <code>OccurrenceStatusCache</code> attribute.\r
         * @param entity An {@link AnnotatableEntity AnnotatableEntity}.\r
         * @return The <code>OccurrenceStatusCache</code> attribute.\r
+        * @throws UndefinedTransformerMethodException \r
         * @throws UnknownCdmTypeException \r
         * @see MethodMapper\r
         */\r
        @SuppressWarnings("unused")\r
-       private static String getOccurrenceStatusCache(AnnotatableEntity entity) {\r
+       private static String getOccurrenceStatusCache(AnnotatableEntity entity, PesiExportState state) throws UndefinedTransformerMethodException {\r
                String result = null;\r
                if (getDistribution() != null) {\r
-                       result = PesiTransformer.presenceAbsenceTerm2OccurrenceStatusCache(getDistribution().getStatus());\r
+                       result = state.getTransformer().getCacheByPresenceAbsenceTerm(getDistribution().getStatus());\r
                }\r
                return result;\r
        }\r
@@ -478,7 +479,7 @@ public class PesiOccurrenceExport extends PesiExportBase {
                mapping.addMapper(MethodMapper.NewInstance("TaxonFullNameCache", this));\r
                mapping.addMapper(MethodMapper.NewInstance("AreaNameCache", this));\r
                mapping.addMapper(MethodMapper.NewInstance("OccurrenceStatusFk", this));\r
-               mapping.addMapper(MethodMapper.NewInstance("OccurrenceStatusCache", this));\r
+               mapping.addMapper(MethodMapper.NewInstance("OccurrenceStatusCache", this, AnnotatableEntity.class, PesiExportState.class));\r
                mapping.addMapper(MethodMapper.NewInstance("SourceFk", this.getClass(), "getSourceFk", standardMethodParameter, PesiExportState.class));\r
                mapping.addMapper(MethodMapper.NewInstance("SourceCache", this));\r
                mapping.addMapper(MethodMapper.NewInstance("Notes", this));\r
index 65e43d18af7fcc6fceeb1ce6733cc821fd83ab01..d4135d1512fb693dac3479eec070f45cb1942c5e 100644 (file)
@@ -125,18 +125,6 @@ public final class PesiTransformer extends ExportTransformerBase implements IExp
        public static int REF_JOURNAL = 9;\r
        public static int REF_UNRESOLVED = 10;\r
        public static int REF_PUBLICATION = 11;\r
-\r
-//     public static String REF_STR_ARTICLE_IN_PERIODICAL = "Article in periodical";\r
-//     public static String REF_STR_PART_OF_OTHER = "Part of other";\r
-//     public static String REF_STR_BOOK = "Book";\r
-//     public static String REF_STR_DATABASE = "Database";\r
-//     public static String REF_STR_INFORMAL = "Informal";\r
-//     public static String REF_STR_NOT_APPLICABLE = "Not applicable";\r
-//     public static String REF_STR_WEBSITE = "Website";\r
-//     public static String REF_STR_PUBLISHED = "Published";\r
-//     public static String REF_STR_JOURNAL = "Journal";\r
-//     public static String REF_STR_UNRESOLVED = "Unresolved";\r
-//     public static String REF_STR_PUBLICATION = "Publication";\r
        \r
        // NameStatus\r
        public static int NAME_ST_NOM_INVAL = 1;\r
@@ -893,15 +881,6 @@ public final class PesiTransformer extends ExportTransformerBase implements IExp
        public static int STATUS_MANAGED = 7;\r
        public static int STATUS_DOUBTFUL = 8;\r
 \r
-       public static String STR_STATUS_PRESENT = "Present";\r
-       public static String STR_STATUS_ABSENT = "Absent";\r
-       public static String STR_STATUS_NATIVE = "Native";\r
-       public static String STR_STATUS_INTRODUCED = "Introduced";\r
-       public static String STR_STATUS_NATURALISED = "Naturalised";\r
-       public static String STR_STATUS_INVASIVE = "Invasive";\r
-       public static String STR_STATUS_MANAGED = "Managed";\r
-       public static String STR_STATUS_DOUBTFUL = "Doubtful";\r
-\r
        private Map<String, Integer> tdwgKeyMap = new HashMap<String, Integer>();\r
        private Map<Integer, String> areaCacheMap = new HashMap<Integer, String>();\r
        private Map<Integer, String> languageCacheMap  = new HashMap<Integer, String>();\r
@@ -915,6 +894,8 @@ public final class PesiTransformer extends ExportTransformerBase implements IExp
        private Map<Integer, String> fossilStatusCacheMap  = new HashMap<Integer, String>();\r
        private Map<Integer, String> typeDesigStatusCacheMap  = new HashMap<Integer, String>();\r
        private Map<Integer, String> sourceCategoryCacheMap  = new HashMap<Integer, String>();\r
+       private Map<Integer, String> occurrenceStatusCacheMap  = new HashMap<Integer, String>();\r
+       \r
        \r
        private Source destination;\r
        \r
@@ -963,6 +944,9 @@ public final class PesiTransformer extends ExportTransformerBase implements IExp
                        \r
                        //fossil status\r
                        fillSingleMap(typeDesigStatusCacheMap,"FossilStatus");\r
+\r
+                       //fossil status\r
+                       fillSingleMap(occurrenceStatusCacheMap,"OccurrenceStatus");\r
                        \r
                        //source category\r
                        fillSingleMap(sourceCategoryCacheMap,"SourceCategory", "Category", "SourceCategoryId");\r
@@ -1025,57 +1009,7 @@ public final class PesiTransformer extends ExportTransformerBase implements IExp
                }\r
                return result;\r
        }\r
-       \r
-       /**\r
-        * Returns the OccurrenceStatusId for a given PresenceAbsenceTerm.\r
-        * @param term\r
-        * @return\r
-        * @throws UnknownCdmTypeException \r
-        */\r
-       public static String presenceAbsenceTerm2OccurrenceStatusCache(PresenceAbsenceTermBase<?> term) {\r
-               String result = null;\r
-               if (term == null){\r
-                       return null;\r
-               //present\r
-               }else if (term.isInstanceOf(PresenceTerm.class)) {\r
-                       PresenceTerm presenceTerm = CdmBase.deproxy(term, PresenceTerm.class);\r
-                       if (presenceTerm.equals(PresenceTerm.PRESENT()) || \r
-                                       presenceTerm.equals(PresenceTerm.INTRODUCED_DOUBTFULLY_INTRODUCED()) || \r
-                                       presenceTerm.equals(PresenceTerm.NATIVE_DOUBTFULLY_NATIVE())) {\r
-                               result = STR_STATUS_PRESENT;\r
-                       } else if (presenceTerm.equals(PresenceTerm.NATIVE())) {\r
-                               result = STR_STATUS_NATIVE;\r
-                       } else if (presenceTerm.equals(PresenceTerm.INTRODUCED()) || \r
-                                       presenceTerm.equals(PresenceTerm.INTRODUCED_ADVENTITIOUS()) ||\r
-                                       presenceTerm.equals(PresenceTerm.INTRODUCED_UNCERTAIN_DEGREE_OF_NATURALISATION())) {\r
-                               result = STR_STATUS_INTRODUCED;\r
-                       } else if (presenceTerm.equals(PresenceTerm.NATURALISED()) \r
-                                       || presenceTerm.equals(PresenceTerm.INTRODUCED_NATURALIZED())) {\r
-                               result = STR_STATUS_NATURALISED;\r
-                       } else if (presenceTerm.equals(PresenceTerm.INVASIVE())) {\r
-                               result = STR_STATUS_INVASIVE;\r
-                       } else if (presenceTerm.equals(PresenceTerm.CULTIVATED())) {\r
-                               result = STR_STATUS_MANAGED;\r
-                       } else if (presenceTerm.equals(PresenceTerm.PRESENT_DOUBTFULLY())||\r
-                                       presenceTerm.equals(PresenceTerm.INTRODUCED_PRESENCE_QUESTIONABLE()) ||\r
-                                       presenceTerm.equals(PresenceTerm.NATIVE_PRESENCE_QUESTIONABLE() )) {\r
-                               result = STR_STATUS_DOUBTFUL;\r
-                       } else {\r
-                               logger.error("PresenceTerm could not be translated to datawarehouse occurrence status id: " + presenceTerm.getLabel());\r
-                       }\r
-               //absent        \r
-               } else if (term.isInstanceOf(AbsenceTerm.class)) {\r
-                       AbsenceTerm absenceTerm = CdmBase.deproxy(term, AbsenceTerm.class);\r
-                       if (absenceTerm.equals(AbsenceTerm.ABSENT()) || absenceTerm.equals(AbsenceTerm.NATIVE_FORMERLY_NATIVE()) ||\r
-                                       absenceTerm.equals(AbsenceTerm.CULTIVATED_REPORTED_IN_ERROR()) || absenceTerm.equals(AbsenceTerm.INTRODUCED_REPORTED_IN_ERROR()) ||\r
-                                       absenceTerm.equals(AbsenceTerm.INTRODUCED_FORMERLY_INTRODUCED()) || absenceTerm.equals(AbsenceTerm.NATIVE_REPORTED_IN_ERROR() ) ) {\r
-                               result = STR_STATUS_ABSENT;\r
-                       } else {\r
-                               logger.error("AbsenceTerm could not be translated to datawarehouse occurrence status id: " + absenceTerm.getLabel());\r
-                       }\r
-               }\r
-               return result;\r
-       }\r
+\r
        \r
        /**\r
         * Returns the OccurrenceStatusId for a given PresenceAbsenceTerm.\r
@@ -1131,7 +1065,11 @@ public final class PesiTransformer extends ExportTransformerBase implements IExp
 \r
        @Override\r
        public String getCacheByPresenceAbsenceTerm(PresenceAbsenceTermBase status) throws UndefinedTransformerMethodException {\r
-               return presenceAbsenceTerm2OccurrenceStatusCache(status);\r
+               if (status == null){\r
+                       return null;\r
+               }else{\r
+                       return this.occurrenceStatusCacheMap.get(getKeyByPresenceAbsenceTerm(status)); \r
+               }\r
        }\r
        \r
        @Override\r