/*
* This is eMonocot, a global online biodiversity information resource.
*
* Copyright © 2011–2015 The Board of Trustees of the Royal Botanic Gardens, Kew and The University of Oxford
*
* eMonocot is free software: you can redistribute it and/or modify it under the terms of the
* GNU Affero General Public License as published by the Free Software Foundation, either version 3
* of the License, or (at your option) any later version.
*
* eMonocot is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even
* the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Affero General Public License for more details.
*
* The complete text of the GNU Affero General Public License is in the source repository as the file
* ‘COPYING’. It is also available from <http://www.gnu.org/licenses/>.
*/
package org.emonocot.model.convert;
import org.gbif.ecat.voc.NomenclaturalStatus;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.core.convert.converter.Converter;
public class NomenclaturalStatusConverter implements Converter<String, NomenclaturalStatus> {
Logger logger = LoggerFactory.getLogger(NomenclaturalStatusConverter.class);
@Override
public NomenclaturalStatus convert(String source) {
logger.info("Converting " + source);
if(source == null || source.trim().isEmpty()) {
logger.info("Returning null");
return null;
} else {
switch(source.toLowerCase()) {
case "abortivum":
return NomenclaturalStatus.Nomen_Abortivum;
case "alternativum":
return NomenclaturalStatus.Alternative;
case "ambigua":
return NomenclaturalStatus.Ambiguous;
case "available":
return NomenclaturalStatus.Available;
case "combinatio":
return NomenclaturalStatus.New_Combination;
case "confusum":
return NomenclaturalStatus.Confused;
case "conservandum":
return NomenclaturalStatus.Conserved;
case "conservandumProp":
return NomenclaturalStatus.Conserved_Proposed;
case "correctum":
return null;
case "dubimum":
return NomenclaturalStatus.Doubtful;
case "illegitimum":
return NomenclaturalStatus.Illegitimate;
case "invalidum":
return NomenclaturalStatus.Invalid;
case "legitimate":
return NomenclaturalStatus.Legitimate;
case "negatum":
return NomenclaturalStatus.Denied;
case "novum":
return NomenclaturalStatus.Novum;
case "nudum":
return NomenclaturalStatus.Nudum;
case "nullum":
return null;
case "oblitum":
return NomenclaturalStatus.Forgotten;
case "oppressa":
return NomenclaturalStatus.Opus_Utique_Oppressa;
case "orthographia":
return NomenclaturalStatus.Orthographic_Variant;
case "protectum":
return NomenclaturalStatus.Protected;
case "provisorium":
return NomenclaturalStatus.Provisional;
case "rejiciendum":
return NomenclaturalStatus.Rejected;
case "rejiciendumProp":
return NomenclaturalStatus.Rejected_Proposed;
case "rejiciendumUtique":
return NomenclaturalStatus.Utique_Rejected;
case "rejiciendumUtiqueProp":
return NomenclaturalStatus.Utique_Rejected_Proposed;
case "subnudum":
return NomenclaturalStatus.Subnudum;
case "superfluum":
return NomenclaturalStatus.Superfluous;
case "valid":
return NomenclaturalStatus.Valid;
default:
return NomenclaturalStatus.valueOf(source);
}
}
}
}