minor changes
authorem.lee <em.lee@localhost>
Wed, 25 Aug 2010 13:24:45 +0000 (13:24 +0000)
committerem.lee <em.lee@localhost>
Wed, 25 Aug 2010 13:24:45 +0000 (13:24 +0000)
cdmlib-io/src/main/java/eu/etaxonomy/cdm/io/faunaEuropaea/FaunaEuropaeaAdditionalTaxonDataImport.java

index 696aea2c82b2d1e4eedd5d38eac06082466a50f7..d6f8cf6d9d87bdea0e01eabd403071b4eb34a5cd 100644 (file)
@@ -37,8 +37,8 @@ import eu.etaxonomy.cdm.model.taxon.TaxonBase;
 public class FaunaEuropaeaAdditionalTaxonDataImport extends FaunaEuropaeaImportBase  {\r
        \r
        private static final Logger logger = Logger.getLogger(FaunaEuropaeaAdditionalTaxonDataImport.class);\r
-       private static final String parentPluralString = "TaxonBases";\r
-       private static final String pluralString = "InfraGenericEpithet";\r
+       private static final String parentPluralString = "Synonyms";\r
+       private static final String pluralString = "InfraGenericEpithets";\r
        private static final String acceptedTaxonUUID = "A9C24E42-69F5-4681-9399-041E652CF338"; // any accepted taxon uuid, taken from original fauna europaea database\r
 \r
        /* (non-Javadoc)\r
@@ -99,44 +99,40 @@ public class FaunaEuropaeaAdditionalTaxonDataImport extends FaunaEuropaeaImportB
        private boolean processAdditionalInfraGenericEpithets(FaunaEuropaeaImportState state) {\r
                boolean success = true;\r
                FaunaEuropaeaImportConfigurator fauEuConfig = state.getConfig();\r
-               Source source = fauEuConfig.getSource();\r
                int count = 0;\r
                int pastCount = 0;\r
-               int limit = 1000;\r
+               int pageSize = 1000;\r
+               int pageNumber = 1;\r
+               \r
                TransactionStatus txStatus = null;\r
                List<TaxonBase> list = null;\r
                \r
-               txStatus = startTransaction(true);\r
-               TaxonBase singleTaxon = getTaxonService().find(UUID.fromString(acceptedTaxonUUID));\r
-               ReferenceBase<?> sourceRef = singleTaxon.getSec();\r
-               commitTransaction(txStatus);\r
-               \r
                txStatus = startTransaction(false);\r
-               logger.error("Started new transaction. Fetching some " + parentPluralString + " first (max: " + limit + ") ...");\r
+               logger.error("Started new transaction. Fetching some " + parentPluralString + " first (max: " + pageSize + ") ...");\r
                \r
-               // Optimum: Fetch all synonyms without infraGenericEpithet\r
-               Synonym synonym = Synonym.NewInstance(null, sourceRef);\r
-               while ((list = getTaxonService().list(synonym, null, limit, count, null, null)).size() > 0) {\r
+               // Fetch all synonyms\r
+               while ((list = getTaxonService().listTaxaByName(Synonym.class, "*", null, "*", "*", null, pageSize, pageNumber)).size() > 0) {\r
                        \r
                        logger.error("Fetched " + list.size() + " " + parentPluralString + ". Processing...");\r
                        for (TaxonBase taxonBase : list) {\r
                                \r
-                               if (!taxonBase.isInstanceOf(Synonym.class)) {\r
-                                       logger.error("This taxonBase is not of instance Synonym: " + taxonBase.getUuid() + " (" + taxonBase.getTitleCache());\r
+                               if (! taxonBase.isInstanceOf(Synonym.class)) {\r
+                                       logger.error("This TaxonBase is not a Synonym even though it should be: " + taxonBase.getUuid() + " (" + taxonBase.getTitleCache() + ")");\r
                                }\r
                                \r
                                TaxonNameBase taxonName = taxonBase.getName();\r
-\r
+                               \r
+                               // Check whether its taxonName has an infraGenericEpithet\r
                                if (taxonName != null && (taxonName.isInstanceOf(NonViralName.class))) {\r
                                        NonViralName targetNonViralName = CdmBase.deproxy(taxonName, NonViralName.class);\r
                                        String infraGenericEpithet = targetNonViralName.getInfraGenericEpithet();\r
                                        if (infraGenericEpithet == null) {\r
                                                String genusOrUninomial = targetNonViralName.getGenusOrUninomial();\r
                                                String specificEpithet = targetNonViralName.getSpecificEpithet();\r
-                                               List<TaxonBase> foundTaxa = getTaxonService().listTaxaByName(Taxon.class, genusOrUninomial, null, specificEpithet, \r
-                                                               null, Rank.SPECIES(), 10, 1);\r
+                                               List<TaxonBase> foundTaxa = getTaxonService().listTaxaByName(Taxon.class, genusOrUninomial, "*", specificEpithet, \r
+                                                               "*", null, pageSize, 1);\r
                                                if (foundTaxa.size() == 1) {\r
-                                                       // one matching taxon found\r
+                                                       // one matching Taxon found\r
                                                        TaxonBase taxon = foundTaxa.iterator().next();\r
                                                        if (taxon != null) {\r
                                                                TaxonNameBase name = taxon.getName();\r
@@ -146,13 +142,14 @@ public class FaunaEuropaeaAdditionalTaxonDataImport extends FaunaEuropaeaImportB
                                                                        \r
                                                                        // set infraGenericEpithet\r
 //                                                                     targetNonViralName.setInfraGenericEpithet(infraGenericEpithet);\r
+                                                                       logger.error("Added an InfraGenericEpithet to this TaxonName: " + taxonName.getUuid() + " (" + taxonName.getTitleCache() + ")");\r
                                                                        count++;\r
                                                                }\r
                                                        }\r
                                                } else if (foundTaxa.size() > 1) {\r
                                                        logger.error("Multiple taxa match search criteria: " + taxonName.getUuid() + " (" + taxonName.getTitleCache() + ")");\r
-                                                       for (TaxonBase foundTaxonBase : foundTaxa) {\r
-                                                               logger.error(foundTaxonBase.getUuid() + ", " + foundTaxonBase.getTitleCache());\r
+                                                       for (TaxonBase foundTaxon : foundTaxa) {\r
+                                                               logger.error(foundTaxon.getUuid() + ", " + foundTaxon.getTitleCache());\r
                                                        }\r
                                                } else if (foundTaxa.size() == 0) {\r
 //                                                     logger.error("No matches for search criteria: " + taxonName.getUuid() + " (" + taxonName.getTitleCache() + ")");\r
@@ -171,7 +168,10 @@ public class FaunaEuropaeaAdditionalTaxonDataImport extends FaunaEuropaeaImportB
 \r
                        // Start transaction\r
                        txStatus = startTransaction(false);\r
-                       logger.error("Started new transaction. Fetching some " + parentPluralString + " first (max: " + limit + ") ...");\r
+                       logger.error("Started new transaction. Fetching some " + parentPluralString + " first (max: " + pageSize + ") ...");\r
+                       \r
+                       // Increment pageNumber\r
+                       pageNumber++;\r
                }\r
                if (list.size() == 0) {\r
                        logger.error("No " + parentPluralString + " left to fetch.");\r