private void addContributeeActionsIfAny( final ObjectAdapter serviceAdapter, final List<ObjectAction> contributeeActionsToAppendTo) { final ObjectSpecification specification = serviceAdapter.getSpecification(); if (specification == this) { return; } final List<ObjectAction> contributeeActions = Lists.newArrayList(); final List<ObjectAction> serviceActions = specification.getObjectActions( ActionType.ALL, Contributed.INCLUDED, Filters.<ObjectAction>any()); for (final ObjectAction serviceAction : serviceActions) { if (isAlwaysHidden(serviceAction)) { continue; } final NotContributedFacet notContributed = serviceAction.getFacet(NotContributedFacet.class); if (notContributed != null && notContributed.toActions()) { continue; } if (!(serviceAction instanceof ObjectActionImpl)) { continue; } final ObjectActionImpl contributedAction = (ObjectActionImpl) serviceAction; // see if qualifies by inspecting all parameters final int contributeeParam = contributeeParameterMatchOf(contributedAction); if (contributeeParam != -1) { ObjectActionContributee contributeeAction = new ObjectActionContributee( serviceAdapter, contributedAction, contributeeParam, this, objectMemberContext); facetProcessor.processMemberOrder(metadataProperties, contributeeAction); contributeeActions.add(contributeeAction); } } contributeeActionsToAppendTo.addAll(contributeeActions); }
/** For benefit of <tt>IsisMetaModel</tt>. */ public ValidationFailures initAndValidate() { if (LOG.isDebugEnabled()) { LOG.debug("initialising " + this); } // default subcomponents if (runtimeContext == null) { runtimeContext = new RuntimeContextNoRuntime(); } injectInto(runtimeContext); injectInto(specificationTraverser); injectInto(metaModelValidator); // wire subcomponents into each other runtimeContext.injectInto(facetProcessor); // initialize subcomponents facetDecoratorSet.init(); classSubstitutor.init(); collectionTypeRegistry.init(); specificationTraverser.init(); programmingModel.init(); facetProcessor.init(); metaModelValidator.init(); primeCache(); ValidationFailures validationFailures = new ValidationFailures(); metaModelValidator.validate(validationFailures); return validationFailures; }