/*  Copyright (c) 2000 by Oracle Corporation. All Rights Reserved. */

package oracle.portal.utils.xml.v1;

/**
 * The <code>InitializableXMLObject</code> interface is intended to allow an
 * application object created by a {@link DefaultNodeHandler} to expose
 * initialization and validation methods to be called at strategic points in
 * the building of the application object 'tree'.
 */
public interface InitializableXMLObject
{
    /**
     * Performs any steps required to initialize this application object after
     * it has been created, perhaps relating this object to its parent.
     * @param o the application object that will become this object's parent
     * @exception NodeHandlerException if an error occurs while initializing
     * this application object
     */
    public void preInitialize(Object o) throws NodeHandlerException;
    /**
     * Performs any extra steps required to initialize and validate this
     * application object once its child application objects have been created.
     * @exception NodeHandlerException if an error occurs while initializing or
     * validating this application object
     */
    public void postInitialize() throws NodeHandlerException;
}
