private void checkNumber()

in service/src/main/java/org/apache/fineract/cn/customer/catalog/internal/service/FieldValueValidator.java [99:138]


  private void checkNumber(final Value value, final FieldEntity fieldEntity) {
    try {
      final Double valueAsDouble = Double.valueOf(value.getValue());

      if (fieldEntity.getMinValue() != null) {
        if (valueAsDouble.compareTo(fieldEntity.getMinValue()) < 0) {
          throw ServiceException.badRequest("Value for field {0} must be greater than or equals {1}.",
              fieldEntity.getIdentifier(), fieldEntity.getMinValue());
        }
      }

      if (fieldEntity.getMaxValue() != null) {
        if (valueAsDouble.compareTo(fieldEntity.getMaxValue()) > 0) {
          throw ServiceException.badRequest("Value for field {0} must be lesser than or equals {1}.",
              fieldEntity.getIdentifier(), fieldEntity.getMaxValue());
        }
      }
    } catch (final Throwable th) {
      throw ServiceException.badRequest("Value for field {0} is not a number.", fieldEntity.getLabel());
    }

    final String[] split = StringUtils.split(value.getValue(), ".");
    if (fieldEntity.getLength() != null)  {
      if (split.length == 2) {
        if ((split[0].length() + split[1].length()) > fieldEntity.getLength()) {
          throw ServiceException.badRequest("Value for field {0} must be smaller than or equals {1}.",
              fieldEntity.getLabel(), fieldEntity.getLength());
        }

        if (fieldEntity.getPrecision() != null)  {
          if (split[1].length() > fieldEntity.getPrecision()) {
            throw ServiceException.badRequest("Precision for field {0} must be smaller than or equals {1}.",
                fieldEntity.getLabel(), fieldEntity.getPrecision());
          }
        }
      } else {
        this.checkLength(value, fieldEntity);
      }
    }
  }