final ObjectAdapter onAdapter = performContext.getOnAdapter();
final ObjectMember nakedObjectMember = performContext.getObjectMember();
final CellBinding onMemberBinding = performContext.getPeer().getOnMemberBinding();
final List<ScenarioCell> argumentCells = performContext.getArgumentCells();
final ObjectAction nakedObjectAction = (ObjectAction) nakedObjectMember;
final int parameterCount = nakedObjectAction.getParameterCount();
final boolean isContributedOneArgAction = nakedObjectAction.isContributed() && parameterCount == 1;
if (isContributedOneArgAction) {
return null;
}
// lookup arguments
final ObjectAdapter[] proposedArguments = performContext.getPeer().getAdapters(onAdapter, nakedObjectAction, onMemberBinding, argumentCells);
// validate arguments
final Consent argSetValid = nakedObjectAction.isProposedArgumentSetValid(onAdapter, proposedArguments);
if (argSetValid.isAllowed()) {
final CellBinding thatItBinding = performContext.getPeer().getThatItBinding();
throw ScenarioBoundValueException.current(thatItBinding, "(valid)");
}