commitTransaction(txStatus);\r
\r
} else {\r
- tree = getTaxonService().getTaxonomicTreeByUuid(treeUuid);\r
+ tree = getTaxonTreeService().getTaxonomicTreeByUuid(treeUuid);\r
}\r
return tree;\r
}\r
\r
- \r
- protected boolean saveTaxa(FaunaEuropaeaImportState state,\r
- int highestTaxonIndex, int limit) {\r
-\r
- Map<String, MapWrapper<? extends CdmBase>> stores = state.getStores();\r
- MapWrapper<TaxonBase> taxonStore = (MapWrapper<TaxonBase>)stores.get(ICdmIO.TAXON_STORE);\r
- TransactionStatus txStatus = null;\r
-\r
- int n = 0;\r
- int nbrOfTaxa = highestTaxonIndex;\r
-// int nbrOfTaxa = taxonStore.size();\r
- boolean success = true;\r
-\r
- if(logger.isInfoEnabled()) { logger.info("Saving taxa ..."); }\r
-\r
- if (nbrOfTaxa < limit) { // TODO: test with critical values\r
- limit = nbrOfTaxa;\r
- } else {\r
- n = nbrOfTaxa / limit;\r
- }\r
-\r
- if(logger.isInfoEnabled()) { \r
- logger.info("number of taxa = " + taxonStore.size() \r
- + ", highest taxon index = " + highestTaxonIndex \r
- + ", limit = " + limit\r
- + ", n = " + n); \r
- }\r
-\r
- // save taxa in blocks of <=limit\r
- \r
- for (int j = 1; j <= n + 1; j++)\r
- {\r
- int offset = j - 1;\r
- int start = offset * limit;\r
-\r
- if(logger.isInfoEnabled()) { \r
- logger.info("Saving taxa: " + start + " - " + (start + limit - 1)); \r
- }\r
-\r
- if(logger.isInfoEnabled()) { \r
- logger.info("index = " + j \r
- + ", offset = " + offset\r
- + ", start = " + start); \r
- }\r
- \r
- if (j == n + 1) {\r
- limit = nbrOfTaxa - n * limit;\r
- if(logger.isInfoEnabled()) { \r
- logger.info("n = " + n + ", limit = " + limit); \r
- }\r
- }\r
-\r
- txStatus = startTransaction();\r
- \r
- Collection<TaxonBase> taxonMapPart = taxonStore.objects(start, limit);\r
- getTaxonService().saveTaxonAll(taxonMapPart);\r
- taxonMapPart = null;\r
- taxonStore.removeObjects(start, limit);\r
- \r
- commitTransaction(txStatus);\r
-\r
- }\r
- \r
- return success;\r
- }\r
}\r