private NakedObjectAction[] findServiceMethodsWithParameter(final NakedObjectAction.Type type) { Object[] services = NakedObjectsContext.getObjectLoader().getServices(); List serviceActionSets = new ArrayList(); for (int i = 0; i < services.length; i++) { NakedObject serviceAdapter = NakedObjectsContext.getObjectLoader().getAdapterFor(services[i]); NakedObjectSpecification specification = serviceAdapter.getSpecification(); if (specification == this) { continue; } NakedObjectAction[] serviceActions = specification.getObjectActions(type); List matchingServiceActions = new ArrayList(); for (int j = 0; j < serviceActions.length; j++) { NakedObjectSpecification[] params = serviceActions[j].getParameterTypes(); for (int k = 0; k < params.length; k++) { if (isOfType(params[k])) { matchingServiceActions.add(serviceActions[j]); break; } } } if (matchingServiceActions.size() > 0) { NakedObjectAction[] asArray = (NakedObjectAction[]) matchingServiceActions .toArray(new NakedObjectAction[matchingServiceActions.size()]); ActionSet actionSet = new ActionSet("id", serviceAdapter.titleString(), asArray); serviceActionSets.add(actionSet); } } return (NakedObjectAction[]) serviceActionSets.toArray(new NakedObjectAction[serviceActionSets.size()]); }
public static ImmediateObjectOption createOption(final NakedObjectAction action, final NakedReference object) { Assert.assertTrue("Only suitable for 0 param methods", action.getParameterTypes().length == 0); if (!action.isVisible() || !action.isVisible(object)) { return null; } ImmediateObjectOption option = new ImmediateObjectOption(action, object); return option; }
public static ImmediateObjectOption createServiceOption(final NakedObjectAction action, final NakedReference object) { Assert.assertTrue("Only suitable for 1 param methods", action.getParameterTypes().length == 1); if (!action.isVisible() || !action.isVisible(object)) { return null; } ImmediateObjectOption option = new ImmediateObjectOption(action, object); return option; }
private static void menuOptions( final NakedObjectAction[] actions, final NakedReference target, final UserActionSet menuOptionSet) { for (int i = 0; i < actions.length; i++) { UserAction option = null; if (actions[i].getActions().length > 0) { option = new UserActionSet(actions[i].getName(), menuOptionSet); menuOptions(actions[i].getActions(), target, (UserActionSet) option); } else { int noOfParameters = actions[i].getParameterTypes().length; if (noOfParameters == 0) { option = ImmediateObjectOption.createOption(actions[i], target); } else if (actions[i].isContributedMethodWithSuitableParameter() && noOfParameters == 1 && target != null && target.getSpecification().isOfType(actions[i].getParameterTypes()[0])) { option = ImmediateObjectOption.createServiceOption(actions[i], target); } else { option = DialoggedObjectOption.createOption(actions[i], target); } } if (option != null) { menuOptionSet.add(option); } } } }
public static ActionHelper createInstance(final NakedReference target, final NakedObjectAction action) { int numberParameters = action.getParameterTypes().length; Naked[] parameters = new Naked[numberParameters]; Naked[] defaultValues; parameterTypes = action.getParameterTypes(); values = new Naked[parameterTypes.length]; for (int i = 0; i < parameterTypes.length; i++) {
if (action.getParameterTypes()[i].getType() == NakedObjectSpecification.OBJECT && parameterData[i] instanceof ObjectData) { persistedParameters[i] = encoder.createMadePersistentGraph((ObjectData) parameterData[i],