private void processContext(
      AccessDetailCollector collector,
      AccessContext context,
      ArtifactProxy artifactData,
      Scope scope)
      throws OseeCoreException {
    collectRestrictions(collector, artifactData, context.getAccessRules(), scope);

    Collection<HierarchyRestriction> restrictions = context.getHierarchyRestrictions();
    Collection<ArtifactProxy> proxyHierarchy = artifactData.getHierarchy();

    for (HierarchyRestriction hierarchy : restrictions) {
      XArtifactMatcher artifactRef = hierarchy.getArtifactMatcherRef();
      if (matcher.matches(artifactRef, proxyHierarchy)) {
        String tag = String.format("childOf-%s", artifactRef.getName());
        Scope child = scope.clone().addSubPath(tag);
        collectRestrictions(collector, artifactData, hierarchy.getAccessRules(), child);
      }
    }
  }