package polly.rx.core.orion.model; import polly.rx.entities.RxRessource; import de.skuzzle.polly.tools.Check; import de.skuzzle.polly.tools.EqualsHelper; import de.skuzzle.polly.tools.Equatable; public class DefaultProduction implements Production { private final RxRessource ress; private final double rate; public DefaultProduction(RxRessource ress, double rate) { Check.objects(ress).notNull(); this.ress = ress; this.rate = rate; } public DefaultProduction(Production p) { this(p.getRess(), p.getRate()); } @Override public String toString() { return OrionObjectUtil.productionString(this); } @Override public int hashCode() { return OrionObjectUtil.productionHash(this); } @Override public final boolean equals(Object obj) { return EqualsHelper.testEquality(this, obj); } @Override public Class<?> getEquivalenceClass() { return Production.class; } @Override public boolean actualEquals(Equatable o) { return OrionObjectUtil.productionEquals(this, (Production) o); } @Override public RxRessource getRess() { return this.ress; } @Override public double getRate() { return this.rate; } @Override public int compareTo(Production prod) { return OrionObjectUtil.compareProduction(this, prod); } }