@Override public TupleRule<?, ?> deepCopy() { checkClassToCopy(DefaultTupleRule.class); DefaultTupleRule copy = new DefaultTupleRule(name, tupleHandler, nodeRuleFactory); copy.setRequired(required); return copy; }
public DefaultTupleRule<Node, MappingNode> createDocumentRule(Class<?> documentClass) { DefaultTupleRule<Node, MappingNode> documentRule = new DefaultTupleRule<Node, MappingNode>(null, new DefaultTupleHandler()); documentRule.setNodeRuleFactory(this); documentRule.addRulesFor(documentClass); return documentRule; }
private String getFullUri(NodeRule<?> resourceRule) { String fullUri = ""; while (resourceRule instanceof ImplicitMapEntryRule) { Node keyNode = ((DefaultTupleRule) resourceRule).getKey(); fullUri = ((ScalarNode) keyNode).getValue() + fullUri; resourceRule = ((DefaultTupleRule) resourceRule).getParentTupleRule(); } return fullUri; }
@Override public final List<ValidationResult> validateValue(Node value) { ArrayList<ValidationResult> validationResults = new ArrayList<ValidationResult>(); if (!Tag.NULL.equals(value.getTag()) && !isValidValueNodeType(value.getClass())) { validationResults.add(ValidationResult.createErrorResult("Invalid value type", value)); } else { validationResults.addAll(doValidateValue((V) value)); } return validationResults; }
@Override public List<ValidationResult> onRuleEnd() { List<ValidationResult> result = new ArrayList<ValidationResult>(); if (isRequired() && !wasAlreadyDefined()) { result.add(ValidationResult.createErrorResult(ValidationMessage.getMissingRuleMessage(name))); } for (TupleRule<?, ?> rule : rules.values()) { List<ValidationResult> onRuleEnd = rule.onRuleEnd(); result.addAll(onRuleEnd); } return result; }
@Override public TupleRule<?, ?> getRuleForTuple(NodeTuple nodeTuple) { if (rules.isEmpty()) { addRulesFor(valueType); } return super.getRuleForTuple(nodeTuple); }
protected boolean isValidValueNodeType(Class valueNodeClass) { for (Class<?> clazz : getValueNodeType()) { if (clazz.isAssignableFrom(valueNodeClass)) { return true; } } return false; }
private <T extends TupleRule> T getRule(String fieldName) { //noinspection unchecked return (T) ((DefaultTupleRule) getRuleContext().peek()).getRuleByFieldName(fieldName); } }
private String getResourceUri(NodeRule<?> resourceRule) { Node keyNode = ((DefaultTupleRule) resourceRule).getKey(); return ((ScalarNode) keyNode).getValue(); }
@Override public TupleRule<?, ?> getRootTupleRule() { TupleRule<?, ?> parentTupleRule = getParentTupleRule(); if (parentTupleRule == null) { return null; } while (parentTupleRule.getParentTupleRule() != null) { parentTupleRule = parentTupleRule.getParentTupleRule(); } return parentTupleRule; } }
@SuppressWarnings("rawtypes") @Override public TupleRule<?, ?> getRuleForTuple(NodeTuple nodeTuple) { Node keyNode = nodeTuple.getKeyNode(); String paramName; if (keyNode instanceof ScalarNode) { paramName = ((ScalarNode) keyNode).getValue(); if (paramName.equals("version")) { errors.add(ValidationResult.createErrorResult("'" + paramName + "'" + " can not be declared, it is a reserved URI parameter.", keyNode)); } else if (getUriRule().getParameters().contains(paramName)) { return new ParamRule(paramName, getNodeRuleFactory()); } else { errors.add(ValidationResult.createErrorResult("Parameter '" + paramName + "' not declared in baseUri", keyNode)); } } else { errors.add(ValidationResult.createErrorResult("Invalid element", keyNode)); } return new DefaultTupleRule(keyNode.toString(), new DefaultTupleHandler(), getNodeRuleFactory()); }
@Override public final List<ValidationResult> validateValue(Node value) { ArrayList<ValidationResult> validationResults = new ArrayList<ValidationResult>(); if (!Tag.NULL.equals(value.getTag()) && !isValidValueNodeType(value.getClass())) { validationResults.add(ValidationResult.createErrorResult("Invalid value type", value)); } else { validationResults.addAll(doValidateValue((V) value)); } return validationResults; }
@Override public List<ValidationResult> onRuleEnd() { List<ValidationResult> result = new ArrayList<ValidationResult>(); if (isRequired() && !wasAlreadyDefined()) { result.add(ValidationResult.createErrorResult(ValidationMessage.getMissingRuleMessage(name))); } for (TupleRule<?, ?> rule : rules.values()) { List<ValidationResult> onRuleEnd = rule.onRuleEnd(); result.addAll(onRuleEnd); } return result; }
@Override public TupleRule<?, ?> getRuleForTuple(NodeTuple nodeTuple) { if (rules.isEmpty()) { addRulesFor(pojoClass); } return super.getRuleForTuple(nodeTuple); }
protected boolean isValidValueNodeType(Class valueNodeClass) { for (Class<?> clazz : getValueNodeType()) { if (clazz.isAssignableFrom(valueNodeClass)) { return true; } } return false; }
private <T extends TupleRule> T getRule(String fieldName) { //noinspection unchecked return (T) ((DefaultTupleRule) getRuleContext().peek()).getRuleByFieldName(fieldName); } }
private String getResourceUri(NodeRule<?> resourceRule) { Node keyNode = ((DefaultTupleRule) resourceRule).getKey(); return ((ScalarNode) keyNode).getValue(); }
@Override public TupleRule<?, ?> getRootTupleRule() { TupleRule<?, ?> parentTupleRule = getParentTupleRule(); if (parentTupleRule == null) { return null; } while (parentTupleRule.getParentTupleRule() != null) { parentTupleRule = parentTupleRule.getParentTupleRule(); } return parentTupleRule; } }
@SuppressWarnings("rawtypes") @Override public TupleRule<?, ?> getRuleForTuple(NodeTuple nodeTuple) { Node keyNode = nodeTuple.getKeyNode(); String paramName; if (keyNode instanceof ScalarNode) { paramName = ((ScalarNode) keyNode).getValue(); if (paramName.equals("version")) { errors.add(ValidationResult.createErrorResult("'" + paramName + "'" + " can not be declared, it is a reserved URI parameter.", keyNode)); } else if (getUriRule().getParameters().contains(paramName)) { return new ParamRule(paramName, getNodeRuleFactory()); } else { errors.add(ValidationResult.createErrorResult("Parameter '" + paramName + "' not declared in baseUri", keyNode)); } } else { errors.add(ValidationResult.createErrorResult("Invalid element", keyNode)); } return new DefaultTupleRule(keyNode.toString(), new DefaultTupleHandler(), getNodeRuleFactory()); }
@Override public TupleRule<?, ?> deepCopy() { checkClassToCopy(DefaultTupleRule.class); DefaultTupleRule copy = new DefaultTupleRule(name, tupleHandler, nodeRuleFactory); copy.setRequired(required); return copy; }