package org.gcube.data_catalogue.grsf_publish_ws.json.input; import java.util.HashMap; import java.util.List; import java.util.Map; import javax.validation.constraints.NotNull; import javax.validation.constraints.Size; import org.gcube.data_catalogue.grsf_publish_ws.custom_annotations.CustomField; import org.gcube.data_catalogue.grsf_publish_ws.custom_annotations.Group; import org.gcube.data_catalogue.grsf_publish_ws.custom_annotations.Tag; import org.gcube.data_catalogue.grsf_publish_ws.utils.groups.Type; import com.fasterxml.jackson.annotation.JsonIgnoreProperties; import com.fasterxml.jackson.annotation.JsonProperty; /** * Information that both Stock and Fishery must contain * @author Costantino Perciante at ISTI-CNR (costantino.perciante@isti.cnr.it) */ @JsonIgnoreProperties(value = {"author", "author_contact"}, ignoreUnknown = true) // ignore in serialization/deserialization public class Common { @JsonProperty("description") private String description; @JsonProperty("license_id") private String license; // filled automatically by the service @JsonProperty("author") private String author; @JsonProperty("version") private Long version; // filled automatically by the service @JsonProperty("author_contact") private String authorContact; @JsonProperty("maintainer") private String maintainer; @JsonProperty("maintainer_contact") private String maintainerContact; @JsonProperty("catches_or_landings") @CustomField(key="Catches or landings") private String catchesOrLandings; @JsonProperty("database_sources") @NotNull(message="database_source cannot be null") @Size(min=1, message="database_source cannot be empty") private List databaseSources; @JsonProperty("source_of_information") @NotNull(message="source_of_information cannot be null") @Size(min=1, message="source_of_information cannot be empty") private List sourceOfInformation; @JsonProperty("data_owner") @CustomField(key="Data owner") private String dataOwner; @JsonProperty("type") @Tag @Group @CustomField(key="Type") private Type type; @JsonProperty("extras") private Map extras = new HashMap<>(); public Common() { super(); } /** * @param description * @param license * @param author * @param version * @param authorContact * @param maintainer * @param maintainerContact * @param catchesOrLandings * @param databaseSources * @param sourceOfInformation * @param dataOwner * @param type * @param extras */ public Common(String description, String license, String author, Long version, String authorContact, String maintainer, String maintainerContact, String catchesOrLandings, List databaseSources, List sourceOfInformation, String dataOwner, Type type, Map extras) { super(); this.description = description; this.license = license; this.author = author; this.version = version; this.authorContact = authorContact; this.maintainer = maintainer; this.maintainerContact = maintainerContact; this.catchesOrLandings = catchesOrLandings; this.databaseSources = databaseSources; this.sourceOfInformation = sourceOfInformation; this.dataOwner = dataOwner; this.type = type; this.extras = extras; } public String getDescription() { return description; } public void setDescription(String description) { this.description = description; } public String getLicense() { return license; } public void setLicense(String license) { this.license = license; } public String getAuthor() { return author; } public void setAuthor(String author) { this.author = author; } public Long getVersion() { return version; } public void setVersion(Long version) { this.version = version; } public String getAuthorContact() { return authorContact; } public void setAuthorContact(String authorContact) { this.authorContact = authorContact; } public String getMaintainer() { return maintainer; } public void setMaintainer(String maintainer) { this.maintainer = maintainer; } public String getMaintainerContact() { return maintainerContact; } public void setMaintainerContact(String maintainerContact) { this.maintainerContact = maintainerContact; } public String getCatchesOrLandings() { return catchesOrLandings; } public void setCatchesOrLandings(String catchesOrLandings) { this.catchesOrLandings = catchesOrLandings; } public List getDatabaseSources() { return databaseSources; } public void setDatabaseSources(List databaseSources) { this.databaseSources = databaseSources; } public List getSourceOfInformation() { return sourceOfInformation; } public void setSourceOfInformation(List sourceOfInformation) { this.sourceOfInformation = sourceOfInformation; } public String getDataOwner() { return dataOwner; } public void setDataOwner(String dataOwner) { this.dataOwner = dataOwner; } public Type getType() { return type; } public void setType(Type type) { this.type = type; } public void setExtras(Map extras) { this.extras = extras; } public Map getExtras() { return extras; } @Override public String toString() { return "Common [description=" + description + ", license=" + license + ", author=" + author + ", version=" + version + ", authorContact=" + authorContact + ", maintainer=" + maintainer + ", maintainerContact=" + maintainerContact + ", catchesOrLandings=" + catchesOrLandings + ", databaseSources=" + databaseSources + ", sourceOfInformation=" + sourceOfInformation + ", dataOwner=" + dataOwner + ", type=" + type + ", extras=" + extras + "]"; } }