package semtex.archery.data.entities; import java.io.Serializable; import java.util.UUID; import semtex.archery.data.dao.TargetHitDao; import com.j256.ormlite.field.DatabaseField; import com.j256.ormlite.table.DatabaseTable; @DatabaseTable(tableName = "target_hit", daoClass = TargetHitDao.class) public class TargetHit implements Serializable, Cloneable { public static final String TARGET = "target"; public static final String USER_VISIT = "user"; @DatabaseField(generatedId = true) private UUID id = UUID.randomUUID(); @DatabaseField private Integer points; @DatabaseField private Integer nrOfArrows; @DatabaseField(foreign = true, columnName = USER_VISIT) private UserVisit user; @DatabaseField(foreign = true, columnName = TARGET) private Target target; public TargetHit() { } public TargetHit(final UserVisit uv, final Target target) { this.user = uv; this.target = target; } public TargetHit(final Integer points, final Integer nrOfArrows, final UserVisit user, final Target target) { this.points = points; this.nrOfArrows = nrOfArrows; this.user = user; this.target = target; } public UUID getId() { return id; } public void setId(final UUID id) { this.id = id; } public Integer getPoints() { return points; } public void setPoints(final Integer points) { this.points = points; } public UserVisit getUser() { return user; } public void setUser(final UserVisit user) { this.user = user; } public Target getTarget() { return target; } public void setTarget(final Target target) { this.target = target; } @Override public String toString() { return "TargetHit [id=" + id + ", points=" + points + ", nrOfArrows=" + nrOfArrows + "]"; } public Integer getNrOfArrows() { return nrOfArrows; } public void setNrOfArrows(final Integer nrOfArrows) { this.nrOfArrows = nrOfArrows; } @Override public TargetHit clone() { TargetHit clone = null; try { clone = (TargetHit)super.clone(); } catch(final CloneNotSupportedException cnse) { return null; } // catch if (clone == null) { return null; } // if clone.setId(id); clone.setNrOfArrows(nrOfArrows); clone.setPoints(points); clone.setTarget(target); clone.setUser(user); return clone; } }