rename enum to LoanStatus

This commit is contained in:
Keith Woodlock
2012-08-16 19:49:13 +01:00
parent abb4ec17dc
commit ac6589e9aa
7 changed files with 81 additions and 78 deletions
@@ -4,84 +4,84 @@ import java.util.List;
public class DefaultLoanLifecycleStateMachine implements LoanLifecycleStateMachine { public class DefaultLoanLifecycleStateMachine implements LoanLifecycleStateMachine {
private final List<LoanStatusEnum> allowedLoanStatuses; private final List<LoanStatus> allowedLoanStatuses;
public DefaultLoanLifecycleStateMachine(List<LoanStatusEnum> allowedLoanStatuses) { public DefaultLoanLifecycleStateMachine(List<LoanStatus> allowedLoanStatuses) {
this.allowedLoanStatuses = allowedLoanStatuses; this.allowedLoanStatuses = allowedLoanStatuses;
} }
@Override @Override
public LoanStatusEnum transition(LoanEvent loanEvent, LoanStatusEnum from) { public LoanStatus transition(LoanEvent loanEvent, LoanStatus from) {
LoanStatusEnum newState = null; LoanStatus newState = null;
switch (loanEvent) { switch (loanEvent) {
case LOAN_CREATED: case LOAN_CREATED:
if (from == null) { if (from == null) {
newState = stateOf(LoanStatusEnum.SUBMITED_AND_PENDING_APPROVAL, newState = stateOf(LoanStatus.SUBMITED_AND_PENDING_APPROVAL,
allowedLoanStatuses); allowedLoanStatuses);
} }
break; break;
case LOAN_REJECTED: case LOAN_REJECTED:
if (from.hasStateOf(LoanStatusEnum.SUBMITED_AND_PENDING_APPROVAL)) { if (from.hasStateOf(LoanStatus.SUBMITED_AND_PENDING_APPROVAL)) {
newState = stateOf(LoanStatusEnum.REJECTED, allowedLoanStatuses); newState = stateOf(LoanStatus.REJECTED, allowedLoanStatuses);
} }
break; break;
case LOAN_APPROVED: case LOAN_APPROVED:
if (from.hasStateOf(LoanStatusEnum.SUBMITED_AND_PENDING_APPROVAL)) { if (from.hasStateOf(LoanStatus.SUBMITED_AND_PENDING_APPROVAL)) {
newState = stateOf(LoanStatusEnum.APPROVED, allowedLoanStatuses); newState = stateOf(LoanStatus.APPROVED, allowedLoanStatuses);
} }
break; break;
case LOAN_WITHDRAWN: case LOAN_WITHDRAWN:
if (this.anyOfAllowedWhenComingFrom(from, LoanStatusEnum.SUBMITED_AND_PENDING_APPROVAL, LoanStatusEnum.APPROVED)) { if (this.anyOfAllowedWhenComingFrom(from, LoanStatus.SUBMITED_AND_PENDING_APPROVAL, LoanStatus.APPROVED)) {
newState = stateOf(LoanStatusEnum.WITHDRAWN_BY_CLIENT, allowedLoanStatuses); newState = stateOf(LoanStatus.WITHDRAWN_BY_CLIENT, allowedLoanStatuses);
} }
break; break;
case LOAN_DISBURSED: case LOAN_DISBURSED:
if (from.hasStateOf(LoanStatusEnum.APPROVED)) { if (from.hasStateOf(LoanStatus.APPROVED)) {
newState = stateOf(LoanStatusEnum.ACTIVE, allowedLoanStatuses); newState = stateOf(LoanStatus.ACTIVE, allowedLoanStatuses);
} }
break; break;
case LOAN_APPROVAL_UNDO: case LOAN_APPROVAL_UNDO:
if (from.hasStateOf(LoanStatusEnum.APPROVED)) { if (from.hasStateOf(LoanStatus.APPROVED)) {
newState = stateOf(LoanStatusEnum.SUBMITED_AND_PENDING_APPROVAL, allowedLoanStatuses); newState = stateOf(LoanStatus.SUBMITED_AND_PENDING_APPROVAL, allowedLoanStatuses);
} }
break; break;
case LOAN_DISBURSAL_UNDO: case LOAN_DISBURSAL_UNDO:
if (this.anyOfAllowedWhenComingFrom(from, LoanStatusEnum.ACTIVE)) { if (this.anyOfAllowedWhenComingFrom(from, LoanStatus.ACTIVE)) {
newState = stateOf(LoanStatusEnum.APPROVED, allowedLoanStatuses); newState = stateOf(LoanStatus.APPROVED, allowedLoanStatuses);
} }
break; break;
case LOAN_REPAYMENT: case LOAN_REPAYMENT:
if (this.anyOfAllowedWhenComingFrom(from, LoanStatusEnum.ACTIVE, LoanStatusEnum.CLOSED, LoanStatusEnum.OVERPAID)) { if (this.anyOfAllowedWhenComingFrom(from, LoanStatus.ACTIVE, LoanStatus.CLOSED, LoanStatus.OVERPAID)) {
newState = stateOf(LoanStatusEnum.ACTIVE, allowedLoanStatuses); newState = stateOf(LoanStatus.ACTIVE, allowedLoanStatuses);
} else { } else {
newState = from; newState = from;
} }
break; break;
case REPAID_IN_FULL: case REPAID_IN_FULL:
if (this.anyOfAllowedWhenComingFrom(from, LoanStatusEnum.ACTIVE)) { if (this.anyOfAllowedWhenComingFrom(from, LoanStatus.ACTIVE)) {
newState = stateOf(LoanStatusEnum.CLOSED, allowedLoanStatuses); newState = stateOf(LoanStatus.CLOSED, allowedLoanStatuses);
} }
break; break;
case LOAN_WRITE_OFF: case LOAN_WRITE_OFF:
if (this.anyOfAllowedWhenComingFrom(from,LoanStatusEnum.ACTIVE)) { if (this.anyOfAllowedWhenComingFrom(from,LoanStatus.ACTIVE)) {
newState = stateOf(LoanStatusEnum.CLOSED, allowedLoanStatuses); newState = stateOf(LoanStatus.CLOSED, allowedLoanStatuses);
} }
break; break;
case LOAN_RESCHEDULE: case LOAN_RESCHEDULE:
if (this.anyOfAllowedWhenComingFrom(from, LoanStatusEnum.ACTIVE)) { if (this.anyOfAllowedWhenComingFrom(from, LoanStatus.ACTIVE)) {
newState = stateOf(LoanStatusEnum.CLOSED, allowedLoanStatuses); newState = stateOf(LoanStatus.CLOSED, allowedLoanStatuses);
} }
break; break;
case INTERST_REBATE_OWED: case INTERST_REBATE_OWED:
if (this.anyOfAllowedWhenComingFrom(from, LoanStatusEnum.CLOSED)) { if (this.anyOfAllowedWhenComingFrom(from, LoanStatus.CLOSED)) {
newState = stateOf(LoanStatusEnum.CLOSED, allowedLoanStatuses); newState = stateOf(LoanStatus.CLOSED, allowedLoanStatuses);
} }
break; break;
case LOAN_OVERPAYMENT: case LOAN_OVERPAYMENT:
if (this.anyOfAllowedWhenComingFrom(from, LoanStatusEnum.CLOSED, LoanStatusEnum.ACTIVE)) { if (this.anyOfAllowedWhenComingFrom(from, LoanStatus.CLOSED, LoanStatus.ACTIVE)) {
newState = stateOf(LoanStatusEnum.OVERPAID, allowedLoanStatuses); newState = stateOf(LoanStatus.OVERPAID, allowedLoanStatuses);
} }
break; break;
} }
@@ -89,9 +89,9 @@ public class DefaultLoanLifecycleStateMachine implements LoanLifecycleStateMachi
return newState; return newState;
} }
private LoanStatusEnum stateOf(LoanStatusEnum state, List<LoanStatusEnum> allowedLoanStatuses) { private LoanStatus stateOf(LoanStatus state, List<LoanStatus> allowedLoanStatuses) {
LoanStatusEnum match = null; LoanStatus match = null;
for (LoanStatusEnum loanStatus : allowedLoanStatuses) { for (LoanStatus loanStatus : allowedLoanStatuses) {
if (loanStatus.hasStateOf(state)) { if (loanStatus.hasStateOf(state)) {
match = loanStatus; match = loanStatus;
break; break;
@@ -100,11 +100,11 @@ public class DefaultLoanLifecycleStateMachine implements LoanLifecycleStateMachi
return match; return match;
} }
private boolean anyOfAllowedWhenComingFrom(final LoanStatusEnum state, private boolean anyOfAllowedWhenComingFrom(final LoanStatus state,
final LoanStatusEnum... allowedStates) { final LoanStatus... allowedStates) {
boolean allowed = false; boolean allowed = false;
for (LoanStatusEnum allowedState : allowedStates) { for (LoanStatus allowedState : allowedStates) {
if (state.hasStateOf(allowedState)) { if (state.hasStateOf(allowedState)) {
allowed = true; allowed = true;
break; break;
@@ -164,7 +164,7 @@ public class Loan extends AbstractAuditableCustom<AppUser, Long> {
public Loan(final Client client, Fund fund, LoanTransactionProcessingStrategy transactionProcessingStrategy, final LoanProduct loanProduct, public Loan(final Client client, Fund fund, LoanTransactionProcessingStrategy transactionProcessingStrategy, final LoanProduct loanProduct,
final LoanProductRelatedDetail loanRepaymentScheduleDetail, final LoanProductRelatedDetail loanRepaymentScheduleDetail,
final LoanStatusEnum loanStatus) { final LoanStatus loanStatus) {
this.client = client; this.client = client;
this.fund = fund; this.fund = fund;
this.transactionProcessingStrategy = transactionProcessingStrategy; this.transactionProcessingStrategy = transactionProcessingStrategy;
@@ -203,7 +203,7 @@ public class Loan extends AbstractAuditableCustom<AppUser, Long> {
final LocalDate interestChargedFromDate, final LocalDate interestChargedFromDate,
final LoanLifecycleStateMachine lifecycleStateMachine) { final LoanLifecycleStateMachine lifecycleStateMachine) {
LoanStatusEnum statusEnum = lifecycleStateMachine.transition(LoanEvent.LOAN_CREATED, LoanStatusEnum.fromInt(this.loanStatus)); LoanStatus statusEnum = lifecycleStateMachine.transition(LoanEvent.LOAN_CREATED, LoanStatus.fromInt(this.loanStatus));
this.loanStatus = statusEnum.getValue(); this.loanStatus = statusEnum.getValue();
this.termFrequency = loanTermFrequency; this.termFrequency = loanTermFrequency;
@@ -249,7 +249,7 @@ public class Loan extends AbstractAuditableCustom<AppUser, Long> {
public void reject(final LocalDate rejectedOn, public void reject(final LocalDate rejectedOn,
LoanLifecycleStateMachine loanLifecycleStateMachine) { LoanLifecycleStateMachine loanLifecycleStateMachine) {
LoanStatusEnum statusEnum = loanLifecycleStateMachine.transition(LoanEvent.LOAN_REJECTED, LoanStatusEnum.fromInt(this.loanStatus)); LoanStatus statusEnum = loanLifecycleStateMachine.transition(LoanEvent.LOAN_REJECTED, LoanStatus.fromInt(this.loanStatus));
this.loanStatus = statusEnum.getValue(); this.loanStatus = statusEnum.getValue();
this.rejectedOnDate = rejectedOn.toDateTimeAtCurrentTime().toDate(); this.rejectedOnDate = rejectedOn.toDateTimeAtCurrentTime().toDate();
@@ -272,7 +272,7 @@ public class Loan extends AbstractAuditableCustom<AppUser, Long> {
public void withdraw(final LocalDate withdrawnOn, public void withdraw(final LocalDate withdrawnOn,
LoanLifecycleStateMachine loanLifecycleStateMachine) { LoanLifecycleStateMachine loanLifecycleStateMachine) {
LoanStatusEnum statusEnum = loanLifecycleStateMachine.transition(LoanEvent.LOAN_WITHDRAWN, LoanStatusEnum.fromInt(this.loanStatus)); LoanStatus statusEnum = loanLifecycleStateMachine.transition(LoanEvent.LOAN_WITHDRAWN, LoanStatus.fromInt(this.loanStatus));
this.loanStatus = statusEnum.getValue(); this.loanStatus = statusEnum.getValue();
this.withdrawnOnDate = withdrawnOn.toDateTimeAtCurrentTime().toDate(); this.withdrawnOnDate = withdrawnOn.toDateTimeAtCurrentTime().toDate();
@@ -295,7 +295,7 @@ public class Loan extends AbstractAuditableCustom<AppUser, Long> {
public void approve(final LocalDate approvedOn, public void approve(final LocalDate approvedOn,
LoanLifecycleStateMachine loanLifecycleStateMachine) { LoanLifecycleStateMachine loanLifecycleStateMachine) {
LoanStatusEnum statusEnum = loanLifecycleStateMachine.transition(LoanEvent.LOAN_APPROVED, LoanStatusEnum.fromInt(this.loanStatus)); LoanStatus statusEnum = loanLifecycleStateMachine.transition(LoanEvent.LOAN_APPROVED, LoanStatus.fromInt(this.loanStatus));
this.loanStatus = statusEnum.getValue(); this.loanStatus = statusEnum.getValue();
this.approvedOnDate = approvedOn.toDateTimeAtCurrentTime().toDate(); this.approvedOnDate = approvedOn.toDateTimeAtCurrentTime().toDate();
@@ -318,7 +318,7 @@ public class Loan extends AbstractAuditableCustom<AppUser, Long> {
public void undoApproval(LoanLifecycleStateMachine loanLifecycleStateMachine) { public void undoApproval(LoanLifecycleStateMachine loanLifecycleStateMachine) {
LoanStatusEnum statusEnum = loanLifecycleStateMachine.transition(LoanEvent.LOAN_APPROVAL_UNDO, LoanStatusEnum.fromInt(this.loanStatus)); LoanStatus statusEnum = loanLifecycleStateMachine.transition(LoanEvent.LOAN_APPROVAL_UNDO, LoanStatus.fromInt(this.loanStatus));
this.loanStatus = statusEnum.getValue(); this.loanStatus = statusEnum.getValue();
this.approvedOnDate = null; this.approvedOnDate = null;
@@ -339,7 +339,7 @@ public class Loan extends AbstractAuditableCustom<AppUser, Long> {
public void disburse(final LocalDate disbursedOn, public void disburse(final LocalDate disbursedOn,
LoanLifecycleStateMachine loanLifecycleStateMachine) { LoanLifecycleStateMachine loanLifecycleStateMachine) {
LoanStatusEnum statusEnum = loanLifecycleStateMachine.transition(LoanEvent.LOAN_DISBURSED, LoanStatusEnum.fromInt(this.loanStatus)); LoanStatus statusEnum = loanLifecycleStateMachine.transition(LoanEvent.LOAN_DISBURSED, LoanStatus.fromInt(this.loanStatus));
this.loanStatus = statusEnum.getValue(); this.loanStatus = statusEnum.getValue();
this.disbursedOnDate = disbursedOn.toDateTimeAtCurrentTime().toDate(); this.disbursedOnDate = disbursedOn.toDateTimeAtCurrentTime().toDate();
@@ -380,7 +380,7 @@ public class Loan extends AbstractAuditableCustom<AppUser, Long> {
public void undoDisbursal( public void undoDisbursal(
LoanLifecycleStateMachine loanLifecycleStateMachine) { LoanLifecycleStateMachine loanLifecycleStateMachine) {
LoanStatusEnum statusEnum = loanLifecycleStateMachine.transition(LoanEvent.LOAN_DISBURSAL_UNDO, LoanStatusEnum.fromInt(this.loanStatus)); LoanStatus statusEnum = loanLifecycleStateMachine.transition(LoanEvent.LOAN_DISBURSAL_UNDO, LoanStatus.fromInt(this.loanStatus));
this.loanStatus = statusEnum.getValue(); this.loanStatus = statusEnum.getValue();
this.loanTransactions.clear(); this.loanTransactions.clear();
@@ -389,7 +389,7 @@ public class Loan extends AbstractAuditableCustom<AppUser, Long> {
public void waive(final LoanTransaction loanTransaction, final LoanLifecycleStateMachine loanLifecycleStateMachine) { public void waive(final LoanTransaction loanTransaction, final LoanLifecycleStateMachine loanLifecycleStateMachine) {
LoanStatusEnum statusEnum = loanLifecycleStateMachine.transition(LoanEvent.LOAN_REPAYMENT, LoanStatusEnum.fromInt(this.loanStatus)); LoanStatus statusEnum = loanLifecycleStateMachine.transition(LoanEvent.LOAN_REPAYMENT, LoanStatus.fromInt(this.loanStatus));
this.loanStatus = statusEnum.getValue(); this.loanStatus = statusEnum.getValue();
loanTransaction.updateLoan(this); loanTransaction.updateLoan(this);
@@ -440,7 +440,7 @@ public class Loan extends AbstractAuditableCustom<AppUser, Long> {
final LoanTransaction loanTransaction, final LoanTransaction loanTransaction,
final LoanLifecycleStateMachine loanLifecycleStateMachine, final boolean adjusted) { final LoanLifecycleStateMachine loanLifecycleStateMachine, final boolean adjusted) {
LoanStatusEnum statusEnum = loanLifecycleStateMachine.transition(LoanEvent.LOAN_REPAYMENT, LoanStatusEnum.fromInt(this.loanStatus)); LoanStatus statusEnum = loanLifecycleStateMachine.transition(LoanEvent.LOAN_REPAYMENT, LoanStatus.fromInt(this.loanStatus));
this.loanStatus = statusEnum.getValue(); this.loanStatus = statusEnum.getValue();
loanTransaction.updateLoan(this); loanTransaction.updateLoan(this);
@@ -501,7 +501,7 @@ public class Loan extends AbstractAuditableCustom<AppUser, Long> {
private void handleLoanRepaymentInFull(final LoanTransaction loanTransaction, final LoanLifecycleStateMachine loanLifecycleStateMachine) { private void handleLoanRepaymentInFull(final LoanTransaction loanTransaction, final LoanLifecycleStateMachine loanLifecycleStateMachine) {
LoanStatusEnum statusEnum = loanLifecycleStateMachine.transition(LoanEvent.REPAID_IN_FULL, LoanStatusEnum.fromInt(this.loanStatus)); LoanStatus statusEnum = loanLifecycleStateMachine.transition(LoanEvent.REPAID_IN_FULL, LoanStatus.fromInt(this.loanStatus));
this.loanStatus = statusEnum.getValue(); this.loanStatus = statusEnum.getValue();
this.closedOnDate = loanTransaction.getTransactionDate().toDate(); this.closedOnDate = loanTransaction.getTransactionDate().toDate();
@@ -510,7 +510,7 @@ public class Loan extends AbstractAuditableCustom<AppUser, Long> {
if (isInterestRebateAllowed()) { if (isInterestRebateAllowed()) {
Money rebateDue = calculateRebateWhenPaidInFullOn(loanTransaction.getTransactionDate()); Money rebateDue = calculateRebateWhenPaidInFullOn(loanTransaction.getTransactionDate());
if (rebateDue.isGreaterThanZero()) { if (rebateDue.isGreaterThanZero()) {
statusEnum = loanLifecycleStateMachine.transition(LoanEvent.INTERST_REBATE_OWED, LoanStatusEnum.fromInt(this.loanStatus)); statusEnum = loanLifecycleStateMachine.transition(LoanEvent.INTERST_REBATE_OWED, LoanStatus.fromInt(this.loanStatus));
this.loanStatus = statusEnum.getValue(); this.loanStatus = statusEnum.getValue();
this.interestRebateOwed = rebateDue.getAmount(); this.interestRebateOwed = rebateDue.getAmount();
@@ -520,7 +520,7 @@ public class Loan extends AbstractAuditableCustom<AppUser, Long> {
private void handleLoanOverpayment(@SuppressWarnings("unused") final LoanTransaction loanTransaction, final LoanLifecycleStateMachine loanLifecycleStateMachine) { private void handleLoanOverpayment(@SuppressWarnings("unused") final LoanTransaction loanTransaction, final LoanLifecycleStateMachine loanLifecycleStateMachine) {
LoanStatusEnum statusEnum = loanLifecycleStateMachine.transition(LoanEvent.LOAN_OVERPAYMENT, LoanStatusEnum.fromInt(this.loanStatus)); LoanStatus statusEnum = loanLifecycleStateMachine.transition(LoanEvent.LOAN_OVERPAYMENT, LoanStatus.fromInt(this.loanStatus));
this.loanStatus = statusEnum.getValue(); this.loanStatus = statusEnum.getValue();
this.closedOnDate = null; this.closedOnDate = null;
@@ -662,7 +662,7 @@ public class Loan extends AbstractAuditableCustom<AppUser, Long> {
public void writeOff(final DateTime writtenOffOn, public void writeOff(final DateTime writtenOffOn,
final LoanLifecycleStateMachine loanLifecycleStateMachine) { final LoanLifecycleStateMachine loanLifecycleStateMachine) {
LoanStatusEnum statusEnum = loanLifecycleStateMachine.transition(LoanEvent.LOAN_WRITE_OFF, LoanStatusEnum.fromInt(this.loanStatus)); LoanStatus statusEnum = loanLifecycleStateMachine.transition(LoanEvent.LOAN_WRITE_OFF, LoanStatus.fromInt(this.loanStatus));
this.loanStatus = statusEnum.getValue(); this.loanStatus = statusEnum.getValue();
this.closedOnDate = writtenOffOn.toDate(); this.closedOnDate = writtenOffOn.toDate();
@@ -687,7 +687,7 @@ public class Loan extends AbstractAuditableCustom<AppUser, Long> {
public void reschedule(final DateTime rescheduledOn, public void reschedule(final DateTime rescheduledOn,
final LoanLifecycleStateMachine loanLifecycleStateMachine) { final LoanLifecycleStateMachine loanLifecycleStateMachine) {
LoanStatusEnum statusEnum = loanLifecycleStateMachine.transition(LoanEvent.LOAN_RESCHEDULE, LoanStatusEnum.fromInt(this.loanStatus)); LoanStatus statusEnum = loanLifecycleStateMachine.transition(LoanEvent.LOAN_RESCHEDULE, LoanStatus.fromInt(this.loanStatus));
this.loanStatus = statusEnum.getValue(); this.loanStatus = statusEnum.getValue();
this.closedOnDate = rescheduledOn.toDate(); this.closedOnDate = rescheduledOn.toDate();
@@ -713,8 +713,8 @@ public class Loan extends AbstractAuditableCustom<AppUser, Long> {
return !isSubmittedAndPendingApproval(); return !isSubmittedAndPendingApproval();
} }
private LoanStatusEnum status() { private LoanStatus status() {
return LoanStatusEnum.fromInt(this.loanStatus); return LoanStatus.fromInt(this.loanStatus);
} }
public boolean isSubmittedAndPendingApproval() { public boolean isSubmittedAndPendingApproval() {
@@ -2,6 +2,6 @@ package org.mifosng.platform.loan.domain;
public interface LoanLifecycleStateMachine { public interface LoanLifecycleStateMachine {
LoanStatusEnum transition(LoanEvent loanEvent, LoanStatusEnum from); LoanStatus transition(LoanEvent loanEvent, LoanStatus from);
} }
@@ -1,6 +1,9 @@
package org.mifosng.platform.loan.domain; package org.mifosng.platform.loan.domain;
public enum LoanStatusEnum { /**
* Enum representation of loan status states.
*/
public enum LoanStatus {
INVALID(0, "loanStatusType.invalid"), // INVALID(0, "loanStatusType.invalid"), //
SUBMITED_AND_PENDING_APPROVAL(100, "loanStatusType.submitted.and.pending.approval"), // SUBMITED_AND_PENDING_APPROVAL(100, "loanStatusType.submitted.and.pending.approval"), //
@@ -14,41 +17,41 @@ public enum LoanStatusEnum {
private final Integer value; private final Integer value;
private final String code; private final String code;
public static LoanStatusEnum fromInt(final Integer selectedMethod) { public static LoanStatus fromInt(final Integer statusValue) {
LoanStatusEnum enumeration = LoanStatusEnum.INVALID; LoanStatus enumeration = LoanStatus.INVALID;
switch (selectedMethod) { switch (statusValue) {
case 100: case 100:
enumeration = LoanStatusEnum.SUBMITED_AND_PENDING_APPROVAL; enumeration = LoanStatus.SUBMITED_AND_PENDING_APPROVAL;
break; break;
case 200: case 200:
enumeration = LoanStatusEnum.APPROVED; enumeration = LoanStatus.APPROVED;
break; break;
case 300: case 300:
enumeration = LoanStatusEnum.ACTIVE; enumeration = LoanStatus.ACTIVE;
break; break;
case 400: case 400:
enumeration = LoanStatusEnum.WITHDRAWN_BY_CLIENT; enumeration = LoanStatus.WITHDRAWN_BY_CLIENT;
break; break;
case 500: case 500:
enumeration = LoanStatusEnum.REJECTED; enumeration = LoanStatus.REJECTED;
break; break;
case 600: case 600:
enumeration = LoanStatusEnum.CLOSED; enumeration = LoanStatus.CLOSED;
break; break;
case 700: case 700:
enumeration = LoanStatusEnum.OVERPAID; enumeration = LoanStatus.OVERPAID;
break; break;
} }
return enumeration; return enumeration;
} }
private LoanStatusEnum(final Integer value, final String code) { private LoanStatus(final Integer value, final String code) {
this.value = value; this.value = value;
this.code = code; this.code = code;
} }
public boolean hasStateOf(final LoanStatusEnum state) { public boolean hasStateOf(final LoanStatus state) {
return this.value.equals(state.getValue()); return this.value.equals(state.getValue());
} }
@@ -61,26 +64,26 @@ public enum LoanStatusEnum {
} }
public boolean isSubmittedAndPendingApproval() { public boolean isSubmittedAndPendingApproval() {
return this.value.equals(LoanStatusEnum.SUBMITED_AND_PENDING_APPROVAL.getValue()); return this.value.equals(LoanStatus.SUBMITED_AND_PENDING_APPROVAL.getValue());
} }
public boolean isApproved() { public boolean isApproved() {
return this.value.equals(LoanStatusEnum.APPROVED.getValue()); return this.value.equals(LoanStatus.APPROVED.getValue());
} }
public boolean isActive() { public boolean isActive() {
return this.value.equals(LoanStatusEnum.ACTIVE.getValue()); return this.value.equals(LoanStatus.ACTIVE.getValue());
} }
public boolean isClosed() { public boolean isClosed() {
return this.value.equals(LoanStatusEnum.CLOSED.getValue()); return this.value.equals(LoanStatus.CLOSED.getValue());
} }
public boolean isWithdrawnByClient() { public boolean isWithdrawnByClient() {
return this.value.equals(LoanStatusEnum.WITHDRAWN_BY_CLIENT.getValue()); return this.value.equals(LoanStatus.WITHDRAWN_BY_CLIENT.getValue());
} }
public boolean isRejected() { public boolean isRejected() {
return this.value.equals(LoanStatusEnum.REJECTED.getValue()); return this.value.equals(LoanStatus.REJECTED.getValue());
} }
} }
@@ -27,7 +27,7 @@ import org.mifosng.platform.loan.domain.LoanProduct;
import org.mifosng.platform.loan.domain.LoanProductRelatedDetail; import org.mifosng.platform.loan.domain.LoanProductRelatedDetail;
import org.mifosng.platform.loan.domain.LoanProductRepository; import org.mifosng.platform.loan.domain.LoanProductRepository;
import org.mifosng.platform.loan.domain.LoanRepaymentScheduleInstallment; import org.mifosng.platform.loan.domain.LoanRepaymentScheduleInstallment;
import org.mifosng.platform.loan.domain.LoanStatusEnum; import org.mifosng.platform.loan.domain.LoanStatus;
import org.mifosng.platform.loan.domain.LoanTransactionProcessingStrategy; import org.mifosng.platform.loan.domain.LoanTransactionProcessingStrategy;
import org.mifosng.platform.loan.domain.LoanTransactionProcessingStrategyRepository; import org.mifosng.platform.loan.domain.LoanTransactionProcessingStrategyRepository;
import org.mifosng.platform.loan.domain.PeriodFrequencyType; import org.mifosng.platform.loan.domain.PeriodFrequencyType;
@@ -121,7 +121,7 @@ public class LoanAssembler {
} }
private LoanLifecycleStateMachine defaultLoanLifecycleStateMachine() { private LoanLifecycleStateMachine defaultLoanLifecycleStateMachine() {
List<LoanStatusEnum> allowedLoanStatuses = Arrays.asList(LoanStatusEnum.values()); List<LoanStatus> allowedLoanStatuses = Arrays.asList(LoanStatus.values());
return new DefaultLoanLifecycleStateMachine(allowedLoanStatuses); return new DefaultLoanLifecycleStateMachine(allowedLoanStatuses);
} }
@@ -31,7 +31,7 @@ import org.mifosng.platform.infrastructure.JdbcSupport;
import org.mifosng.platform.infrastructure.TenantAwareRoutingDataSource; import org.mifosng.platform.infrastructure.TenantAwareRoutingDataSource;
import org.mifosng.platform.loan.domain.Loan; import org.mifosng.platform.loan.domain.Loan;
import org.mifosng.platform.loan.domain.LoanRepository; import org.mifosng.platform.loan.domain.LoanRepository;
import org.mifosng.platform.loan.domain.LoanStatusEnum; import org.mifosng.platform.loan.domain.LoanStatus;
import org.mifosng.platform.loan.domain.LoanTransaction; import org.mifosng.platform.loan.domain.LoanTransaction;
import org.mifosng.platform.loan.domain.LoanTransactionRepository; import org.mifosng.platform.loan.domain.LoanTransactionRepository;
import org.mifosng.platform.loan.domain.LoanTransactionType; import org.mifosng.platform.loan.domain.LoanTransactionType;
@@ -495,7 +495,7 @@ public class LoanReadPlatformServiceImpl implements LoanReadPlatformService {
.interestCalculationPeriodType(interestCalculationPeriodTypeInt); .interestCalculationPeriodType(interestCalculationPeriodTypeInt);
Integer lifeCycleStatusId = JdbcSupport.getInteger(rs, "lifeCycleStatusId"); Integer lifeCycleStatusId = JdbcSupport.getInteger(rs, "lifeCycleStatusId");
String lifeCycleStatusText = LoanStatusEnum.fromInt(lifeCycleStatusId).getCode(); String lifeCycleStatusText = LoanStatus.fromInt(lifeCycleStatusId).getCode();
LocalDate lifeCycleStatusDate = submittedOnDate; LocalDate lifeCycleStatusDate = submittedOnDate;
if (approvedOnDate != null) { if (approvedOnDate != null) {
@@ -29,7 +29,7 @@ import org.mifosng.platform.loan.domain.Loan;
import org.mifosng.platform.loan.domain.LoanLifecycleStateMachine; import org.mifosng.platform.loan.domain.LoanLifecycleStateMachine;
import org.mifosng.platform.loan.domain.LoanRepaymentScheduleInstallment; import org.mifosng.platform.loan.domain.LoanRepaymentScheduleInstallment;
import org.mifosng.platform.loan.domain.LoanRepository; import org.mifosng.platform.loan.domain.LoanRepository;
import org.mifosng.platform.loan.domain.LoanStatusEnum; import org.mifosng.platform.loan.domain.LoanStatus;
import org.mifosng.platform.loan.domain.LoanTransaction; import org.mifosng.platform.loan.domain.LoanTransaction;
import org.mifosng.platform.loan.domain.LoanTransactionRepository; import org.mifosng.platform.loan.domain.LoanTransactionRepository;
import org.mifosng.platform.loan.domain.PeriodFrequencyType; import org.mifosng.platform.loan.domain.PeriodFrequencyType;
@@ -67,7 +67,7 @@ public class LoanWritePlatformServiceJpaRepositoryImpl implements LoanWritePlatf
} }
private LoanLifecycleStateMachine defaultLoanLifecycleStateMachine() { private LoanLifecycleStateMachine defaultLoanLifecycleStateMachine() {
List<LoanStatusEnum> allowedLoanStatuses = Arrays.asList(LoanStatusEnum.values()); List<LoanStatus> allowedLoanStatuses = Arrays.asList(LoanStatus.values());
return new DefaultLoanLifecycleStateMachine(allowedLoanStatuses); return new DefaultLoanLifecycleStateMachine(allowedLoanStatuses);
} }