package org.gcube.data_catalogue.grsf_publish_ws.utils.groups; import org.gcube.data_catalogue.grsf_publish_ws.custom_annotations.Group; import com.fasterxml.jackson.annotation.JsonCreator; import com.fasterxml.jackson.annotation.JsonValue; /** * Source Group and sub groups (for both Stock and Fishery) -> look at "Database Sources" * @author Costantino Perciante at ISTI-CNR (costantino.perciante@isti.cnr.it) */ @Group public enum Source { FIRMS("FIRMS"), RAM("RAM"), FISHSOURCE("FishSource"); private String subGroupNameOrig; private Source(String origName) { this.subGroupNameOrig = origName; } /** * Return the original name * @return */ public String getOrigName(){ return subGroupNameOrig; } @JsonValue public String onSerialize(){ return subGroupNameOrig.toLowerCase(); } @JsonCreator public static Source onDeserialize(String sourceString) { if(sourceString != null) { for(Source source : Source.values()) { if (source.toString().equalsIgnoreCase(sourceString.trim())) return source; } } return null; } @Override public String toString() { return getOrigName(); } }