@Override public void computeAccess( IAccessContextId contextId, Collection<Object> objectsToCheck, AccessData accessData) throws OseeCoreException { Conditions.checkNotNull(contextId, "contextId"); Conditions.checkNotNull(objectsToCheck, "objectsToCheck"); Conditions.checkNotNull(accessData, "accessData"); OseeDsl oseeDsl = dslProvider.getDsl(); Conditions.checkNotNull(oseeDsl, "oseeDsl", "dsl provider returned null"); Collection<AccessContext> contexts = oseeDsl.getAccessDeclarations(); AccessContext context = interpreter.getContext(contexts, contextId); Conditions.checkNotNull( context, "interpreted accessContext", "No matching access context was found in access dsl for [%s]", contextId); for (Object objectToCheck : objectsToCheck) { List<AccessDetail<?>> accessDetail = new LinkedList<AccessDetail<?>>(); AccessDetailCollector collector = new AccessDataCollector(accessDetail); interpreter.computeAccessDetails(collector, context, objectToCheck); accessData.addAll(objectToCheck, accessDetail); } }