boolean (Object node) { Object group = myGroup; if (myRoot.equals(node) || group != null && group.equals(node)) return false; if (myNode.equals(node)) return false; if (myLeaf.equals(node)) return true; throw new IllegalStateException(); }