Removes this node and all of its descendants, invalidating any properties contained in the removed nodes. Once a node has been removed, attempting any method other than {@code name()}, {@code absolutePath()} or{@code nodeExists("")} on the corresponding {@code Preferences} instancewill fail with an {@code IllegalStateException}. (The methods defined on {@code Object} can still be invoked on a node after it has been removed;they will not throw {@code IllegalStateException}.)
The removal is not guaranteed to be persistent until the {@code flush}method is called on the parent of this node.
@throws IllegalStateException if this node (or an ancestor) has alreadybeen removed with the {@link #removeNode()} method.
@throws BackingStoreException if this operation cannot be completed dueto a failure in the backing store, or inability to communicate with it.
@see #flush()