package de.avalax.fitbuddy.domain.model.set; public class BasicSet implements Set { private double weight; private int reps; private int maxReps; private SetId setId; public BasicSet() { this.maxReps = 1; this.weight = 0; } public BasicSet(SetId setId, double weight, int maxReps) { this.setId = setId; this.weight = weight; this.maxReps = maxReps; } @Override public double getWeight() { return weight; } @Override public void setWeight(double weight) { this.weight = weight; } @Override public SetId getSetId() { return setId; } @Override public void setSetId(SetId setId) { this.setId = setId; } @Override public double getProgress() { return (double) reps / maxReps; } @Override public void setReps(int reps) { if (reps < 0) { this.reps = 0; } else if (reps > maxReps) { this.reps = maxReps; } else { this.reps = reps; } } @Override public int getReps() { return reps; } @Override public int getMaxReps() { return this.maxReps; } @Override public void setMaxReps(int maxReps) { this.maxReps = maxReps; } @Override public boolean equals(Object o) { if (setId == null) { return super.equals(o); } return o instanceof Set && setId.equals(((Set) o).getSetId()); } @Override public int hashCode() { if (setId == null) { return super.hashCode(); } return setId.hashCode(); } @Override public String toString() { if (setId == null) { return "BasicSet [weight=" + weight + ", maxReps=" + maxReps + "]"; } return "BasicSet [weight=" + weight + ", maxReps=" + maxReps + ", setId=" + setId + "]"; } }