package no.niths.domain.signaling; import java.util.ArrayList; import java.util.List; import javax.persistence.Column; import javax.persistence.Entity; import javax.persistence.FetchType; import javax.persistence.GeneratedValue; import javax.persistence.GenerationType; import javax.persistence.Id; import javax.persistence.JoinColumn; import javax.persistence.JoinTable; import javax.persistence.OneToMany; import javax.persistence.Table; import javax.persistence.Transient; import javax.validation.constraints.Pattern; import javax.xml.bind.annotation.XmlRootElement; import javax.xml.bind.annotation.XmlTransient; import no.niths.common.constants.DomainConstantNames; import no.niths.common.constants.ValidationConstants; import no.niths.domain.Domain; import org.codehaus.jackson.annotate.JsonIgnore; /** * Domain class for AccessPoint * * <p> * AccessPoint has these variables: * address = example 00:21:55:60:e7:d0 (has to be unique) * </p> * <p> * And relations too: * AccessField * </p> */ @XmlRootElement(name = "accesspoint") @Entity @Table(name = DomainConstantNames.ACCESS_POINTS) public class AccessPoint implements Domain { @Transient private static final long serialVersionUID = 8118983219932188402L; @Id @GeneratedValue(strategy = GenerationType.IDENTITY) private Long id; @Column(unique = true) @Pattern( regexp = ValidationConstants.ACCESS_POINT_ADDRESS, message = "Invalid name (should be 2 - 80 alphanumeric letters)") private String address; @OneToMany(fetch = FetchType.LAZY) @JoinTable(name = "accessfields_accesspoints", joinColumns = @JoinColumn(name = "accesspoint_id"), inverseJoinColumns = @JoinColumn(name = "accessfield_id")) private List<AccessField> accessFields = new ArrayList<AccessField>(); public AccessPoint() { this(null); setAccessFields(null); } public AccessPoint(String address) { this.address = address; } public void setId(Long id) { this.id = id; } public Long getId() { return id; } public void setAddress(String address) { this.address = address; } public String getAddress() { return address; } @JsonIgnore @XmlTransient public List<AccessField> getAccessFields() { return accessFields; } public void setAccessFields(List<AccessField> accessFields) { this.accessFields = accessFields; } @Override public boolean equals(Object obj) { if (obj == this) return true; if (!(obj instanceof AccessPoint)) return false; AccessPoint ap = (AccessPoint) obj; return (ap.getId() == getId()); } }