@Override public String getInput() { String input = super.getInput(); if (input.trim().length() == 0 || isUnMaskableTypes(getType(), this.maskType)) { // Do nothing return input; } else if (isNumberFormat(getType())) { // Remove special characters DecimalFormatSymbols formatSymbols = new DecimalFormatSymbols(getLocale()); StringBuilder builder = new StringBuilder(); for (int i = 0; i < input.length(); i++) { if (input.charAt(i) != formatSymbols.getGroupingSeparator()) { builder.append(input.charAt(i)); } } return builder.toString(); } else { // Unmask values try { LOGGER.debug("Value to Converter {}", input); return (String) maskFormatter.stringToValue(input); } catch (ParseException ex) { throw newConversionException(input, ex); } } }
/** * I don't know if this is a best place to convert mask (with String type), please if you find * other way... talk to me * * @param value * @return * @throws ConversionException */ @Override protected T convertValue(String[] value) throws ConversionException { if (value != null && value.length > 0 && value[0].trim().length() > 0) { try { String valueToConverter = value[0]; LOGGER.debug("Value to Converter {}", valueToConverter); value[0] = (String) maskFormatter.stringToValue(valueToConverter); } catch (ParseException ex) { throw newConversionException(value[0], ex); } } return super.convertValue(value); }
public String parse(String text, Locale locale) throws ParseException { return (String) delegate.stringToValue(text); }