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.Valid; import javax.validation.constraints.NotNull; import javax.validation.constraints.Size; import org.gcube.data_catalogue.grsf_publish_ws.custom_annotations.CkanResource; 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.Status; 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", "extras"}, 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") @Valid @CkanResource private Resource catchesOrLandings; @JsonProperty("database_sources") @NotNull(message="database_source cannot be null") @Size(min=1, message="database_source cannot be empty") @Valid 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") @CkanResource @Valid private List sourceOfInformation; @JsonProperty("data_owner") @CustomField(key="Data owner") private String dataOwner; @JsonProperty("type") @Tag @Group @CustomField(key="Type") private Type type; @JsonProperty("short_title") @CustomField(key="Short Title") @NotNull private String shortTitle; @JsonProperty("uuid_knowledge_base") @CustomField(key="UUID Knowledge Base") @NotNull @Size(min=1, message="uuid_knowledge_base cannot be empty") private String uuid; @JsonProperty("traceability_flag") @CustomField(key="Traceability Flag") @NotNull private boolean traceabilityFlag; @JsonProperty("extras") private Map> extras = new HashMap<>(); @JsonProperty("status") @CustomField(key="Status") @Group @Tag @NotNull(message="status cannot be null") private Status status; 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 shortTitle * @param uuid * @param traceabilityFlag * @param extras */ public Common(String description, String license, String author, Long version, String authorContact, String maintainer, String maintainerContact, Resource catchesOrLandings, List databaseSources, List sourceOfInformation, String dataOwner, Type type, String shortTitle, String uuid, boolean traceabilityFlag, 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.shortTitle = shortTitle; this.uuid = uuid; this.traceabilityFlag = traceabilityFlag; 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 Resource getCatchesOrLandings() { return catchesOrLandings; } public void setCatchesOrLandings(Resource 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; } public String getShortTitle() { return shortTitle; } public void setShortTitle(String shortTitle) { this.shortTitle = shortTitle; } public String getUuid() { return uuid; } public void setUuid(String uuid) { this.uuid = uuid; } public boolean isTraceabilityFlag() { return traceabilityFlag; } public void setTraceabilityFlag(boolean traceabilityFlag) { this.traceabilityFlag = traceabilityFlag; } public Status getStatus() { return status; } public void setStatus(Status status) { this.status = status; } @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 + ", shortTitle=" + shortTitle + ", uuid=" + uuid + ", traceabilityFlag=" + traceabilityFlag + ", extras=" + extras + "]"; } }