\r
import org.apache.log4j.Logger;\r
\r
-import eu.etaxonomy.cdm.api.application.CdmApplicationController;\r
+import eu.etaxonomy.cdm.api.application.ICdmApplicationDefaultConfiguration;\r
import eu.etaxonomy.cdm.api.service.ITermService;\r
import eu.etaxonomy.cdm.app.common.CdmDestinations;\r
import eu.etaxonomy.cdm.database.DbSchemaValidation;\r
import eu.etaxonomy.cdm.database.ICdmDataSource;\r
import eu.etaxonomy.cdm.io.common.CdmDefaultImport;\r
import eu.etaxonomy.cdm.io.common.IImportConfigurator.CHECK;\r
+import eu.etaxonomy.cdm.io.common.mapping.IInputTransformer;\r
+import eu.etaxonomy.cdm.io.common.mapping.UndefinedTransformerMethodException;\r
import eu.etaxonomy.cdm.io.cyprus.CyprusImportConfigurator;\r
import eu.etaxonomy.cdm.io.cyprus.CyprusTransformer;\r
import eu.etaxonomy.cdm.model.agent.Person;\r
-import eu.etaxonomy.cdm.model.agent.Team;\r
import eu.etaxonomy.cdm.model.description.Feature;\r
import eu.etaxonomy.cdm.model.description.FeatureNode;\r
import eu.etaxonomy.cdm.model.description.FeatureTree;\r
\r
//database validation status (create, update, validate ...)\r
static DbSchemaValidation hbm2dll = DbSchemaValidation.CREATE;\r
+// static final URI source = cyprus_distribution();\r
static final URI source = cyprus_local();\r
\r
\r
-// static final ICdmDataSource cdmDestination = CdmDestinations.localH2();\r
+ static final ICdmDataSource cdmDestination = CdmDestinations.localH2();\r
// static final ICdmDataSource cdmDestination = CdmDestinations.cdm_local_postgres_CdmTest();\r
- static final ICdmDataSource cdmDestination = CdmDestinations.cdm_test_local_mysql();\r
+// static final ICdmDataSource cdmDestination = CdmDestinations.cdm_test_local_mysql();\r
// static final ICdmDataSource cdmDestination = CdmDestinations.cdm_cyprus_dev();\r
-// static final ICdmDataSource cdmDestination = CdmDestinations.cdm_cyprus_dev_tunnel();\r
+// static final ICdmDataSource cdmDestination = CdmDestinations.cdm_cyprus_production();\r
\r
\r
//feature tree uuid\r
\r
//taxa\r
static final boolean doTaxa = true;\r
- static final boolean doDeduplicate = true;\r
+ static final boolean doDeduplicate = false;\r
+ static final boolean doDistribution = false;\r
\r
\r
private void doImport(ICdmDataSource cdmDestination){\r
//make Source\r
CyprusImportConfigurator config= CyprusImportConfigurator.NewInstance(source, cdmDestination);\r
config.setClassificationUuid(classificationUuid);\r
- config.setDoTaxa(doTaxa);\r
config.setCheck(check);\r
-// config.setDefaultLanguageUuid(defaultLanguageUuid);\r
-// config.setDoPrintKeys(doPrintKeys);\r
+ config.setDoDistribution(doDistribution);\r
+ config.setDoTaxa(doTaxa);\r
config.setDbSchemaValidation(hbm2dll);\r
\r
CdmDefaultImport myImport = new CdmDefaultImport();\r
System.out.println("Start import from ("+ source.toString() + ") ...");\r
config.setSourceReference(getSourceReference(config.getSourceReferenceTitle()));\r
myImport.invoke(config);\r
+ if (doTaxa){\r
+ FeatureTree tree = makeFeatureNodes(myImport.getCdmAppController().getTermService());\r
+ myImport.getCdmAppController().getFeatureTreeService().saveOrUpdate(tree);\r
+ }\r
+\r
System.out.println("End import from ("+ source.toString() + ")...");\r
}\r
\r
- FeatureTree tree = makeFeatureNode(myImport.getCdmAppController().getTermService());\r
- myImport.getCdmAppController().getFeatureTreeService().saveOrUpdate(tree);\r
\r
\r
//deduplicate\r
if (doDeduplicate){\r
- CdmApplicationController app = myImport.getCdmAppController();\r
+ ICdmApplicationDefaultConfiguration app = myImport.getCdmAppController();\r
int count = app.getAgentService().deduplicate(Person.class, null, null);\r
logger.warn("Deduplicated " + count + " persons.");\r
- count = app.getAgentService().deduplicate(Team.class, null, null);\r
- logger.warn("Deduplicated " + count + " teams.");\r
+// count = app.getAgentService().deduplicate(Team.class, null, null);\r
+// logger.warn("Deduplicated " + count + " teams.");\r
count = app.getReferenceService().deduplicate(Reference.class, null, null);\r
logger.warn("Deduplicated " + count + " references.");\r
}\r
return result;\r
}\r
\r
- private FeatureTree makeFeatureNode(ITermService service){\r
+ private FeatureTree makeFeatureNodes(ITermService service){\r
CyprusTransformer transformer = new CyprusTransformer();\r
\r
FeatureTree result = FeatureTree.NewInstance(featureTreeUuid);\r
result.setTitleCache("Cyprus Feature Tree");\r
FeatureNode root = result.getRoot();\r
FeatureNode newNode;\r
+\r
+ newNode = FeatureNode.NewInstance(Feature.STATUS());\r
+ root.addChild(newNode);\r
\r
newNode = FeatureNode.NewInstance(Feature.DISTRIBUTION());\r
root.addChild(newNode);\r
\r
-// addFeataureNodesByStringList(habitatEcologyList, root, transformer, service);\r
- \r
- newNode = FeatureNode.NewInstance(Feature.CITATION());\r
+ newNode = FeatureNode.NewInstance(Feature.SYSTEMATICS());\r
root.addChild(newNode);\r
+\r
+ //user defined features\r
+ String [] featureList = new String[]{"Red Book", "Endemism"};\r
+ addFeataureNodesByStringList(featureList, root, transformer, service);\r
\r
return result;\r
}\r
return null;\r
}\r
}\r
+ //Cyprus distriution\r
+ public static URI cyprus_distribution() {\r
+ URI sourceUrl;\r
+ try {\r
+ sourceUrl = new URI("file:/C:/localCopy/Data/zypern/Zypern_distribution_RH_corr.xls");\r
+ return sourceUrl;\r
+ } catch (URISyntaxException e) {\r
+ e.printStackTrace();\r
+ return null;\r
+ }\r
+ }\r
+ \r
+ public void addFeataureNodesByStringList(String[] featureStringList, FeatureNode root, IInputTransformer transformer, ITermService termService){\r
+ try {\r
+ for (String featureString : featureStringList){\r
+ UUID featureUuid;\r
+ featureUuid = transformer.getFeatureUuid(featureString);\r
+ Feature feature = (Feature)termService.find(featureUuid);\r
+ if (feature != null){\r
+ FeatureNode child = FeatureNode.NewInstance(feature);\r
+ root.addChild(child); \r
+ }\r
+ }\r
+ } catch (UndefinedTransformerMethodException e) {\r
+ logger.error("getFeatureUuid is not implemented in transformer. Features could not be added");\r
+ }\r
+ }\r
\r
\r
/**\r