\r
import java.sql.ResultSet;\r
import java.sql.SQLException;\r
+import java.sql.Timestamp;\r
import java.util.HashMap;\r
import java.util.HashSet;\r
import java.util.Map;\r
import java.util.Set;\r
+import java.util.UUID;\r
\r
import org.apache.commons.lang.StringUtils;\r
import org.apache.log4j.Logger;\r
+import org.joda.time.DateTime;\r
import org.springframework.stereotype.Component;\r
\r
import eu.etaxonomy.cdm.api.facade.DerivedUnitFacade;\r
-import eu.etaxonomy.cdm.api.facade.DerivedUnitFacade.DerivedUnitType;\r
import eu.etaxonomy.cdm.api.facade.DerivedUnitFacadeNotSupportedException;\r
import eu.etaxonomy.cdm.io.algaterra.validation.AlgaTerraTypeImportValidator;\r
+import eu.etaxonomy.cdm.io.berlinModel.in.BerlinModelImportBase;\r
import eu.etaxonomy.cdm.io.berlinModel.in.BerlinModelImportConfigurator;\r
import eu.etaxonomy.cdm.io.berlinModel.in.BerlinModelImportState;\r
+import eu.etaxonomy.cdm.io.berlinModel.in.BerlinModelRefDetailImport;\r
import eu.etaxonomy.cdm.io.berlinModel.in.BerlinModelReferenceImport;\r
import eu.etaxonomy.cdm.io.berlinModel.in.BerlinModelTaxonNameImport;\r
+import eu.etaxonomy.cdm.io.common.IImportConfigurator.EDITOR;\r
import eu.etaxonomy.cdm.io.common.IOValidator;\r
import eu.etaxonomy.cdm.io.common.ResultSetPartitioner;\r
+import eu.etaxonomy.cdm.model.common.AnnotatableEntity;\r
+import eu.etaxonomy.cdm.model.common.Annotation;\r
+import eu.etaxonomy.cdm.model.common.AnnotationType;\r
import eu.etaxonomy.cdm.model.common.CdmBase;\r
+import eu.etaxonomy.cdm.model.common.DefinedTerm;\r
import eu.etaxonomy.cdm.model.common.IdentifiableSource;\r
+import eu.etaxonomy.cdm.model.common.Language;\r
+import eu.etaxonomy.cdm.model.common.User;\r
import eu.etaxonomy.cdm.model.name.BotanicalName;\r
import eu.etaxonomy.cdm.model.name.Rank;\r
import eu.etaxonomy.cdm.model.name.SpecimenTypeDesignation;\r
import eu.etaxonomy.cdm.model.name.TaxonNameBase;\r
import eu.etaxonomy.cdm.model.occurrence.Collection;\r
import eu.etaxonomy.cdm.model.occurrence.DerivedUnit;\r
-import eu.etaxonomy.cdm.model.occurrence.DerivedUnitBase;\r
-import eu.etaxonomy.cdm.model.occurrence.FieldObservation;\r
+import eu.etaxonomy.cdm.model.occurrence.FieldUnit;\r
+import eu.etaxonomy.cdm.model.occurrence.SpecimenOrObservationType;\r
import eu.etaxonomy.cdm.model.reference.Reference;\r
\r
-\r
/**\r
* @author a.mueller\r
* @created 20.03.2008\r
- * @version 1.0\r
*/\r
@Component\r
public class AlgaTerraTypeImport extends AlgaTerraSpecimenImportBase {\r
}\r
\r
\r
- /* (non-Javadoc)\r
- * @see eu.etaxonomy.cdm.io.berlinModel.in.BerlinModelImportBase#getIdQuery()\r
- */\r
@Override\r
protected String getIdQuery(BerlinModelImportState state) {\r
String result = " SELECT TypeDesignationId " \r
return result;\r
}\r
\r
- /* (non-Javadoc)\r
- * @see eu.etaxonomy.cdm.io.berlinModel.in.BerlinModelImportBase#getRecordQuery(eu.etaxonomy.cdm.io.berlinModel.in.BerlinModelImportConfigurator)\r
- */\r
@Override\r
protected String getRecordQuery(BerlinModelImportConfigurator config) {\r
String strQuery = \r
\r
- " SELECT ts.*, ts.TypeSpecimenId as unitId, td.*, gz.ID as GazetteerId, gz.L2Code, gz.L3Code, gz.L4Code, gz.ISOCountry, gz.Country, ts.WaterBody, " + \r
- " ts.RefFk as tsRefFk, ts.RefDetailFk as tsRefDetailFk, td.RefFk as tdRefFk, td.RefDetailFk as tdRefDetailFk " +\r
+ " SELECT ts.*, ts.TypeSpecimenId as unitId, td.*, gz.ID as GazetteerId, gz.L1Code, gz.L2Code, gz.L3Code, gz.L4Code, gz.ISOCountry, gz.Country, gz.subL4, ts.WaterBody, " + \r
+ " ts.RefFk as tsRefFk, ts.RefDetailFk as tsRefDetailFk, ts.MaterialCategoryFK as tsMaterialCategoryFK, td.RefFk as tdRefFk, td.RefDetailFk as tdRefDetailFk, " +\r
+ " RefDet.Details as tdRefDetails, " +\r
+ " td.created_When as tdCreated_When, tsd.created_When as tsdCreated_When, td.updated_when as tdUpdated_when, " +\r
+ " td.created_who as tdCreated_who, tsd.created_who as tsdCreated_who, td.updated_who tdUpdated_who, " +\r
+ " mc.* " +\r
" FROM TypeSpecimenDesignation tsd " \r
+ " LEFT OUTER JOIN TypeSpecimen AS ts ON tsd.TypeSpecimenFk = ts.TypeSpecimenId " \r
+ " FULL OUTER JOIN TypeDesignation td ON td.TypeDesignationId = tsd.TypeDesignationFk "\r
+ " LEFT OUTER JOIN TDWGGazetteer gz ON ts.TDWGGazetteerFk = gz.ID "\r
+ + " LEFT OUTER JOIN RefDetail refDet ON td.RefDetailFk = refDet.RefDetailId AND td.RefFk = refDet.RefFk "\r
+ + " LEFT OUTER JOIN MaterialCategory mc ON mc.MaterialCategoryId = ts.MaterialCategoryFK "\r
+ " WHERE (td.TypeDesignationId IN (" + ID_LIST_TOKEN + ") )" \r
+ " ORDER BY NameFk "\r
;\r
return strQuery;\r
}\r
\r
- /* (non-Javadoc)\r
- * @see eu.etaxonomy.cdm.io.berlinModel.in.IPartitionedIO#doPartition(eu.etaxonomy.cdm.io.berlinModel.in.ResultSetPartitioner, eu.etaxonomy.cdm.io.berlinModel.in.BerlinModelImportState)\r
- */\r
+ @Override\r
public boolean doPartition(ResultSetPartitioner partitioner, BerlinModelImportState bmState) {\r
boolean success = true;\r
\r
Map<String, TaxonNameBase> taxonNameMap = (Map<String, TaxonNameBase>) partitioner.getObjectMap(BerlinModelTaxonNameImport.NAMESPACE);\r
Map<String, DerivedUnit> ecoFactMap = (Map<String, DerivedUnit>) partitioner.getObjectMap(AlgaTerraEcoFactImport.ECO_FACT_FIELD_OBSERVATION_NAMESPACE);\r
Map<String, DerivedUnit> typeSpecimenMap = (Map<String, DerivedUnit>) partitioner.getObjectMap(TYPE_SPECIMEN_FIELD_OBSERVATION_NAMESPACE);\r
- Map<String, Reference> biblioRefMap = (Map<String, Reference>) partitioner.getObjectMap(BerlinModelReferenceImport.BIBLIO_REFERENCE_NAMESPACE);\r
- Map<String, Reference> nomRefMap = (Map<String, Reference>) partitioner.getObjectMap(BerlinModelReferenceImport.NOM_REFERENCE_NAMESPACE);\r
+ Map<String, Reference> refMap = (Map<String, Reference>) partitioner.getObjectMap(BerlinModelReferenceImport.REFERENCE_NAMESPACE);\r
+ Map<String, Reference> refDetailMap = partitioner.getObjectMap(BerlinModelRefDetailImport.REFDETAIL_NAMESPACE);\r
\r
\r
ResultSet rs = partitioner.getResultSet();\r
Integer ecoFactId = nullSafeInt(rs, "ecoFactFk");\r
Integer tdRefFk = nullSafeInt(rs, "tdRefFk");\r
Integer tdRefDetailFk = nullSafeInt(rs, "tdRefDetailFk");\r
+ String tdRefDetails = rs.getString("tdRefDetails");\r
+ Boolean restrictedFlag = nullSafeBoolean(rs, "RestrictedFlag");\r
\r
+ String typeSpecimenPhrase = rs.getString("TypeSpecimenPhrase");\r
+ Integer tsMaterialCategoryFK = nullSafeInt(rs, "MaterialCategoryFK");\r
\r
-// String recordBasis = rs.getString("RecordBasis");\r
+ boolean isIcon = typeSpecimenPhrase != null && typeSpecimenPhrase.toLowerCase().startsWith("\u005bicon");\r
\r
try {\r
\r
Reference<?> sourceRef = state.getTransactionalSourceReference();\r
\r
//facade\r
- //FIXME - depends on material category\r
-// DerivedUnitType type = makeDerivedUnitType(recordBasis);\r
- DerivedUnitType type = DerivedUnitType.Specimen;\r
- DerivedUnitFacade facade = getDerivedUnit(state, typeSpecimenId, typeSpecimenMap, type, ecoFactMap, ecoFactId);\r
+ SpecimenOrObservationType type = SpecimenOrObservationType.PreservedSpecimen;\r
+ if (isIcon){\r
+ //TODO handle images correctly for these specimen\r
+ type = SpecimenOrObservationType.StillImage;\r
+ }else if (typeStatusFk != null && typeStatusFk.equals(39)){\r
+ type = SpecimenOrObservationType.LivingSpecimen;\r
+ }else if (tsMaterialCategoryFK != null && tsMaterialCategoryFK.equals(4)){\r
+ type = SpecimenOrObservationType.Fossil;\r
+ }\r
+ \r
+ \r
+ if (tsMaterialCategoryFK != null && typeStatusFk != null && \r
+ ( typeStatusFk.equals(39) && !tsMaterialCategoryFK.equals(14) || ! typeStatusFk.equals(39) && tsMaterialCategoryFK.equals(14) )){\r
+ logger.warn("Living Specimen type status should be 39 and materialCategoryFk 14 but one of them wasn't");\r
+ }\r
+ \r
+ \r
+ DerivedUnitFacade facade = getDerivedUnit(state, typeSpecimenId, typeSpecimenMap, type, ecoFactMap, ecoFactId, sourceRef);\r
\r
//field observation\r
handleFieldObservationSpecimen(rs, facade, state, partitioner);\r
\r
+// handleTypeSpecimenSpecificFieldObservation(rs,facade, state);\r
+ \r
//TODO divide like in EcoFact (if necessary)\r
- handleTypeSpecimenSpecificSpecimen(rs,facade, state, biblioRefMap, nomRefMap, typeSpecimenId);\r
+ handleTypeSpecimenSpecificSpecimen(rs,facade, state, refMap, typeSpecimenId);\r
\r
handleFirstDerivedSpecimen(rs, facade, state, partitioner);\r
\r
TaxonNameBase<?,?> name = getTaxonName(state, taxonNameMap, nameId);\r
SpecimenTypeDesignation designation = SpecimenTypeDesignation.NewInstance();\r
SpecimenTypeDesignationStatus status = getSpecimenTypeDesignationStatusByKey(typeStatusFk);\r
+ if (typeStatusFk != null && typeStatusFk.equals(39)){\r
+ designation.addAnnotation(Annotation.NewInstance("Type status: Authentic strain", AnnotationType.EDITORIAL(), Language.DEFAULT()));\r
+ }\r
+ \r
designation.setTypeSpecimen(facade.innerDerivedUnit());\r
designation.setTypeStatus(status);\r
if (tdRefFk != null){\r
- Reference<?> typeDesigRef = getReferenceOnlyFromMaps(biblioRefMap, nomRefMap, String.valueOf(tdRefFk));\r
+ Reference<?> typeDesigRef = getReferenceFromMaps(refDetailMap, refMap, String.valueOf(tdRefDetailFk), String.valueOf(tdRefFk));\r
if (typeDesigRef == null){\r
logger.warn("Type designation reference not found in maps: " + tdRefFk);\r
}else{\r
designation.setCitation(typeDesigRef);\r
}\r
}\r
+ if (isNotBlank(tdRefDetails)){\r
+ designation.setCitationMicroReference(tdRefDetails);\r
+ }\r
+ \r
+ //ID: Type designations do not allow OriginalSources\r
+ designation.addAnnotation(Annotation.NewInstance("Id in BerlinModel-TypeDesignation: " + String.valueOf(typeDesignationId), AnnotationType.TECHNICAL(), Language.UNDETERMINED()));\r
\r
- if (tdRefDetailFk != null){\r
- logger.warn("TypeDesignation.RefDetailFk not yet implemented: " + typeDesignationId);\r
+ if (restrictedFlag != null &&restrictedFlag.equals(true)){\r
+ logger.warn("Restricted Flag is expected to be null or 0. TypeDesignationId" + typeDesignationId);\r
}\r
\r
+ //Created, Updated\r
+ this.doCreatedUpdated(state, designation, rs);\r
+ \r
if (name != null){\r
name.addTypeDesignation(designation, true); //TODO check if true is correct\r
}else{\r
}\r
}\r
\r
+ /**\r
+ * same as {@link BerlinModelImportBase#doCreatedUpdatedNotes}, but handles multiple similar fields\r
+ * @throws SQLException \r
+ */\r
+ private void doCreatedUpdated(BerlinModelImportState state, AnnotatableEntity annotatableEntity, ResultSet rs) throws SQLException{\r
+ BerlinModelImportConfigurator config = state.getConfig();\r
+ Object createdWhen = rs.getObject("tsdCreated_When");\r
+ Object tdCreatedWhen = rs.getObject("tdCreated_When");\r
+ if (tdCreatedWhen != null){\r
+ createdWhen = tdCreatedWhen;\r
+ }\r
+ \r
+ String createdWho = rs.getString("tsdCreated_Who");\r
+ String tdCreatedWho = rs.getString("tdCreated_Who");\r
+ if (tdCreatedWho != null){\r
+ createdWho = tdCreatedWho;\r
+ }\r
+ \r
+ Object updatedWhen = rs.getObject("tdUpdated_When");\r
+ String updatedWho = rs.getString("tdUpdated_who");\r
+ \r
+ //Created When, Who, Updated When Who\r
+ if (config.getEditor() == null || config.getEditor().equals(EDITOR.NO_EDITORS)){\r
+ //do nothing\r
+ }else if (config.getEditor().equals(EDITOR.EDITOR_AS_ANNOTATION)){\r
+ String createdAnnotationString = "Berlin Model record was created By: " + String.valueOf(createdWho) + " (" + String.valueOf(createdWhen) + ") ";\r
+ if (updatedWhen != null && updatedWho != null){\r
+ createdAnnotationString += " and updated By: " + String.valueOf(updatedWho) + " (" + String.valueOf(updatedWhen) + ")";\r
+ }\r
+ Annotation annotation = Annotation.NewInstance(createdAnnotationString, Language.DEFAULT());\r
+ annotation.setCommentator(config.getCommentator());\r
+ annotation.setAnnotationType(AnnotationType.TECHNICAL());\r
+ annotatableEntity.addAnnotation(annotation);\r
+ }else if (config.getEditor().equals(EDITOR.EDITOR_AS_EDITOR)){\r
+ User creator = getUser(state, createdWho);\r
+ User updator = getUser(state, updatedWho);\r
+ DateTime created = getDateTime(createdWhen);\r
+ DateTime updated = getDateTime(updatedWhen);\r
+ annotatableEntity.setCreatedBy(creator);\r
+ annotatableEntity.setUpdatedBy(updator);\r
+ annotatableEntity.setCreated(created);\r
+ annotatableEntity.setUpdated(updated);\r
+ }else {\r
+ logger.warn("Editor type not yet implemented: " + config.getEditor());\r
+ }\r
+ }\r
+ \r
+\r
+ private DateTime getDateTime(Object timeString){\r
+ if (timeString == null){\r
+ return null;\r
+ }\r
+ DateTime dateTime = null;\r
+ if (timeString instanceof Timestamp){\r
+ Timestamp timestamp = (Timestamp)timeString;\r
+ dateTime = new DateTime(timestamp);\r
+ }else{\r
+ logger.warn("time ("+timeString+") is not a timestamp. Datetime set to current date. ");\r
+ dateTime = new DateTime();\r
+ }\r
+ return dateTime;\r
+ }\r
+ \r
\r
protected String getDerivedUnitNameSpace(){\r
return TYPE_SPECIMEN_DERIVED_UNIT_NAMESPACE;\r
return result;\r
}\r
\r
- private void handleTypeSpecimenSpecificSpecimen(ResultSet rs, DerivedUnitFacade facade, AlgaTerraImportState state, Map<String, Reference> biblioRefMap, Map<String, Reference> nomRefMap, int typeSpecimenId) throws SQLException {\r
+ private void handleTypeSpecimenSpecificSpecimen(ResultSet rs, DerivedUnitFacade facade, AlgaTerraImportState state, Map<String, Reference> refMap, int typeSpecimenId) throws SQLException {\r
\r
\r
//TODO\r
\r
\r
\r
- DerivedUnitBase<?> derivedUnit = facade.innerDerivedUnit();\r
+ DerivedUnit derivedUnit = facade.innerDerivedUnit();\r
+ \r
+ Integer tsMaterialCategoryFK = nullSafeInt(rs, "tsMaterialCategoryFK");\r
+ String matCat = rs.getString("MaterialCategory");\r
+ if (tsMaterialCategoryFK != null){\r
+ if (tsMaterialCategoryFK.equals(16)){\r
+ tsMaterialCategoryFK = 9;\r
+ }\r
+ UUID uuid = materialCategoryMapping.get(tsMaterialCategoryFK);\r
+ if (uuid == null){\r
+ logger.warn("Uuid was null. This should not happen.");\r
+ }\r
+ DefinedTerm kindOfUnit = getKindOfUnit(state, uuid, matCat, null, null, null); //all terms should exist already\r
+ facade.setKindOfUnit(kindOfUnit);\r
+ }else{\r
+ logger.warn("Material Category was null. This is not expected");\r
+ }\r
+ \r
\r
//collection\r
String barcode = rs.getString("Barcode");\r
Integer refFk = nullSafeInt(rs, "tsRefFk");\r
if (refFk != null){\r
\r
- Reference<?> ref = getReferenceOnlyFromMaps(biblioRefMap, nomRefMap, String.valueOf(refFk));\r
+ Reference<?> ref = refMap.get(String.valueOf(refFk));\r
if (ref == null){\r
logger.warn("TypeSpecimen reference (" + refFk + ")not found in biblioRef. TypeSpecimenId: " + typeSpecimenId);\r
}else{\r
- IdentifiableSource source = IdentifiableSource.NewInstance(ref, null);\r
+ IdentifiableSource source = IdentifiableSource.NewPrimarySourceInstance(ref, null);\r
derivedUnit.addSource(source);\r
}\r
}\r
logger.warn("TypeSpecimen.RefDetailFk should always be NULL but wasn't: " + typeSpecimenId);\r
}\r
\r
- \r
- \r
}\r
\r
/**\r
* @param type \r
* @param ecoFactId2 \r
* @param ecoFactMap \r
+ * @param sourceRef \r
* @return\r
*/\r
- private DerivedUnitFacade getDerivedUnit(AlgaTerraImportState state, int typeSpecimenId, Map<String, DerivedUnit> typeSpecimenMap, DerivedUnitType type, Map<String, DerivedUnit> ecoFactMap, Integer ecoFactId2) {\r
+ private DerivedUnitFacade getDerivedUnit(AlgaTerraImportState state, int typeSpecimenId, Map<String, DerivedUnit> typeSpecimenMap, SpecimenOrObservationType type, Map<String, DerivedUnit> ecoFactMap, Integer ecoFactId2, Reference<?> sourceRef) {\r
//TODO implement ecoFact map - if not all null anymore\r
String typeKey = String.valueOf(typeSpecimenId);\r
DerivedUnit derivedUnit = typeSpecimenMap.get(typeKey);\r
}else{\r
try {\r
facade = DerivedUnitFacade.NewInstance(derivedUnit);\r
+ facade.addSource(IdentifiableSource.NewDataImportInstance(typeKey, "TypeSpecimen", sourceRef));\r
} catch (DerivedUnitFacadeNotSupportedException e) {\r
logger.error(e.getMessage());\r
facade = DerivedUnitFacade.NewInstance(type);\r
\r
return facade;\r
}\r
- private DerivedUnitType makeDerivedUnitType(String recordBasis) {\r
- DerivedUnitType result = null;\r
- if (StringUtils.isBlank(recordBasis)){\r
- result = DerivedUnitType.DerivedUnit;\r
- } else if (recordBasis.equalsIgnoreCase("FossileSpecimen")){\r
- result = DerivedUnitType.Fossil;\r
- }else if (recordBasis.equalsIgnoreCase("HumanObservation")){\r
- result = DerivedUnitType.Observation;\r
- }else if (recordBasis.equalsIgnoreCase("Literature")){\r
- logger.warn("Literature record basis not yet supported");\r
- result = DerivedUnitType.DerivedUnit;\r
- }else if (recordBasis.equalsIgnoreCase("LivingSpecimen")){\r
- result = DerivedUnitType.LivingBeing;\r
- }else if (recordBasis.equalsIgnoreCase("MachineObservation")){\r
- logger.warn("MachineObservation record basis not yet supported");\r
- result = DerivedUnitType.Observation;\r
- }else if (recordBasis.equalsIgnoreCase("PreservedSpecimen")){\r
- result = DerivedUnitType.Specimen;\r
- }\r
- return result;\r
- }\r
\r
\r
private SpecimenTypeDesignationStatus getSpecimenTypeDesignationStatusByKey(Integer typeStatusFk) {\r
- if (typeStatusFk == null){ return null;\r
+ if (typeStatusFk == null){ return SpecimenTypeDesignationStatus.TYPE();\r
}else if (typeStatusFk == 1) { return SpecimenTypeDesignationStatus.HOLOTYPE();\r
}else if (typeStatusFk == 2) { return SpecimenTypeDesignationStatus.LECTOTYPE();\r
}else if (typeStatusFk == 3) { return SpecimenTypeDesignationStatus.NEOTYPE();\r
}else if (typeStatusFk == 22) { return SpecimenTypeDesignationStatus.PHOTOTYPE();\r
}else if (typeStatusFk == 30) { return SpecimenTypeDesignationStatus.TYPE();\r
}else if (typeStatusFk == 38) { return SpecimenTypeDesignationStatus.ISOEPITYPE();\r
-// }else if (typeStatusFk == 39) { return SpecimenTypeDesignationStatus.;\r
+ }else if (typeStatusFk == 39) { return SpecimenTypeDesignationStatus.ORIGINAL_MATERIAL(); //but add annotation\r
}else if (typeStatusFk == 40) { return SpecimenTypeDesignationStatus.ORIGINAL_MATERIAL();\r
}else{\r
logger.warn("typeStatusFk undefined for " + typeStatusFk);\r
}\r
\r
\r
- /* (non-Javadoc)\r
- * @see eu.etaxonomy.cdm.io.berlinModel.in.IPartitionedIO#getRelatedObjectsForPartition(java.sql.ResultSet)\r
- */\r
- public Map<Object, Map<String, ? extends CdmBase>> getRelatedObjectsForPartition(ResultSet rs) {\r
+ @Override\r
+ public Map<Object, Map<String, ? extends CdmBase>> getRelatedObjectsForPartition(ResultSet rs, BerlinModelImportState state) {\r
String nameSpace;\r
- Class cdmClass;\r
+ Class<?> cdmClass;\r
Set<String> idSet;\r
Map<Object, Map<String, ? extends CdmBase>> result = new HashMap<Object, Map<String, ? extends CdmBase>>();\r
\r
Set<String> nameIdSet = new HashSet<String>();\r
Set<String> ecoFieldObservationIdSet = new HashSet<String>();\r
Set<String> typeSpecimenIdSet = new HashSet<String>();\r
- Set<String> termsIdSet = new HashSet<String>();\r
+// Set<String> termsIdSet = new HashSet<String>();\r
Set<String> collectionIdSet = new HashSet<String>();\r
Set<String> referenceIdSet = new HashSet<String>();\r
+ Set<String> refDetailIdSet = new HashSet<String>();\r
\r
while (rs.next()){\r
handleForeignKey(rs, nameIdSet, "nameFk");\r
handleForeignKey(rs, collectionIdSet, "CollectionFk");\r
handleForeignKey(rs, referenceIdSet, "tsRefFk");\r
handleForeignKey(rs, referenceIdSet, "tdRefFk");\r
+ handleForeignKey(rs, refDetailIdSet, "tdRefDetailFk");\r
}\r
\r
//name map\r
\r
//eco fact field observation map\r
nameSpace = AlgaTerraTypeImport.ECO_FACT_FIELD_OBSERVATION_NAMESPACE;\r
- cdmClass = FieldObservation.class;\r
+ cdmClass = FieldUnit.class;\r
idSet = ecoFieldObservationIdSet;\r
- Map<String, FieldObservation> fieldObservationMap = (Map<String, FieldObservation>)getCommonService().getSourcedObjectsByIdInSource(cdmClass, idSet, nameSpace);\r
+ Map<String, FieldUnit> fieldObservationMap = (Map<String, FieldUnit>)getCommonService().getSourcedObjectsByIdInSource(cdmClass, idSet, nameSpace);\r
result.put(nameSpace, fieldObservationMap);\r
\r
//type specimen map\r
nameSpace = AlgaTerraTypeImport.TYPE_SPECIMEN_FIELD_OBSERVATION_NAMESPACE;\r
- cdmClass = FieldObservation.class;\r
+ cdmClass = FieldUnit.class;\r
idSet = typeSpecimenIdSet;\r
- Map<String, FieldObservation> typeSpecimenMap = (Map<String, FieldObservation>)getCommonService().getSourcedObjectsByIdInSource(cdmClass, idSet, nameSpace);\r
+ Map<String, FieldUnit> typeSpecimenMap = (Map<String, FieldUnit>)getCommonService().getSourcedObjectsByIdInSource(cdmClass, idSet, nameSpace);\r
result.put(nameSpace, typeSpecimenMap);\r
\r
\r
Map<String, Collection> subCollectionMap = (Map<String, Collection>)getCommonService().getSourcedObjectsByIdInSource(cdmClass, idSet, nameSpace);\r
result.put(nameSpace, subCollectionMap);\r
\r
- //nom reference map\r
- nameSpace = BerlinModelReferenceImport.NOM_REFERENCE_NAMESPACE;\r
- cdmClass = Reference.class;\r
- idSet = referenceIdSet;\r
- Map<String, Reference> nomReferenceMap = (Map<String, Reference>)getCommonService().getSourcedObjectsByIdInSource(cdmClass, idSet, nameSpace);\r
- result.put(nameSpace, nomReferenceMap);\r
-\r
- //biblio reference map\r
- nameSpace = BerlinModelReferenceImport.BIBLIO_REFERENCE_NAMESPACE;\r
+ //reference map\r
+ nameSpace = BerlinModelReferenceImport.REFERENCE_NAMESPACE;\r
cdmClass = Reference.class;\r
idSet = referenceIdSet;\r
- Map<String, Reference> biblioReferenceMap = (Map<String, Reference>)getCommonService().getSourcedObjectsByIdInSource(cdmClass, idSet, nameSpace);\r
- result.put(nameSpace, biblioReferenceMap);\r
-\r
+ Map<String, Reference> referenceMap = (Map<String, Reference>)getCommonService().getSourcedObjectsByIdInSource(cdmClass, idSet, nameSpace);\r
+ result.put(nameSpace, referenceMap);\r
\r
- //\r
-// //terms\r
-// nameSpace = AlgaTerraTypeImport.TERMS_NAMESPACE;\r
-// cdmClass = FieldObservation.class;\r
-// idSet = taxonIdSet;\r
-// Map<String, DefinedTermBase> termMap = (Map<String, DefinedTermBase>)getCommonService().getSourcedObjectsByIdInSource(cdmClass, idSet, nameSpace);\r
-// result.put(nameSpace, termMap);\r
-\r
- \r
+ //refDetail map\r
+ nameSpace = BerlinModelRefDetailImport.REFDETAIL_NAMESPACE;\r
+ cdmClass = Reference.class;\r
+ idSet = refDetailIdSet;\r
+ Map<String, Reference> refDetailMap= (Map<String, Reference>)getCommonService().getSourcedObjectsByIdInSource(cdmClass, idSet, nameSpace);\r
+ result.put(nameSpace, refDetailMap);\r
+ \r
\r
\r
} catch (SQLException e) {\r