package nl.ipo.cds.domain.metadata;
import java.util.List;
import javax.persistence.CascadeType;
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 nl.ipo.cds.validator.constraints.ValidCollection;
import org.hibernate.validator.constraints.NotBlank;
/**
* @author eshuism
* 13 jan 2012
*/
@Entity
public class Service extends BaseDomainObject{
public Service(String name, String description) {
super();
this.name = name;
this.description = description;
}
/**
* Default constructor for JPA
*/
Service(){
super();
}
@OneToOne(cascade=CascadeType.ALL)
@Valid
private ServiceIdentification serviceIdentification;
@OneToOne(cascade=CascadeType.ALL)
@Valid
private ServiceProvider serviceProvider;
@OneToOne(cascade=CascadeType.ALL)
@Valid
private ExtendedCapabilities extendedCapabilities;
@Column(unique=true, nullable=false, columnDefinition="text")
@NotBlank(message="Verplicht")
private String name;
@Column(nullable=false, columnDefinition="text")
@NotBlank(message="Verplicht")
private String description;
@ElementCollection(fetch=FetchType.EAGER)
@CollectionTable(name="service_datasetmetadata")
@OrderColumn(name="index")
@Valid
private List<DatasetMetadata> datasetMetadatas;
@ElementCollection(fetch=FetchType.EAGER)
@CollectionTable(name="spatial_datasetinfo")
@OrderColumn(name="index")
@Valid
private List<SpatialDatasetinfo> spatialDatasetinfos;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public ServiceIdentification getServiceIdentification() {
return serviceIdentification;
}
public void setServiceIdentification(ServiceIdentification serviceIdentification) {
this.serviceIdentification = serviceIdentification;
}
public List<DatasetMetadata> getDatasetMetadatas() {
return datasetMetadatas;
}
public void setDatasetMetadatas(List<DatasetMetadata> datasetMetadatas) {
this.datasetMetadatas = datasetMetadatas;
}
public ServiceProvider getServiceProvider() {
return serviceProvider;
}
public void setServiceProvider(ServiceProvider serviceProvider) {
this.serviceProvider = serviceProvider;
}
public String getDescription() {
return description;
}
public void setDescription(String description) {
this.description = description;
}
public ExtendedCapabilities getExtendedCapabilities() {
return extendedCapabilities;
}
public void setExtendedCapabilities(ExtendedCapabilities extendedCapabilities) {
this.extendedCapabilities = extendedCapabilities;
}
public List<SpatialDatasetinfo> getSpatialDatasetinfos() {
return spatialDatasetinfos;
}
public void setSpatialDatasetinfo(List<SpatialDatasetinfo> spatialDatasetinfos) {
this.spatialDatasetinfos = spatialDatasetinfos;
}
}