Search in sources :

Example 1 with EmonocotTerm

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;
        }
    }
}
Also used : NomenclaturalCode(org.gbif.ecat.voc.NomenclaturalCode) ConversionException(org.springframework.core.convert.ConversionException) NomenclaturalStatus(org.gbif.ecat.voc.NomenclaturalStatus) TaxonomicStatus(org.powo.model.constants.TaxonomicStatus) Taxon(org.powo.model.Taxon) Rank(org.gbif.ecat.voc.Rank) EmonocotTerm(org.powo.api.job.EmonocotTerm) DcTerm(org.gbif.dwc.terms.DcTerm) DwcTerm(org.gbif.dwc.terms.DwcTerm) Term(org.gbif.dwc.terms.Term) EmonocotTerm(org.powo.api.job.EmonocotTerm) DcTerm(org.gbif.dwc.terms.DcTerm) DwcTerm(org.gbif.dwc.terms.DwcTerm)

Aggregations

DcTerm (org.gbif.dwc.terms.DcTerm)1 DwcTerm (org.gbif.dwc.terms.DwcTerm)1 Term (org.gbif.dwc.terms.Term)1 NomenclaturalCode (org.gbif.ecat.voc.NomenclaturalCode)1 NomenclaturalStatus (org.gbif.ecat.voc.NomenclaturalStatus)1 Rank (org.gbif.ecat.voc.Rank)1 EmonocotTerm (org.powo.api.job.EmonocotTerm)1 Taxon (org.powo.model.Taxon)1 TaxonomicStatus (org.powo.model.constants.TaxonomicStatus)1 ConversionException (org.springframework.core.convert.ConversionException)1