package nl.ipo.cds.domain.metadata; import java.util.ArrayList; 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.OrderColumn; /** * @author eshuism * 13 jan 2012 * XML-Schema: ServiceProvider */ @Entity public class ServiceProvider extends BaseDomainObject { public ServiceProvider() { super(); } public ServiceProvider(String providerName) { super(); this.providerName = providerName; } @Column(nullable=true, columnDefinition="text") // Is Mandatory for WFS, but Optional for WMS private String providerName; @Column(nullable=true, columnDefinition="text") @org.hibernate.validator.constraints.URL(message="Onjuiste url") private String providerSite; //XML-schema: ResponsiblePartySubsetType @Column(nullable=true, columnDefinition="text") private String individualName; @Column(nullable=true, columnDefinition="text") private String positionName; @Column(nullable=true, columnDefinition="text") private String organizationName; //XML-schema: ResponsiblePartyType @Column(nullable=true, columnDefinition="text") // Strange: The WFS uses "ResponsiblePartySubsetType" where role is optional but there is also a ResponsiblePartyType where role is mandatory private String role; //XML-Schema: ContactType @ElementCollection(fetch=FetchType.EAGER) @CollectionTable(name="sp_phonenumber") @Column(name="phonenumber", columnDefinition="text") @OrderColumn(name="index") private List<String> phoneNumbers = new ArrayList<String>(); @ElementCollection(fetch=FetchType.EAGER) @CollectionTable(name="sp_faxnumber") @Column(name="faxnumber", columnDefinition="text") @OrderColumn(name="index") private List<String> faxNumbers = new ArrayList<String>(); @Column(nullable=true, columnDefinition="text") @org.hibernate.validator.constraints.URL(message="Onjuiste url") private String onlineResource; @Column(nullable=true, columnDefinition="text") private String hoursOfService; @Column(nullable=true, columnDefinition="text") private String contactInstructions; //XML-schema: AddressType @ElementCollection(fetch=FetchType.EAGER) @CollectionTable(name="sp_deliverypoint") @Column(name="deliverypoint", columnDefinition="text") @OrderColumn(name="index") private List<String> deliveryPoints; @Column(nullable=true, columnDefinition="text") private String city; @Column(nullable=true, columnDefinition="text") private String administrativeArea; @Column(nullable=true, columnDefinition="text") private String postalCode; @Column(nullable=true, columnDefinition="text") private String country; @ElementCollection(fetch=FetchType.EAGER) @CollectionTable(name="sp_emailaddress") @Column(name="emailaddress", columnDefinition="text") @OrderColumn(name="index") private List<String> emailAddresses = new ArrayList<String>(); public String getProviderName() { return providerName; } public void setProviderName(String providerName) { this.providerName = providerName; } public String getProviderSite() { return providerSite; } public void setProviderSite(String providerSite) { this.providerSite = providerSite; } public String getIndividualName() { return individualName; } public void setIndividualName(String individualName) { this.individualName = individualName; } public String getPositionName() { return positionName; } public void setPositionName(String positionName) { this.positionName = positionName; } public String getOrganizationName() { return organizationName; } public void setOrganizationName(String organizationName) { this.organizationName = organizationName; } public String getRole() { return role; } public void setRole(String role) { this.role = role; } public String getHoursOfService() { return hoursOfService; } public void setHoursOfService(String hoursOfService) { this.hoursOfService = hoursOfService; } public String getContactInstructions() { return contactInstructions; } public void setContactInstructions(String contactInstructions) { this.contactInstructions = contactInstructions; } public List<String> getDeliveryPoints() { return deliveryPoints; } public void setDeliveryPoints(List<String> deliveryPoints) { this.deliveryPoints = deliveryPoints; } public String getCity() { return city; } public void setCity(String city) { this.city = city; } public String getAdministrativeArea() { return administrativeArea; } public void setAdministrativeArea(String administrativeArea) { this.administrativeArea = administrativeArea; } public String getPostalCode() { return postalCode; } public void setPostalCode(String postalCode) { this.postalCode = postalCode; } public String getCountry() { return country; } public void setCountry(String country) { this.country = country; } public List<String> getPhoneNumbers() { return phoneNumbers; } public void setPhoneNumbers(List<String> phoneNumbers) { this.phoneNumbers = phoneNumbers; } public List<String> getFaxNumbers() { return faxNumbers; } public void setFaxNumbers(List<String> faxNumbers) { this.faxNumbers = faxNumbers; } public List<String> getEmailAddresses() { return emailAddresses; } public void setEmailAddresses(List<String> emailAddresses) { this.emailAddresses = emailAddresses; } public String getEmail() { return this.getEmailAddresses().get(0); } public void setEmail(String email) { this.getEmailAddresses().add(email); } public String getPhone() { return this.getPhoneNumbers().get(0); } public void setPhone(String phone) { this.getPhoneNumbers().add(phone); } public String getFax() { return this.getFaxNumbers().get(0); } public void setFax(String fax) { this.getFaxNumbers().add(fax); } public String getOnlineResource() { return onlineResource; } public void setOnlineResource(String onlineResource) { this.onlineResource = onlineResource; } }