code: public boolean isCompleteExceptIgnoredNodes() {
          synchronized (nodeStack) {
              if (nodeStack.isEmpty() && retainedNodes.isEmpty()) {
                  return true;
              } else {
                  // Check that remaining nodes can be ignored
                  for (int i=0; i < nodeStack.size(); i++) {
                      if (!ignoredNodes.contains(nodeStack.get(i))) {
                          return false;
                      }
                  }
                  for (int i=0; i < retainedNodes.size(); i++) {
                      if (!ignoredNodes.contains(retainedNodes.get(i))) {
                          return false;
                      }
                  }
                  return true;
              }
          }
      }
docs: This method determines if the fragment is complete
  with the exception of ignored nodes.
  
  @return Whether the fragment is complete with the exception of
  ignored nodes