package swag49.model;
import javax.persistence.*;
import java.io.Serializable;
@Entity
public class TroopLevel extends LevelBase {
@Embeddable
public static class Id implements Serializable {
private static final long serialVersionUID = 1L;
private Integer level;
private Long troopTypeId;
public Id() {
super();
}
public Id(int level, long troopTypeId) {
this.level = level;
this.troopTypeId = troopTypeId;
}
@Override
public boolean equals(Object obj) {
if (obj != null && obj instanceof Id) {
return this.level.equals(((Id) obj).level)
&& this.troopTypeId.equals(((Id) obj).troopTypeId);
} else {
return false;
}
}
@Override
public int hashCode() {
return level.hashCode() + troopTypeId.hashCode();
}
public Integer getLevel() {
return level;
}
public void setLevel(Integer level) {
this.level = level;
}
public Long getTroopTypeId() {
return troopTypeId;
}
public void setTroopTypeId(Long troopTypeId) {
this.troopTypeId = troopTypeId;
}
}
@EmbeddedId
private Id id = new Id();
@ManyToOne(optional = false)
@JoinColumn(name = "troopTypeId", insertable = false, updatable = false)
private TroopType troopType;
@Column(nullable = false)
private Integer strength;
@Column(nullable = false)
private Integer speed;
@Column(nullable = false)
private Integer defense;
@Column(nullable = false)
private Integer cargo_capacity;
public Integer getCargo_capacity() {
return cargo_capacity;
}
public void setCargo_capacity(Integer cargo_capacity) {
this.cargo_capacity = cargo_capacity;
}
public TroopLevel() {
}
public TroopLevel(TroopType troopType, int level) {
this.setTroopType(troopType);
this.id.troopTypeId = troopType.getId();
this.id.level = level;
this.getTroopType().getLevels().add(this);
}
public Integer getDefense() {
return defense;
}
public Id getId() {
return id;
}
@Override
public Integer getLevel() {
return id.level;
}
public Integer getSpeed() {
return speed;
}
public Integer getStrength() {
return strength;
}
public TroopType getTroopType() {
return troopType;
}
public void setDefense(Integer defense) {
this.defense = defense;
}
public void setId(Id id) {
this.id = id;
}
public void setSpeed(Integer speed) {
this.speed = speed;
}
public void setStrength(Integer strength) {
this.strength = strength;
}
public void setTroopType(TroopType troopType) {
this.troopType = troopType;
}
}