code: @Override
      public boolean execute()
          throws EFapsException
      {
          if (isMarked4execute()) {
              final Map<Type, List<Instance>> types = new HashMap<>();
              for (final Instance instance : this.instances) {
                  final List<Instance> list;
                  if (!types.containsKey(instance.getType())) {
                      list = new ArrayList<>();
                      types.put(instance.getType(), list);
                  } else {
                      list = types.get(instance.getType());
                  }
                  list.add(instance);
              }
              // check the access for the given instances
              final Map<Instance, Boolean> accessmap = new HashMap<>();
              for (final Entry<Type, List<Instance>> entry : types.entrySet()) {
                  accessmap.putAll(entry.getKey().checkAccess(entry.getValue(), AccessTypeEnums.READ.getAccessType()));
              }
  
              final Iterator<Instance> tempIter = this.instances.iterator();
              while (tempIter.hasNext()) {
                  final Instance instance = tempIter.next();
                  if (accessmap.size() > 0) {
                      if (!accessmap.containsKey(instance) || !accessmap.get(instance)) {
                          tempIter.remove();
                      }
                  }
              }
          }
          return executeWithoutAccessCheck();
      }
docs: {@inheritDoc}