The nodeDecorators package contains classes that use the Decorator pattern.

Deprecated. Use either prototypes or dynamic proxies instead.
Use either direct subclasses of the appropriate node and set them on the {@link org.htmlparser.PrototypicalNodeFactory PrototypicalNodeFactory}, or use a dynamic proxy implementing the required node type interface.

The nodeDecorators package contains example decorators that alter node behaviour. For example, the DecodingNode class overrides the toPlainTextString() method of all nodes it wraps and applies the Translate class decode() method to the original node output:

    StringBuffer content = new StringBuffer (1024);
    StringNodeFactory factory = new StringNodeFactory ();
    factory.setDecode (true);
    createParser ("http://whatever");
    parser.setNodeFactory (factory);
    NodeIterator iterator = parser.elements ();
    while (iterator.hasMoreNodes ())
        content.append (iterator.nextNode ().toPlainTextString ());
    System.out.println (content.toString ());

Decorators are a powerful way of performing the same operation on every node. @see org.htmlparser.StringNodeFactory @see org.htmlparser.nodeDecorators.AbstractNodeDecorator