X-Git-Url: https://dev.e-taxonomy.eu/gitweb/cdmlib-apps.git/blobdiff_plain/57f04842bd23bea9f6e2d8ee806f4dcdcdc1b980..c42da44fa4930d1d7b14a86b24f4facf9e95c94f:/app-import/src/main/java/eu/etaxonomy/cdm/app/berlinModelImport/AlgaTerraActivator.java diff --git a/app-import/src/main/java/eu/etaxonomy/cdm/app/berlinModelImport/AlgaTerraActivator.java b/app-import/src/main/java/eu/etaxonomy/cdm/app/berlinModelImport/AlgaTerraActivator.java index 7854475a..eb2d728c 100644 --- a/app-import/src/main/java/eu/etaxonomy/cdm/app/berlinModelImport/AlgaTerraActivator.java +++ b/app-import/src/main/java/eu/etaxonomy/cdm/app/berlinModelImport/AlgaTerraActivator.java @@ -14,10 +14,13 @@ import java.util.UUID; import org.apache.log4j.Logger; import eu.etaxonomy.cdm.api.application.ICdmApplicationConfiguration; +import eu.etaxonomy.cdm.api.service.ITermService; import eu.etaxonomy.cdm.app.common.CdmDestinations; import eu.etaxonomy.cdm.database.DbSchemaValidation; import eu.etaxonomy.cdm.database.ICdmDataSource; import eu.etaxonomy.cdm.io.algaterra.AlgaTerraImportConfigurator; +import eu.etaxonomy.cdm.io.algaterra.AlgaTerraImportTransformer; +import eu.etaxonomy.cdm.io.algaterra.AlgaTerraSpecimenImportBase; import eu.etaxonomy.cdm.io.berlinModel.in.BerlinModelImportConfigurator; import eu.etaxonomy.cdm.io.common.CdmDefaultImport; import eu.etaxonomy.cdm.io.common.IImportConfigurator.CHECK; @@ -46,8 +49,10 @@ public class AlgaTerraActivator { static DbSchemaValidation hbm2dll = DbSchemaValidation.CREATE; static final Source berlinModelSource = BerlinModelSources.AlgaTerra(); // static final ICdmDataSource cdmDestination = CdmDestinations.localH2(); -// static final ICdmDataSource cdmDestination = CdmDestinations.cdm_algaterra_preview(); static final ICdmDataSource cdmDestination = CdmDestinations.cdm_test_local_mysql(); + +// static final ICdmDataSource cdmDestination = CdmDestinations.cdm_algaterra_preview(); +// static final ICdmDataSource cdmDestination = CdmDestinations.cdm_algaterra_production(); static final UUID treeUuid = UUID.fromString("1f617402-78dc-4bf1-ac77-d260600a8879"); @@ -55,7 +60,13 @@ public class AlgaTerraActivator { static final UUID sourceRefUuid = UUID.fromString("7e1a2500-93a5-40c2-ba34-0213d7822379"); static final UUID featureTreeUuid = UUID.fromString("a970168a-36fd-4c7c-931e-87214a965c14"); - static final Object[] featureKeyList = new Integer[]{7,201,202,203,204,205,206,207}; + static final Object[] featureKeyList = new Integer[]{7,201,203,204,206,207}; + static final UUID specimenFeatureTreeUuid = UUID.fromString("ba86246e-d4d0-419f-832e-86d70b1e4bd7"); + + static final boolean loginAsDefaultAdmin = true; + static final boolean removeRestricted = true; + + static final boolean importOriginalSizeMedia = false; //check - import static final CHECK check = CHECK.IMPORT_WITHOUT_CHECK; @@ -63,13 +74,14 @@ public class AlgaTerraActivator { private boolean ignoreNull = true; private boolean includeFlatClassifications = true; + private boolean includeAllNonMisappliedRelatedClassifications = true; private EDITOR editor = EDITOR.EDITOR_AS_EDITOR; //NomeclaturalCode - static final NomenclaturalCode nomenclaturalCode = NomenclaturalCode.ICBN; + static final NomenclaturalCode nomenclaturalCode = NomenclaturalCode.ICNAFP; - static String factFilter = " factCategoryFk NOT IN (7, 202 ) "; + static String factFilter = " factCategoryFk NOT IN (7, 201, 202, 203, 204, 205, 206, 207, 208, 1000 ) "; // ****************** ALL ***************************************** @@ -91,7 +103,10 @@ public class AlgaTerraActivator { //alga terra specific static final boolean ecoFacts = true; - static final boolean doImages = true; + static final boolean doFactEcology = true; + static final boolean doImages = false; + static final boolean doDna = true; + static final boolean doMorphology = true; // ************************ NONE **************************************** // @@ -103,7 +118,7 @@ public class AlgaTerraActivator { // static final boolean doTaxonNames = false; // static final boolean doRelNames = false; // static final boolean doNameStatus = false; -// static final boolean doTypes = true; +// static final boolean doTypes = false; // static final boolean doNameFacts = false; // // //taxa @@ -113,7 +128,10 @@ public class AlgaTerraActivator { // // //alga terra specific // static final boolean ecoFacts = true; -// static final boolean doImages = true; +// static final boolean doFactEcology = false; +// static final boolean doImages = false; +// static final boolean doDna = false; +// static final boolean doMorphology = true; public void invoke(String[] args){ @@ -141,11 +159,17 @@ public class AlgaTerraActivator { config.setDoFacts(doFacts); config.setDoEcoFacts(ecoFacts); config.setDoImages(doImages); + config.setDoFactEcology(doFactEcology); + config.setDoDna(doDna); + config.setDoMorphology(doMorphology); config.setSourceRefUuid(sourceRefUuid); config.setIgnoreNull(ignoreNull); + config.setRemoveRestricted(removeRestricted); + config.setImportOriginalSizeMedia(importOriginalSizeMedia); config.setIncludeFlatClassifications(includeFlatClassifications); + config.setIncludeAllNonMisappliedRelatedClassifications(includeAllNonMisappliedRelatedClassifications); config.setFactFilter(factFilter); config.setDbSchemaValidation(hbm2dll); @@ -153,6 +177,10 @@ public class AlgaTerraActivator { config.setCheck(check); config.setEditor(editor); + if (loginAsDefaultAdmin){ + config.authenticateAsDefaultAdmin(); + } + // invoke import CdmDefaultImport bmImport = new CdmDefaultImport(); bmImport.invoke(config); @@ -161,17 +189,127 @@ public class AlgaTerraActivator { ICdmApplicationConfiguration app = bmImport.getCdmAppController(); //make feature tree - FeatureTree tree = TreeCreator.flatTree(featureTreeUuid, config.getFeatureMap(), featureKeyList); - FeatureNode imageNode = FeatureNode.NewInstance(Feature.IMAGE()); - tree.getRoot().addChild(imageNode); - FeatureNode distributionNode = FeatureNode.NewInstance(Feature.DISTRIBUTION()); - tree.getRoot().addChild(distributionNode, 2); - app.getFeatureTreeService().saveOrUpdate(tree); + makeTaxonFeatureTree(config, app); + + //make specimen feature tree + //TODO more specimen specific + makeSpecimenFeatureTree(config, app); + } System.out.println("End import from BerlinModel ("+ source.getDatabase() + ")..."); } + + + /** + * @param config + * @param app + */ + private void makeTaxonFeatureTree(AlgaTerraImportConfigurator config, ICdmApplicationConfiguration app) { + FeatureTree tree = TreeCreator.flatTree(featureTreeUuid, config.getFeatureMap(), featureKeyList); + tree.setTitleCache("AlgaTerra Taxon Feature Tree", true); + + FeatureNode node = FeatureNode.NewInstance(Feature.HABITAT()); + tree.getRoot().addChild(node); + +// node = FeatureNode.NewInstance(Feature.OBSERVATION()); +// tree.getRoot().addChild(node); +// +// node = FeatureNode.NewInstance(Feature.SPECIMEN()); +// tree.getRoot().addChild(node); +// +// node = FeatureNode.NewInstance(Feature.INDIVIDUALS_ASSOCIATION()); +// tree.getRoot().addChild(node); + + //needed ?? + FeatureNode distributionNode = FeatureNode.NewInstance(Feature.DISTRIBUTION()); + tree.getRoot().addChild(distributionNode, 2); + +// //needed ?? +// FeatureNode imageNode = FeatureNode.NewInstance(Feature.IMAGE()); +// tree.getRoot().addChild(imageNode); + + app.getFeatureTreeService().saveOrUpdate(tree); + } + + + /** + * @param config + * @param app + * @param tree + */ + private void makeSpecimenFeatureTree(AlgaTerraImportConfigurator config, ICdmApplicationConfiguration app) { + ITermService termService = app.getTermService(); + FeatureTree specimenTree = FeatureTree.NewInstance(specimenFeatureTreeUuid); +// FeatureTree specimenTree = TreeCreator.flatTree(specimenFeatureTreeUuid, config.getFeatureMap(), featureKeyList); + specimenTree.setTitleCache("AlgaTerra Specimen Feature Tree", true); + FeatureNode root = specimenTree.getRoot(); + + + FeatureNode imageNode = FeatureNode.NewInstance(Feature.IMAGE()); + root.addChild(imageNode); + + addFeatureNodeByUuid(root, termService, AlgaTerraSpecimenImportBase.uuidFeatureAlgaTerraClimate); + FeatureNode node = FeatureNode.NewInstance(Feature.HABITAT()); + root.addChild(node); + addFeatureNodeByUuid(root, termService, AlgaTerraSpecimenImportBase.uuidFeatureHabitatExplanation); + addFeatureNodeByUuid(root, termService, AlgaTerraSpecimenImportBase.uuidFeatureAlgaTerraLifeForm); + + addFeatureNodeByUuid(root, termService, AlgaTerraSpecimenImportBase.uuidFeatureAdditionalData); + addFeatureNodeByUuid(root, termService, AlgaTerraSpecimenImportBase.uuidFeatureSpecimenCommunity); + + addFeatureNodeByUuid(root, termService, AlgaTerraImportTransformer.uuidFeaturePH); + addFeatureNodeByUuid(root, termService, AlgaTerraImportTransformer.uuidFeatureConductivity); + addFeatureNodeByUuid(root, termService, AlgaTerraImportTransformer.uuidFeatureWaterTemperature); + addFeatureNodeByUuid(root, termService, AlgaTerraImportTransformer.uuidFeatureSilica); + FeatureNode nitrogenNode = makeNitrogenNode(root, termService); + addFeatureNodeByUuid(nitrogenNode, termService, AlgaTerraImportTransformer.uuidFeatureNitrate); + addFeatureNodeByUuid(nitrogenNode, termService, AlgaTerraImportTransformer.uuidFeatureNitrite); + addFeatureNodeByUuid(nitrogenNode, termService, AlgaTerraImportTransformer.uuidFeatureAmmonium); + addFeatureNodeByUuid(root, termService, AlgaTerraImportTransformer.uuidFeaturePhosphate); + addFeatureNodeByUuid(root, termService, AlgaTerraImportTransformer.uuidFeatureOrthoPhosphate); + addFeatureNodeByUuid(root, termService, AlgaTerraImportTransformer.uuidFeatureNPRation); + addFeatureNodeByUuid(root, termService, AlgaTerraImportTransformer.uuidFeatureDIN); + addFeatureNodeByUuid(root, termService, AlgaTerraImportTransformer.uuidFeatureSRP); + addFeatureNodeByUuid(root, termService, AlgaTerraImportTransformer.uuidFeatureOxygenSaturation); + addFeatureNodeByUuid(root, termService, AlgaTerraImportTransformer.uuidFeatureCl); + addFeatureNodeByUuid(root, termService, AlgaTerraImportTransformer.uuidFeatureSecchiDepth); + addFeatureNodeByUuid(root, termService, AlgaTerraImportTransformer.uuidFeatureCommunity); + app.getFeatureTreeService().saveOrUpdate(specimenTree); + } + + private FeatureNode makeNitrogenNode(FeatureNode root, ITermService termService) { + Feature nFeature = Feature.NewInstance("Supra feature for all Nitrogen related subfeatures", "Nitrogen", "N"); + termService.save(nFeature); + FeatureNode nNode = FeatureNode.NewInstance(nFeature); + root.addChild(nNode); + return nNode; + } + + +// private FeatureNode addFeataureNodesByUuidList(UUID[] featureUuidList, FeatureNode root, ITermService termService){ +// FeatureNode lastChild = null; +// for (UUID featureUuid : featureUuidList){ +// addFeatureNodeByUuid(root, termService, featureUuid); +// } +// +// return lastChild; +// } + + + /** + * @param root + * @param termService + * @param featureUuid + */ + private void addFeatureNodeByUuid(FeatureNode root, ITermService termService, UUID featureUuid) { + Feature feature = (Feature)termService.find(featureUuid); + if (feature != null){ + FeatureNode child = FeatureNode.NewInstance(feature); + root.addChild(child); + } + } /**