package fi.otavanopisto.pyramus.domainmodel.base;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.Lob;
import javax.persistence.TableGenerator;
import javax.persistence.Transient;
import org.apache.commons.lang3.StringUtils;
import org.hibernate.validator.constraints.Email;
@Entity
public class BillingDetails {
public Long getId() {
return id;
}
public void setCompanyIdentifier(String companyIdentifier) {
this.companyIdentifier = companyIdentifier;
}
public String getCompanyIdentifier() {
return companyIdentifier;
}
public void setReferenceNumber(String referenceNumber) {
this.referenceNumber = referenceNumber;
}
public String getReferenceNumber() {
return referenceNumber;
}
public void setPersonName(String personName) {
this.personName = personName;
}
public String getPersonName() {
return personName;
}
public void setCompanyName(String companyName) {
this.companyName = companyName;
}
public String getCompanyName() {
return companyName;
}
public void setStreetAddress1(String streetAddress1) {
this.streetAddress1 = streetAddress1;
}
public String getStreetAddress1() {
return streetAddress1;
}
public void setStreetAddress2(String streetAddress2) {
this.streetAddress2 = streetAddress2;
}
public String getStreetAddress2() {
return streetAddress2;
}
public void setPostalCode(String postalCode) {
this.postalCode = postalCode;
}
public String getPostalCode() {
return postalCode;
}
public void setCity(String city) {
this.city = city;
}
public String getCity() {
return city;
}
public void setRegion(String region) {
this.region = region;
}
public String getRegion() {
return region;
}
public void setCountry(String country) {
this.country = country;
}
public String getCountry() {
return country;
}
public void setPhoneNumber(String phoneNumber) {
this.phoneNumber = phoneNumber;
}
public String getPhoneNumber() {
return phoneNumber;
}
public void setEmailAddress(String emailAddress) {
this.emailAddress = emailAddress;
}
public String getEmailAddress() {
return emailAddress;
}
public void setElectronicBillingAddress(String electronicBillingAddress) {
this.electronicBillingAddress = electronicBillingAddress;
}
public String getElectronicBillingAddress() {
return electronicBillingAddress;
}
public String getNotes() {
return notes;
}
public void setNotes(String notes) {
this.notes = notes;
}
@Transient
public String toLine() {
StringBuilder result = new StringBuilder();
if (StringUtils.isNotBlank(getPersonName())) {
result.append(getPersonName());
}
if (StringUtils.isNotBlank(getCompanyName())) {
if (result.length() > 0) {
result.append(" / ");
}
result.append(getCompanyName());
}
if (StringUtils.isNotBlank(getStreetAddress1())) {
if (result.length() > 0) {
result.append(", ");
}
result.append(getStreetAddress1());
}
if (StringUtils.isNotBlank(getPostalCode())) {
if (result.length() > 0) {
result.append(" ");
}
result.append(getPostalCode());
}
if (StringUtils.isNotBlank(getCity())) {
if (result.length() > 0) {
result.append(" ");
}
result.append(getCity());
}
if (StringUtils.isNotBlank(getCountry())) {
if (result.length() > 0) {
result.append(", ");
}
result.append(getCountry());
}
return result.toString();
}
@Id
@GeneratedValue(strategy=GenerationType.TABLE, generator="BillingDetails")
@TableGenerator(name="BillingDetails", allocationSize=1, table = "hibernate_sequences", pkColumnName = "sequence_name", valueColumnName = "sequence_next_hi_value")
private Long id;
private String personName;
private String companyName;
private String streetAddress1;
private String streetAddress2;
private String postalCode;
private String city;
private String region;
private String country;
private String phoneNumber;
@Email
private String emailAddress;
private String companyIdentifier;
private String referenceNumber;
@Lob
private String electronicBillingAddress;
@Lob
private String notes;
}