/** * Returns the requested extension (if any) on the underlying * {@link #getNakedObjectActionParameter() action parameter}. */ public Object getExtension( Class extensionClass) { return getNakedObjectActionParameter().getExtension(extensionClass); }
public SpecObjectPair getSpecObjectPair() { Object object = get(); NakedObjectActionParameter noap = getNakedObjectActionParameter(); NakedObjectSpecification noapSpec = noap.getSpecification(); if (object == null && !noap.isOptional()) { object = noapSpec.getDefaultValue(); } return new SpecObjectPair(noapSpec, object); }
private Consent checkParamMandatory(int position, Naked argNaked) { NakedObjectActionParameter parameter = getParameter(position); Constraint mandatoryConstraint = (MandatorySemantic) parameter.getExtension(MandatorySemantic.class); if (mandatoryConstraint == null) { return Allow.DEFAULT; } int parameterType = parameter.getSpecification().getType(); if (parameterType != HasType.OBJECT && parameterType != HasType.VALUE) { return Allow.DEFAULT; } if (mandatoryConstraint.violatedBy(argNaked)) { return new Veto(mandatoryConstraint.createExceptionFor(getId(), argNaked)); } return Allow.DEFAULT; }
public boolean isContributedMethodWithSuitableParameter() { if (Features.isService(getOnType()) && getParameterCount() > 0) { NakedObjectActionParameter[] params = getParameters(); for (int i = 0; i < params.length; i++) { if (params[i].isObject()) { return true; } } } return false; }
public boolean accept(NakedObjectActionParameter parameter) { return parameter.getSpecification().getType() == HasType.VALUE; } };
public String isValid( Object proposedValue) { NakedObjectActionParameter noap = getNakedObjectActionParameter(); return noap.isValid(getActionInstance().getNakedObject(), proposedValue); }
for(int i=0; i<values.length; i++) { if (values[i] == null) { if (!noapi[i].getNakedObjectActionParameter().isObject()) { return "Parameter required"; } else {
public boolean accept(NakedObjectActionParameter parameter) { return parameter.getSpecification().getType() == HasType.OBJECT; } };
protected Annotation getAnnotation(NakedObjectActionParameterInstance noapi, Class annotationClazz) { return (Annotation) noapi.getNakedObjectActionParameter().getExtension(annotationClazz); }
/** * Checks that all non-<tt>null</tt> string values do not exceed any specified * maximum length. */ public String check( Naked[] values) { NakedObjectActionParameterInstance[] noapi = getNakedObjectActionInstance().getParameterInstances(); for(int i=0; i<values.length; i++) { if (values[i] == null) { if (!noapi[i].getNakedObjectActionParameter().isObject()) { return "Parameter required"; } else { return null; } } final Object object = values[i].getObject(); if (object != null && object instanceof String) { MaxLengthAnnotation annotation = (MaxLengthAnnotation) getAnnotation(noapi[i], MaxLengthAnnotation.class); if (annotation != null) { String str = (String)object; if (str.length() > annotation.value()) { return "Exceeds maximum length"; } } } } return null; }
private Consent checkParamRegEx(int position, Naked argNaked) { NakedObjectActionParameter parameter = getParameter(position); Constraint regExConstraint = (RegExAnnotation) parameter.getExtension(RegExAnnotation.class); if (regExConstraint == null) { return Allow.DEFAULT; } if (regExConstraint.violatedBy(argNaked)) { return new Veto(regExConstraint.createExceptionFor(getId(), argNaked)); } return Allow.DEFAULT; }
/** * Checks that all non-<tt>null</tt> string values conform to any specified * regular expressions. */ public String check( Naked[] values) { NakedObjectActionParameterInstance[] noapi = getNakedObjectActionInstance().getParameterInstances(); for(int i=0; i<values.length; i++) { if (values[i] == null) { if (!noapi[i].getNakedObjectActionParameter().isObject()) { return "Parameter required"; } else { return null; } } Constraint annotation = (RegExAnnotation) getAnnotation(noapi[i], RegExAnnotation.class); if (annotation != null) { if (annotation.violatedBy(values[i])) { return "Does not match pattern"; // TODO: instead, return an exception? } } } return null; }
private Consent checkParamMaxLength(int position, Naked argNaked) { NakedObjectActionParameter parameter = getParameter(position); Constraint maxLengthConstraint = (MaxLengthAnnotation) parameter.getExtension(MaxLengthAnnotation.class); if (maxLengthConstraint == null) { return Allow.DEFAULT; } if (maxLengthConstraint.violatedBy(argNaked)) { return new Veto(maxLengthConstraint.createExceptionFor(getId(), argNaked)); } return Allow.DEFAULT; }