public void verifyAttributes(String actualStringRepresentation) {
    if (superAccessor != null) {
      superAccessor.verifyAttributes(actualStringRepresentation);
    }

    for (GraphAttributeAccessor attribute : attributeAccessors) {
      attribute.verify(actualStringRepresentation);
    }
  }
 public List<String> retrievePaths() {
   List<String> paths = new ArrayList<>();
   if (!path.isEmpty()) {
     paths.add(path);
   }
   for (GraphAttributeAccessor attributeAccessor : attributeAccessors) {
     paths.addAll(attributeAccessor.retrievePaths());
   }
   if (superAccessor != null) {
     paths.addAll(superAccessor.retrievePaths());
   }
   return paths;
 }
 private List<String> removeFromSuperAccessorGraph(List<String> pathsToRemove) {
   if (superAccessor != null) {
     pathsToRemove = superAccessor.remove(pathsToRemove);
   }
   return pathsToRemove;
 }