You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@fineract.apache.org by aw...@apache.org on 2020/07/15 08:36:27 UTC

[fineract] branch develop updated: FINERACT-822 add MissingCasesInEnumSwitch

This is an automated email from the ASF dual-hosted git repository.

awasum pushed a commit to branch develop
in repository https://gitbox.apache.org/repos/asf/fineract.git


The following commit(s) were added to refs/heads/develop by this push:
     new bbb3aad  FINERACT-822 add MissingCasesInEnumSwitch
bbb3aad is described below

commit bbb3aad5060cb88f4396b8e55dbde2a761c2e435
Author: percyashu <pe...@gmail.com>
AuthorDate: Mon Jun 8 03:14:01 2020 +0100

    FINERACT-822 add MissingCasesInEnumSwitch
---
 .../data/AccountNumberFormatDataValidator.java     |  9 ++++++++-
 ...AccountNumberFormatReadPlatformServiceImpl.java |  8 +++++++-
 .../domain/WorkingDaysEnumerations.java            |  5 ++++-
 .../service/AccountEnumerations.java               |  4 +++-
 .../service/InterestRateChartEnumerations.java     |  9 ++++++++-
 .../portfolio/loanaccount/domain/Loan.java         |  7 ++++++-
 .../loanschedule/domain/AprCalculator.java         |  5 ++++-
 .../DefaultPaymentPeriodsInOneYearCalculator.java  | 12 ++++++++++--
 .../domain/DefaultScheduledDateGenerator.java      | 16 +++++++++++++---
 .../loanschedule/domain/LoanApplicationTerms.java  | 12 ++++++++++--
 .../portfolio/note/api/NotesApiResource.java       |  5 +++++
 .../NoteWritePlatformServiceJpaRepositoryImpl.java | 10 +++++++++-
 .../portfolio/savings/DepositAccountUtils.java     |  8 +++++++-
 .../portfolio/savings/domain/SavingsAccount.java   |  8 +++++++-
 .../savings/domain/SavingsAccountCharge.java       | 22 +++++++++++++++++++---
 .../serialization/ShareAccountDataSerializer.java  |  7 ++++++-
 16 files changed, 126 insertions(+), 21 deletions(-)

diff --git a/fineract-provider/src/main/java/org/apache/fineract/infrastructure/accountnumberformat/data/AccountNumberFormatDataValidator.java b/fineract-provider/src/main/java/org/apache/fineract/infrastructure/accountnumberformat/data/AccountNumberFormatDataValidator.java
index 080635a..09c8a42 100644
--- a/fineract-provider/src/main/java/org/apache/fineract/infrastructure/accountnumberformat/data/AccountNumberFormatDataValidator.java
+++ b/fineract-provider/src/main/java/org/apache/fineract/infrastructure/accountnumberformat/data/AccountNumberFormatDataValidator.java
@@ -23,6 +23,7 @@ import com.google.gson.reflect.TypeToken;
 import java.lang.reflect.Type;
 import java.util.ArrayList;
 import java.util.Arrays;
+import java.util.Collections;
 import java.util.HashSet;
 import java.util.List;
 import java.util.Map;
@@ -37,6 +38,8 @@ import org.apache.fineract.infrastructure.core.data.DataValidatorBuilder;
 import org.apache.fineract.infrastructure.core.exception.InvalidJsonException;
 import org.apache.fineract.infrastructure.core.exception.PlatformApiDataValidationException;
 import org.apache.fineract.infrastructure.core.serialization.FromJsonHelper;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Component;
 
@@ -45,6 +48,8 @@ public class AccountNumberFormatDataValidator {
 
     private final FromJsonHelper fromApiJsonHelper;
 
+    private static final Logger LOG = LoggerFactory.getLogger(AccountNumberFormatDataValidator.class);
+
     private static final Set<String> ACCOUNT_NUMBER_FORMAT_CREATE_REQUEST_DATA_PARAMETERS = new HashSet<>(
             Arrays.asList(AccountNumberFormatConstants.accountTypeParamName, AccountNumberFormatConstants.prefixTypeParamName));
 
@@ -125,7 +130,9 @@ public class AccountNumberFormatDataValidator {
             case GROUP:
                 validAccountNumberPrefixes = AccountNumberFormatEnumerations.accountNumberPrefixesForGroups;
             break;
-            default:
+            case SHARES:
+                validAccountNumberPrefixes = Collections.emptySet();
+            break;
         }
 
         Set<Integer> validAccountNumberPrefixValues = new HashSet<>();
diff --git a/fineract-provider/src/main/java/org/apache/fineract/infrastructure/accountnumberformat/service/AccountNumberFormatReadPlatformServiceImpl.java b/fineract-provider/src/main/java/org/apache/fineract/infrastructure/accountnumberformat/service/AccountNumberFormatReadPlatformServiceImpl.java
index ff8c298..d22f02f 100644
--- a/fineract-provider/src/main/java/org/apache/fineract/infrastructure/accountnumberformat/service/AccountNumberFormatReadPlatformServiceImpl.java
+++ b/fineract-provider/src/main/java/org/apache/fineract/infrastructure/accountnumberformat/service/AccountNumberFormatReadPlatformServiceImpl.java
@@ -34,6 +34,8 @@ import org.apache.fineract.infrastructure.accountnumberformat.exception.AccountN
 import org.apache.fineract.infrastructure.core.data.EnumOptionData;
 import org.apache.fineract.infrastructure.core.domain.JdbcSupport;
 import org.apache.fineract.infrastructure.core.service.RoutingDataSource;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.dao.EmptyResultDataAccessException;
 import org.springframework.jdbc.core.JdbcTemplate;
@@ -43,6 +45,8 @@ import org.springframework.stereotype.Service;
 @Service
 public class AccountNumberFormatReadPlatformServiceImpl implements AccountNumberFormatReadPlatformService {
 
+    private static final Logger LOG = LoggerFactory.getLogger(AccountNumberFormatReadPlatformServiceImpl.class);
+
     private final JdbcTemplate jdbcTemplate;
 
     // data mapper
@@ -144,7 +148,9 @@ public class AccountNumberFormatReadPlatformServiceImpl implements AccountNumber
             case GROUP:
                 accountNumberPrefixTypesSet = AccountNumberFormatEnumerations.accountNumberPrefixesForGroups;
             break;
-            default:
+            case SHARES:
+            // SHARES has no prefix
+            break;
         }
 
         Object[] array = accountNumberPrefixTypesSet.toArray();
diff --git a/fineract-provider/src/main/java/org/apache/fineract/organisation/workingdays/domain/WorkingDaysEnumerations.java b/fineract-provider/src/main/java/org/apache/fineract/organisation/workingdays/domain/WorkingDaysEnumerations.java
index 190a268..6da9080 100644
--- a/fineract-provider/src/main/java/org/apache/fineract/organisation/workingdays/domain/WorkingDaysEnumerations.java
+++ b/fineract-provider/src/main/java/org/apache/fineract/organisation/workingdays/domain/WorkingDaysEnumerations.java
@@ -52,7 +52,10 @@ public class WorkingDaysEnumerations {
                 optionData = new EnumOptionData(RepaymentRescheduleType.MOVE_TO_PREVIOUS_WORKING_DAY.getValue().longValue(),
                         RepaymentRescheduleType.MOVE_TO_PREVIOUS_WORKING_DAY.getCode(), "move to previous working day");
             break;
-            default:
+            case MOVE_TO_NEXT_MEETING_DAY:
+                optionData = new EnumOptionData(RepaymentRescheduleType.MOVE_TO_NEXT_MEETING_DAY.getValue().longValue(),
+                        RepaymentRescheduleType.MOVE_TO_NEXT_MEETING_DAY.getCode(), "move to next meeting day");
+            break;
         }
 
         return optionData;
diff --git a/fineract-provider/src/main/java/org/apache/fineract/portfolio/accountdetails/service/AccountEnumerations.java b/fineract-provider/src/main/java/org/apache/fineract/portfolio/accountdetails/service/AccountEnumerations.java
index 1f59da3..0cdb61d 100644
--- a/fineract-provider/src/main/java/org/apache/fineract/portfolio/accountdetails/service/AccountEnumerations.java
+++ b/fineract-provider/src/main/java/org/apache/fineract/portfolio/accountdetails/service/AccountEnumerations.java
@@ -51,7 +51,9 @@ public class AccountEnumerations {
             case GLIM:
                 optionData = new EnumOptionData(AccountType.GLIM.getValue().longValue(), AccountType.GLIM.getCode(), "GLIM");
             break;
-            default:
+            case GSIM:
+                optionData = new EnumOptionData(AccountType.GSIM.getValue().longValue(), AccountType.GSIM.getCode(), "GSIM");
+            break;
         }
 
         return optionData;
diff --git a/fineract-provider/src/main/java/org/apache/fineract/portfolio/interestratechart/service/InterestRateChartEnumerations.java b/fineract-provider/src/main/java/org/apache/fineract/portfolio/interestratechart/service/InterestRateChartEnumerations.java
index 3228093..bf03017 100644
--- a/fineract-provider/src/main/java/org/apache/fineract/portfolio/interestratechart/service/InterestRateChartEnumerations.java
+++ b/fineract-provider/src/main/java/org/apache/fineract/portfolio/interestratechart/service/InterestRateChartEnumerations.java
@@ -22,9 +22,13 @@ import java.util.ArrayList;
 import java.util.List;
 import org.apache.fineract.infrastructure.core.data.EnumOptionData;
 import org.apache.fineract.portfolio.common.domain.PeriodFrequencyType;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 
 public class InterestRateChartEnumerations {
 
+    private static final Logger LOG = LoggerFactory.getLogger(InterestRateChartEnumerations.class);
+
     public static EnumOptionData periodType(final Integer type) {
         return periodType(PeriodFrequencyType.fromInt(type));
     }
@@ -52,7 +56,10 @@ public class InterestRateChartEnumerations {
                 optionData = new EnumOptionData(PeriodFrequencyType.YEARS.getValue().longValue(), PeriodFrequencyType.YEARS.getCode(),
                         "Years");
             break;
-            default:
+            case WHOLE_TERM:
+                optionData = new EnumOptionData(PeriodFrequencyType.WHOLE_TERM.getValue().longValue(),
+                        PeriodFrequencyType.WHOLE_TERM.getCode(), "Whole Term");
+            break;
         }
 
         return optionData;
diff --git a/fineract-provider/src/main/java/org/apache/fineract/portfolio/loanaccount/domain/Loan.java b/fineract-provider/src/main/java/org/apache/fineract/portfolio/loanaccount/domain/Loan.java
index 024ff00..b8a2850 100644
--- a/fineract-provider/src/main/java/org/apache/fineract/portfolio/loanaccount/domain/Loan.java
+++ b/fineract-provider/src/main/java/org/apache/fineract/portfolio/loanaccount/domain/Loan.java
@@ -142,6 +142,8 @@ import org.joda.time.LocalDate;
 import org.joda.time.LocalDateTime;
 import org.joda.time.format.DateTimeFormat;
 import org.joda.time.format.DateTimeFormatter;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 import org.springframework.stereotype.Component;
 
 @Entity
@@ -150,6 +152,8 @@ import org.springframework.stereotype.Component;
         @UniqueConstraint(columnNames = { "external_id" }, name = "loan_externalid_UNIQUE") })
 public class Loan extends AbstractPersistableCustom {
 
+    private static final Logger LOG = LoggerFactory.getLogger(Loan.class);
+
     /** Disable optimistic locking till batch jobs failures can be fixed **/
     @Version
     int version;
@@ -4478,7 +4482,8 @@ public class Loan extends AbstractPersistableCustom {
             break;
             case INVALID:
             break;
-            default:
+            case WHOLE_TERM:
+            break;
         }
         return dueRepaymentPeriodDate.minusDays(1);// get 2n-1 range date from
                                                    // startDate
diff --git a/fineract-provider/src/main/java/org/apache/fineract/portfolio/loanaccount/loanschedule/domain/AprCalculator.java b/fineract-provider/src/main/java/org/apache/fineract/portfolio/loanaccount/loanschedule/domain/AprCalculator.java
index 7491302..500bdc0 100644
--- a/fineract-provider/src/main/java/org/apache/fineract/portfolio/loanaccount/loanschedule/domain/AprCalculator.java
+++ b/fineract-provider/src/main/java/org/apache/fineract/portfolio/loanaccount/loanschedule/domain/AprCalculator.java
@@ -59,7 +59,10 @@ public class AprCalculator {
                     case YEARS:
                         defaultAnnualNominalInterestRate = ratePerPeriod.multiply(BigDecimal.valueOf(1));
                     break;
-                    default:
+                    case WHOLE_TERM:
+                    break;
+                    case INVALID:
+                    break;
                 }
             break;
             case INVALID:
diff --git a/fineract-provider/src/main/java/org/apache/fineract/portfolio/loanaccount/loanschedule/domain/DefaultPaymentPeriodsInOneYearCalculator.java b/fineract-provider/src/main/java/org/apache/fineract/portfolio/loanaccount/loanschedule/domain/DefaultPaymentPeriodsInOneYearCalculator.java
index 9fa9baf..99a7211 100644
--- a/fineract-provider/src/main/java/org/apache/fineract/portfolio/loanaccount/loanschedule/domain/DefaultPaymentPeriodsInOneYearCalculator.java
+++ b/fineract-provider/src/main/java/org/apache/fineract/portfolio/loanaccount/loanschedule/domain/DefaultPaymentPeriodsInOneYearCalculator.java
@@ -22,9 +22,13 @@ import org.apache.fineract.infrastructure.core.domain.LocalDateInterval;
 import org.apache.fineract.portfolio.common.domain.PeriodFrequencyType;
 import org.joda.time.Days;
 import org.joda.time.LocalDate;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 
 public class DefaultPaymentPeriodsInOneYearCalculator implements PaymentPeriodsInOneYearCalculator {
 
+    private static final Logger LOG = LoggerFactory.getLogger(DefaultPaymentPeriodsInOneYearCalculator.class);
+
     @Override
     public Integer calculate(final PeriodFrequencyType repaymentFrequencyType) {
 
@@ -45,7 +49,9 @@ public class DefaultPaymentPeriodsInOneYearCalculator implements PaymentPeriodsI
             case INVALID:
                 paymentPeriodsInOneYear = Integer.valueOf(0);
             break;
-            default:
+            case WHOLE_TERM:
+                LOG.error("TODO Implement repaymentFrequencyType for WHOLE_TERM");
+            break;
         }
         return paymentPeriodsInOneYear;
     }
@@ -92,7 +98,9 @@ public class DefaultPaymentPeriodsInOneYearCalculator implements PaymentPeriodsI
             case INVALID:
                 fraction = Double.valueOf("0");
             break;
-            default:
+            case WHOLE_TERM:
+                LOG.error("TODO Implement repaymentPeriodFrequencyType for WHOLE_TERM");
+            break;
         }
         return fraction;
     }
diff --git a/fineract-provider/src/main/java/org/apache/fineract/portfolio/loanaccount/loanschedule/domain/DefaultScheduledDateGenerator.java b/fineract-provider/src/main/java/org/apache/fineract/portfolio/loanaccount/loanschedule/domain/DefaultScheduledDateGenerator.java
index 1440ba0..09ee682 100644
--- a/fineract-provider/src/main/java/org/apache/fineract/portfolio/loanaccount/loanschedule/domain/DefaultScheduledDateGenerator.java
+++ b/fineract-provider/src/main/java/org/apache/fineract/portfolio/loanaccount/loanschedule/domain/DefaultScheduledDateGenerator.java
@@ -33,9 +33,13 @@ import org.joda.time.LocalDate;
 import org.joda.time.Months;
 import org.joda.time.Weeks;
 import org.joda.time.Years;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 
 public class DefaultScheduledDateGenerator implements ScheduledDateGenerator {
 
+    private static final Logger LOG = LoggerFactory.getLogger(DefaultScheduledDateGenerator.class);
+
     @Override
     public LocalDate getLastRepaymentDate(final LoanApplicationTerms loanApplicationTerms, final HolidayDetailDTO holidayDetailDTO) {
 
@@ -225,7 +229,9 @@ public class DefaultScheduledDateGenerator implements ScheduledDateGenerator {
             break;
             case INVALID:
             break;
-            default:
+            case WHOLE_TERM:
+                LOG.error("TODO Implement getRepaymentPeriodDate for WHOLE_TERM");
+            break;
         }
         return dueRepaymentPeriodDate;
     }
@@ -265,7 +271,9 @@ public class DefaultScheduledDateGenerator implements ScheduledDateGenerator {
             break;
             case INVALID:
             break;
-            default:
+            case WHOLE_TERM:
+                LOG.error("TODO Implement isDateFallsInSchedule for WHOLE_TERM");
+            break;
         }
         return isScheduledDate;
     }
@@ -300,7 +308,9 @@ public class DefaultScheduledDateGenerator implements ScheduledDateGenerator {
             break;
             case INVALID:
             break;
-            default:
+            case WHOLE_TERM:
+                LOG.error("TODO Implement repaymentPeriodFrequencyType for WHOLE_TERM");
+            break;
         }
 
         return idealDisbursementDate;
diff --git a/fineract-provider/src/main/java/org/apache/fineract/portfolio/loanaccount/loanschedule/domain/LoanApplicationTerms.java b/fineract-provider/src/main/java/org/apache/fineract/portfolio/loanaccount/loanschedule/domain/LoanApplicationTerms.java
index 7bf3d1d..f1d8fff 100644
--- a/fineract-provider/src/main/java/org/apache/fineract/portfolio/loanaccount/loanschedule/domain/LoanApplicationTerms.java
+++ b/fineract-provider/src/main/java/org/apache/fineract/portfolio/loanaccount/loanschedule/domain/LoanApplicationTerms.java
@@ -57,9 +57,13 @@ import org.joda.time.Period;
 import org.joda.time.PeriodType;
 import org.joda.time.Weeks;
 import org.joda.time.Years;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 
 public final class LoanApplicationTerms {
 
+    private static final Logger LOG = LoggerFactory.getLogger(LoanApplicationTerms.class);
+
     private final ApplicationCurrency currency;
 
     private final Calendar loanCalendar;
@@ -648,7 +652,9 @@ public final class LoanApplicationTerms {
             break;
             case INVALID:
             break;
-            default:
+            case WHOLE_TERM:
+                LOG.error("TODO Implement getPeriodEndDate for WHOLE_TERM");
+            break;
         }
         return dueRepaymentPeriodDate;
     }
@@ -1038,7 +1044,9 @@ public final class LoanApplicationTerms {
                         }
                         periodicInterestRate = oneDayOfYearInterestRate.multiply(numberOfDaysInPeriod, mc);
                     break;
-                    default:
+                    case WHOLE_TERM:
+                        LOG.error("TODO Implement periodicInterestRate for WHOLE_TERM");
+                    break;
                 }
             break;
             case SAME_AS_REPAYMENT_PERIOD:
diff --git a/fineract-provider/src/main/java/org/apache/fineract/portfolio/note/api/NotesApiResource.java b/fineract-provider/src/main/java/org/apache/fineract/portfolio/note/api/NotesApiResource.java
index c40ad3d..26ec4fd 100644
--- a/fineract-provider/src/main/java/org/apache/fineract/portfolio/note/api/NotesApiResource.java
+++ b/fineract-provider/src/main/java/org/apache/fineract/portfolio/note/api/NotesApiResource.java
@@ -54,6 +54,8 @@ import org.apache.fineract.portfolio.note.data.NoteData;
 import org.apache.fineract.portfolio.note.domain.NoteType;
 import org.apache.fineract.portfolio.note.exception.NoteResourceNotSupportedException;
 import org.apache.fineract.portfolio.note.service.NoteReadPlatformService;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.context.annotation.Scope;
 import org.springframework.stereotype.Component;
@@ -69,6 +71,7 @@ public class NotesApiResource {
             Arrays.asList("id", "clientId", "groupId", "loanId", "loanTransactionId", "depositAccountId", "savingAccountId", "noteType",
                     "note", "createdById", "createdByUsername", "createdOn", "updatedById", "updatedByUsername", "updatedOn"));
 
+    private static final Logger LOG = LoggerFactory.getLogger(NotesApiResource.class);
     private final PlatformSecurityContext context;
     private final NoteReadPlatformService readPlatformService;
     private final DefaultToApiJsonSerializer<NoteData> toApiJsonSerializer;
@@ -254,6 +257,8 @@ public class NotesApiResource {
                 resourceDetails.withGroupId(resourceId);
             break;
             default:
+                resourceNameForPermissions = "INVALIDNOTE";
+            break;
 
         }
 
diff --git a/fineract-provider/src/main/java/org/apache/fineract/portfolio/note/service/NoteWritePlatformServiceJpaRepositoryImpl.java b/fineract-provider/src/main/java/org/apache/fineract/portfolio/note/service/NoteWritePlatformServiceJpaRepositoryImpl.java
index c679946..446e510 100644
--- a/fineract-provider/src/main/java/org/apache/fineract/portfolio/note/service/NoteWritePlatformServiceJpaRepositoryImpl.java
+++ b/fineract-provider/src/main/java/org/apache/fineract/portfolio/note/service/NoteWritePlatformServiceJpaRepositoryImpl.java
@@ -40,12 +40,15 @@ import org.apache.fineract.portfolio.note.domain.NoteType;
 import org.apache.fineract.portfolio.note.exception.NoteNotFoundException;
 import org.apache.fineract.portfolio.note.exception.NoteResourceNotSupportedException;
 import org.apache.fineract.portfolio.note.serialization.NoteCommandFromApiJsonDeserializer;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
 @Service
 public class NoteWritePlatformServiceJpaRepositoryImpl implements NoteWritePlatformService {
 
+    private static final Logger LOG = LoggerFactory.getLogger(NoteWritePlatformServiceJpaRepositoryImpl.class);
     private final NoteRepository noteRepository;
     private final ClientRepositoryWrapper clientRepository;
     private final GroupRepository groupRepository;
@@ -446,7 +449,12 @@ public class NoteWritePlatformServiceJpaRepositoryImpl implements NoteWritePlatf
             // break;
             case SAVING_ACCOUNT:
             break;
-            default:
+            case SHARE_ACCOUNT:
+                LOG.error("TODO Implement getNoteForDelete for SHARE_ACCOUNT");
+            break;
+            case SAVINGS_TRANSACTION:
+                LOG.error("TODO Implement getNoteForDelete for SAVINGS_TRANSACTION");
+            break;
         }
         if (noteForUpdate == null) {
             throw new NoteNotFoundException(noteId, resourceId, type.name().toLowerCase());
diff --git a/fineract-provider/src/main/java/org/apache/fineract/portfolio/savings/DepositAccountUtils.java b/fineract-provider/src/main/java/org/apache/fineract/portfolio/savings/DepositAccountUtils.java
index 2660418..62e75fa 100644
--- a/fineract-provider/src/main/java/org/apache/fineract/portfolio/savings/DepositAccountUtils.java
+++ b/fineract-provider/src/main/java/org/apache/fineract/portfolio/savings/DepositAccountUtils.java
@@ -22,9 +22,13 @@ import org.apache.fineract.portfolio.calendar.domain.CalendarFrequencyType;
 import org.apache.fineract.portfolio.calendar.service.CalendarUtils;
 import org.apache.fineract.portfolio.common.domain.PeriodFrequencyType;
 import org.joda.time.LocalDate;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 
 public class DepositAccountUtils {
 
+    private static final Logger LOG = LoggerFactory.getLogger(DepositAccountUtils.class);
+
     public static final int GENERATE_MINIMUM_NUMBER_OF_FUTURE_INSTALMENTS = 5;
 
     public static LocalDate calculateNextDepositDate(final LocalDate lastDepositDate, final PeriodFrequencyType frequency,
@@ -46,7 +50,9 @@ public class DepositAccountUtils {
             break;
             case INVALID:
             break;
-            default:
+            case WHOLE_TERM:
+                LOG.error("TODO Implement calculateNextDepositDate for WHOLE_TERM");
+            break;
         }
         return nextDepositDate;
     }
diff --git a/fineract-provider/src/main/java/org/apache/fineract/portfolio/savings/domain/SavingsAccount.java b/fineract-provider/src/main/java/org/apache/fineract/portfolio/savings/domain/SavingsAccount.java
index 8e9ef31..2117433 100644
--- a/fineract-provider/src/main/java/org/apache/fineract/portfolio/savings/domain/SavingsAccount.java
+++ b/fineract-provider/src/main/java/org/apache/fineract/portfolio/savings/domain/SavingsAccount.java
@@ -117,6 +117,8 @@ import org.apache.fineract.useradministration.domain.AppUser;
 import org.joda.time.LocalDate;
 import org.joda.time.format.DateTimeFormat;
 import org.joda.time.format.DateTimeFormatter;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 import org.springframework.util.CollectionUtils;
 
 @Entity
@@ -127,6 +129,8 @@ import org.springframework.util.CollectionUtils;
 @DiscriminatorValue("100")
 public class SavingsAccount extends AbstractPersistableCustom {
 
+    private static final Logger LOG = LoggerFactory.getLogger(SavingsAccount.class);
+
     @Version
     int version;
 
@@ -2383,7 +2387,9 @@ public class SavingsAccount extends AbstractPersistableCustom {
             case YEARS:
                 lockedInUntilLocalDate = activationLocalDate.plusYears(this.lockinPeriodFrequency).toDate();
             break;
-            default:
+            case WHOLE_TERM:
+                LOG.error("TODO Implement calculateDateAccountIsLockedUntil for WHOLE_TERM");
+            break;
         }
 
         return lockedInUntilLocalDate;
diff --git a/fineract-provider/src/main/java/org/apache/fineract/portfolio/savings/domain/SavingsAccountCharge.java b/fineract-provider/src/main/java/org/apache/fineract/portfolio/savings/domain/SavingsAccountCharge.java
index 9a9f0d7..38f3183 100644
--- a/fineract-provider/src/main/java/org/apache/fineract/portfolio/savings/domain/SavingsAccountCharge.java
+++ b/fineract-provider/src/main/java/org/apache/fineract/portfolio/savings/domain/SavingsAccountCharge.java
@@ -51,6 +51,8 @@ import org.apache.fineract.portfolio.charge.domain.ChargeTimeType;
 import org.apache.fineract.portfolio.charge.exception.SavingsAccountChargeWithoutMandatoryFieldException;
 import org.joda.time.LocalDate;
 import org.joda.time.MonthDay;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 
 /**
  * @author dv6
@@ -60,6 +62,8 @@ import org.joda.time.MonthDay;
 @Table(name = "m_savings_account_charge")
 public class SavingsAccountCharge extends AbstractPersistableCustom {
 
+    private static final Logger LOG = LoggerFactory.getLogger(SavingsAccountCharge.class);
+
     @ManyToOne(optional = false)
     @JoinColumn(name = "savings_account_id", referencedColumnName = "id", nullable = false)
     private SavingsAccount savingsAccount;
@@ -290,7 +294,15 @@ public class SavingsAccountCharge extends AbstractPersistableCustom {
                 this.amountWaived = null;
                 this.amountWrittenOff = null;
             break;
-            default:
+            case PERCENT_OF_DISBURSEMENT_AMOUNT:
+                this.percentage = null;
+                this.amount = null;
+                this.amountPercentageAppliedTo = null;
+                this.amountPaid = null;
+                this.amountOutstanding = BigDecimal.ZERO;
+                this.amountWaived = null;
+                this.amountWrittenOff = null;
+            break;
         }
     }
 
@@ -419,7 +431,9 @@ public class SavingsAccountCharge extends AbstractPersistableCustom {
                     this.amountPercentageAppliedTo = null;
                     this.amountOutstanding = null;
                 break;
-                default:
+                case PERCENT_OF_DISBURSEMENT_AMOUNT:
+                    LOG.error("TODO Implement update ChargeCalculationType for PERCENT_OF_DISBURSEMENT_AMOUNT");
+                break;
             }
         }
     }
@@ -493,7 +507,9 @@ public class SavingsAccountCharge extends AbstractPersistableCustom {
                     this.amountPercentageAppliedTo = null;
                     this.amountOutstanding = null;
                 break;
-                default:
+                case PERCENT_OF_DISBURSEMENT_AMOUNT:
+                    LOG.error("TODO Implement update ChargeCalculationType for PERCENT_OF_DISBURSEMENT_AMOUNT");
+                break;
             }
         }
 
diff --git a/fineract-provider/src/main/java/org/apache/fineract/portfolio/shareaccounts/serialization/ShareAccountDataSerializer.java b/fineract-provider/src/main/java/org/apache/fineract/portfolio/shareaccounts/serialization/ShareAccountDataSerializer.java
index 3be51c4..d52125b 100644
--- a/fineract-provider/src/main/java/org/apache/fineract/portfolio/shareaccounts/serialization/ShareAccountDataSerializer.java
+++ b/fineract-provider/src/main/java/org/apache/fineract/portfolio/shareaccounts/serialization/ShareAccountDataSerializer.java
@@ -69,12 +69,16 @@ import org.apache.fineract.useradministration.domain.AppUser;
 import org.joda.time.LocalDate;
 import org.joda.time.format.DateTimeFormat;
 import org.joda.time.format.DateTimeFormatter;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
 @Service
 public class ShareAccountDataSerializer {
 
+    private static final Logger LOG = LoggerFactory.getLogger(ShareAccountDataSerializer.class);
+
     private final PlatformSecurityContext platformSecurityContext;
 
     private final FromJsonHelper fromApiJsonHelper;
@@ -967,7 +971,8 @@ public class ShareAccountDataSerializer {
                 case YEARS:
                     lockinDate = purchaseDate.plusYears(lockinPeriod);
                 break;
-                default:
+                case WHOLE_TERM: // Never comes in to this state.
+                break;
             }
         }
         return lockinDate;