package swag.model;
import java.io.Serializable;
import javax.persistence.Embeddable;
import javax.persistence.Embedded;
import javax.persistence.EmbeddedId;
import javax.persistence.Entity;
import javax.persistence.JoinColumn;
import javax.persistence.ManyToOne;
@Entity
public class Square {
@Embeddable
public static class Id implements Serializable {
private static final long serialVersionUID = 1L;
private Long baseId;
private Integer position;
public Id() {
super();
}
public Id(long baseId, int position) {
super();
this.baseId = baseId;
this.position = position;
}
@Override
public int hashCode() {
return baseId.hashCode() + position.hashCode();
}
@Override
public boolean equals(Object obj) {
if (obj != null && obj instanceof Id) {
return this.position.equals(((Id) obj).position)
&& this.position.equals(((Id) obj).position);
} else {
return false;
}
}
}
@EmbeddedId
private Id id = new Id();
@ManyToOne(optional = false)
@JoinColumn(name = "baseId", insertable = false, updatable = false)
private Base base;
@Embedded
private Building building;
public Square() {
}
public Square(Base base, int position) {
this.base = base;
this.id.baseId = base.getId();
this.id.position = position;
base.getConsistsOf().add(this);
}
public Id getId() {
return id;
}
public Base getBase() {
return base;
}
public void setBuilding(Building building) {
this.building = building;
}
public Building getBuilding() {
return building;
}
}