@Override public List<ObjectAction> getObjectActions( final List<ActionType> types, final Contributed contributed, final Filter<ObjectAction> filter) { // update our list of actions if requesting for contributed actions // and they have not yet been added // the "contributed.isIncluded()" guard is required because we cannot do this too early; // there must be a session available if (contributed.isIncluded() && !contributeeActionsAdded) { synchronized (this.objectActions) { final List<ObjectAction> actions = Lists.newArrayList(this.objectActions); actions.addAll(createContributeeActions()); sortCacheAndUpdateActions(actions); contributeeActionsAdded = true; } } final List<ObjectAction> actions = Lists.newArrayList(); for (final ActionType type : types) { final Collection<ObjectAction> filterActions = Collections2.filter(objectActionsByType.get(type), Filters.asPredicate(filter)); actions.addAll(filterActions); } return Lists.newArrayList( Iterables.filter(actions, ContributeeMember.Predicates.regularElse(contributed))); }
@Programmatic @Deprecated @Override public <T> T firstMatch(final Class<T> cls, final Filter<T> filter) { return firstMatch(cls, Filters.asPredicate(filter)); }
@Programmatic @Deprecated @Override public <T> List<T> allMatches(final Class<T> cls, final Filter<? super T> filter, long... range) { return allMatches(cls, Filters.asPredicate(filter), range); }
@Override public List<ObjectAssociation> getAssociations( Contributed contributed, final Filter<ObjectAssociation> filter) { final List<ObjectAssociation> allAssociations = getAssociations(contributed); return Lists.newArrayList(Iterables.filter(allAssociations, Filters.asPredicate(filter))); }