import eu.etaxonomy.cdm.ext.common.ServiceWrapperBase;\r
import eu.etaxonomy.cdm.model.common.IdentifiableEntity;\r
import eu.etaxonomy.cdm.model.common.LSID;\r
+import eu.etaxonomy.cdm.model.common.OriginalSourceType;\r
import eu.etaxonomy.cdm.model.occurrence.Collection;\r
import eu.etaxonomy.cdm.model.reference.Reference;\r
import eu.etaxonomy.cdm.model.reference.ReferenceFactory;\r
\r
//id, citation\r
Reference citation = getBciCitation(appConfig);\r
- result.addSource(id, null, citation, null);\r
+ result.addSource(OriginalSourceType.Lineage, id, null, citation, null);\r
\r
\r
return result;\r
import eu.etaxonomy.cdm.model.common.ExtensionType;\r
import eu.etaxonomy.cdm.model.common.IdentifiableEntity;\r
import eu.etaxonomy.cdm.model.common.Language;\r
+import eu.etaxonomy.cdm.model.common.OriginalSourceType;\r
import eu.etaxonomy.cdm.model.common.TimePeriod;\r
import eu.etaxonomy.cdm.model.name.BotanicalName;\r
import eu.etaxonomy.cdm.model.name.NomenclaturalCode;\r
\r
//source\r
Reference citation = getIpniCitation(appConfig);\r
- ref.addSource(valueMap.get(ID), "Publication", citation, valueMap.get(VERSION));\r
+ ref.addSource(OriginalSourceType.Lineage, valueMap.get(ID), "Publication", citation, valueMap.get(VERSION));\r
\r
\r
\r
\r
//source\r
Reference citation = getIpniCitation(appConfig);\r
- name.addSource(valueMap.get(ID), "Name", citation, valueMap.get(VERSION));\r
+ name.addSource(OriginalSourceType.Lineage, valueMap.get(ID), "Name", citation, valueMap.get(VERSION));\r
\r
\r
// //TODO\r
person.setFirstname(valueMap.get(DEFAULT_AUTHOR_FORENAME));\r
person.setLastname(valueMap.get(DEFAULT_AUTHOR_SURNAME));\r
\r
- Reference citation = getIpniCitation(appConfig);\r
+ Reference<?> citation = getIpniCitation(appConfig);\r
\r
//id, version\r
- person.addSource(valueMap.get(ID), "Author", citation, valueMap.get(VERSION));\r
+ person.addSource(OriginalSourceType.Lineage, valueMap.get(ID), "Author", citation, valueMap.get(VERSION));\r
\r
//dates\r
TimePeriod lifespan = TimePeriod.parseString(valueMap.get(DATES));\r
\r
\r
private Reference getIpniCitation(ICdmApplicationConfiguration appConfig) {\r
- Reference ipniReference;\r
+ Reference<?> ipniReference;\r
if (appConfig != null){\r
ipniReference = appConfig.getReferenceService().find(uuidIpni);\r
if (ipniReference == null){\r
* @return\r
*/\r
private Reference getNewIpniReference() {\r
- Reference ipniReference;\r
+ Reference<?> ipniReference;\r
ipniReference = ReferenceFactory.newDatabase();\r
ipniReference.setTitleCache("The International Plant Names Index (IPNI)");\r
return ipniReference;\r
if (nameInSourceFk != null && nameUsedInSource == null){\r
logger.warn("Name used in source (" + nameInSourceFk + ") was not found for common name " + commonNameId);\r
}\r
- DescriptionElementSource source = DescriptionElementSource.NewInstance(reference, microCitation, nameUsedInSource, originalNameString);\r
+ DescriptionElementSource source = DescriptionElementSource.NewPrimarySourceInstance(reference, microCitation, nameUsedInSource, originalNameString);\r
for (CommonTaxonName commonTaxonName : commonTaxonNames){\r
commonTaxonName.addSource(source);\r
}\r
}\r
\r
//reference\r
- Reference citation = null;\r
+ Reference<?> citation = null;\r
String factRefFk = String.valueOf(factRefFkObj);\r
if (factRefFkObj != null){\r
citation = getReferenceOnlyFromMaps(biblioRefMap, nomRefMap, factRefFk); \r
logger.warn("Citation not found in referenceMap: " + factRefFk);\r
success = false;\r
}\r
- if (citation != null || CdmUtils.isNotEmpty(details)){\r
- DescriptionElementSource originalSource = DescriptionElementSource.NewInstance();\r
- originalSource.setCitation(citation);\r
- originalSource.setCitationMicroReference(details);\r
+ if (citation != null || StringUtils.isNotBlank(details)){\r
+ DescriptionElementSource originalSource = DescriptionElementSource.NewPrimarySourceInstance(citation, details);\r
textData.addSource(originalSource);\r
}\r
taxonDescription.addElement(textData);\r
import eu.etaxonomy.cdm.model.agent.Person;\r
import eu.etaxonomy.cdm.model.common.CdmBase;\r
import eu.etaxonomy.cdm.model.common.Language;\r
+import eu.etaxonomy.cdm.model.common.OriginalSourceType;\r
import eu.etaxonomy.cdm.model.description.Feature;\r
import eu.etaxonomy.cdm.model.description.TaxonNameDescription;\r
import eu.etaxonomy.cdm.model.description.TextData;\r
String category = CdmUtils.Nz(rs.getString("NameFactCategory"));\r
String nameFact = CdmUtils.Nz(rs.getString("nameFact"));\r
\r
- TaxonNameBase taxonNameBase = nameMap.get(String.valueOf(nameId));\r
+ TaxonNameBase<?,?> taxonNameBase = nameMap.get(String.valueOf(nameId));\r
String nameFactRefFk = String.valueOf(nameFactRefFkObj);\r
- Reference citation = getReferenceOnlyFromMaps(biblioRefMap, \r
+ Reference<?> citation = getReferenceOnlyFromMaps(biblioRefMap, \r
nomRefMap, nameFactRefFk);\r
\r
if (taxonNameBase != null){\r
TaxonNameDescription description = TaxonNameDescription.NewInstance();\r
TextData protolog = TextData.NewInstance(Feature.PROTOLOGUE());\r
protolog.addMedia(media);\r
- protolog.addSource(String.valueOf(nameFactId), NAMESPACE, null, null, null, null);\r
+ protolog.addSource(OriginalSourceType.Import, String.valueOf(nameFactId), NAMESPACE, null, null, null, null);\r
description.addElement(protolog);\r
taxonNameBase.addDescription(description);\r
if (citation != null){\r
- description.addSource(null, null, citation, null);\r
- protolog.addSource(null, null, citation, nameFactRefDetail, null, null);\r
+ description.addSource(OriginalSourceType.PrimaryTaxonomicSource, null, null, citation, null);\r
+ protolog.addSource(OriginalSourceType.PrimaryTaxonomicSource, null, null, citation, nameFactRefDetail, null, null);\r
}\r
}//end NAME_FACT_PROTOLOGUE\r
}catch(NullPointerException e){\r
//TODO language\r
Language language = Language.DEFAULT();\r
additionalPublication.putText(language, nameFact);\r
- additionalPublication.addSource(String.valueOf(nameFactId), NAMESPACE, citation, \r
- nameFactRefDetail, null, null);\r
+ additionalPublication.addSource(OriginalSourceType.Import, String.valueOf(nameFactId), NAMESPACE, null,null, null, null);\r
+ if (citation != null || isNotBlank(nameFactRefDetail)){\r
+ additionalPublication.addSource(OriginalSourceType.PrimaryTaxonomicSource, null, null, citation, nameFactRefDetail, null, null);\r
+ }\r
description.addElement(additionalPublication);\r
taxonNameBase.addDescription(description);\r
}\r
//TODO language\r
Language language = Language.DEFAULT();\r
bibliography.putText(language, nameFact);\r
- bibliography.addSource(String.valueOf(nameFactId), NAMESPACE, citation, \r
- nameFactRefDetail, null, null);\r
+ bibliography.addSource(OriginalSourceType.Import, String.valueOf(nameFactId), NAMESPACE, null,null, null, null);\r
+ if (citation != null || isNotBlank(nameFactRefDetail)){\r
+ bibliography.addSource(OriginalSourceType.PrimaryTaxonomicSource, null, null, citation, nameFactRefDetail, null, null);\r
+ }\r
description.addElement(bibliography);\r
taxonNameBase.addDescription(description);\r
}\r
Distribution duplicate = checkIsNoDuplicate(taxonDescription, distribution, duplicateMap , occurrenceId);\r
if (duplicate == null){\r
taxonDescription.addElement(distribution); \r
- distribution.addSource(String.valueOf(occurrenceId), NAMESPACE, state.getTransactionalSourceReference(), null);\r
+ distribution.addImportSource(String.valueOf(occurrenceId), NAMESPACE, state.getTransactionalSourceReference(), null);\r
countDistributions++; \r
if (taxonDescription != oldDescription){ \r
taxaToSave.add(taxonDescription.getTaxon()); \r
} \r
}else{ \r
countDuplicates++;\r
- duplicate.addSource(String.valueOf(occurrenceId), NAMESPACE, state.getTransactionalSourceReference(), null);\r
+ duplicate.addImportSource(String.valueOf(occurrenceId), NAMESPACE, state.getTransactionalSourceReference(), null);\r
logger.info("Distribution is duplicate"); }\r
} else { \r
logger.warn("Distribution " + area.getLabel() + " ignored. OccurrenceId = " + occurrenceId);\r
import eu.etaxonomy.cdm.io.common.Source;\r
import eu.etaxonomy.cdm.model.common.CdmBase;\r
import eu.etaxonomy.cdm.model.common.DescriptionElementSource;\r
+import eu.etaxonomy.cdm.model.common.OriginalSourceType;\r
import eu.etaxonomy.cdm.model.description.DescriptionElementBase;\r
import eu.etaxonomy.cdm.model.description.Distribution;\r
import eu.etaxonomy.cdm.model.name.NonViralName;\r
Reference<?> ref = getReference(refId, state);\r
\r
if (ref != null){\r
- DescriptionElementSource originalSource = DescriptionElementSource.NewInstance();\r
+ DescriptionElementSource originalSource = DescriptionElementSource.NewInstance(OriginalSourceType.PrimaryTaxonomicSource);\r
originalSource.setCitation(ref);\r
TaxonNameBase<?, ?> taxonName;\r
taxonName = getName(state, oldName, oldNameFk);\r
if (taxonName != null){\r
originalSource.setNameUsedInSource(taxonName);\r
- }else if(CdmUtils.isNotEmpty(oldName)){\r
+ }else if(isNotBlank(oldName)){\r
originalSource.setOriginalNameString(oldName);\r
}\r
distribution.addSource(originalSource);\r
import static eu.etaxonomy.cdm.io.berlinModel.BerlinModelTransformer.REF_PRINT_SERIES;\r
import static eu.etaxonomy.cdm.io.berlinModel.BerlinModelTransformer.REF_UNKNOWN;\r
import static eu.etaxonomy.cdm.io.berlinModel.BerlinModelTransformer.REF_WEBSITE;\r
-import static eu.etaxonomy.cdm.io.common.IImportConfigurator.DO_REFERENCES.ALL;\r
-import static eu.etaxonomy.cdm.io.common.IImportConfigurator.DO_REFERENCES.CONCEPT_REFERENCES;\r
-import static eu.etaxonomy.cdm.io.common.IImportConfigurator.DO_REFERENCES.NOMENCLATURAL;\r
import static eu.etaxonomy.cdm.io.common.ImportHelper.NO_OVERWRITE;\r
import static eu.etaxonomy.cdm.io.common.ImportHelper.OBLIGATORY;\r
import static eu.etaxonomy.cdm.io.common.ImportHelper.OVERWRITE;\r
import eu.etaxonomy.cdm.model.common.Marker;\r
import eu.etaxonomy.cdm.model.common.MarkerType;\r
import eu.etaxonomy.cdm.model.reference.IArticle;\r
-import eu.etaxonomy.cdm.model.reference.IBook;\r
import eu.etaxonomy.cdm.model.reference.IBookSection;\r
-import eu.etaxonomy.cdm.model.reference.IJournal;\r
import eu.etaxonomy.cdm.model.reference.IPrintSeries;\r
import eu.etaxonomy.cdm.model.reference.Reference;\r
import eu.etaxonomy.cdm.model.reference.ReferenceFactory;\r
\r
//idInSource\r
String idInSource = (String)valueMap.get("IdInSource".toLowerCase());\r
- if (CdmUtils.isNotEmpty(idInSource)){\r
- IdentifiableSource source = IdentifiableSource.NewInstance(idInSource);\r
+ if (isNotBlank(idInSource)){\r
+ IdentifiableSource source = IdentifiableSource.NewDataImportInstance(idInSource);\r
source.setIdNamespace("import to Berlin Model");\r
referenceBase.addSource(source);\r
}\r
if (i == 1 && state.getConfig().getClassificationUuid() != null){\r
tree.setUuid(state.getConfig().getClassificationUuid());\r
}\r
- IdentifiableSource identifiableSource = IdentifiableSource.NewInstance(ptRefFk, TREE_NAMESPACE);\r
+ IdentifiableSource identifiableSource = IdentifiableSource.NewDataImportInstance(ptRefFk, TREE_NAMESPACE);\r
tree.addSource(identifiableSource);\r
\r
getClassificationService().save(tree);\r
import eu.etaxonomy.cdm.model.common.Marker;\r
import eu.etaxonomy.cdm.model.common.MarkerType;\r
import eu.etaxonomy.cdm.model.common.OrderedTermVocabulary;\r
+import eu.etaxonomy.cdm.model.common.OriginalSourceType;\r
import eu.etaxonomy.cdm.model.common.Representation;\r
import eu.etaxonomy.cdm.model.common.TermVocabulary;\r
import eu.etaxonomy.cdm.model.description.DescriptionBase;\r
public void addOriginalSource(CdmBase cdmBase, Object idAttributeValue, String namespace, Reference citation) {\r
if (cdmBase instanceof ISourceable ){\r
IOriginalSource source;\r
- ISourceable sourceable = (ISourceable)cdmBase;\r
+ ISourceable sourceable = (ISourceable<?>)cdmBase;\r
Object id = idAttributeValue;\r
String strId = String.valueOf(id);\r
String microCitation = null;\r
+ OriginalSourceType type = OriginalSourceType.Import;\r
if (cdmBase instanceof IdentifiableEntity){\r
- source = IdentifiableSource.NewInstance(strId, namespace, citation, microCitation);\r
+ source = IdentifiableSource.NewInstance(type, strId, namespace, citation, microCitation);\r
}else if (cdmBase instanceof DescriptionElementBase){\r
- source = DescriptionElementSource.NewInstance(strId, namespace, citation, microCitation);\r
+ source = DescriptionElementSource.NewInstance(type, strId, namespace, citation, microCitation);\r
}else{\r
logger.warn("ISourceable not beeing identifiable entities or description element base are not yet supported. CdmBase is of type " + cdmBase.getClass().getName() + ". Original source not added.");\r
return;\r
* @return\r
*/\r
public TaxonNameDescription getTaxonNameDescription(TaxonNameBase name, boolean isImageGallery, boolean createNewIfNotExists) {\r
- Reference ref = null;\r
+ Reference<?> ref = null;\r
return getTaxonNameDescription(name, ref, isImageGallery, createNewIfNotExists);\r
}\r
\r
result = TaxonNameDescription.NewInstance(name);\r
result.setImageGallery(isImageGallery);\r
if (ref != null){\r
- result.addSource(null, null, ref, null);\r
+ result.addImportSource(null, null, ref, null);\r
}\r
}\r
return result;\r
result = TaxonDescription.NewInstance(taxon);\r
result.setImageGallery(isImageGallery);\r
if (ref != null){\r
- result.addSource(null, null, ref, null);\r
+ result.addImportSource(null, null, ref, null);\r
}\r
}\r
return result;\r
result = SpecimenDescription.NewInstance(specimen);\r
result.setImageGallery(isImageGallery);\r
if (ref != null){\r
- result.addSource(null, null, ref, null);\r
+ result.addImportSource(null, null, ref, null);\r
}\r
}\r
return result;\r
import eu.etaxonomy.cdm.model.common.IdentifiableEntity;\r
import eu.etaxonomy.cdm.model.common.IdentifiableSource;\r
import eu.etaxonomy.cdm.model.common.Language;\r
+import eu.etaxonomy.cdm.model.common.OriginalSourceType;\r
import eu.etaxonomy.cdm.model.common.TimePeriod;\r
import eu.etaxonomy.cdm.model.description.DescriptionElementBase;\r
import eu.etaxonomy.cdm.model.name.NonViralName;\r
* @return\r
*/\r
public static boolean setOriginalSource(ISourceable sourceable, Reference sourceReference, String sourceId, String namespace){\r
- IOriginalSource originalSource;\r
+ IOriginalSource<?> originalSource;\r
+ OriginalSourceType type = OriginalSourceType.Import;\r
if (HibernateProxyHelper.isInstanceOf(sourceable, IdentifiableEntity.class)){\r
- originalSource = IdentifiableSource.NewInstance(sourceId, namespace, sourceReference, null);\r
+ originalSource = IdentifiableSource.NewInstance(type, sourceId, namespace, sourceReference, null);\r
}else if (HibernateProxyHelper.isInstanceOf(sourceable, DescriptionElementBase.class)){\r
- originalSource = DescriptionElementSource.NewInstance(sourceId, namespace, sourceReference, null);\r
+ originalSource = DescriptionElementSource.NewInstance(type, sourceId, namespace, sourceReference, null);\r
}else{\r
throw new ClassCastException("Unknown implementing class for ISourceable "+ sourceable.getClass() + " . Not supported bei ImportHelper.");\r
}\r
import java.sql.SQLException;\r
import java.util.Set;\r
\r
+import org.apache.commons.lang.StringUtils;\r
import org.apache.log4j.Logger;\r
\r
import eu.etaxonomy.cdm.common.CdmUtils;\r
import eu.etaxonomy.cdm.io.common.DbImportStateBase;\r
import eu.etaxonomy.cdm.model.common.CdmBase;\r
+import eu.etaxonomy.cdm.model.common.OriginalSourceType;\r
import eu.etaxonomy.cdm.model.description.DescriptionElementBase;\r
import eu.etaxonomy.cdm.model.description.TaxonDescription;\r
import eu.etaxonomy.cdm.model.reference.Reference;\r
logger.info("Taxon could not be determined. Description element was not add to any description or taxon");\r
}\r
//Source\r
- if (CdmUtils.isNotEmpty(dbCitationAttribute)){\r
+ if (StringUtils.isNotBlank(dbCitationAttribute)){\r
addSource(rs, element);\r
}\r
return element;\r
private void addSource(ResultSet rs, ELEMENT element) throws SQLException {\r
String microCitation = getStringDbValue(rs, dbMicroCitationAttribute);\r
Reference<?> citation = (Reference<?>) getState().getRelatedObject(sourceNamespace, String.valueOf(rs.getObject(dbCitationAttribute)));\r
- element.addSource(null, null, citation, microCitation);\r
+ element.addSource(OriginalSourceType.PrimaryTaxonomicSource, null, null, citation, microCitation);\r
}\r
\r
/**\r
import eu.etaxonomy.cdm.common.CdmUtils;\r
import eu.etaxonomy.cdm.io.common.DbImportStateBase;\r
import eu.etaxonomy.cdm.model.common.DescriptionElementSource;\r
+import eu.etaxonomy.cdm.model.common.OriginalSourceType;\r
import eu.etaxonomy.cdm.model.description.DescriptionElementBase;\r
import eu.etaxonomy.cdm.model.reference.Reference;\r
\r
*/\r
@Override\r
protected DescriptionElementSource createObject(ResultSet rs)throws SQLException {\r
- DescriptionElementSource source = DescriptionElementSource.NewInstance();\r
+ DescriptionElementSource source = DescriptionElementSource.NewInstance(OriginalSourceType.PrimaryTaxonomicSource);\r
return source;\r
}\r
\r
\r
String microCitation = null;\r
if (cdmBase instanceof IdentifiableEntity){\r
- source = IdentifiableSource.NewInstance(strId, idNamespace, citation, microCitation);\r
+ source = IdentifiableSource.NewDataImportInstance(strId, idNamespace, citation);\r
}else if (cdmBase instanceof DescriptionElementBase){\r
- source = DescriptionElementSource.NewInstance(strId, idNamespace, citation, microCitation);\r
+ source = DescriptionElementSource.NewDataImportInstance(strId, idNamespace, citation);\r
}else{\r
logger.warn("ISourceable not beeing identifiable entities or description element base are not yet supported. CdmBase is of type " + cdmBase.getClass().getSimpleName() + ". Original source not added.");\r
return;\r
import eu.etaxonomy.cdm.model.common.CdmBase;\r
import eu.etaxonomy.cdm.model.common.IdentifiableSource;\r
import eu.etaxonomy.cdm.model.common.LSID;\r
+import eu.etaxonomy.cdm.model.common.OriginalSourceType;\r
import eu.etaxonomy.cdm.model.name.BotanicalName;\r
import eu.etaxonomy.cdm.model.name.NomenclaturalCode;\r
import eu.etaxonomy.cdm.model.name.NonViralName;\r
\r
//original source\r
String id = csvTaxonRecord.get(ID);\r
- IdentifiableSource source = taxonBase.addSource(id, "Taxon", sourceReference, sourceReferenceDetail);\r
+ IdentifiableSource source = taxonBase.addImportSource(id, "Taxon", sourceReference, sourceReferenceDetail);\r
MappedCdmBase mappedSource = new MappedCdmBase(csvTaxonRecord.get(ID), source);\r
resultList.add(mappedSource);\r
csvTaxonRecord.remove(ID);\r
String classificationId = StringUtils.isBlank(datasetId)? datasetName : datasetId;\r
Classification classification = Classification.NewInstance(classificationName);\r
//source\r
- IdentifiableSource source = classification.addSource(classificationId, "Dataset", sourceReference, sourceReferecenDetail);\r
+ IdentifiableSource source = classification.addSource(OriginalSourceType.Lineage, classificationId, "Dataset", sourceReference, sourceReferecenDetail);\r
//add to result\r
resultList.add(new MappedCdmBase(idTerm, datasetId, classification));\r
resultList.add(new MappedCdmBase(strTerm, datasetName, classification));\r
taxonBase.setSec(ref);\r
}else{\r
//dataset as original source\r
- taxonBase.addSource(null, null, ref, null);\r
+ taxonBase.addSource(OriginalSourceType.Lineage, null, null, ref, null);\r
}\r
}\r
}else{\r
if (strScientificNameId != null){\r
if (config.isScientificNameIdAsOriginalSourceId()){\r
if (name != null){\r
- IdentifiableSource source = IdentifiableSource.NewInstance(strScientificNameId, TermUri.DWC_SCIENTIFIC_NAME_ID.toString(), sourceReference, null);\r
+ IdentifiableSource source = IdentifiableSource.NewDataImportInstance(strScientificNameId, \r
+ TermUri.DWC_SCIENTIFIC_NAME_ID.toString(), sourceReference);\r
name.addSource(source);\r
}\r
}else{\r
fireWarningEvent(message, item, 4);\r
}else{\r
newRef = ReferenceFactory.newGeneric(); //TODO handle other types if possible\r
- newRef.addSource(refId, idTerm.toString(), sourceCitation, null);\r
+ newRef.addImportSource(refId, idTerm.toString(), sourceCitation, null);\r
MappedCdmBase<Reference> idResult = new MappedCdmBase<Reference>(idTerm, refId, newRef);\r
resultList.add(idResult);\r
}\r
import eu.etaxonomy.cdm.model.common.CdmBase;\r
import eu.etaxonomy.cdm.model.common.DescriptionElementSource;\r
import eu.etaxonomy.cdm.model.common.LSID;\r
+import eu.etaxonomy.cdm.model.common.OriginalSourceType;\r
import eu.etaxonomy.cdm.model.common.TimePeriod;\r
import eu.etaxonomy.cdm.model.description.Feature;\r
import eu.etaxonomy.cdm.model.description.TaxonDescription;\r
private void createCitation(TaxonDescription desc, Reference ref, TaxonNameBase nameUsedInSource) {\r
Feature feature = Feature.CITATION();\r
TextData textData = TextData.NewInstance(feature);\r
- DescriptionElementSource source = DescriptionElementSource.NewInstance(ref, null, nameUsedInSource, null);\r
+ DescriptionElementSource source = DescriptionElementSource.NewPrimarySourceInstance(ref, null, nameUsedInSource, null);\r
textData.addSource(source);\r
desc.addElement(textData);\r
}\r
\r
import eu.etaxonomy.cdm.io.excel.common.ExcelTaxonOrSpecimenImportBase.SourceType;\r
import eu.etaxonomy.cdm.model.common.IdentifiableSource;\r
+import eu.etaxonomy.cdm.model.common.OriginalSourceType;\r
import eu.etaxonomy.cdm.model.name.SpecimenTypeDesignation;\r
import eu.etaxonomy.cdm.model.name.SpecimenTypeDesignationStatus;\r
import eu.etaxonomy.cdm.model.name.TaxonNameBase;\r
private IdentifiableSource getOrMakeSource(int key) {\r
IdentifiableSource source = sources.get(key);\r
if (source == null){\r
- source = IdentifiableSource.NewInstance();\r
+ source = IdentifiableSource.NewInstance(OriginalSourceType.Unknown);\r
sources.put(key, source);\r
}\r
return source;\r
import eu.etaxonomy.cdm.model.common.Extension;\r
import eu.etaxonomy.cdm.model.common.ExtensionType;\r
import eu.etaxonomy.cdm.model.common.Language;\r
+import eu.etaxonomy.cdm.model.common.OriginalSourceType;\r
import eu.etaxonomy.cdm.model.common.TimePeriod;\r
import eu.etaxonomy.cdm.model.description.CommonTaxonName;\r
import eu.etaxonomy.cdm.model.description.DescriptionElementBase;\r
List<Map<SourceType, String>> sourceList = sourceDataHolder.getSources();\r
for (Map<SourceType, String> sourceMap : sourceList){\r
\r
- DescriptionElementSource source = DescriptionElementSource.NewInstance();\r
//ref\r
Reference<?> ref = ReferenceFactory.newGeneric();\r
boolean refExists = false; //in case none of the ref fields exists, the ref should not be added\r
for (SourceType type : sourceMap.keySet()){\r
String value = sourceMap.get(type);\r
if (type.equals(SourceType.Author)){\r
- TeamOrPersonBase author = getAuthorAccordingToConfig(value, state);\r
+ TeamOrPersonBase<?> author = getAuthorAccordingToConfig(value, state);\r
ref.setAuthorTeam(author);\r
}else if (type.equals(SourceType.Title)) {\r
ref.setTitle(value);\r
}\r
refExists = true;\r
}\r
+ DescriptionElementSource source = DescriptionElementSource.NewInstance(OriginalSourceType.PrimaryTaxonomicSource);\r
if (refExists){\r
ref = getReferenceAccordingToConfig(ref, state);\r
source.setCitation(ref);\r
import eu.etaxonomy.cdm.model.common.Extension;\r
import eu.etaxonomy.cdm.model.common.ExtensionType;\r
import eu.etaxonomy.cdm.model.common.Language;\r
+import eu.etaxonomy.cdm.model.common.OriginalSourceType;\r
import eu.etaxonomy.cdm.model.common.TermVocabulary;\r
import eu.etaxonomy.cdm.model.description.CommonTaxonName;\r
import eu.etaxonomy.cdm.model.description.DescriptionElementBase;\r
// TODO use concrete source (e.g. DAPHNIPHYLLACEAE in FM\r
// vol.13)\r
Reference<?> citation = state.getConfig().getSourceReference();\r
- media.addSource(numString, "num", citation, null);\r
+ media.addImportSource( numString, "num", citation, null);\r
// TODO name used in source if available\r
}\r
// TODO which citation\r
if (StringUtils.isNotBlank(id)) {\r
- media.addSource(id, null, state.getConfig().getSourceReference(), null);\r
+ media.addImportSource(id, null, state.getConfig().getSourceReference(), null);\r
} else {\r
String message = "Figure id should never be empty or null";\r
fireWarningEvent(message, next, 6);\r
TaxonDescription description = getTaxonDescription(taxon, descriptionRef, false, true);\r
TextData featurePlaceholder = docImport.getFeaturePlaceholder(state, description, feature, true);\r
for (Reference<?> citation : refs) {\r
- featurePlaceholder.addSource(null, null, citation, null);\r
+ featurePlaceholder.addSource(OriginalSourceType.PrimaryTaxonomicSource,\r
+ null, null, citation, null);\r
}\r
} else {\r
String message = "No reference found in references";\r
import eu.etaxonomy.cdm.model.agent.INomenclaturalAuthor;\r
import eu.etaxonomy.cdm.model.agent.TeamOrPersonBase;\r
import eu.etaxonomy.cdm.model.common.CdmBase;\r
+import eu.etaxonomy.cdm.model.common.OriginalSourceType;\r
import eu.etaxonomy.cdm.model.common.TimePeriod;\r
import eu.etaxonomy.cdm.model.description.Feature;\r
import eu.etaxonomy.cdm.model.description.TaxonDescription;\r
.getSourceReference(), false, true);\r
TextData citation = TextData.NewInstance(Feature.CITATION());\r
// TODO name used in source\r
- citation.addSource(null, null, reference, microCitation);\r
+ citation.addSource(OriginalSourceType.PrimaryTaxonomicSource, null, null, reference, microCitation);\r
td.addElement(citation);\r
} else if (TYPE.equalsIgnoreCase(classValue)) {\r
handleNotYetImplementedAttributeValue(parentEvent, CLASS,\r
import eu.etaxonomy.cdm.model.common.LanguageString;\r
import eu.etaxonomy.cdm.model.common.Marker;\r
import eu.etaxonomy.cdm.model.common.MarkerType;\r
+import eu.etaxonomy.cdm.model.common.OriginalSourceType;\r
import eu.etaxonomy.cdm.model.common.Representation;\r
import eu.etaxonomy.cdm.model.common.TermBase;\r
import eu.etaxonomy.cdm.model.common.TermVocabulary;\r
} else {\r
Reference<?> descriptionSource = ReferenceFactory.newGeneric();\r
sources.add(descriptionSource);\r
- td.addSource(null, null, descriptionSource, null);\r
+ //TODO type\r
+ td.addSource(OriginalSourceType.Unknown, null, null, descriptionSource, null);\r
this.associateImageWithCdmBase(ref,descriptionSource);\r
}\r
} else {\r
for (String ref : taxonDescriptions.keySet()){\r
TaxonDescription td = taxonDescriptions.get(ref);\r
if (citations.containsKey(ref)) {\r
- Reference publication = publications.get(citations.get(ref));\r
+ Reference<?> publication = publications.get(citations.get(ref));\r
if (locations.containsKey(ref)) {\r
Annotation location = Annotation.NewInstance(locations.get(ref), datasetLanguage);\r
AnnotationType annotationType = AnnotationType.NewInstance("", "location", "");\r
location.setAnnotationType(annotationType);\r
(publication).addAnnotation(location);\r
}\r
- td.addSource(null, null, publication, null);\r
+ //TODO type\r
+ td.addSource(OriginalSourceType.Unknown, null, null, publication, null);\r
}\r
}\r
logger.info("end makeTaxonDescriptions ...");\r
if (!id.equals("")) {\r
tnb = NonViralName.NewInstance(null);\r
IdentifiableSource source = null;\r
- if (uri != null) {\r
- if (!uri.equals("")) {\r
- source = IdentifiableSource.NewInstance(id, "TaxonName", ReferenceFactory.newGeneric(), uri);\r
- }\r
+ if (isNotBlank(uri)) {\r
+ //TODO type\r
+ source = IdentifiableSource.NewInstance(OriginalSourceType.Unknown, id, "TaxonName", ReferenceFactory.newGeneric(), uri);\r
} else {\r
- source = IdentifiableSource.NewInstance(id, "TaxonName");\r
+ source = IdentifiableSource.NewDataImportInstance(id, "TaxonName");\r
}\r
tnb.addSource(source);\r
taxonNameBases.put(id,tnb);\r
private Taxon handleCDNoScope(Namespace sddNamespace,\r
SDDImportState cdmState, Element elCodedDescription ) {\r
Taxon taxon = null;\r
- NonViralName nonViralName = NonViralName.NewInstance(null);\r
+ NonViralName<?> nonViralName = NonViralName.NewInstance(null);\r
String id = new String("" + taxonNamesCount);\r
- IdentifiableSource source = IdentifiableSource.NewInstance(id, "TaxonName");\r
+ IdentifiableSource source = IdentifiableSource.NewDataImportInstance( id, "TaxonName");\r
importRepresentation(elCodedDescription, sddNamespace, nonViralName, id, cdmState);\r
\r
if(cdmState.getConfig().isDoMatchTaxa()){\r
// </Representation>\r
Person person = Person.NewInstance();\r
importRepresentation(elAgent, sddNamespace, person, idA, cdmState);\r
- person.addSource(IdentifiableSource.NewInstance(idA, "Agent"));\r
+ person.addSource(IdentifiableSource.NewDataImportInstance(idA, "Agent"));\r
\r
/*XIM <Links>\r
Element elLinks = elAgent.getChild("Links",sddNamespace);\r
import eu.etaxonomy.cdm.model.common.LanguageString;\r
import eu.etaxonomy.cdm.model.common.Marker;\r
import eu.etaxonomy.cdm.model.common.MarkerType;\r
+import eu.etaxonomy.cdm.model.common.OriginalSourceType;\r
import eu.etaxonomy.cdm.model.common.Representation;\r
import eu.etaxonomy.cdm.model.common.TermBase;\r
import eu.etaxonomy.cdm.model.common.TermVocabulary;\r
} else {\r
Reference<?> descriptionSource = ReferenceFactory.newGeneric();\r
sources.add(descriptionSource);\r
- td.addSource(null, null, descriptionSource, null);\r
+ //TODO type\r
+ td.addSource(OriginalSourceType.Unknown, null, null, descriptionSource, null);\r
this.associateImageWithCdmBase(ref,descriptionSource);\r
}\r
} else {\r
location.setAnnotationType(annotationType);\r
(publication).addAnnotation(location);\r
}\r
- td.addSource(null, null,publication, null);\r
+ td.addSource(OriginalSourceType.PrimaryTaxonomicSource, null, null,publication, null);\r
}\r
}\r
logger.info("end makeTaxonDescriptions ...");\r
tnb = NonViralName.NewInstance(Rank.UNKNOWN_RANK());\r
IdentifiableSource source = null;\r
if (uri != null) {\r
- if (!uri.equals("")) {\r
- source = IdentifiableSource.NewInstance(id, "TaxonName", ReferenceFactory.newGeneric(), uri);\r
+ if (! isNotBlank(uri)) {\r
+ //TODO type\r
+ source = IdentifiableSource.NewInstance(OriginalSourceType.Unknown, id, "TaxonName", ReferenceFactory.newGeneric(), uri);\r
}\r
} else {\r
- source = IdentifiableSource.NewInstance(id, "TaxonName");\r
+ source = IdentifiableSource.NewDataImportInstance(id, "TaxonName");\r
}\r
tnb.addSource(source);\r
taxonNameBases.put(id,tnb);\r
Taxon taxon = null;\r
NonViralName<?> nonViralName = NonViralName.NewInstance(Rank.UNKNOWN_RANK());\r
String id = new String("" + taxonNamesCount);\r
- IdentifiableSource source = IdentifiableSource.NewInstance(id, "TaxonName");\r
+ IdentifiableSource source = IdentifiableSource.NewDataImportInstance(id, "TaxonName");\r
importRepresentation(elCodedDescription, sddNamespace, nonViralName, id, cdmState);\r
\r
if(cdmState.getConfig().isDoMatchTaxa()){\r
// </Representation>\r
Person person = Person.NewInstance();\r
importRepresentation(elAgent, sddNamespace, person, idA, cdmState);\r
- person.addSource(IdentifiableSource.NewInstance(idA, "Agent"));\r
+ person.addSource(IdentifiableSource.NewDataImportInstance(idA, "Agent"));\r
\r
/*XIM <Links>\r
Element elLinks = elAgent.getChild("Links",sddNamespace);\r
import eu.etaxonomy.cdm.model.common.CdmBase;
import eu.etaxonomy.cdm.model.common.DescriptionElementSource;
import eu.etaxonomy.cdm.model.common.Language;
+import eu.etaxonomy.cdm.model.common.OriginalSourceType;
import eu.etaxonomy.cdm.model.common.UuidAndTitleCache;
import eu.etaxonomy.cdm.model.description.Feature;
import eu.etaxonomy.cdm.model.description.IndividualsAssociation;
indAssociation.setFeature(feature);
for (Reference<?> citation : determinationEvent.getReferences()) {
- indAssociation.addSource(DescriptionElementSource.NewInstance(null, null, citation, null));
+ indAssociation.addSource(DescriptionElementSource.NewInstance(OriginalSourceType.PrimaryTaxonomicSource,
+ null, null, citation, null));
}
taxonDescription.addElement(indAssociation);
} else if(keyValue.key.matches(SOURCE_COLUMN)) {
- row.putSourceReference(keyValue.index, getOrMakeReference(state, value));
+ row.putSourceReference(keyValue.index, getOrMakeReference(state, value) );
} else if(keyValue.key.matches(ID_IN_SOURCE_COLUMN)) {
row.putIdInSource(keyValue.index, value);
} else if(keyValue.key.matches(EXTENSION_COLUMN)) {
\r
import eu.etaxonomy.cdm.io.excel.common.ExcelRowBase;\r
import eu.etaxonomy.cdm.model.common.IdentifiableSource;\r
+import eu.etaxonomy.cdm.model.common.OriginalSourceType;\r
import eu.etaxonomy.cdm.model.name.SpecimenTypeDesignation;\r
import eu.etaxonomy.cdm.model.name.SpecimenTypeDesignationStatus;\r
import eu.etaxonomy.cdm.model.name.TaxonNameBase;\r
\r
\r
public void putIdInSource(int key, String id){\r
- IdentifiableSource source = getOrMakeSource(key);\r
+ IdentifiableSource source = getOrMakeSource(key, OriginalSourceType.Import);\r
source.setIdInSource(id);\r
}\r
public void putSourceReference(int key, Reference<?> reference){\r
- IdentifiableSource source = getOrMakeSource(key);\r
+ IdentifiableSource source = getOrMakeSource(key, OriginalSourceType.Unknown);\r
source.setCitation(reference);\r
}\r
\r
* @param key\r
* @return\r
*/\r
- private IdentifiableSource getOrMakeSource(int key) {\r
+ private IdentifiableSource getOrMakeSource(int key, OriginalSourceType type) {\r
IdentifiableSource source = sources.get(key);\r
if (source == null){\r
- source = IdentifiableSource.NewInstance();\r
+ source = IdentifiableSource.NewInstance(type);\r
sources.put(key, source);\r
}\r
return source;\r
import eu.etaxonomy.cdm.model.agent.Team;
import eu.etaxonomy.cdm.model.common.DescriptionElementSource;
import eu.etaxonomy.cdm.model.common.Language;
+import eu.etaxonomy.cdm.model.common.OriginalSourceType;
import eu.etaxonomy.cdm.model.common.TimePeriod;
import eu.etaxonomy.cdm.model.common.UuidAndTitleCache;
import eu.etaxonomy.cdm.model.description.Feature;
if (!originalsource.isEmpty()){
Reference<?> reference = ReferenceFactory.newGeneric();
reference.setTitleCache(originalsource, true);
- derivedUnitBase.addSource(originalsource, "", reference, "");
+ derivedUnitBase.addSource(OriginalSourceType.Unknown, originalsource, "", reference, "");
}
/**
* INSTITUTION & COLLECTION
indAssociation.setFeature(feature);
for (Reference<?> citation : determinationEvent.getReferences()) {
- indAssociation.addSource(DescriptionElementSource.NewInstance(null, null, citation, null));
+ indAssociation.addSource(DescriptionElementSource.NewInstance(OriginalSourceType.PrimaryTaxonomicSource, null, null, citation, null));
}
taxonDescription.addElement(indAssociation);
import eu.etaxonomy.cdm.io.common.IImportConfigurator;\r
import eu.etaxonomy.cdm.model.common.DescriptionElementSource;\r
import eu.etaxonomy.cdm.model.common.Language;\r
+import eu.etaxonomy.cdm.model.common.OriginalSourceType;\r
import eu.etaxonomy.cdm.model.common.TermVocabulary;\r
import eu.etaxonomy.cdm.model.description.DescriptionElementBase;\r
import eu.etaxonomy.cdm.model.description.Feature;\r
TaxonDescription description = TaxonDescription.NewInstance();\r
description.setTitleCache(getDescriptionTitle(state), true);\r
if (modsReference != null){\r
- description.addSource(null, null, modsReference, null);\r
+ description.addSource(OriginalSourceType.PrimaryTaxonomicSource, null, null, modsReference, null);\r
}\r
\r
Element elTaxonBody = root.getChild("taxonxBody", nsTaxonx);\r
\r
//add reference\r
if (modsReference != null){\r
- descriptionElement.addSource(null, null, modsReference, null, null, null);\r
+ descriptionElement.addSource(OriginalSourceType.PrimaryTaxonomicSource, null, null, modsReference, null, null, null);\r
}\r
}\r
\r
import eu.etaxonomy.cdm.io.common.ImportHelper;\r
import eu.etaxonomy.cdm.io.common.MapWrapper;\r
import eu.etaxonomy.cdm.model.common.DescriptionElementSource;\r
+import eu.etaxonomy.cdm.model.common.OriginalSourceType;\r
import eu.etaxonomy.cdm.model.description.DescriptionElementBase;\r
import eu.etaxonomy.cdm.model.description.Distribution;\r
import eu.etaxonomy.cdm.model.description.Feature;\r
xmlAttributeName = "resource";\r
attributeNamespace = rdfNamespace;\r
String strNameResource= XmlHelp.getChildAttributeValue(elTaxonConcept, xmlElementName, elementNamespace, xmlAttributeName, attributeNamespace);\r
- TaxonNameBase taxonNameBase = taxonNameMap.get(strNameResource);\r
+ TaxonNameBase<?,?> taxonNameBase = taxonNameMap.get(strNameResource);\r
if (taxonNameBase == null){\r
logger.warn("Taxon has no name: " + taxonAbout + "; Resource: " + strNameResource);\r
}\r
\r
// //FIXME\r
// String secId = "pub_999999";\r
- Reference sec = referenceMap.get(strAccordingTo);\r
+ Reference<?> sec = referenceMap.get(strAccordingTo);\r
if (sec == null){\r
sec = nomRefMap.get(strAccordingTo);\r
}\r
logger.warn("sec could not be found in referenceMap or nomRefMap for secId: " + strAccordingTo);\r
}\r
\r
- TaxonBase taxonBase;\r
+ TaxonBase<?> taxonBase;\r
Namespace geoNamespace = config.getGeoNamespace();\r
if (hasIsSynonymRelation(elTaxonConcept, rdfNamespace) || isSynonym(elTaxonConcept, config.getPalmNamespace())){\r
//Synonym\r
Taxon taxon = Taxon.NewInstance(taxonNameBase, sec);\r
List<DescriptionElementBase> geoList = makeGeo(elTaxonConcept, geoNamespace, rdfNamespace);\r
TaxonDescription description = TaxonDescription.NewInstance(taxon);\r
- description.addSource(null, null, taxon.getSec(), null);\r
+ //TODO type\r
+ description.addSource(OriginalSourceType.Unknown, null, null, taxon.getSec(), null);\r
for (DescriptionElementBase geo: geoList){\r
description.addElement(geo);\r
- DescriptionElementSource source = DescriptionElementSource.NewInstance(null, null, taxon.getSec(), null);\r
+ //TODO type\r
+ DescriptionElementSource source = DescriptionElementSource.NewInstance(OriginalSourceType.Unknown, null, null, taxon.getSec(), null);\r
geo.addSource(source);\r
}\r
taxon.addDescription(description);\r
@SuppressWarnings("unused")\r
private static final Logger logger = Logger.getLogger(DescriptionElementSource.class);\r
\r
-\r
/**\r
* Factory method\r
* @return\r
*/\r
- public static DescriptionElementSource NewInstance(){\r
- return new DescriptionElementSource();\r
+ public static DescriptionElementSource NewInstance(OriginalSourceType type){\r
+ return new DescriptionElementSource(type);\r
}\r
\r
- public static DescriptionElementSource NewInstance(String id){\r
- DescriptionElementSource result = new DescriptionElementSource();\r
+ public static DescriptionElementSource NewDataImportInstance(String id){\r
+ DescriptionElementSource result = new DescriptionElementSource(OriginalSourceType.Import);\r
result.setIdInSource(id);\r
return result;\r
}\r
\r
- public static DescriptionElementSource NewInstance(String id, String idNamespace){\r
- DescriptionElementSource result = NewInstance(id);\r
+ public static DescriptionElementSource NewDataImportInstance(String id, String idNamespace){\r
+ DescriptionElementSource result = NewDataImportInstance(id);\r
result.setIdNamespace(idNamespace);\r
return result;\r
}\r
\r
- public static DescriptionElementSource NewInstance(String id, String idNamespace, Reference citation){\r
- DescriptionElementSource result = NewInstance(id, idNamespace);\r
+ public static DescriptionElementSource NewDataImportInstance(String id, String idNamespace, Reference ref){\r
+ DescriptionElementSource result = NewDataImportInstance(id, idNamespace);\r
+ result.setCitation(ref);\r
+ return result;\r
+ }\r
+ \r
+ public static DescriptionElementSource NewInstance(OriginalSourceType type, String id, String idNamespace, Reference citation){\r
+ DescriptionElementSource result = NewInstance(type);\r
+ result.setIdInSource(id);\r
+ result.setIdNamespace(idNamespace);\r
result.setCitation(citation); \r
return result;\r
}\r
\r
- public static DescriptionElementSource NewInstance(String id, String idNamespace, Reference citation, String microCitation){\r
- DescriptionElementSource result = NewInstance(id, idNamespace);\r
- result.setCitation(citation);\r
+ public static DescriptionElementSource NewInstance(OriginalSourceType type, String id, String idNamespace, Reference citation, String microCitation){\r
+ DescriptionElementSource result = NewInstance(type, id, idNamespace, citation);\r
result.setCitationMicroReference(microCitation);\r
return result;\r
}\r
\r
- public static DescriptionElementSource NewInstance(String id, String idNamespace, Reference citation, String microReference, TaxonNameBase nameUsedInSource, String originalNameString){\r
- DescriptionElementSource result = NewInstance(id, idNamespace, citation, microReference);\r
+ public static DescriptionElementSource NewInstance(OriginalSourceType type, String id, String idNamespace, Reference citation, String microReference, TaxonNameBase nameUsedInSource, String originalNameString){\r
+ DescriptionElementSource result = NewInstance(type, id, idNamespace, citation, microReference);\r
result.setNameUsedInSource(nameUsedInSource);\r
result.setOriginalNameString(originalNameString);\r
return result;\r
}\r
\r
- public static DescriptionElementSource NewInstance(Reference citation, String microCitation){\r
- DescriptionElementSource result = NewInstance();\r
+ public static DescriptionElementSource NewPrimarySourceInstance(Reference citation, String microCitation){\r
+ DescriptionElementSource result = NewInstance(OriginalSourceType.PrimaryTaxonomicSource);\r
result.setCitation(citation);\r
result.setCitationMicroReference(microCitation);\r
return result;\r
}\r
\r
- public static DescriptionElementSource NewInstance(Reference citation, String microReference, TaxonNameBase nameUsedInSource, String originalNameString){\r
- DescriptionElementSource result = NewInstance(citation, microReference);\r
+ public static DescriptionElementSource NewPrimarySourceInstance(Reference citation, String microReference, TaxonNameBase nameUsedInSource, String originalNameString){\r
+ DescriptionElementSource result = NewPrimarySourceInstance(citation, microReference);\r
result.setNameUsedInSource(nameUsedInSource);\r
result.setOriginalNameString(originalNameString);\r
return result;\r
@XmlSchemaType(name = "IDREF")\r
@ManyToOne(fetch = FetchType.LAZY)\r
@Cascade({CascadeType.SAVE_UPDATE})\r
- private TaxonNameBase nameUsedInSource;\r
+ private TaxonNameBase<?,?> nameUsedInSource;\r
\r
- private DescriptionElementSource(){\r
- \r
+ private DescriptionElementSource(OriginalSourceType type){\r
+ super(type);\r
}\r
\r
\r
/**
- * Adds a source that is newly created by its components. If all components are <code>null</null>
+ * Adds a source that is newly created by its components. If all components except for the
+ * type are <code>null</null>
* no source is added.
- * @param id
- * @param idNamespace
- * @param citation
- * @param microCitation
+ * @param type the {@link OriginalSourceType type} of the source
+ * @param idInSource the id used in the source
+ * @param idNamespace the namespace for the id in the source
+ * @param citation the source as a {@link Reference reference}
+ * @param microReference the details (e.g. page number) in the reference
*/
- public T addSource(String id, String idNamespace, Reference citation, String microCitation);
+ public T addSource(OriginalSourceType type, String id, String idNamespace, Reference citation, String microCitation);
/**
*/
public void removeSource(T source);
+ /**
+ * Adds a {@link IOriginalSource source} of {@link OriginalSourceType type} Import to this description element.
+ *
+ * @param idInSource the id used in the source
+ * @param idNamespace the namespace for the id in the source
+ * @param citation the source as a {@link Reference reference}
+ * @param microReference the details (e.g. page number) in the reference
+ * @param nameUsedInSource the taxon name used in the source
+ * @param originalNameString the name as text used in the source
+ */
+ public T addImportSource(String id, String idNamespace, Reference<?> citation, String microCitation);
+
}
\ No newline at end of file
* @see eu.etaxonomy.cdm.model.common.ISourceable#addSource(java.lang.String, java.lang.String, eu.etaxonomy.cdm.model.reference.Reference, java.lang.String)
*/
@Override
- public IdentifiableSource addSource(String id, String idNamespace, Reference citation, String microCitation) {
+ public IdentifiableSource addSource(OriginalSourceType type, String id, String idNamespace, Reference citation, String microCitation) {
if (id == null && idNamespace == null && citation == null && microCitation == null){
return null;
}
- IdentifiableSource source = IdentifiableSource.NewInstance(id, idNamespace, citation, microCitation);
+ IdentifiableSource source = IdentifiableSource.NewInstance(type, id, idNamespace, citation, microCitation);
+ addSource(source);
+ return source;
+ }
+
+
+ /* (non-Javadoc)
+ * @see eu.etaxonomy.cdm.model.common.ISourceable#addImportSource(java.lang.String, java.lang.String, eu.etaxonomy.cdm.model.reference.Reference, java.lang.String)
+ */
+ @Override
+ public IdentifiableSource addImportSource(String id, String idNamespace, Reference<?> citation, String microCitation) {
+ if (id == null && idNamespace == null && citation == null && microCitation == null){
+ return null;
+ }
+ IdentifiableSource source = IdentifiableSource.NewInstance(OriginalSourceType.Import, id, idNamespace, citation, microCitation);
addSource(source);
return source;
}
@SuppressWarnings("unused")\r
private static final Logger logger = Logger.getLogger(IdentifiableSource.class);\r
\r
-\r
/**\r
* Factory method\r
* @return\r
*/\r
- public static IdentifiableSource NewInstance(){\r
- return new IdentifiableSource();\r
+ public static IdentifiableSource NewInstance(OriginalSourceType type){\r
+ return new IdentifiableSource(type);\r
}\r
\r
- public static IdentifiableSource NewInstance(String id){\r
- IdentifiableSource result = new IdentifiableSource();\r
+ public static IdentifiableSource NewDataImportInstance(String id){\r
+ IdentifiableSource result = new IdentifiableSource(OriginalSourceType.Import);\r
result.setIdInSource(id);\r
return result;\r
}\r
\r
- public static IdentifiableSource NewInstance(String id, String idNamespace){\r
- IdentifiableSource result = NewInstance(id);\r
+ public static IdentifiableSource NewDataImportInstance(String id, String idNamespace){\r
+ IdentifiableSource result = NewDataImportInstance(id);\r
result.setIdNamespace(idNamespace);\r
return result;\r
}\r
+\r
+ public static IdentifiableSource NewDataImportInstance(String id, String idNamespace, Reference ref){\r
+ IdentifiableSource result = NewDataImportInstance(id, idNamespace);\r
+ result.setCitation(ref);\r
+ return result;\r
+ }\r
\r
- public static IdentifiableSource NewInstance(String id, String idNamespace, Reference citation, String microCitation){\r
- IdentifiableSource result = NewInstance(id, idNamespace);\r
+ public static IdentifiableSource NewInstance(OriginalSourceType type, String id, String idNamespace, Reference citation, String microCitation){\r
+ IdentifiableSource result = NewInstance(OriginalSourceType.Import);\r
+ result.setIdInSource(id);\r
+ result.setIdNamespace(idNamespace);\r
result.setCitation(citation);\r
result.setCitationMicroReference(microCitation);\r
return result;\r
}\r
\r
- public static IdentifiableSource NewInstance(Reference citation, String microCitation){\r
- IdentifiableSource result = NewInstance();\r
+ public static IdentifiableSource NewPrimarySourceInstance(Reference citation, String microCitation){\r
+ IdentifiableSource result = NewInstance(OriginalSourceType.PrimaryTaxonomicSource);\r
result.setCitation(citation);\r
result.setCitationMicroReference(microCitation);\r
return result;\r
optional = false)\r
@JoinColumn(name = "sourcedObj_id")\r
@NotAudited\r
- private IdentifiableEntity sourcedObj;\r
+ private IdentifiableEntity<?> sourcedObj;\r
+\r
\r
+ private IdentifiableSource(OriginalSourceType type) {\r
+ super(type);\r
+ }\r
+ \r
\r
/* (non-Javadoc)\r
* @see eu.etaxonomy.cdm.model.common.IOriginalSource#getSourcedObj()\r
import org.apache.log4j.Logger;
import org.hibernate.annotations.Table;
import org.hibernate.envers.Audited;
+import org.springframework.util.Assert;
import eu.etaxonomy.cdm.common.CdmUtils;
@SuppressWarnings("unused")
private static final Logger logger = Logger.getLogger(OriginalSourceBase.class);
+
@XmlAttribute(name ="type")
@Column(name="refType")
@NotNull
/**
* Constructor
+ * @param type2
*/
- protected OriginalSourceBase(){
- super();
+ protected OriginalSourceBase(OriginalSourceType type){
+ Assert.notNull(type, "OriginalSourceType must not be null");
}
//**************** GETTER / SETTER *******************************/
}
public void setType(OriginalSourceType type) {
+ Assert.notNull(type, "OriginalSourceType must not be null");
this.type = type;
}
*/
@Override
public Object clone() throws CloneNotSupportedException{
- OriginalSourceBase result = (OriginalSourceBase)super.clone();
+ OriginalSourceBase<?> result = (OriginalSourceBase<?>)super.clone();
//no changes to: idInSource, sourcedObj
return result;
* \r
*/\r
@XmlEnumValue("Primary Taxonomic Source")\r
- PrimaryTaxonomicSource(UUID.fromString("c990beb3-3bc9-4dad-bbdf-9c11683493da"), "Primary Taxonomic Source"),\r
+ Unknown(UUID.fromString("c990beb3-3bc9-4dad-bbdf-9c11683493da"), "Primary Taxonomic Source"),\r
\r
//1\r
+ /**\r
+ * Primary Taxonomic Source describes the sources a taxonomist uses to gather certain information. \r
+ * E.g. a taxonomist may have used three books/articles/other references to gather information\r
+ * about the distribution status of a taxon.\r
+ * He/she will store these references as original source of type Primary Taxonomic Source.\r
+ * This is a specification of PROV-O Primary Source \r
+ * ({@link http://www.w3.org/TR/2013/REC-prov-o-20130430/#PrimarySource})\r
+ * \r
+ */\r
+ @XmlEnumValue("Primary Taxonomic Source")\r
+ PrimaryTaxonomicSource(UUID.fromString("c990beb3-3bc9-4dad-bbdf-9c11683493da"), "Primary Taxonomic Source"),\r
+ \r
+ //2\r
/**\r
* Data Lineage describes the data life cycle of electronically available data. A typical use-case for \r
* data lineage is a data import from one database to another. Sources of type data lineage will store information about the\r
@XmlEnumValue("Data Lineage")\r
Lineage(UUID.fromString("4f9fdf9a-f3b5-490c-96f0-90e050599b0e"), "Data Lineage"),\r
\r
- //2\r
+ //3\r
/**\r
* Database Import is a specialisation of {@value #Lineage}. It describes the electronic import of data \r
* from an external datasource into the given datasource. This step may include data transformations also\r
@XmlEnumValue("Database Import")\r
Import(UUID.fromString("2a3902ff-06a7-4307-b542-c743e664b8f2"), "Database Import"),\r
\r
- //3\r
+ //4\r
/**\r
* Data Transformation is a specification of {@value #Lineage} and describes a data transformation process that happens primarily on the given dataset\r
* but may also include external data.\r
Transformation(UUID.fromString("d59e80e5-cbb7-4658-b74d-0626bbb0da7f"), "Data Transformation"),\r
\r
\r
- //4\r
+ //5\r
/**\r
* Data aggregation is a spcification of {@value #Lineage} and describes the data transformation process\r
* that primarily includes data aggregation processes but may also include data imports and transformation.\r
import eu.etaxonomy.cdm.model.common.AnnotatableEntity;
import eu.etaxonomy.cdm.model.common.DescriptionElementSource;
import eu.etaxonomy.cdm.model.common.IMultiLanguageTextHolder;
+import eu.etaxonomy.cdm.model.common.IOriginalSource;
import eu.etaxonomy.cdm.model.common.ISourceable;
import eu.etaxonomy.cdm.model.common.Language;
import eu.etaxonomy.cdm.model.common.LanguageString;
import eu.etaxonomy.cdm.model.common.MultilanguageText;
+import eu.etaxonomy.cdm.model.common.OriginalSourceType;
import eu.etaxonomy.cdm.model.common.TermVocabulary;
import eu.etaxonomy.cdm.model.media.Media;
import eu.etaxonomy.cdm.model.name.TaxonNameBase;
}
/* (non-Javadoc)
- * @see eu.etaxonomy.cdm.model.common.ISourceable#addSource(java.lang.String, java.lang.String, eu.etaxonomy.cdm.model.reference.Reference, java.lang.String)
+ * @see eu.etaxonomy.cdm.model.common.ISourceable#addSource(eu.etaxonomy.cdm.model.common.OriginalSourceType, java.lang.String, java.lang.String, eu.etaxonomy.cdm.model.reference.Reference, java.lang.String)
*/
- public DescriptionElementSource addSource(String id, String idNamespace, Reference citation, String microCitation) {
+ public DescriptionElementSource addSource(OriginalSourceType type, String id, String idNamespace, Reference citation, String microCitation) {
if (id == null && idNamespace == null && citation == null && microCitation == null){
return null;
}
- DescriptionElementSource source = DescriptionElementSource.NewInstance(id, idNamespace, citation, microCitation);
+ DescriptionElementSource source = DescriptionElementSource.NewInstance(type, id, idNamespace, citation, microCitation);
+ addSource(source);
+ return source;
+ }
+
+
+ /* (non-Javadoc)
+ * @see eu.etaxonomy.cdm.model.common.ISourceable#addImportSource(java.lang.String, java.lang.String, eu.etaxonomy.cdm.model.reference.Reference, java.lang.String)
+ */
+ @Override
+ public DescriptionElementSource addImportSource(String id, String idNamespace, Reference<?> citation, String microCitation) {
+ if (id == null && idNamespace == null && citation == null && microCitation == null){
+ return null;
+ }
+ DescriptionElementSource source = DescriptionElementSource.NewInstance(OriginalSourceType.Import, id, idNamespace, citation, microCitation);
addSource(source);
return source;
}
- public void addSource(String id, String idNamespace, Reference citation, String microReference, TaxonNameBase nameUsedInSource, String originalNameString){
- DescriptionElementSource newSource = DescriptionElementSource.NewInstance(id, idNamespace, citation, microReference, nameUsedInSource, originalNameString);
+ /**
+ * Adds a {@link IOriginalSource source} to this description element.
+ * @param type the type of the source
+ * @param idInSource the id used in the source
+ * @param idNamespace the namespace for the id in the source
+ * @param citation the source as a {@link Reference reference}
+ * @param microReference the details (e.g. page number) in the reference
+ * @param nameUsedInSource the taxon name used in the source
+ * @param originalNameString the name as text used in the source
+ */
+ public void addSource(OriginalSourceType type, String idInSource, String idNamespace, Reference citation, String microReference, TaxonNameBase nameUsedInSource, String originalNameString){
+ DescriptionElementSource newSource = DescriptionElementSource.NewInstance(type, idInSource, idNamespace, citation, microReference, nameUsedInSource, originalNameString);
addSource(newSource);
}
import eu.etaxonomy.cdm.model.common.DescriptionElementSource;\r
import eu.etaxonomy.cdm.model.common.Language;\r
import eu.etaxonomy.cdm.model.common.LanguageString;\r
+import eu.etaxonomy.cdm.model.common.OriginalSourceType;\r
import eu.etaxonomy.cdm.model.common.TermVocabulary;\r
import eu.etaxonomy.cdm.model.media.Media;\r
import eu.etaxonomy.cdm.model.name.BotanicalName;\r
Media media = Media.NewInstance(null, 1000, "jpeg", null);\r
categorialData.addMedia(media);\r
\r
- DescriptionElementSource source = DescriptionElementSource.NewInstance();\r
+ DescriptionElementSource source = DescriptionElementSource.NewInstance(OriginalSourceType.Unknown);\r
Reference<?> citation = ReferenceFactory.newArticle();\r
citation.setTitle("Test");\r
source.setCitation(citation);\r
Marker marker = Marker.NewInstance(MarkerType.COMPLETE(), false);\r
Rights right = Rights.NewInstance("right", Language.DEFAULT());\r
Media media = Media.NewInstance();\r
- IdentifiableSource source = IdentifiableSource.NewInstance("12", "idNamespace");\r
+ IdentifiableSource source = IdentifiableSource.NewDataImportInstance("12", "idNamespace");\r
\r
specimen.setAccessionNumber(accessionNumber);\r
specimen.setCatalogNumber(catalogNumber);\r
specimen.addMedia(media);\r
\r
//Original ID\r
- IdentifiableSource source = IdentifiableSource.NewInstance();\r
String id = "22";\r
- source.setIdInSource(id);\r
+ IdentifiableSource source = IdentifiableSource.NewDataImportInstance(id);\r
specimen.addSource(source);\r
\r
FieldObservation fieldObservation = FieldObservation.NewInstance();\r
import org.apache.log4j.Logger;
+import eu.etaxonomy.cdm.database.update.ColumnAdder;
import eu.etaxonomy.cdm.database.update.ISchemaUpdater;
import eu.etaxonomy.cdm.database.update.ISchemaUpdaterStep;
import eu.etaxonomy.cdm.database.update.SchemaUpdaterBase;
List<ISchemaUpdaterStep> stepList = new ArrayList<ISchemaUpdaterStep>();
+ //TODO still needed? Does it throw exception if table does not exist?
//drop TypeDesignationBase_TaxonNameBase //from schemaUpdater 301_31
String stepName = "Drop duplicate TypeDesignation-TaxonName table";
String tableName = "TypeDesignationBase_TaxonNameBase";
- TableDroper.NewInstance(stepName, tableName, INCLUDE_AUDIT);
+ ISchemaUpdaterStep step = TableDroper.NewInstance(stepName, tableName, INCLUDE_AUDIT);
+ stepList.add(step);
+
+ //create original source type column
+ stepName = "Create original source type column";
+ tableName = "OriginalSourceBase";
+ String columnName = "type";
+ //TODO NOT NULL unclear
+ step = ColumnAdder.NewIntegerInstance(stepName, tableName, columnName, INCLUDE_AUDIT, true, null);
+ stepList.add(step);
+
+ //TODO update original source type
+
+ //create taxon node tree index
+ stepName = "Create taxon node tree index";
+ tableName = "TaxonNode";
+ columnName = "treeIndex";
+ //TODO NOT NULL unclear
+ step = ColumnAdder.NewIntegerInstance(stepName, tableName, columnName, INCLUDE_AUDIT, true, null);
+ stepList.add(step);
+
+ //TODO update tree index
+
import eu.etaxonomy.cdm.model.common.OrderedTermBase;\r
import eu.etaxonomy.cdm.model.common.OrderedTermVocabulary;\r
import eu.etaxonomy.cdm.model.common.OriginalSourceBase;\r
+import eu.etaxonomy.cdm.model.common.OriginalSourceType;\r
import eu.etaxonomy.cdm.model.common.RelationshipTermBase;\r
import eu.etaxonomy.cdm.model.common.Representation;\r
import eu.etaxonomy.cdm.model.common.TermVocabulary;\r
article1.addExtension(extension1);\r
article2.addExtension(extension2);\r
\r
- IdentifiableSource source1 = IdentifiableSource.NewInstance();\r
- IdentifiableSource source2 = IdentifiableSource.NewInstance();\r
+ IdentifiableSource source1 = IdentifiableSource.NewInstance(OriginalSourceType.Unknown);\r
+ IdentifiableSource source2 = IdentifiableSource.NewInstance(OriginalSourceType.Unknown);\r
\r
article1.addSource(source1);\r
article2.addSource(source2);\r
\r
TaxonDescription taxDesc = TaxonDescription.NewInstance(taxon1);\r
taxDesc.setTitleCache("taxDesc", true);\r
- taxDesc.addSource(null, null, article2, null);\r
+ taxDesc.addSource(OriginalSourceType.Unknown, null, null, article2, null);\r
\r
taxonDao.save(taxon1);\r
\r
import eu.etaxonomy.cdm.model.common.LSID;
import eu.etaxonomy.cdm.model.common.Language;
import eu.etaxonomy.cdm.model.common.LanguageString;
+import eu.etaxonomy.cdm.model.common.OriginalSourceType;
import eu.etaxonomy.cdm.model.common.TimePeriod;
import eu.etaxonomy.cdm.model.description.Distribution;
import eu.etaxonomy.cdm.model.description.PresenceTerm;
book.setUri(new URI("http://persitent.books.foo/myBook"));
book.setUuid(UUID.randomUUID());
book.setVolume("Volume 1");
- book.addSource(IdentifiableSource.NewInstance("http://persitent.IdentifiableSources.foo/1"));
+ book.addSource(IdentifiableSource.NewDataImportInstance("http://persitent.IdentifiableSources.foo/1"));
bookSection = ReferenceFactory.newBookSection();
bookSection.setInReference((Reference)book);
bookSection.setUri(new URI("http://persitent.books.foo/myBookSection"));
bookSection.setUuid(UUID.randomUUID());
bookSection.addCredit(Credit.NewInstance(authorTeam, "Credits to the authorTeam"));
- bookSection.addSource(IdentifiableSource.NewInstance("http://persitent.IdentifiableSources.foo/2"));
+ bookSection.addSource(IdentifiableSource.NewDataImportInstance("http://persitent.IdentifiableSources.foo/2"));
}
@Test
import eu.etaxonomy.cdm.model.agent.Person;\r
import eu.etaxonomy.cdm.model.common.Annotation;\r
import eu.etaxonomy.cdm.model.common.CdmBase;\r
+import eu.etaxonomy.cdm.model.common.IOriginalSource;\r
import eu.etaxonomy.cdm.model.common.IdentifiableSource;\r
import eu.etaxonomy.cdm.model.common.Language;\r
import eu.etaxonomy.cdm.model.common.LanguageString;\r
+import eu.etaxonomy.cdm.model.common.OriginalSourceBase;\r
+import eu.etaxonomy.cdm.model.common.OriginalSourceType;\r
import eu.etaxonomy.cdm.model.common.TimePeriod;\r
import eu.etaxonomy.cdm.model.description.DescriptionElementBase;\r
import eu.etaxonomy.cdm.model.description.Feature;\r
}\r
\r
/**\r
- * Creates an orignal source, adds it to the specimen and returns it.\r
+ * Creates an {@link IOriginalSource orignal source} or type , \r
+ * adds it to the specimen and returns it.\r
* \r
* @param reference\r
* @param microReference\r
* @param originalNameString\r
* @return\r
*/\r
- public IdentifiableSource addSource(Reference reference, String microReference, String originalNameString) {\r
- IdentifiableSource source = IdentifiableSource.NewInstance(reference, microReference);\r
+ public IdentifiableSource addSource(OriginalSourceType type, Reference reference, String microReference, String originalNameString) {\r
+ IdentifiableSource source = IdentifiableSource.NewInstance(type, null, null, reference, microReference);\r
source.setOriginalNameString(originalNameString);\r
addSource(source);\r
return source;\r
import eu.etaxonomy.cdm.model.common.IdentifiableSource;\r
import eu.etaxonomy.cdm.model.common.Language;\r
import eu.etaxonomy.cdm.model.common.OrderedTermVocabulary;\r
+import eu.etaxonomy.cdm.model.common.OriginalSourceType;\r
import eu.etaxonomy.cdm.model.common.RelationshipBase;\r
import eu.etaxonomy.cdm.model.common.RelationshipBase.Direction;\r
import eu.etaxonomy.cdm.model.common.UuidAndTitleCache;\r
String idInSourceSyn= getIdInSource(syn);\r
\r
if (idInSourceParent != null && idInSourceSyn != null) {\r
- IdentifiableSource originalSource = IdentifiableSource.NewInstance(idInSourceSyn + "; " + idInSourceParent, POTENTIAL_COMBINATION_NAMESPACE, sourceReference, null);\r
+ IdentifiableSource originalSource = IdentifiableSource.NewInstance(OriginalSourceType.Transformation, idInSourceSyn + "; " + idInSourceParent, POTENTIAL_COMBINATION_NAMESPACE, sourceReference, null);\r
inferredSynName.addSource(originalSource);\r
- originalSource = IdentifiableSource.NewInstance(idInSourceSyn + "; " + idInSourceParent, POTENTIAL_COMBINATION_NAMESPACE, sourceReference, null);\r
+ originalSource = IdentifiableSource.NewInstance(OriginalSourceType.Transformation, idInSourceSyn + "; " + idInSourceParent, POTENTIAL_COMBINATION_NAMESPACE, sourceReference, null);\r
potentialCombination.addSource(originalSource);\r
}\r
\r
\r
// Add the original source\r
if (idInSourceSyn != null && idInSourceTaxon != null) {\r
- IdentifiableSource originalSource = IdentifiableSource.NewInstance(idInSourceSyn + "; " + idInSourceTaxon, INFERRED_GENUS_NAMESPACE, sourceReference, null);\r
+ IdentifiableSource originalSource = IdentifiableSource.NewInstance(OriginalSourceType.Transformation, \r
+ idInSourceSyn + "; " + idInSourceTaxon, INFERRED_GENUS_NAMESPACE, sourceReference, null);\r
inferredGenus.addSource(originalSource);\r
\r
- originalSource = IdentifiableSource.NewInstance(idInSourceSyn + "; " + idInSourceTaxon, INFERRED_GENUS_NAMESPACE, sourceReference, null);\r
+ originalSource = IdentifiableSource.NewInstance(OriginalSourceType.Transformation, \r
+ idInSourceSyn + "; " + idInSourceTaxon, INFERRED_GENUS_NAMESPACE, sourceReference, null);\r
inferredSynName.addSource(originalSource);\r
originalSource = null;\r
\r
}else{\r
logger.error("There is an idInSource missing: " + idInSourceSyn + " of Synonym or " + idInSourceTaxon + " of Taxon");\r
- IdentifiableSource originalSource = IdentifiableSource.NewInstance(idInSourceSyn + "; " + idInSourceTaxon, INFERRED_GENUS_NAMESPACE, sourceReference, null);\r
+ IdentifiableSource originalSource = IdentifiableSource.NewInstance(OriginalSourceType.Transformation, \r
+ idInSourceSyn + "; " + idInSourceTaxon, INFERRED_GENUS_NAMESPACE, sourceReference, null);\r
inferredGenus.addSource(originalSource);\r
\r
- originalSource = IdentifiableSource.NewInstance(idInSourceSyn + "; " + idInSourceTaxon, INFERRED_GENUS_NAMESPACE, sourceReference, null);\r
+ originalSource = IdentifiableSource.NewInstance(OriginalSourceType.Transformation, \r
+ idInSourceSyn + "; " + idInSourceTaxon, INFERRED_GENUS_NAMESPACE, sourceReference, null);\r
inferredSynName.addSource(originalSource);\r
originalSource = null;\r
}\r
String taxonId = idInSourceTaxon+ "; " + idInSourceSyn;\r
\r
\r
- IdentifiableSource originalSource = IdentifiableSource.NewInstance(taxonId, INFERRED_EPITHET_NAMESPACE, sourceReference, null);\r
+ IdentifiableSource originalSource = IdentifiableSource.NewInstance(OriginalSourceType.Transformation, \r
+ taxonId, INFERRED_EPITHET_NAMESPACE, sourceReference, null);\r
\r
inferredEpithet.addSource(originalSource);\r
\r
- originalSource = IdentifiableSource.NewInstance(taxonId, INFERRED_EPITHET_NAMESPACE, sourceReference, null);\r
+ originalSource = IdentifiableSource.NewInstance(OriginalSourceType.Transformation, \r
+ taxonId, INFERRED_EPITHET_NAMESPACE, sourceReference, null);\r
\r
inferredSynName.addSource(originalSource);\r
\r
import eu.etaxonomy.cdm.model.common.IdentifiableSource;\r
import eu.etaxonomy.cdm.model.common.Language;\r
import eu.etaxonomy.cdm.model.common.LanguageString;\r
+import eu.etaxonomy.cdm.model.common.OriginalSourceType;\r
import eu.etaxonomy.cdm.model.common.TimePeriod;\r
import eu.etaxonomy.cdm.model.common.User;\r
import eu.etaxonomy.cdm.model.description.Feature;\r
\r
@Test\r
public void testAddGetRemoveSource() {\r
- Assert.assertEquals("No sources should exist yet", 0, specimenFacade\r
- .getSources().size());\r
- Reference reference = ReferenceFactory.newBook();\r
- IdentifiableSource source1 = specimenFacade.addSource(reference, "54",\r
- "myName");\r
- Assert.assertEquals("One source should exist now", 1, specimenFacade\r
- .getSources().size());\r
- IdentifiableSource source2 = IdentifiableSource.NewInstance("1",\r
- "myTable");\r
+ Assert.assertEquals("No sources should exist yet", 0, specimenFacade.getSources().size());\r
+ \r
+ Reference<?> reference = ReferenceFactory.newBook();\r
+ IdentifiableSource source1 = specimenFacade.addSource(OriginalSourceType.PrimaryTaxonomicSource, reference, "54", "myName");\r
+ Assert.assertEquals("One source should exist now", 1, specimenFacade.getSources().size());\r
+ IdentifiableSource source2 = IdentifiableSource.NewDataImportInstance("1", "myTable");\r
specimenFacade.addSource(source2);\r
- Assert.assertEquals("One source should exist now", 2, specimenFacade\r
- .getSources().size());\r
+ Assert.assertEquals("One source should exist now", 2, specimenFacade.getSources().size());\r
specimenFacade.removeSource(source1);\r
- Assert.assertEquals("One source should exist now", 1, specimenFacade\r
- .getSources().size());\r
+ Assert.assertEquals("One source should exist now", 1, specimenFacade.getSources().size());\r
Reference reference2 = ReferenceFactory.newJournal();\r
- IdentifiableSource sourceNotUsed = specimenFacade.addSource(reference2,\r
- null, null);\r
+ IdentifiableSource sourceNotUsed = specimenFacade.addSource(OriginalSourceType.PrimaryTaxonomicSource, reference2,null, null);\r
specimenFacade.removeSource(sourceNotUsed);\r
- Assert.assertEquals("One source should still exist", 1, specimenFacade\r
- .getSources().size());\r
- Assert.assertEquals("1", specimenFacade.getSources().iterator().next()\r
- .getIdInSource());\r
+ Assert.assertEquals("One source should still exist", 1, specimenFacade.getSources().size());\r
+ Assert.assertEquals("1", specimenFacade.getSources().iterator().next().getIdInSource());\r
specimenFacade.removeSource(source2);\r
- Assert.assertEquals("No sources should exist anymore", 0,\r
- specimenFacade.getSources().size());\r
+ Assert.assertEquals("No sources should exist anymore", 0,specimenFacade.getSources().size());\r
}\r
\r
@Test\r
public void testAddGetRemoveDuplicate() {\r
- Assert.assertEquals("No duplicates should be available yet", 0,\r
- specimenFacade.getDuplicates().size());\r
+ Assert.assertEquals("No duplicates should be available yet", 0,specimenFacade.getDuplicates().size());\r
Specimen newSpecimen1 = Specimen.NewInstance();\r
specimenFacade.addDuplicate(newSpecimen1);\r
- Assert.assertEquals("There should be 1 duplicate now", 1,\r
- specimenFacade.getDuplicates().size());\r
+ Assert.assertEquals("There should be 1 duplicate now", 1,specimenFacade.getDuplicates().size());\r
Specimen newSpecimen2 = Specimen.NewInstance();\r
DerivationEvent newDerivationEvent = DerivationEvent.NewInstance(DerivationEventType.ACCESSIONING());\r
newSpecimen2.setDerivedFrom(newDerivationEvent);\r
"The derivation event should be 'newDerivationEvent'",\r
newDerivationEvent, newSpecimen2.getDerivedFrom());\r
specimenFacade.addDuplicate(newSpecimen2);\r
- Assert.assertEquals("There should be 2 duplicates now", 2,\r
- specimenFacade.getDuplicates().size());\r
+ Assert.assertEquals("There should be 2 duplicates now", 2, specimenFacade.getDuplicates().size());\r
Assert.assertNotSame(\r
"The derivation event should not be 'newDerivationEvent' anymore",\r
newDerivationEvent, newSpecimen2.getDerivedFrom());\r
String catalogNumber = "1234890";\r
String accessionNumber = "345345";\r
String collectorsNumber = "lkjewe";\r
- TaxonNameBase storedUnder = BotanicalName.NewInstance(Rank.SPECIES());\r
+ TaxonNameBase<?,?> storedUnder = BotanicalName.NewInstance(Rank.SPECIES());\r
PreservationMethod method = PreservationMethod.NewInstance();\r
Specimen duplicateSpecimen = specimenFacade.addDuplicate(newCollection,\r
catalogNumber, accessionNumber, storedUnder,\r
TextData textData = TextData.NewInstance("Any text", lang, null);\r
textData.setFeature(feature);\r
taxonDescription.addElement(textData);\r
- DescriptionElementSource source = DescriptionElementSource.NewInstance(null, null, name1, "");\r
+ DescriptionElementSource source = DescriptionElementSource.NewPrimarySourceInstance(null, null, name1, "");\r
textData.addSource(source);\r
taxonService.saveOrUpdate(taxon);\r
nameService.save(name1);\r