*/
package org.mxchange.jfinancials.model.income;
+import java.math.BigDecimal;
import java.util.Date;
import java.util.Objects;
import javax.persistence.Basic;
import javax.persistence.Temporal;
import javax.persistence.TemporalType;
import javax.persistence.Transient;
+import org.mxchange.jcoreutils.Comparables;
import org.mxchange.jfinancials.model.income.interval.FinancialInterval;
import org.mxchange.jusercore.model.user.LoginUser;
import org.mxchange.jusercore.model.user.User;
*/
@Basic (optional = false)
@Column (name = "income_single_amount", nullable = false)
- private Float incomeSingleAmount;
+ private BigDecimal incomeSingleAmount;
/**
* Income title
* @param incomeInterval Interval
* @param incomeUser Connected user
*/
- public FinancialIncome (final String incomeTitle, final Float incomeSingleAmount, final FinancialInterval incomeInterval, final User incomeUser) {
+ public FinancialIncome (final String incomeTitle, final BigDecimal incomeSingleAmount, final FinancialInterval incomeInterval, final User incomeUser) {
// Call default constructor
this();
this.incomeEnabled = Boolean.TRUE;
}
+ @Override
+ public int compareTo (final BillableIncome billableIncome) {
+ // Check parameter on null-reference and equality to this
+ if (null == billableIncome) {
+ // Should not happen
+ throw new NullPointerException("billableIncome is null"); //NOI18N
+ } else if (billableIncome.equals(this)) {
+ // Same object
+ return 0;
+ }
+
+ // Init comparators
+ final int comparators[] = {
+ // First compare title
+ this.getIncomeTitle().compareToIgnoreCase(billableIncome.getIncomeTitle()),
+ // ... then compare interval
+ this.getIncomeInterval().compareTo(billableIncome.getIncomeInterval()),
+ // ... value
+ this.getIncomeSingleAmount().compareTo(billableIncome.getIncomeSingleAmount()),
+ // ... user instance
+ this.getIncomeUser().compareTo(billableIncome.getIncomeUser())
+ };
+
+ // Check all values
+ final int comparison = Comparables.checkAll(comparators);
+
+ // Return value
+ return comparison;
+ }
+
@Override
public boolean equals (final Object object) {
if (this == object) {
}
@Override
- public void setIncomeInterval (FinancialInterval incomeInterval) {
+ public void setIncomeInterval (final FinancialInterval incomeInterval) {
this.incomeInterval = incomeInterval;
}
@Override
- public Float getIncomeSingleAmount () {
+ public BigDecimal getIncomeSingleAmount () {
return this.incomeSingleAmount;
}
@Override
- public void setIncomeSingleAmount (Float incomeSingleAmount) {
+ public void setIncomeSingleAmount (final BigDecimal incomeSingleAmount) {
this.incomeSingleAmount = incomeSingleAmount;
}