@Override public ValidationResult validate(final String subject, final String input) { final boolean matches = pattern.matcher(input).matches(); return new ValidationResult.Builder() .input(input) .subject(subject) .valid(matches) .explanation(matches ? null : "Value does not match regular expression: " + pattern.pattern()) .build(); } };
@Override public ValidationResult validate(final String subject, final String value) { final boolean valid = "true".equalsIgnoreCase(value) || "false".equalsIgnoreCase(value); final String explanation = valid ? null : "Value must be 'true' or 'false'"; return new ValidationResult.Builder().subject(subject).input(value).valid(valid).explanation(explanation).build(); } };
@Override public ValidationResult validate(final String subject, final String value) { return new ValidationResult.Builder().subject(subject).input(value) .valid(value != null && !value.trim().isEmpty()) .explanation(subject + " must contain at least one character that is not white space").build(); } };
@Override public ValidationResult validate(final String subject, final String input) { final List<String> esList = Arrays.asList(input.split(",")); for (String hostnamePort : esList) { String[] addresses = hostnamePort.split(":"); // Protect against invalid input like http://127.0.0.1:9300 (URL scheme should not be there) if (addresses.length != 2) { return new ValidationResult.Builder().subject(subject).input(input).explanation( "Must be in hostname:port form (no scheme such as http://").valid(false).build(); } } return new ValidationResult.Builder().subject(subject).input(input).explanation( "Valid cluster definition").valid(true).build(); } };
@Override public ValidationResult validate(final String subject, final String value) { String reason = null; try { if (!Charset.isSupported(value)) { reason = "Character Set is not supported by this JVM."; } } catch (final UnsupportedCharsetException uce) { reason = "Character Set is not supported by this JVM."; } catch (final IllegalArgumentException iae) { reason = "Character Set value cannot be null."; } return new ValidationResult.Builder().subject(subject).input(value).explanation(reason).valid(reason == null).build(); } };
@Override public ValidationResult validate(final String subject, final String input) { String reason = null; try { final long longVal = Long.parseLong(input); if (longVal < minimum || (!inclusive && longVal == minimum) | longVal > maximum || (!inclusive && longVal == maximum)) { reason = "Value must be between " + minimum + " and " + maximum + " (" + (inclusive ? "inclusive" : "exclusive") + ")"; } } catch (final NumberFormatException e) { reason = "not a valid integer"; } return new ValidationResult.Builder().subject(subject).input(input).explanation(reason).valid(reason == null).build(); }
@Override public ValidationResult validate(final String subject, final String value) { String reason = null; try { final float intVal = Float.parseFloat(value); } catch (final NumberFormatException e) { reason = "not a valid double"; } catch (final NullPointerException e) { reason = "null is not a valid double"; } return new ValidationResult.Builder().subject(subject).input(value).explanation(reason).valid(reason == null).build(); } };
@Override public ValidationResult validate(final String subject, final String value) { String reason = null; try { final MessageDigest digest = MessageDigest.getInstance(value); } catch (final NoSuchAlgorithmException nsae) { reason = "'" + value + "' is not a supported algorithme by this JVM."; } catch (final NullPointerException npe) { reason = "null is not a supported algorithm"; } return new ValidationResult.Builder().subject(subject).input(value).explanation(reason).valid(reason == null).build(); } };
@Override public ValidationResult validate(final String subject, final String input) { return new ValidationResult.Builder().subject(subject).explanation(String.format("'%s' is not a supported property", subject)).input(input).build(); } };
@Override public ValidationResult validate(final String subject, final String value) { final String substituted = value; final File file = new File(substituted); final boolean valid = file.exists(); final String explanation = valid ? null : "File " + file + " does not exist"; return new ValidationResult.Builder().subject(subject).input(value).valid(valid).explanation(explanation).build(); } }
@Override public ValidationResult validate(final String subject, final String input) { try { new URI(input); return new ValidationResult.Builder().subject(subject).input(input).explanation("Valid URI").valid(true).build(); } catch (final Exception e) { return new ValidationResult.Builder().subject(subject).input(input).explanation("Not a valid URI").valid(false).build(); } } };
@Override public ValidationResult validate(final String subject, final String value) { return new ValidationResult.Builder().subject(subject).input(value).valid(value != null && !value.isEmpty()).explanation(subject + " cannot be empty").build(); } };
@Override public ValidationResult validate(final String subject, final String value) { String reason = null; try { final double intVal = Double.parseDouble(value); } catch (final NumberFormatException e) { reason = "not a valid double"; } catch (final NullPointerException e) { reason = "null is not a valid double"; } return new ValidationResult.Builder().subject(subject).input(value).explanation(reason).valid(reason == null).build(); } };
@Override public ValidationResult validate(final String subject, final String input) { return new ValidationResult.Builder().subject(subject).input(input).valid(true).build(); } };
@Override public ValidationResult validate(final String subject, final String value) { ValidationResult.Builder builder = new ValidationResult.Builder().subject(subject).input(value); try { Enum.valueOf(this.enumClass, value); builder.valid(true); } catch (final Exception e) { builder.explanation(e.getLocalizedMessage()).valid(false); } return builder.build(); } }
@Override public ValidationResult validate(final String subject, final String input) { try { return new ValidationResult.Builder().subject(subject).input(input).explanation("Valid URL").valid(true).build(); } catch (final Exception e) { return new ValidationResult.Builder().subject(subject).input(input).explanation("Not a valid URL").valid(false).build(); } } };
@Override public ValidationResult validate(final String subject, final String value) { String reason = null; if (!Arrays.asList(TimeZone.getAvailableIDs()).contains(value)) reason = "not a valid timezone"; return new ValidationResult.Builder().subject(subject).input(value).explanation(reason).valid(reason == null).build(); } };
@Override public ValidationResult validate(final String subject, final String value) { String reason = String.format("'%s' is not a supported language tag", value); for (String tag : Locale.getISOLanguages()) { if (tag.equals(value)) reason = null; } return new ValidationResult.Builder().subject(subject).input(value).explanation(reason).valid(reason == null).build(); } };
@Override public ValidationResult validate(final String subject, final String value) { String reason = null; try { value.split(","); } catch (final Exception e) { reason = "not a comma separated list"; } return new ValidationResult.Builder().subject(subject).input(value).explanation(reason).valid(reason == null).build(); } };
@Override public ValidationResult validate(final String subject, final String value) { final String[] filenames = value.split(","); for (final String filename : filenames) { final ValidationResult result = StandardValidators.FILE_EXISTS_VALIDATOR.validate(subject, filename.trim()); if (!result.isValid()) { return result; } } return new ValidationResult.Builder().subject(subject).input(value).valid(true).build(); } }