-// $Id$
/**
* Copyright (C) 2022 EDIT
* European Distributed Institute of Taxonomy
//database validation status (create, update, validate ...)
static DbSchemaValidation hbm2dll = DbSchemaValidation.CREATE;
-// static final ICdmDataSource cdmDestination = CdmDestinations.cdm_local_cdmtest_mysql();
- static final ICdmDataSource cdmDestination = CdmDestinations.cdm_test_test1();
+ static final ICdmDataSource cdmDestination = CdmDestinations.cdm_local_cdmtest_mysql();
+// static final ICdmDataSource cdmDestination = CdmDestinations.cdm_test_test1();
//feature tree uuid
public static final UUID featureTreeUuid = UUID.fromString("dd2070ef-e75b-494b-bc6a-4a370271866b");
//create TaxonName element
String idCombi = rs.getString("IdCombinado");
- String idNomComun = rs.getString("IdNomComun");
+// String idNomComun = rs.getString("IdNomComun");
String taxonUuid = rs.getString("taxonUuid");
String nomComunStr = rs.getString("NomComun");
false, true);
description.addElement(commonName);
+ state.getCommonNameMap().put(idCombi, commonName);
+
partitioner.startDoSave();
taxaToSave.add(taxonBase);
} catch (Exception e) {
boolean success = true ;
@SuppressWarnings("unchecked")
- Map<String, CommonTaxonName> distributionMap = partitioner.getObjectMap(MexicoEfloraCommonNameImport.NAMESPACE);
+ Map<String, CommonTaxonName> commonNameMap = partitioner.getObjectMap(MexicoEfloraCommonNameImport.NAMESPACE);
@SuppressWarnings("unchecked")
//TODO
// if ((i++ % modCount) == 0 && i!= 1 ){ logger.info("PTaxa handled: " + (i-1));}
//create TaxonName element
- String idCombi = rs.getString("IdDist");
-
+ String idCombi = rs.getString("IdCombinado");
+ int idBibliografia = rs.getInt("IdBibliografia");
+ String observaciones = rs.getString("Observaciones");
//needed?
- String idNomComun = rs.getString("IdNomComun");
-
- String idBibliografia = rs.getString("IdBibliografia");
- String observaciones = rs.getString("Observaciones");
+// String idNomComun = rs.getString("IdNomComun");
try {
- CommonTaxonName distribution = distributionMap.get(idCombi);
+ CommonTaxonName commonName = commonNameMap.get(idCombi);
- Reference ref = referenceMap.get(idBibliografia);
- //TODO
- String detail = null;
- DescriptionElementSource source = distribution.addPrimaryTaxonomicSource(ref, detail);
+ Reference ref = referenceMap.get(String.valueOf(idBibliografia));
+ String detail = state.getRefDetailMap().get(idBibliografia);
+
+ DescriptionElementSource source = commonName.addPrimaryTaxonomicSource(ref, detail);
//TODO
TaxonName nameUsedInSource = getNameUsedInSource(state, observaciones);
source.setNameUsedInSource(nameUsedInSource);
//TODO other observaciones
partitioner.startDoSave();
-// taxaToSave.add(taxonBase);
} catch (Exception e) {
logger.warn("An exception (" +e.getMessage()+") occurred when trying to create common name for id " + idCombi + ".");
success = false;
return false;
}
-// getTaxonService().save(taxaToSave);
+ logger.warn("Finished partition");
+
return success;
}
false, true);
description.addElement(distribution);
+ state.getDistributionMap().put(idCombi, distribution);
+
partitioner.startDoSave();
taxaToSave.add(taxonBase);
} catch (Exception e) {
+ e.printStackTrace();
logger.warn("An exception (" +e.getMessage()+") occurred when trying to create common name for id " + idCombi + ".");
success = false;
}
}
} catch (Exception e) {
+ e.printStackTrace();
logger.error("SQLException:" + e);
return false;
}
Map<String, Distribution> distributionMap = partitioner.getObjectMap(MexicoEfloraDistributionImport.NAMESPACE);
@SuppressWarnings("unchecked")
- //TODO
- Map<String, Reference> referenceMap = partitioner.getObjectMap(MexicoEfloraRefArticlesImport.NAMESPACE);
+ Map<String, Reference> referenceMap = partitioner.getObjectMap(MexicoEfloraReferenceImportBase.NAMESPACE);
ResultSet rs = partitioner.getResultSet();
try{
//create TaxonName element
String idCombi = rs.getString("IdDist");
- String idBibliografia = rs.getString("IdBibliografia");
+ int idBibliografia = rs.getInt("IdBibliografia");
String observaciones = rs.getString("Observaciones");
try {
Distribution distribution = distributionMap.get(idCombi);
- Reference ref = referenceMap.get(idBibliografia);
- //TODO
- String detail = null;
+ Reference ref = referenceMap.get(String.valueOf(idBibliografia));
+ String detail = state.getRefDetailMap().get(idBibliografia);
+
DescriptionElementSource source = distribution.addPrimaryTaxonomicSource(ref, detail);
//TODO
TaxonName nameUsedInSource = getNameUsedInSource(state, observaciones);
source.setNameUsedInSource(nameUsedInSource);
+
//TODO other observaciones
partitioner.startDoSave();
return false;
}
-// getTaxonService().save(taxaToSave);
+ logger.warn("Partition finished");
return success;
}
- /**
- * @param state
- * @param observaciones
- * @return
- */
private TaxonName getNameUsedInSource(MexicoEfloraImportState state, String observaciones) {
// TODO Auto-generated method stub
return null;
private boolean doOccurrence = true;
private boolean doOccurrenceSources = true;
private boolean doFacts = true;
- private boolean doAuthors = true;
private boolean doReferences = true;
private boolean doNamedAreas = true;
@Override
protected void makeIoClassList(){
ioClassList = new Class[]{
-// MexicoEfloraRefArticlesImport.class,
-// MexicoEfloraRefSerialsImport.class,
-// MexicoEfloraRefOtherBooksImport.class,
-// MexicoEfloraRefWebSitesImport.class,
+ MexicoEfloraRefArticlesImport.class,
+ MexicoEfloraRefSerialsImport.class,
+ MexicoEfloraRefOtherBooksImport.class,
+ MexicoEfloraRefWebSitesImport.class,
MexicoEfloraRegionImport.class,
MexicoEfloraTaxonImport.class,
MexicoEfloraTaxonRelationImport.class,
this.doOccurrenceSources = doOccurrenceSources;
}
-
-
- public boolean isDoAuthors() {
- return doAuthors;
- }
- public void setDoAuthors(boolean doAuthors) {
- this.doAuthors = doAuthors;
- }
-
public boolean isDoReferences() {
return doReferences;
}
import java.util.HashMap;
import java.util.Map;
+import java.util.UUID;
import org.apache.log4j.Logger;
import eu.etaxonomy.cdm.io.common.DbImportStateBase;
+import eu.etaxonomy.cdm.model.description.CommonTaxonName;
+import eu.etaxonomy.cdm.model.description.Distribution;
import eu.etaxonomy.cdm.model.description.Feature;
import eu.etaxonomy.cdm.model.description.State;
import eu.etaxonomy.cdm.model.location.NamedArea;
private Map<Integer,Feature> featureMap = new HashMap<>();
private Map<Integer,State> stateMap = new HashMap<>();
- private Map<Integer,NamedArea> areaMap = new HashMap<>();
+ private Map<Integer,NamedArea> areaMap = new HashMap<>();
- private boolean isReferenceSecondPath = false;
+ private Map<Integer,UUID> referenceUuidMap = new HashMap<>();
+ private Map<Integer,String> refDetailMap = new HashMap<>();
- public MexicoEfloraImportState(MexicoEfloraImportConfigurator config) {
+ private Map<String,CommonTaxonName> commonNameMap = new HashMap<>();
+ private Map<String,Distribution> distributionMap = new HashMap<>();
+
+
+ public MexicoEfloraImportState(MexicoEfloraImportConfigurator config) {
super(config);
}
putDefinedTermToMap(tableName, String.valueOf(id), term);
}
- public boolean isReferenceSecondPath() {
- return isReferenceSecondPath;
- }
-
- public void setReferenceSecondPath(boolean isReferenceSecondPath) {
- this.isReferenceSecondPath = isReferenceSecondPath;
- }
-
public Map<Integer,Feature> getFeatureMap() {
return featureMap;
}
public Map<Integer,NamedArea> getAreaMap() {
return areaMap;
}
+
+ public Map<Integer,UUID> getReferenceUuidMap() {
+ return referenceUuidMap;
+ }
+ public Map<Integer,String> getRefDetailMap() {
+ return refDetailMap;
+ }
+
+ public Map<String,CommonTaxonName> getCommonNameMap() {
+ return commonNameMap;
+ }
+ public Map<String,Distribution> getDistributionMap() {
+ return distributionMap;
+ }
+
}
}
//concat
+ String detail = null;
if (isNotBlank(concat)) {
//TODO split
String[] split = concat.split(":");
String volume = split[0];
if (split.length > 1) {
//TODO
- String detail = split[1];
+ detail = split[1];
}
ref.setVolume(volume);
}else {
ref.getInJournal().setIssn(issnStr);
}
+ //register id and make import source
+ handleId(state, refId, ref, detail);
+
partitioner.startDoSave();
refsToSave.add(ref);
} catch (Exception e) {
return success;
}
+
@Override
public Map<Object, Map<String, ? extends CdmBase>> getRelatedObjectsForPartition(ResultSet rs, MexicoEfloraImportState state) {
ref.setIsbn(isbnStr);
}
+ //register id and make import source
+ handleId(state, refId, ref, null);
+
partitioner.startDoSave();
refsToSave.add(ref);
} catch (Exception e) {
ref.setIsbn(isbnStr);
}
+ //register id and make import source
+ handleId(state, refId, ref, null);
+
partitioner.startDoSave();
refsToSave.add(ref);
} catch (Exception e) {
ref.setIssn(issnStr);
}
+ //register id and make import source
+ handleId(state, refId, ref, null);
+
partitioner.startDoSave();
refsToSave.add(ref);
} catch (Exception e) {
*/
package eu.etaxonomy.cdm.io.mexico;
-import java.sql.ResultSet;
-import java.sql.SQLException;
-
import org.apache.log4j.Logger;
import org.springframework.stereotype.Component;
@Component
public abstract class MexicoEfloraReferenceImportBase extends MexicoEfloraImportBase {
+ public static final String NAMESPACE = "References";
+
private static final long serialVersionUID = -5161951752826380728L;
private static final Logger logger = Logger.getLogger(MexicoEfloraReferenceImportBase.class);
}
}
- @Override
- protected String getIdInSource(MexicoEfloraImportState state, ResultSet rs) throws SQLException {
- String id = rs.getString("idInSource");
- return id;
+ protected void handleId(MexicoEfloraImportState state, int refId, Reference ref, String detail) {
+ state.getReferenceUuidMap().put(refId, ref.getUuid());
+ state.getRefDetailMap().put(refId, detail);
+
+ ref.addImportSource(String.valueOf(refId), MexicoEfloraReferenceImportBase.NAMESPACE,
+ ref, null);
}
@Override
import org.apache.log4j.Logger;
import org.springframework.stereotype.Component;
-import eu.etaxonomy.cdm.io.berlinModel.in.BerlinModelReferenceImport;
import eu.etaxonomy.cdm.io.common.ResultSetPartitioner;
import eu.etaxonomy.cdm.model.common.CdmBase;
-import eu.etaxonomy.cdm.model.common.Language;
-import eu.etaxonomy.cdm.model.description.Feature;
-import eu.etaxonomy.cdm.model.description.TaxonDescription;
-import eu.etaxonomy.cdm.model.description.TextData;
import eu.etaxonomy.cdm.model.name.NomenclaturalCode;
import eu.etaxonomy.cdm.model.name.Rank;
import eu.etaxonomy.cdm.model.name.TaxonName;
Set<TaxonBase> taxaToSave = new HashSet<>();
@SuppressWarnings("unchecked")
- Map<String, Reference> refMap = partitioner.getObjectMap(BerlinModelReferenceImport.REFERENCE_NAMESPACE);
+ Map<String, Reference> refMap = partitioner.getObjectMap(MexicoEfloraReferenceImportBase.NAMESPACE);
ResultSet rs = partitioner.getResultSet();
try{
String year = rs.getString("Anio");
String uuidStr = rs.getString("uuid");
UUID uuid = UUID.fromString(uuidStr);
- int secFk = rs.getInt("IdBibliografiaSec");
+ Integer secFk = nullSafeInt(rs, "IdBibliografiaSec");
Rank rank = getRank(rankStr);
NonViralNameParserImpl parser = NonViralNameParserImpl.NewInstance();
nomRef.setDatePublished(TimePeriodParser.parseStringVerbatim(year));
taxonName.setNomenclaturalReference(nomRef);
- String refFkStr = String.valueOf(secFk);
- Reference sec = refMap.get(refFkStr);
+ //sec
+ Reference sec = null;
+ if (secFk != null) {
+ String refFkStr = String.valueOf(secFk);
+ sec = refMap.get(refFkStr);
+ if (sec == null) {
+ logger.warn("Sec not found for taxonId " + taxonId +" and secId " + refFkStr);
+ }
+ }
+ //taxon
TaxonBase<?> taxonBase;
Synonym synonym;
Taxon taxon;
return result;
}
- @Override
- protected String getIdInSource(MexicoEfloraImportState state, ResultSet rs) throws SQLException {
- String id = rs.getString("idInSource");
- return id;
- }
-
- private void makeTaxonomicNote(MexicoEfloraImportState state, Taxon taxon, String notes) {
- if (isNotBlank(notes)){
- TaxonDescription desc = getTaxonDescription(taxon, false, true);
- desc.setDefault(true); //hard coded for Salvador, not used elsewhere as far as I can see
- TextData textData = TextData.NewInstance(Feature.NOTES() , notes, Language.SPANISH_CASTILIAN(), null);
- desc.addElement(textData);
- }
- }
-
@Override
public Map<Object, Map<String, ? extends CdmBase>> getRelatedObjectsForPartition(ResultSet rs, MexicoEfloraImportState state) {
Map<Object, Map<String, ? extends CdmBase>> result = new HashMap<>();
try{
- Set<String> nameIdSet = new HashSet<>();
Set<String> referenceIdSet = new HashSet<>();
while (rs.next()){
-// handleForeignKey(rs, referenceIdSet, "PTRefFk");
+ handleForeignKey(rs, referenceIdSet, "IdBibliografiaSec");
}
//reference map
- nameSpace = BerlinModelReferenceImport.REFERENCE_NAMESPACE;
+ nameSpace = MexicoEfloraReferenceImportBase.NAMESPACE;
idSet = referenceIdSet;
Map<String, Reference> referenceMap = getCommonService().getSourcedObjectsByIdInSourceC(Reference.class, idSet, nameSpace);
result.put(nameSpace, referenceMap);
@Override
protected String getIdQuery(MexicoEfloraImportState state) {
String sql = " SELECT IdCAT "
- + " FROM " + dbTableName
- + " ORDER BY IdCAT ";
+ + " FROM " + dbTableName + " t "
+ + " LEFT JOIN cv1_Controlled_vocabulary_for_name_Ranks r ON t.CategoriaTaxonomica = r.NombreCategoriaTaxonomica "
+ + " ORDER BY r.Nivel1, IdCAT ";
return sql;
}
+ " LEFT JOIN "+dbTableName+" acc ON acc.IdCat = t.IdCATRel "
+ " LEFT JOIN "+dbTableName+" p ON p.IdCat = t.IdCAT_AscendenteHerarquico4CDM "
+ " LEFT JOIN "+dbTableName+" bas ON bas.IdCat = t.IdCAT_BasNomOrig "
- ;
+ ;
String sqlWhere = " WHERE ( t.IdCAT IN (" + ID_LIST_TOKEN + ") )";
String strRecordQuery =sqlSelect + " " + sqlFrom + " " + sqlWhere ;