/**
* This Source Code Form is subject to the terms of the Mozilla Public
* License, v. 2.0. If a copy of the MPL was not distributed with this file,
* You can obtain one at http://mozilla.org/MPL/2.0/.
*/
package org.mifosplatform.portfolio.account.domain;
/**
* Enum representation of loan status states.
*/
public enum AccountTransferType {
INVALID(0, "accountTransferType.invalid"), //
ACCOUNT_TRANSFER(1, "accountTransferType.account.transfer"), //
LOAN_REPAYMENT(2, "accountTransferType.loan.repayment"), //
CHARGE_PAYMENT(3, "accountTransferType.charge.payment"), //
INTEREST_TRANSFER(4, "accountTransferType.interest.transfer"); //
private final Integer value;
private final String code;
public static AccountTransferType fromInt(final Integer statusValue) {
AccountTransferType enumeration = AccountTransferType.INVALID;
switch (statusValue) {
case 1:
enumeration = AccountTransferType.ACCOUNT_TRANSFER;
break;
case 2:
enumeration = AccountTransferType.LOAN_REPAYMENT;
break;
case 3:
enumeration = AccountTransferType.CHARGE_PAYMENT;
break;
case 4:
enumeration = AccountTransferType.INTEREST_TRANSFER;
break;
}
return enumeration;
}
private AccountTransferType(final Integer value, final String code) {
this.value = value;
this.code = code;
}
public boolean hasStateOf(final AccountTransferType state) {
return this.value.equals(state.getValue());
}
public Integer getValue() {
return this.value;
}
public String getCode() {
return this.code;
}
public boolean isAccountTransfer() {
return this.value.equals(AccountTransferType.ACCOUNT_TRANSFER.getValue());
}
public boolean isLoanRepayment() {
return this.value.equals(AccountTransferType.LOAN_REPAYMENT.getValue());
}
public boolean isChargePayment() {
return this.value.equals(AccountTransferType.CHARGE_PAYMENT.getValue());
}
public boolean isInterestTransfer() {
return this.value.equals(AccountTransferType.INTEREST_TRANSFER.getValue());
}
}