T
- BigDecimal, BigInteger, Long, Integer and String that represents BigDecimal value with current locale@Component(value="ui_DigitsValidator") @Scope(value="prototype") public class DigitsValidator<T> extends AbstractValidator<T>
For error message it uses template string and it is possible to use '${value}', '${integer}' and '${fraction}' keys for formatted output.
In order to provide your own implementation globally, create a subclass and register it in configuration class, for example:
@Bean("ui_DigitsValidator") @Scope(BeanDefinition.SCOPE_PROTOTYPE) @Primary protected DigitsValidator digitsValidator(int integer, int fraction) { return new CustomDigitsValidator(integer, fraction); }
Modifier and Type | Field and Description |
---|---|
protected int |
fraction |
protected int |
integer |
currentAuthentication, datatypeRegistry, message, messages, substitutor
Constructor and Description |
---|
DigitsValidator(int integer,
int fraction)
Constructor with default error message.
|
DigitsValidator(int integer,
int fraction,
java.lang.String message)
Constructor with custom error message.
|
Modifier and Type | Method and Description |
---|---|
void |
accept(T value)
Checks a value.
|
protected void |
fireValidationException(T value) |
int |
getFraction() |
int |
getInteger() |
void |
setCurrentAuthentication(io.jmix.core.security.CurrentAuthentication currentAuthentication) |
protected void |
setDatatypeRegistry(io.jmix.core.metamodel.datatype.DatatypeRegistry datatypeRegistry) |
void |
setFraction(int fraction)
Sets maximum value inclusive.
|
void |
setInteger(int integer)
Sets maximum value inclusive.
|
protected void |
setMessages(io.jmix.core.Messages messages) |
void |
setStringSubstitutor(StringSubstitutor substitutor) |
formatValue, getMessage, getTemplateErrorMessage, setMessage
public DigitsValidator(int integer, int fraction)
integer
- maximum number of integral digitsfraction
- maximum number of fractional digitspublic DigitsValidator(int integer, int fraction, java.lang.String message)
Example: "Value '${value}' is out of bounds ('${integer}' digits is expected in integer part and '${fraction}' in fractional part)".
integer
- maximum number of integral digitsfraction
- maximum number of fractional digitsmessage
- error message@Autowired protected void setDatatypeRegistry(io.jmix.core.metamodel.datatype.DatatypeRegistry datatypeRegistry)
@Autowired public void setCurrentAuthentication(io.jmix.core.security.CurrentAuthentication currentAuthentication)
@Autowired protected void setMessages(io.jmix.core.Messages messages)
@Autowired public void setStringSubstitutor(StringSubstitutor substitutor)
@StudioProperty(required=true) public void setInteger(int integer)
integer
- maximum number of integral digits@StudioProperty(required=true) public void setFraction(int fraction)
fraction
- maximum number of fractional digitspublic int getInteger()
public int getFraction()
public void accept(T value) throws ValidationException
Validator
value
- a valueValidationException
protected void fireValidationException(T value)