private ObjectActionParameter getParameter(final int position) { final List<ObjectActionParameter> parameters = getParameters(); if (position >= parameters.size()) { throw new IllegalArgumentException("getParameter(int): only " + parameters.size() + " parameters, position=" + position); } return parameters.get(position); }
@Override public synchronized List<ObjectSpecification> getParameterTypes() { final List<ObjectSpecification> parameterTypes = Lists.newArrayList(); final List<ObjectActionParameter> parameters = getParameters(); for (final ObjectActionParameter parameter : parameters) { parameterTypes.add(parameter.getSpecification()); } return parameterTypes; }
@Override public ObjectActionParameter getParameterById(final String paramId) { final List<ObjectActionParameter> allParameters = getParameters(); for (int i = 0; i < allParameters.size(); i++) { final ObjectActionParameter param = allParameters.get(i); if (Objects.equal(paramId, param.getId())) { return param; } } return null; }
@Override public ObjectActionParameter getParameterByName(final String paramName) { final List<ObjectActionParameter> allParameters = getParameters(); for (int i = 0; i < allParameters.size(); i++) { final ObjectActionParameter param = allParameters.get(i); if (Objects.equal(paramName, param.getName())) { return param; } } return null; }
@Override public List<ObjectActionParameter> getParameters(final Filter<ObjectActionParameter> filter) { final List<ObjectActionParameter> allParameters = getParameters(); final List<ObjectActionParameter> selectedParameters = Lists.newArrayList(); for (int i = 0; i < allParameters.size(); i++) { if (filter.accept(allParameters.get(i))) { selectedParameters.add(allParameters.get(i)); } } return selectedParameters; }
@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; } }
private InteractionResultSet isProposedArgumentSetValidResultSet(final ObjectAdapter object, final ObjectAdapter[] proposedArguments) { final InteractionInvocationMethod invocationMethod = InteractionInvocationMethod.BY_USER; final InteractionResultSet resultSet = new InteractionResultSet(); final List<ObjectActionParameter> actionParameters = getParameters(); if (proposedArguments != null) { // TODO: doesn't seem to be used... // ObjectAdapter[] params = realParameters(object, // proposedArguments); for (int i = 0; i < proposedArguments.length; i++) { final ValidityContext<?> ic = actionParameters.get(i).createProposedArgumentInteractionContext(getAuthenticationSession(), invocationMethod, object, proposedArguments, i); InteractionUtils.isValidResultSet(getParameter(i), ic, resultSet); } } // only check the action's own validity if all the arguments are OK. if (resultSet.isAllowed()) { final ValidityContext<?> ic = createActionInvocationInteractionContext(getAuthenticationSession(), invocationMethod, object, proposedArguments); InteractionUtils.isValidResultSet(this, ic, resultSet); } return resultSet; }
final List<ObjectActionParameter> parameters = getParameters();
final List<ObjectActionParameter> parameters = getParameters();
@Test public void getId_whenNamedFaceNotPresentAndMultipleParamsOfSameType() throws Exception { objectActionParameter = new ObjectActionParameterAbstractToTest(2, parentAction, actionParamPeer); objectActionParameter.setSpecification(stubSpecForString); context.checking(new Expectations() { { one(actionParamPeer).getFacet(NamedFacet.class); will(returnValue(null)); one(parentAction).getParameters((Filter<ObjectActionParameter>) with(anything())); will(returnValue(Lists.newArrayList(stubObjectActionParameterString, objectActionParameter, stubObjectActionParameterString2))); } }); assertThat(objectActionParameter.getId(), is("string2")); }
@Test public void getName_whenNamedFaceNotPresentAndMultipleParamsOfSameType() throws Exception { objectActionParameter = new ObjectActionParameterAbstractToTest(2, parentAction, actionParamPeer); objectActionParameter.setSpecification(stubSpecForString); context.checking(new Expectations() { { one(actionParamPeer).getFacet(NamedFacet.class); will(returnValue(null)); one(parentAction).getParameters((Filter<ObjectActionParameter>) with(anything())); will(returnValue(Lists.newArrayList(stubObjectActionParameterString, objectActionParameter, stubObjectActionParameterString2))); } }); assertThat(objectActionParameter.getName(), is("string 2")); }
@SuppressWarnings("unchecked") @Test public void whenNamedFaceNotPresentAndOnlyOneParamOfType() throws Exception { objectActionParameter = new ObjectActionParameterAbstractToTest(0, parentAction, actionParamPeer); objectActionParameter.setSpecification(stubSpecForString); context.checking(new Expectations() { { one(actionParamPeer).getFacet(NamedFacet.class); will(returnValue(null)); one(parentAction).getParameters((Filter<ObjectActionParameter>) with(anything())); will(returnValue(Lists.newArrayList(objectActionParameter))); } }); assertThat(objectActionParameter.getName(), is("string")); }