public boolean isValid()

in api/src/main/java/org/apache/fineract/cn/portfolio/api/v1/validation/CheckValidChargeDefinition.java [36:60]


  public boolean isValid(ChargeDefinition value, ConstraintValidatorContext context) {
    if (value.getAmount() == null)
      return false;
    if (value.getAmount().scale() > 4)
      return false;
    if (value.getAccrueAction() != null && value.getAccrualAccountDesignator() == null)
      return false;
    if (value.getAccrueAction() == null && value.getAccrualAccountDesignator() != null)
      return false;
    if (value.getChargeMethod() == ChargeDefinition.ChargeMethod.PROPORTIONAL &&
        value.getProportionalTo() == null)
      return false;
    if (value.getChargeMethod() == ChargeDefinition.ChargeMethod.FIXED &&
        value.getProportionalTo() != null &&
        value.getForSegmentSet() == null) //Even if the charge is a fixed charge, we need a proportional to for segment sets.
       return false;
    if (value.getForSegmentSet() == null &&
        (value.getFromSegment() != null || value.getToSegment() != null))
      return false;
    if (value.getForSegmentSet() != null &&
        (value.getFromSegment() == null || value.getToSegment() == null))
      return false;

    return true;
  }