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
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
\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
\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