/*
* JBoss, Home of Professional Open Source.
*
* See the LEGAL.txt file distributed with this work for information regarding copyright ownership and licensing.
*
* See the AUTHORS.txt file distributed with this work for a full listing of individual contributors.
*/
package org.teiid.designer.jdbc.metadata;
import org.teiid.designer.jdbc.JdbcException;
/**
* This interface is implemented by objects that visit {@link JdbcNode JDBC nodes}.
* <p>
* Usage:
* <pre>
* class Visitor implements JdbcNodeVisitor {
* public boolean visit(JdbcNode node) {
* // your code here
* return true;
* }
* }
* JdbcNode root = ...;
* root.accept(new Visitor());
* </pre>
* </p>
* <p>
* Clients may implement this interface.
* </p>
*
* @see JdbcNode#accept
*
* @since 8.0
*/
public interface JdbcNodeVisitor {
/**
* Visit the supplied node.
* <p>
* The default implementation of this method simply returns true.
* </p>
* @param node the node to visit; never null
* @return true if the children of <code>node</code> should be visited, or false if they should not.
* @throws JdbcException if the visit fails for some reason
*/
public boolean visit(JdbcNode node) throws JdbcException;
}