]> git.mxchange.org Git - jbonuscard-core.git/blobdiff - src/org/mxchange/jfinancials/model/income/FinancialIncome.java
Continued:
[jbonuscard-core.git] / src / org / mxchange / jfinancials / model / income / FinancialIncome.java
index 92ba782b6030fbd64cce306c1acdbb55db108589..734abb8b7699938de46c6133dd8dce55fb1bcf00 100644 (file)
@@ -16,6 +16,7 @@
  */
 package org.mxchange.jfinancials.model.income;
 
+import java.math.BigDecimal;
 import java.util.Date;
 import java.util.Objects;
 import javax.persistence.Basic;
@@ -33,6 +34,7 @@ import javax.persistence.Table;
 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;
@@ -90,7 +92,7 @@ public class FinancialIncome implements BillableIncome {
         */
        @Basic (optional = false)
        @Column (name = "income_single_amount", nullable = false)
-       private Float incomeSingleAmount;
+       private BigDecimal incomeSingleAmount;
 
        /**
         * Income title
@@ -128,7 +130,7 @@ public class FinancialIncome implements BillableIncome {
         * @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();
 
@@ -142,6 +144,36 @@ public class FinancialIncome implements BillableIncome {
                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) {
@@ -202,17 +234,17 @@ public class FinancialIncome implements BillableIncome {
        }
 
        @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;
        }