package swag.model;
import java.io.Serializable;
import javax.persistence.Column;
import javax.persistence.EmbeddedId;
import javax.persistence.Entity;
import javax.persistence.JoinColumn;
import javax.persistence.ManyToOne;
@Entity
public class Resource {
public class Id implements Serializable {
private static final long serialVersionUID = 1L;
private Long playerId;
private ResourceType resourceType;
public Id() {
}
public Id(long playerId, ResourceType resourceType) {
super();
this.playerId = playerId;
this.resourceType = resourceType;
}
@Override
public int hashCode() {
return playerId.hashCode() + resourceType.hashCode();
}
@Override
public boolean equals(Object obj) {
if (obj != null && obj instanceof Id) {
return this.playerId.equals(((Id) obj).playerId)
&& this.resourceType.equals(((Id) obj).playerId);
} else {
return false;
}
}
}
@EmbeddedId
private Id id = new Id();
@ManyToOne(optional = false)
@JoinColumn(name = "playerId", insertable = false, updatable = false)
private Player player;
@Column(nullable = false)
private Integer amount;
public Resource() {
}
public Resource(Player player, ResourceType resourceType, int amount) {
this.player = player;
this.amount = amount;
this.id.playerId = player.getId();
this.id.resourceType = resourceType;
player.getResources().add(this);
}
public Id getId() {
return id;
}
public Player getPlayer() {
return player;
}
public ResourceType getResourceType() {
return id.resourceType;
}
public Integer getAmount() {
return amount;
}
public void setAmount(Integer amount) {
this.amount = amount;
}
}