From a1320b675401f7c3241af537a33bf21a8b11b58c Mon Sep 17 00:00:00 2001 From: =?utf8?q?Andreas=20M=C3=BCller?= Date: Fri, 19 Jun 2009 14:38:26 +0000 Subject: [PATCH] is homotypic name relation for BerlinModel Export --- .gitattributes | 1 + .../in/BerlinModelImportConfigurator.java | 19 -- .../in/BerlinModelImportState.java | 16 -- .../BerlinModelTaxonNameRelationImport.java | 53 ++++- .../in/BerlinModelTaxonRelationImport.java | 3 +- .../out/BerlinModelExportConfigurator.java | 19 ++ .../out/BerlinModelExportMapping.java | 5 +- .../out/BerlinModelFactExport.java | 2 +- .../out/BerlinModelNameRelationExport.java | 96 ++++++++- .../out/BerlinModelReferenceExport.java | 7 +- .../out/BerlinModelTaxonExport.java | 2 +- .../out/BerlinModelTaxonRelationExport.java | 2 +- .../out/BerlinModelTaxonomicTreeExport.java | 188 ++++++++++++++++++ .../cdm/io/common/ExportConfiguratorBase.java | 8 + .../cdm/io/common/ImportStateBase.java | 21 +- .../cdm/io/common/IoConfiguratorBase.java | 21 ++ 16 files changed, 414 insertions(+), 49 deletions(-) create mode 100644 cdmlib-io/src/main/java/eu/etaxonomy/cdm/io/berlinModel/out/BerlinModelTaxonomicTreeExport.java diff --git a/.gitattributes b/.gitattributes index d9b65aa1f5..9ca6c86fa1 100644 --- a/.gitattributes +++ b/.gitattributes @@ -693,6 +693,7 @@ cdmlib-io/src/main/java/eu/etaxonomy/cdm/io/berlinModel/out/BerlinModelReference cdmlib-io/src/main/java/eu/etaxonomy/cdm/io/berlinModel/out/BerlinModelTaxonExport.java -text cdmlib-io/src/main/java/eu/etaxonomy/cdm/io/berlinModel/out/BerlinModelTaxonNameExport.java -text cdmlib-io/src/main/java/eu/etaxonomy/cdm/io/berlinModel/out/BerlinModelTaxonRelationExport.java -text +cdmlib-io/src/main/java/eu/etaxonomy/cdm/io/berlinModel/out/BerlinModelTaxonomicTreeExport.java -text cdmlib-io/src/main/java/eu/etaxonomy/cdm/io/berlinModel/out/CollectionExportMapping.java -text cdmlib-io/src/main/java/eu/etaxonomy/cdm/io/berlinModel/out/mapper/CreatedAndNotesMapper.java -text cdmlib-io/src/main/java/eu/etaxonomy/cdm/io/berlinModel/out/mapper/DbAnnotationMapper.java -text diff --git a/cdmlib-io/src/main/java/eu/etaxonomy/cdm/io/berlinModel/in/BerlinModelImportConfigurator.java b/cdmlib-io/src/main/java/eu/etaxonomy/cdm/io/berlinModel/in/BerlinModelImportConfigurator.java index 1e3353389c..60cf136e57 100644 --- a/cdmlib-io/src/main/java/eu/etaxonomy/cdm/io/berlinModel/in/BerlinModelImportConfigurator.java +++ b/cdmlib-io/src/main/java/eu/etaxonomy/cdm/io/berlinModel/in/BerlinModelImportConfigurator.java @@ -44,8 +44,6 @@ public class BerlinModelImportConfigurator extends ImportConfiguratorBase proParteSynonyms = new HashSet(); private Set partialSynonyms = new HashSet(); @@ -250,22 +248,5 @@ public class BerlinModelImportConfigurator extends ImportConfiguratorBase dbCdmDefTermMap = new HashMap(); - Map treeMap = new HashMap(); Map usernameMap = new HashMap(); /* (non-Javadoc) @@ -69,20 +68,5 @@ public class BerlinModelImportState extends ImportStateBase 0){ + System.out.println(" "); + } + + return result; + } catch (SQLException e) { + e.printStackTrace(); + return false; + } + } + } diff --git a/cdmlib-io/src/main/java/eu/etaxonomy/cdm/io/berlinModel/in/BerlinModelTaxonRelationImport.java b/cdmlib-io/src/main/java/eu/etaxonomy/cdm/io/berlinModel/in/BerlinModelTaxonRelationImport.java index 8983f3dd55..d0d8cf55dc 100644 --- a/cdmlib-io/src/main/java/eu/etaxonomy/cdm/io/berlinModel/in/BerlinModelTaxonRelationImport.java +++ b/cdmlib-io/src/main/java/eu/etaxonomy/cdm/io/berlinModel/in/BerlinModelTaxonRelationImport.java @@ -30,6 +30,7 @@ import java.util.UUID; import org.apache.log4j.Logger; import org.springframework.stereotype.Component; +import eu.etaxonomy.cdm.common.CdmUtils; import eu.etaxonomy.cdm.common.ResultWrapper; import eu.etaxonomy.cdm.io.berlinModel.BerlinModelTransformer; import eu.etaxonomy.cdm.io.common.ICdmIO; @@ -160,7 +161,7 @@ public class BerlinModelTaxonRelationImport extends BerlinModelImportBase { } //FIXME treeName String treeName = "TaxonTree - No Name"; - if (ref != null){ + if (ref != null && CdmUtils.isNotEmpty(ref.getTitleCache())){ treeName = ref.getTitleCache(); } TaxonomicTree tree = TaxonomicTree.NewInstance(treeName); diff --git a/cdmlib-io/src/main/java/eu/etaxonomy/cdm/io/berlinModel/out/BerlinModelExportConfigurator.java b/cdmlib-io/src/main/java/eu/etaxonomy/cdm/io/berlinModel/out/BerlinModelExportConfigurator.java index eac55c7e2d..f1bcf28ec7 100644 --- a/cdmlib-io/src/main/java/eu/etaxonomy/cdm/io/berlinModel/out/BerlinModelExportConfigurator.java +++ b/cdmlib-io/src/main/java/eu/etaxonomy/cdm/io/berlinModel/out/BerlinModelExportConfigurator.java @@ -32,6 +32,8 @@ public class BerlinModelExportConfigurator extends DbExportConfiguratorBase impl private BerlinModelExportState state; private Method relNameQualifierMethod; + //ID for the isHomotypic relationship in RelName, if not exist null + private Integer isHomotypicId = null; public static BerlinModelExportConfigurator NewInstance(Source berlinModelDestination, ICdmDataSource source){ return new BerlinModelExportConfigurator(berlinModelDestination, source); @@ -103,6 +105,23 @@ public class BerlinModelExportConfigurator extends DbExportConfiguratorBase impl public void setState(BerlinModelExportState state) { this.state = state; } + + /** + * @return the isHomotypicId + */ + public Integer getIsHomotypicId() { + return isHomotypicId; + } + + /** + * @param isHomotypicId the isHomotypicId to set + */ + public void setIsHomotypicId(Integer isHomotypicId) { + this.isHomotypicId = isHomotypicId; + } + + + // // /** // * @return the relNameQualifierMethod diff --git a/cdmlib-io/src/main/java/eu/etaxonomy/cdm/io/berlinModel/out/BerlinModelExportMapping.java b/cdmlib-io/src/main/java/eu/etaxonomy/cdm/io/berlinModel/out/BerlinModelExportMapping.java index 895b4ae0de..6ef0a9f06e 100644 --- a/cdmlib-io/src/main/java/eu/etaxonomy/cdm/io/berlinModel/out/BerlinModelExportMapping.java +++ b/cdmlib-io/src/main/java/eu/etaxonomy/cdm/io/berlinModel/out/BerlinModelExportMapping.java @@ -152,7 +152,10 @@ public class BerlinModelExportMapping extends CdmIoMapping { this.preparedStatement = preparedStatement; } - + protected List getAttributeMapperList(){ + List list = this.mapperList; + return list; + } } diff --git a/cdmlib-io/src/main/java/eu/etaxonomy/cdm/io/berlinModel/out/BerlinModelFactExport.java b/cdmlib-io/src/main/java/eu/etaxonomy/cdm/io/berlinModel/out/BerlinModelFactExport.java index 7eaf579ef9..2afc4d408e 100644 --- a/cdmlib-io/src/main/java/eu/etaxonomy/cdm/io/berlinModel/out/BerlinModelFactExport.java +++ b/cdmlib-io/src/main/java/eu/etaxonomy/cdm/io/berlinModel/out/BerlinModelFactExport.java @@ -156,7 +156,7 @@ public class BerlinModelFactExport extends BerlinModelExportBase { * @see eu.etaxonomy.cdm.io.common.CdmIoBase#isIgnore(eu.etaxonomy.cdm.io.common.IImportConfigurator) */ protected boolean isIgnore(IExportConfigurator config){ - return ! ((BerlinModelExportConfigurator)config).isDoTaxonNames(); + return ! ((BerlinModelExportConfigurator)config).isDoFacts(); } //called by MethodMapper diff --git a/cdmlib-io/src/main/java/eu/etaxonomy/cdm/io/berlinModel/out/BerlinModelNameRelationExport.java b/cdmlib-io/src/main/java/eu/etaxonomy/cdm/io/berlinModel/out/BerlinModelNameRelationExport.java index 06eab29b68..5b6a5809cb 100644 --- a/cdmlib-io/src/main/java/eu/etaxonomy/cdm/io/berlinModel/out/BerlinModelNameRelationExport.java +++ b/cdmlib-io/src/main/java/eu/etaxonomy/cdm/io/berlinModel/out/BerlinModelNameRelationExport.java @@ -9,8 +9,13 @@ package eu.etaxonomy.cdm.io.berlinModel.out; import java.lang.reflect.InvocationTargetException; +import java.sql.PreparedStatement; +import java.sql.ResultSet; import java.sql.SQLException; +import java.sql.Types; +import java.util.HashSet; import java.util.List; +import java.util.Set; import org.apache.log4j.Logger; import org.springframework.stereotype.Component; @@ -22,12 +27,17 @@ import eu.etaxonomy.cdm.io.berlinModel.out.mapper.DbObjectMapper; import eu.etaxonomy.cdm.io.berlinModel.out.mapper.IdMapper; import eu.etaxonomy.cdm.io.berlinModel.out.mapper.MethodMapper; import eu.etaxonomy.cdm.io.berlinModel.out.mapper.RefDetailMapper; +import eu.etaxonomy.cdm.io.common.CdmAttributeMapperBase; import eu.etaxonomy.cdm.io.common.IExportConfigurator; import eu.etaxonomy.cdm.io.common.Source; import eu.etaxonomy.cdm.model.common.CdmBase; import eu.etaxonomy.cdm.model.common.RelationshipBase; +import eu.etaxonomy.cdm.model.name.HomotypicalGroup; import eu.etaxonomy.cdm.model.name.HybridRelationship; import eu.etaxonomy.cdm.model.name.NameRelationship; +import eu.etaxonomy.cdm.model.name.NameRelationshipType; +import eu.etaxonomy.cdm.model.name.TaxonNameBase; +import eu.etaxonomy.cdm.model.reference.ReferenceBase; /** @@ -101,6 +111,9 @@ public class BerlinModelNameRelationExport extends BerlinModelExportBase state, BerlinModelExportMapping mapping){ + boolean success = true ; + try{ + Integer homotypicId = state.getConfig().getIsHomotypicId(); + if (homotypicId == null){ + return success; + } + logger.info("start make IsHomotypicRelations ..."); + + TransactionStatus txStatus = startTransaction(true); + + List list = getNameService().getAllHomotypicalGroups(100000000, 0); + + int count = 0; + modCount = 1000; + Set basionymNameRels = new HashSet(); + for (HomotypicalGroup homoGroup : list){ + doCount(count++, modCount, "homotypical groups"); + Set allNames = homoGroup.getTypifiedNames(); + if (allNames.size() > 1){ + Set readyNames = new HashSet(); + Set unrelateds = homoGroup.getUnrelatedNames(); + for (TaxonNameBase unrelated : unrelateds){ + for (TaxonNameBase oneOfAllNames: allNames){ + if(!unrelated.equals(oneOfAllNames) && ! readyNames.contains(oneOfAllNames)){ + success &= invokeIsHomotypic(state, mapping, unrelated, oneOfAllNames, null, null); + } + } + readyNames.add(unrelated); + } + } + } + commitTransaction(txStatus); + + logger.info("end make homotypical groups ... " + getSuccessString(success)); + return success; + }catch(SQLException e){ + logger.error(e.getMessage()); + e.printStackTrace(); + return false; + } + } + + private boolean invokeIsHomotypic(BerlinModelExportState state, BerlinModelExportMapping mapping, TaxonNameBase fromName, TaxonNameBase toName, ReferenceBase refId, String microCitation) throws SQLException{ + try{ + logger.info(fromName.getTitleCache() + "->" + toName.getTitleCache()); + String maxQuery = " SELECT max(relNameId) as max FROM relName "; + ResultSet rs = state.getConfig().getDestination().getResultSet(maxQuery); + int maxId = 1; + if (rs.next()){ + maxId = rs.getInt("max") + 1; + } + int fromNameId = state.getDbId(fromName); + int toNameId = state.getDbId(toName); + int catId = state.getConfig().getIsHomotypicId(); + String query = "INSERT INTO relName (relNameId, nameFk1, nameFk2, RelNameQualifierFk) " + + " VALUES ("+maxId+","+fromNameId+","+toNameId+","+catId+")"; + int ui = state.getConfig().getDestination().getConnection().createStatement().executeUpdate(query); + }catch(SQLException e){ + throw e; + } + return true; + } + + private Set getAllRelatedNames(Set rels){ + Set result = new HashSet(); + for (NameRelationship rel : rels){ + result.add(rel.getFromName()); + result.add(rel.getToName()); + } + return result; + } + protected boolean doDelete(BerlinModelExportState state){ BerlinModelExportConfigurator bmeConfig = state.getConfig(); @@ -132,9 +218,9 @@ public class BerlinModelNameRelationExport extends BerlinModelExportBase rel, BerlinModelExportConfigurator config) throws Exception { + //called by MethodMapper + @SuppressWarnings("unused") + private static Integer getRelNameQualifierFk(RelationshipBase rel) throws Exception { // if (config.getRelNameQualifierMethod() != null){ // try { // return (Integer)config.getRelNameQualifierMethod().invoke(rel); @@ -143,9 +229,9 @@ public class BerlinModelNameRelationExport extends BerlinModelExportBase { * @see eu.etaxonomy.cdm.io.common.CdmIoBase#isIgnore(eu.etaxonomy.cdm.io.common.IImportConfigurator) */ protected boolean isIgnore(IExportConfigurator config){ - return ! ((BerlinModelExportConfigurator)config).isDoTaxonNames(); + return ! ((BerlinModelExportConfigurator)config).isDoTaxa(); } //called by MethodMapper diff --git a/cdmlib-io/src/main/java/eu/etaxonomy/cdm/io/berlinModel/out/BerlinModelTaxonRelationExport.java b/cdmlib-io/src/main/java/eu/etaxonomy/cdm/io/berlinModel/out/BerlinModelTaxonRelationExport.java index 3220f6f024..1d19960ddd 100644 --- a/cdmlib-io/src/main/java/eu/etaxonomy/cdm/io/berlinModel/out/BerlinModelTaxonRelationExport.java +++ b/cdmlib-io/src/main/java/eu/etaxonomy/cdm/io/berlinModel/out/BerlinModelTaxonRelationExport.java @@ -130,7 +130,7 @@ public class BerlinModelTaxonRelationExport extends BerlinModelExportBase { + private static final Logger logger = Logger.getLogger(BerlinModelTaxonomicTreeExport.class); + + private static int modCount = 1000; + private static final String dbTableName = "RelPTaxon"; + private static final String pluralString = "TaxonomicTrees"; + private static final Class standardMethodParameter = RelationshipBase.class; + + + public BerlinModelTaxonomicTreeExport(){ + super(); + } + + /* (non-Javadoc) + * @see eu.etaxonomy.cdm.io.common.CdmIoBase#doCheck(eu.etaxonomy.cdm.io.common.IImportConfigurator) + */ + @Override + protected boolean doCheck(IExportConfigurator config){ + boolean result = true; + logger.warn("Checking for " + pluralString + " not yet implemented"); + //result &= checkArticlesWithoutJournal(bmiConfig); + //result &= checkPartOfJournal(bmiConfig); + + return result; + } + + private BerlinModelExportMapping getMapping(){ + String tableName = dbTableName; + BerlinModelExportMapping mapping = new BerlinModelExportMapping(tableName); +// mapping.addMapper(IdMapper.NewInstance("RelPTaxonId")); //is Identity column + + mapping.addMapper(MethodMapper.NewInstance("PTNameFk1", this.getClass(), "getPTNameFk1", standardMethodParameter, DbExportStateBase.class)); + mapping.addMapper(MethodMapper.NewInstance("PTRefFk1", this.getClass(), "getPTRefFk1", standardMethodParameter, DbExportStateBase.class)); + + mapping.addMapper(MethodMapper.NewInstance("PTNameFk2", this.getClass(), "getPTNameFk2", standardMethodParameter, DbExportStateBase.class)); + mapping.addMapper(MethodMapper.NewInstance("PTRefFk2", this.getClass(), "getPTRefFk2", standardMethodParameter, DbExportStateBase.class)); + + mapping.addMapper(MethodMapper.NewInstance("RelQualifierFk", this)); + + mapping.addMapper(DbObjectMapper.NewInstance("citation", "RelRefFk")); +// mapping.addMapper(RefDetailMapper.NewInstance("citationMicroReference","citation", "FactRefDetailFk")); + mapping.addMapper(CreatedAndNotesMapper.NewInstance()); + + return mapping; + } + + protected boolean doInvoke(BerlinModelExportState state){ + try{ + logger.info("start make " + pluralString + " ..."); + boolean success = true ; + doDelete(state); + + TransactionStatus txStatus = startTransaction(true); + + List list = getTaxonService().getAllTaxonomicTrees(10000000,0); + + BerlinModelExportMapping mapping = getMapping(); + mapping.initialize(state); + + int count = 0; + for (TaxonomicTree tree : list){ + if (true){ + doCount(count++, modCount, pluralString); + success &= mapping.invoke(tree); + } + } + commitTransaction(txStatus); + logger.info("end make " + pluralString + " ..." + getSuccessString(success)); + return success; + }catch(SQLException e){ + e.printStackTrace(); + logger.error(e.getMessage()); + return false; + } + } + + + protected boolean doDelete(BerlinModelExportState state){ + BerlinModelExportConfigurator bmeConfig = state.getConfig(); + + String sql; + Source destination = bmeConfig.getDestination(); + //RelPTaxon + sql = "DELETE FROM RelPTaxon"; + destination.setQuery(sql); + destination.update(sql); + + return true; + } + + + /* (non-Javadoc) + * @see eu.etaxonomy.cdm.io.common.CdmIoBase#isIgnore(eu.etaxonomy.cdm.io.common.IImportConfigurator) + */ + protected boolean isIgnore(IExportConfigurator config){ + return ! ((BerlinModelExportConfigurator)config).isDoTaxonNames(); + } + + //called by MethodMapper + @SuppressWarnings("unused") + private static Integer getRelQualifierFk(RelationshipBase rel){ + return BerlinModelTransformer.taxRelation2relPtQualifierFk(rel); + } + + @SuppressWarnings("unused") + private static Integer getPTNameFk1(RelationshipBase rel, DbExportStateBase state){ + return getObjectFk(rel, state, true, true); + } + + @SuppressWarnings("unused") + private static Integer getPTRefFk1(RelationshipBase rel, DbExportStateBase state){ + return getObjectFk(rel, state, false, true); + } + + @SuppressWarnings("unused") + private static Integer getPTNameFk2(RelationshipBase rel, DbExportStateBase state){ + return getObjectFk(rel, state, true, false); + } + + @SuppressWarnings("unused") + private static Integer getPTRefFk2(RelationshipBase rel, DbExportStateBase state){ + return getObjectFk(rel, state, false, false); + } + + private static Integer getObjectFk(RelationshipBase rel, DbExportStateBase state, boolean isName, boolean isFrom){ + TaxonBase taxon = null; + if (rel.isInstanceOf(TaxonRelationship.class)){ + TaxonRelationship tr = (TaxonRelationship)rel; + taxon = (isFrom) ? tr.getFromTaxon(): tr.getToTaxon(); + }else if (rel.isInstanceOf(SynonymRelationship.class)){ + SynonymRelationship sr = (SynonymRelationship)rel; + taxon = (isFrom) ? sr.getSynonym() : sr.getAcceptedTaxon(); + } + if (taxon != null){ + CdmBase cdmBase = (isName) ? taxon.getName(): taxon.getSec(); + return state.getDbId(cdmBase); + } + logger.warn("No taxon found for relationship: " + rel.toString()); + return null; + } + + + /* (non-Javadoc) + * @see eu.etaxonomy.cdm.io.berlinModel.out.BerlinModelExportBase#getStandardMethodParameter() + */ + @Override + public Class getStandardMethodParameter() { + return standardMethodParameter; + } +} diff --git a/cdmlib-io/src/main/java/eu/etaxonomy/cdm/io/common/ExportConfiguratorBase.java b/cdmlib-io/src/main/java/eu/etaxonomy/cdm/io/common/ExportConfiguratorBase.java index c6bb60647e..73c01e191b 100644 --- a/cdmlib-io/src/main/java/eu/etaxonomy/cdm/io/common/ExportConfiguratorBase.java +++ b/cdmlib-io/src/main/java/eu/etaxonomy/cdm/io/common/ExportConfiguratorBase.java @@ -154,6 +154,14 @@ public abstract class ExportConfiguratorBase extends } + + /** + * @param cdmApp the cdmApp to set + */ + public void setCdmAppController(CdmApplicationController cdmApp) { + this.cdmApp = cdmApp; + } + /* (non-Javadoc) * @see eu.etaxonomy.cdm.io.tcsrdf.IImportConfigurator#isValid() */ diff --git a/cdmlib-io/src/main/java/eu/etaxonomy/cdm/io/common/ImportStateBase.java b/cdmlib-io/src/main/java/eu/etaxonomy/cdm/io/common/ImportStateBase.java index c01dbcb99c..91d8aacd4e 100644 --- a/cdmlib-io/src/main/java/eu/etaxonomy/cdm/io/common/ImportStateBase.java +++ b/cdmlib-io/src/main/java/eu/etaxonomy/cdm/io/common/ImportStateBase.java @@ -24,6 +24,7 @@ import eu.etaxonomy.cdm.model.name.TaxonNameBase; import eu.etaxonomy.cdm.model.occurrence.Specimen; import eu.etaxonomy.cdm.model.reference.ReferenceBase; import eu.etaxonomy.cdm.model.taxon.TaxonBase; +import eu.etaxonomy.cdm.model.taxon.TaxonomicTree; /** * @author a.mueller @@ -34,6 +35,9 @@ public abstract class ImportStateBase ext @SuppressWarnings("unused") private static final Logger logger = Logger.getLogger(ImportStateBase.class); + Map treeMap = new HashMap(); + + //different type of stores that are used by the known imports protected Map> stores = new HashMap>(); @@ -72,6 +76,21 @@ public abstract class ImportStateBase ext return (MapWrapper) stores.get(storeLabel); } - + + /** + * @return the treeMap + */ + public TaxonomicTree getTree(ReferenceBase ref) { + return treeMap.get(ref); + } + + /** + * @param treeMap the treeMap to set + */ + public void putTree(ReferenceBase ref, TaxonomicTree tree) { + if (tree != null){ + this.treeMap.put(ref, tree); + } + } } diff --git a/cdmlib-io/src/main/java/eu/etaxonomy/cdm/io/common/IoConfiguratorBase.java b/cdmlib-io/src/main/java/eu/etaxonomy/cdm/io/common/IoConfiguratorBase.java index 5b458f63b0..bef922dfc2 100644 --- a/cdmlib-io/src/main/java/eu/etaxonomy/cdm/io/common/IoConfiguratorBase.java +++ b/cdmlib-io/src/main/java/eu/etaxonomy/cdm/io/common/IoConfiguratorBase.java @@ -6,6 +6,8 @@ package eu.etaxonomy.cdm.io.common; +import org.apache.log4j.Logger; + import eu.etaxonomy.cdm.database.DbSchemaValidation; import eu.etaxonomy.cdm.io.common.IImportConfigurator.DO_REFERENCES; @@ -14,7 +16,11 @@ import eu.etaxonomy.cdm.io.common.IImportConfigurator.DO_REFERENCES; * @created 16.11.2008 */ public class IoConfiguratorBase { + private static final Logger logger = Logger.getLogger(IoConfiguratorBase.class); + //im-/export uses TaxonomicTree for is_taxonomically_included_in relationships + private boolean useTaxonomicTree = false; + // protected Class[] ioClassList; private DbSchemaValidation dbSchemaValidation = DbSchemaValidation.VALIDATE; @@ -194,4 +200,19 @@ public class IoConfiguratorBase { public void setDoUser(boolean doUser) { this.doUser = doUser; } + + + /** + * @return the useTaxonomicTree + */ + public boolean isUseTaxonomicTree() { + return useTaxonomicTree; + } + + /** + * @param useTaxonomicTree the useTaxonomicTree to set + */ + public void setUseTaxonomicTree(boolean useTaxonomicTree) { + this.useTaxonomicTree = useTaxonomicTree; + } } -- 2.34.1