@Override public void validate(ExecutableElement executableElement, ElementValidation validation) { super.validate(executableElement, validation); for (VariableElement parameter : executableElement.getParameters()) { ParameterRequirement foundParameter = null; for (ParameterRequirement expectedParameter : getParamRequirements()) { if (expectedParameter.isSatisfied(parameter)) { satisfiedParameterRequirements.add(expectedParameter); foundParameter = expectedParameter; break; } } if (foundParameter == null) { invalidate(executableElement, validation); return; } if (!foundParameter.multiple()) { getParamRequirements().remove(foundParameter); } } for (ParameterRequirement expectedParameter : getParamRequirements()) { if (expectedParameter.required() && !satisfiedParameterRequirements.contains(expectedParameter)) { invalidate(executableElement, validation); return; } } }
@Override public void validate(ExecutableElement executableElement, ElementValidation validation) { super.validate(executableElement, validation); for (VariableElement parameter : executableElement.getParameters()) { ParameterRequirement foundParameter = null; for (ParameterRequirement expectedParameter : getParamRequirements()) { if (expectedParameter.isSatisfied(parameter)) { satisfiedParameterRequirements.add(expectedParameter); foundParameter = expectedParameter; break; } } if (foundParameter == null) { invalidate(executableElement, validation); return; } if (!foundParameter.multiple()) { getParamRequirements().remove(foundParameter); } } for (ParameterRequirement expectedParameter : getParamRequirements()) { if (expectedParameter.required() && !satisfiedParameterRequirements.contains(expectedParameter)) { invalidate(executableElement, validation); return; } } }
@Override public void validate(ExecutableElement executableElement, ElementValidation validation) { List<? extends VariableElement> parameters = executableElement.getParameters(); if (!parameterRequirement.multiple()) { if (parameterRequirement.required() && parameters.size() != 1) { invalidate(validation); return; } if (!parameterRequirement.required() && parameters.size() > 1) { invalidate(validation); return; } } for (VariableElement parameter : parameters) { if (!parameterRequirement.isSatisfied(parameter)) { invalidate(validation); return; } } }
private boolean validate(VariableElement parameter) { if (currentParameterRequirement == null) { return false; } if (currentParameterRequirement.isSatisfied(parameter)) { satisfiedParameterRequirements.add(currentParameterRequirement); if (!currentParameterRequirement.multiple()) { nextParameterRequirement(); } } else { if (currentParameterRequirement.required() && !satisfiedParameterRequirements.contains(currentParameterRequirement)) { return false; } else { nextParameterRequirement(); return validate(parameter); } } return true; }
@Override public void validate(ExecutableElement executableElement, ElementValidation validation) { super.validate(executableElement, validation); nextParameterRequirement(); for (VariableElement parameter : executableElement.getParameters()) { if (!validate(parameter)) { invalidate(executableElement, validation); return; } } for (ParameterRequirement expectedParameter : getParamRequirements()) { if (expectedParameter.required() && !satisfiedParameterRequirements.contains(expectedParameter)) { invalidate(executableElement, validation); return; } } }
public OneParamValidator optional() { parameterRequirement.setOptional(); return this; }
public V multiple() { lastParam().setMultiple(); return castThis(); }
public V optional() { lastParam().setOptional(); return castThis(); }
public OneParamValidator multiple() { parameterRequirement.setMultiple(); return this; }
@Override public void validate(ExecutableElement executableElement, ElementValidation validation) { List<? extends VariableElement> parameters = executableElement.getParameters(); if (!parameterRequirement.multiple()) { if (parameterRequirement.required() && parameters.size() != 1) { invalidate(validation); return; } if (!parameterRequirement.required() && parameters.size() > 1) { invalidate(validation); return; } } for (VariableElement parameter : parameters) { if (!parameterRequirement.isSatisfied(parameter)) { invalidate(validation); return; } } }
private boolean validate(VariableElement parameter) { if (currentParameterRequirement == null) { return false; } if (currentParameterRequirement.isSatisfied(parameter)) { satisfiedParameterRequirements.add(currentParameterRequirement); if (!currentParameterRequirement.multiple()) { nextParameterRequirement(); } } else { if (currentParameterRequirement.required() && !satisfiedParameterRequirements.contains(currentParameterRequirement)) { return false; } else { nextParameterRequirement(); return validate(parameter); } } return true; }
@Override public void validate(ExecutableElement executableElement, ElementValidation validation) { super.validate(executableElement, validation); nextParameterRequirement(); for (VariableElement parameter : executableElement.getParameters()) { if (!validate(parameter)) { invalidate(executableElement, validation); return; } } for (ParameterRequirement expectedParameter : getParamRequirements()) { if (expectedParameter.required() && !satisfiedParameterRequirements.contains(expectedParameter)) { invalidate(executableElement, validation); return; } } }
public V multiple() { lastParam().setMultiple(); return castThis(); }
public V optional() { lastParam().setOptional(); return castThis(); }
public OneParamValidator optional() { parameterRequirement.setOptional(); return this; }
public OneParamValidator multiple() { parameterRequirement.setMultiple(); return this; }