@Override public String toString() { final StringBuffer sb = new StringBuffer(); sb.append("Action ["); sb.append(super.toString()); sb.append(",type="); sb.append(getType()); sb.append(",returns="); sb.append(getReturnType()); sb.append(",parameters={"); for (int i = 0; i < getParameterCount(); i++) { if (i > 0) { sb.append(","); } sb.append(getParameters().get(i).getSpecification().getShortIdentifier()); } sb.append("}]"); return sb.toString(); }
private boolean determineWhetherContributed() { if (getOnType().isService() && getParameterCount() > 0) { final List<ObjectActionParameter> params = getParameters(); for (int i = 0; i < params.size(); i++) { if (params.get(i).isObject()) { return true; } } } return false; }
@Override public boolean promptForParameters(final ObjectAdapter target) { final List<ObjectActionParameter> parameters = getParameters(); if (isContributed() && !target.getSpecification().isService()) { return getParameterCount() > 1 || !target.getSpecification().isOfType(parameters.get(0).getSpecification()); } else { return getParameterCount() > 0; } }
/** * Build lazily by {@link #getParameters()}. * * <p> * Although this is lazily loaded, the method is also <tt>synchronized</tt> * so there shouldn't be any thread race conditions. */ @Override public synchronized List<ObjectActionParameter> getParameters() { if (this.parameters == null) { final int parameterCount = getParameterCount(); final List<ObjectActionParameter> parameters = Lists.newArrayList(); final List<FacetedMethodParameter> paramPeers = getFacetedMethod().getParameters(); for (int i = 0; i < parameterCount; i++) { final TypedHolder paramPeer = paramPeers.get(i); final ObjectSpecification specification = ObjectMemberAbstract.getSpecification(getSpecificationLookup(), paramPeer.getType()); if (specification.isParseable()) { parameters.add(new ObjectActionParameterParseable(i, this, paramPeer)); } else if (specification.isNotCollection()) { parameters.add(new OneToOneActionParameterImpl(i, this, paramPeer)); } else if (specification.isCollection()) { throw new UnknownTypeException("collections not supported as parameters: " + getIdentifier()); } else { throw new UnknownTypeException(specification); } } this.parameters = parameters; } return parameters; }
final ObjectAdapter realTarget = realTarget(target); final int parameterCount = getParameterCount(); final List<ObjectActionParameter> parameters = getParameters();
final ObjectAdapter realTarget = realTarget(target); final int parameterCount = getParameterCount(); Object[][] parameterChoicesPojos;