@Override public void addRulesFor(Class<?> pojoClass) { super.addRulesFor(pojoClass); SimpleRule typeRule = (SimpleRule) getRuleByFieldName("type"); rules.put("minLength", new EnumModifierRule("minLength", Arrays.asList("string"), typeRule)); rules.put("maxLength", new EnumModifierRule("maxLength", Arrays.asList("string"), typeRule)); rules.put("minimum", new EnumModifierRule("minimum", Arrays.asList("integer", "number"), typeRule)); rules.put("maximum", new EnumModifierRule("maximum", Arrays.asList("integer", "number"), typeRule)); }
@Override public List<ValidationResult> validateKey(ScalarNode key) { List<ValidationResult> validationResults = new ArrayList<ValidationResult>(); ScalarNode enumValueNode = enumRule.getValueNode(); String messageTypes = generateMessageTypes(); if (enumValueNode == null) { validationResults.add(ValidationResult.createErrorResult(enumRule.getName() + " must exist first, and it must be of type" + messageTypes, key.getStartMark(), key.getEndMark())); } if (enumValueNode != null && !enumTypes.contains(enumRule.getValueNode().getValue())) { validationResults.add(ValidationResult.createErrorResult(enumRule.getName() + " must be of type" + messageTypes, key.getStartMark(), key.getEndMark())); } validationResults.addAll(super.validateKey(key)); if (ValidationResult.areValid(validationResults)) { setKeyNode(key); } return validationResults; }
@Override public List<ValidationResult> doValidateValue(ScalarNode value) { String valueNode = value.getValue(); List<ValidationResult> validationResults = new ArrayList<ValidationResult>(); try { Integer.parseInt(valueNode); } catch (NumberFormatException nfe) { validationResults.add(ValidationResult.createErrorResult(getName() + " can only contain integer values greater than zero", value.getStartMark(), value.getEndMark())); } validationResults.addAll(super.doValidateValue(value)); return validationResults; }
@Override public List<ValidationResult> validateKey(ScalarNode key) { List<ValidationResult> validationResults = new ArrayList<ValidationResult>(); ScalarNode enumValueNode = enumRule.getValueNode(); String messageTypes = generateMessageTypes(); if (enumValueNode == null) { validationResults.add(ValidationResult.createErrorResult(enumRule.getName() + " must exist first, and it must be of type" + messageTypes, key.getStartMark(), key.getEndMark())); } if (enumValueNode != null && !enumTypes.contains(enumRule.getValueNode().getValue())) { validationResults.add(ValidationResult.createErrorResult(enumRule.getName() + " must be of type" + messageTypes, key.getStartMark(), key.getEndMark())); } validationResults.addAll(super.validateKey(key)); if (ValidationResult.areValid(validationResults)) { setKeyNode(key); } return validationResults; }
@Override public List<ValidationResult> doValidateValue(ScalarNode value) { String valueNode = value.getValue(); List<ValidationResult> validationResults = new ArrayList<ValidationResult>(); try { Integer.parseInt(valueNode); } catch (NumberFormatException nfe) { validationResults.add(ValidationResult.createErrorResult(getName() + " can only contain integer values greater than zero", value.getStartMark(), value.getEndMark())); } validationResults.addAll(super.doValidateValue(value)); return validationResults; }
@Override public void addRulesFor(Class<?> pojoClass) { super.addRulesFor(pojoClass); SimpleRule typeRule = (SimpleRule) getRuleByFieldName("type"); rules.put("minLength", new EnumModifierRule("minLength", Arrays.asList("string"), typeRule)); rules.put("maxLength", new EnumModifierRule("maxLength", Arrays.asList("string"), typeRule)); rules.put("minimum", new EnumModifierRule("minimum", Arrays.asList("integer", "number"), typeRule)); rules.put("maximum", new EnumModifierRule("maximum", Arrays.asList("integer", "number"), typeRule)); }