/**
*
*/
package nl.ipo.cds.domain.metadata;
import java.util.List;
import javax.persistence.CollectionTable;
import javax.persistence.Column;
import javax.persistence.ElementCollection;
import javax.persistence.Entity;
import javax.persistence.FetchType;
import javax.persistence.OneToOne;
import javax.persistence.OrderColumn;
import javax.validation.Valid;
import org.hibernate.validator.constraints.NotBlank;
/**
* @author eshuism
* 16 jan 2012
* XML-Schema: ServiceIdentification
*/
@Entity
public class ServiceIdentification extends BaseDomainObject{
//XML-Schema: DescriptionType
@Column(nullable=true, columnDefinition="text")
private String title;
@Column(nullable=false, name="abstract", columnDefinition="text")
private String _abstract;
@ElementCollection(fetch=FetchType.EAGER)
@CollectionTable(name="si_keyword")
@OrderColumn(name="index")
@Valid
private List<Keyword> keywords; // Optional
//XML-Schema: ServiceIdentification
/**
* service type = WMS, WFS
*/
@Column(nullable=false, columnDefinition="text")
@NotBlank(message="Verplicht")
private String serviceType;
/**
* servicePath is the part between host and query of the service url<br>
* e.g. 'ProtectedSites/services'
*/
@Column(nullable=false, columnDefinition="text")
@NotBlank(message="Verplicht")
private String servicePath;
@ElementCollection(fetch=FetchType.EAGER)
@CollectionTable(name="si_version")
@Column(name="version", columnDefinition="text")
@OrderColumn(name="index")
private List<String> versions; // Must be at least one
@Column(nullable=true, columnDefinition="text")
private String fees;
@ElementCollection(fetch=FetchType.EAGER)
@CollectionTable(name="si_accessconstraint")
@Column(name="accessconstraint", columnDefinition="text")
@OrderColumn(name="index")
private List<String> accessContraints; // Optional
public String getTitle() {
return title;
}
public void setTitle(String title) {
this.title = title;
}
@NotBlank(message="Verplicht")
public String getAbstract() {
return _abstract;
}
public void setAbstract(String _abstract) {
this._abstract = _abstract;
}
public List<Keyword> getKeywords() {
return keywords;
}
public void setKeywords(List<Keyword> keywords) {
this.keywords = keywords;
}
public String getServiceType() {
return serviceType;
}
public void setServiceType(String serviceType) {
this.serviceType = serviceType;
}
public String getServicePath() {
return servicePath;
}
public void setServicePath(String servicePath) {
this.servicePath = servicePath;
}
public List<String> getVersions() {
return versions;
}
public void setVersions(List<String> versions) {
this.versions = versions;
}
public String getFees() {
return fees;
}
public void setFees(String fees) {
this.fees = fees;
}
public List<String> getAccessContraints() {
return accessContraints;
}
public void setAccessContraints(List<String> accessContraints) {
this.accessContraints = accessContraints;
}
}