package com.chughes.dip.game; import java.io.Serializable; import java.util.HashMap; import java.util.List; import java.util.Map; import javax.persistence.ElementCollection; import javax.persistence.Entity; import javax.persistence.FetchType; import javax.persistence.GeneratedValue; import javax.persistence.GenerationType; import javax.persistence.Id; import javax.persistence.ManyToMany; import javax.persistence.ManyToOne; import javax.persistence.Transient; import org.hibernate.annotations.Cache; import org.hibernate.annotations.CacheConcurrencyStrategy; import com.chughes.dip.chat.Message; import com.chughes.dip.user.UserEntity; @Entity @Cache(usage = CacheConcurrencyStrategy.READ_WRITE) public class UserGameEntity implements Serializable { /** * */ private static final long serialVersionUID = 8784807600063349365L; private List<Message> messages; private Map<Integer,Long> readlog = new HashMap<Integer,Long>(); private UserEntity user; private GameEntity game; private String power; private int id; private boolean ready; private boolean orderable; private boolean unread; private float victory_share = -1; private int supply_centers; private int missed; private String color; @Id @GeneratedValue(strategy=GenerationType.AUTO) public int getId() { return id; } public void setId(int id) { this.id = id; } @ManyToOne(fetch = FetchType.LAZY, optional = false) public UserEntity getUser() { return user; } public void setUser(UserEntity user) { this.user = user; } @ManyToOne(optional = false) public GameEntity getGame() { return game; } public void setGame(GameEntity game) { this.game = game; } public String getPower() { return power; } public void setPower(String power) { this.power = power; } @ManyToMany public List<Message> getMessages() { return messages; } public void setMessages(List<Message> messages) { this.messages = messages; } public boolean isReady() { return ready; } public void setReady(boolean ready) { this.ready = ready; } public float getVictory_share() { return victory_share; } public void setVictory_share(float victory_share) { this.victory_share = victory_share; } @Override public int hashCode() { final int prime = 31; int result = 1; result = prime * result + ((game == null) ? 0 : game.hashCode()); result = prime * result + id; result = prime * result + ((power == null) ? 0 : power.hashCode()); return result; } @Override public boolean equals(Object obj) { if (this == obj) return true; if (obj == null) return false; if (getClass() != obj.getClass()) return false; UserGameEntity other = (UserGameEntity) obj; if (game == null) { if (other.game != null) return false; } else if (!game.equals(other.game)) return false; if (id != other.id) return false; if (power == null) { if (other.power != null) return false; } else if (!power.equals(other.power)) return false; return true; } public int getSupply_centers() { return supply_centers; } public void setSupply_centers(int supply_centers) { this.supply_centers = supply_centers; } public int getMissed() { return missed; } public void setMissed(int missed) { this.missed = missed; } @ElementCollection public Map<Integer, Long> getReadlog() { return readlog; } public void setReadlog(Map<Integer, Long> readlog) { this.readlog = readlog; } public boolean isOrderable() { return orderable; } public void setOrderable(boolean orderable) { this.orderable = orderable; } @Transient public String getColor() { return color; } public void setColor(String color) { this.color = color; } public boolean isUnread() { return unread; } public void setUnread(boolean unread) { this.unread = unread; } }