use of org.powo.api.job.EmonocotTerm in project powop by RBGKew.
the class FieldSetMapper method mapField.
/**
* @param object the object to map onto
* @param fieldName the name of the field
* @param value the value to map
* @throws BindException if there is a problem mapping
* the value to the object
*/
@Override
public final void mapField(final Taxon object, final String fieldName, final String value) throws BindException {
super.mapField(object, fieldName, value);
Term term = TermFactory.findTerm(fieldName);
logger.debug("Mapping " + fieldName + " " + " " + value + " to " + object);
if (term instanceof DcTerm) {
DcTerm dcTerm = (DcTerm) term;
switch(dcTerm) {
case bibliographicCitation:
object.setBibliographicCitation(value);
break;
case references:
object.setUri(value);
break;
case source:
object.setSource(value);
break;
default:
break;
}
}
// DwcTerms
if (term instanceof DwcTerm) {
DwcTerm dwcTerm = (DwcTerm) term;
switch(dwcTerm) {
case acceptedNameUsageID:
if (value != null && value.trim().length() != 0) {
if (object.getAcceptedNameUsage() == null) {
Taxon taxon = new Taxon();
object.setAcceptedNameUsage(taxon);
}
object.getAcceptedNameUsage().setIdentifier(value);
}
break;
case acceptedNameUsage:
if (value != null && value.trim().length() != 0) {
if (object.getAcceptedNameUsage() == null) {
Taxon taxon = new Taxon();
object.setAcceptedNameUsage(taxon);
}
object.getAcceptedNameUsage().setScientificName(value);
}
break;
case class_:
object.setClazz(value);
break;
case family:
object.setFamily(value);
break;
case genus:
object.setGenus(value);
break;
case infraspecificEpithet:
object.setInfraspecificEpithet(value);
break;
case kingdom:
object.setKingdom(value);
break;
case nameAccordingToID:
// not mapped
break;
case namePublishedInID:
// not mapped
break;
case namePublishedIn:
object.setNamePublishedInString(value);
break;
case namePublishedInYear:
object.setNamePublishedInYear(conversionService.convert(value, Integer.class));
break;
case nomenclaturalCode:
object.setNomenclaturalCode(conversionService.convert(value, NomenclaturalCode.class));
break;
case nomenclaturalStatus:
object.setNomenclaturalStatus(conversionService.convert(value, NomenclaturalStatus.class));
break;
case order:
object.setOrder(value);
break;
case originalNameUsageID:
if (value != null && value.trim().length() != 0) {
if (object.getOriginalNameUsage() == null) {
Taxon taxon = new Taxon();
object.setOriginalNameUsage(taxon);
}
object.getOriginalNameUsage().setIdentifier(value);
}
break;
case originalNameUsage:
if (value != null && value.trim().length() != 0) {
if (object.getOriginalNameUsage() == null) {
Taxon taxon = new Taxon();
object.setOriginalNameUsage(taxon);
}
object.getOriginalNameUsage().setScientificName(value);
}
break;
case parentNameUsageID:
if (value != null && value.trim().length() != 0) {
if (object.getParentNameUsage() == null) {
Taxon taxon = new Taxon();
object.setParentNameUsage(taxon);
}
object.getParentNameUsage().setIdentifier(value);
}
break;
case parentNameUsage:
if (value != null && value.trim().length() != 0) {
if (object.getParentNameUsage() == null) {
Taxon taxon = new Taxon();
object.setParentNameUsage(taxon);
}
object.getParentNameUsage().setScientificName(value);
}
break;
case phylum:
object.setPhylum(value);
break;
case scientificName:
object.setScientificName(value);
break;
case scientificNameAuthorship:
object.setScientificNameAuthorship(value);
break;
case scientificNameID:
object.setScientificNameID(value);
break;
case specificEpithet:
object.setSpecificEpithet(value);
break;
case subgenus:
object.setSubgenus(value);
break;
case taxonID:
object.setIdentifier(value);
break;
case taxonomicStatus:
try {
object.setTaxonomicStatus(conversionService.convert(value, TaxonomicStatus.class));
} catch (ConversionException ce) {
logger.error(ce.getMessage());
}
break;
case taxonRank:
try {
object.setTaxonRank(conversionService.convert(value, Rank.class));
} catch (ConversionException ce) {
logger.error(ce.getMessage());
}
break;
case taxonRemarks:
object.setTaxonRemarks(value);
break;
case verbatimTaxonRank:
object.setVerbatimTaxonRank(value);
break;
default:
break;
}
}
// eMonocot Terms
if (term instanceof EmonocotTerm) {
EmonocotTerm eMonocotTerm = (EmonocotTerm) term;
switch(eMonocotTerm) {
case subfamily:
object.setSubfamily(value);
break;
case subtribe:
object.setSubtribe(value);
break;
case tribe:
object.setTribe(value);
break;
default:
break;
}
}
}
Aggregations