code: public static List getDisconnected(
          Collection leftCollection, Graph relation, Collection rightCollection)
      {
          List disconnected;
          Iterator iter;
          Object left;
          EdgeIterator relationIter;
  
          disconnected = new ArrayList();
          iter = leftCollection.iterator();
          while (iter.hasNext()) {
              left = iter.next();
              relationIter = relation.edges();
              while (relationIter.step()) {
                  if (relationIter.left() == left) {
                      if (!rightCollection.contains(relationIter.right())) {
                          relationIter = null;
                          break;
                      }
                  }
              }
              if (relationIter != null) {
                  disconnected.add(left);
              }
          }
          return disconnected;
      }
docs: Returns all objects from leftCollection whole images are a disjoin from rightCollection,
  none of the resulting objects has an image in rightCollection. Compares objects using ==.
  Note that lefts with no image show up in the result.