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);
}
}
}