code: protected void ensureParentage(AbstractNode child) throws IllegalStateException {
  		if (child.parent == this) return;
  		
  		throw new IllegalStateException(String.format(
  				"Can't disown child of type %s - it isn't my child (I'm a %s)",
  				child.getClass().getName(), this.getClass().getName()));
  	}
docs: Checks if the provided node is a direct child of this node.
  
  @param child This node must be a direct child of myself.
  @throws IllegalStateException If {@code child} isn't a direct child of myself.