import java.sql.ResultSet;\r
import java.sql.ResultSetMetaData;\r
import java.sql.SQLException;\r
+import java.util.Collection;\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.transaction.TransactionStatus;\r
\r
import eu.etaxonomy.cdm.common.CdmUtils;\r
+import eu.etaxonomy.cdm.io.common.CdmImportBase;\r
import eu.etaxonomy.cdm.io.common.CdmIoBase;\r
import eu.etaxonomy.cdm.io.common.ICdmIO;\r
+import eu.etaxonomy.cdm.io.common.ICdmImport;\r
import eu.etaxonomy.cdm.io.common.IImportConfigurator;\r
import eu.etaxonomy.cdm.io.common.ImportHelper;\r
+import eu.etaxonomy.cdm.io.common.MapWrapper;\r
import eu.etaxonomy.cdm.io.common.Source;\r
import eu.etaxonomy.cdm.model.common.Annotation;\r
+import eu.etaxonomy.cdm.model.common.CdmBase;\r
import eu.etaxonomy.cdm.model.common.IdentifiableEntity;\r
import eu.etaxonomy.cdm.model.common.Language;\r
+import eu.etaxonomy.cdm.model.reference.ReferenceBase;\r
+import eu.etaxonomy.cdm.model.taxon.TaxonBase;\r
+import eu.etaxonomy.cdm.model.taxon.TaxonomicTree;\r
\r
/**\r
* @author a.babadshanjan\r
* @created 11.05.2009\r
* @version 1.0\r
*/\r
-public abstract class FaunaEuropaeaImportBase extends CdmIoBase<FaunaEuropaeaImportState> implements ICdmIO<FaunaEuropaeaImportState> {\r
+public abstract class FaunaEuropaeaImportBase extends CdmImportBase<FaunaEuropaeaImportConfigurator, FaunaEuropaeaImportState> \r
+implements ICdmImport<FaunaEuropaeaImportConfigurator,FaunaEuropaeaImportState> {\r
private static final Logger logger = Logger.getLogger(FaunaEuropaeaImportBase.class);\r
\r
- public FaunaEuropaeaImportBase() {\r
- }\r
+// /* Max number of taxa to retrieve (for test purposes) */\r
+// protected static final int maxTaxa = 1000;\r
+// /* Max number of taxa to be saved with one service call */\r
+// protected int limit = 20000; // TODO: Make configurable\r
+// /* Interval for progress info message when retrieving taxa */\r
+// protected static final int modCount = 10000;\r
+// /* Highest taxon index in the FauEu database */\r
+// protected int highestTaxonIndex = 0;\r
\r
protected boolean resultSetHasColumn(ResultSet rs, String columnName){\r
try {\r
}\r
}\r
\r
+\r
+ /**\r
+ * @param state\r
+ * @param sourceRef\r
+ */\r
+ protected TaxonomicTree getTaxonomicTreeFor(FaunaEuropaeaImportState state, ReferenceBase<?> sourceRef) {\r
+ \r
+ TaxonomicTree tree;\r
+ UUID treeUuid = state.getTreeUuid(sourceRef);\r
+ if (treeUuid == null){\r
+ if(logger.isInfoEnabled()) { logger.info(".. creating new taxonomic tree"); }\r
+ \r
+ TransactionStatus txStatus = startTransaction();\r
+ tree = makeTreeMemSave(state, sourceRef);\r
+ commitTransaction(txStatus);\r
+ \r
+ } else {\r
+ tree = getTaxonTreeService().getTaxonomicTreeByUuid(treeUuid);\r
+ }\r
+ return tree;\r
+ }\r
+\r
}\r