# Class BaseSQLTreeProcessor

java.lang.Object
org.apache.cayenne.access.sqlbuilder.sqltree.SimpleNodeTreeVisitor
org.apache.cayenne.access.translator.select.BaseSQLTreeProcessor

All Implemented Interfaces:
  `NodeTreeVisitor, SQLTreeProcessor`

Direct Known Subclasses:
  `DB2SQLTreeProcessor, DerbySQLTreeProcessor, FirebirdSQLTreeProcessor, FrontBaseSQLTreeProcessor, H2SQLTreeProcessor, HSQLTreeProcessor, IngressSQLTreeProcessor, OracleSQLTreeProcessor, SQLiteTreeProcessor, SybaseSQLTreeProcessor`

public class BaseSQLTreeProcessor extends SimpleNodeTreeVisitor implements SQLTreeProcessor

Since:
  4.2

- ## Constructor Summary

  Constructors
  Constructor
  Description
  `BaseSQLTreeProcessor()`

- ## Method Summary

  Modifier and Type
  Method
  Description
  `boolean`
  `onChildNodeStart(Node parent, Node child, int index, boolean hasMore)`
  `protected void`
  `onColumnNode(Node parent, ColumnNode child, int index)`
  `protected void`
  `onDistinctNode(Node parent, DistinctNode child, int index)`
  `protected void`
  `onFunctionNode(Node parent, FunctionNode child, int index)`
  `protected void`
  `onInNode(Node parent, InNode child, int index)`
  `protected void`
  `onLikeNode(Node parent, LikeNode child, int index)`
  `protected void`
  `onLimitOffsetNode(Node parent, LimitOffsetNode child, int index)`
  `protected void`
  `onResultNode(Node parent, Node child, int index)`
  `protected void`
  `onUndefinedNode(Node parent, Node child, int index)`
  `protected void`
  `onValueNode(Node parent, ValueNode child, int index)`
  `Node`
  `process(Node node)`
  `protected static void`
  `replaceChild(Node parent, int index, Node newChild)`
  `protected static void`
  `replaceChild(Node parent, int index, Node newChild, boolean transferChildren)`
  `protected static Node`
  `wrapInFunction(Node node, String function)`

  ### Methods inherited from class SimpleNodeTreeVisitor

  `onChildNodeEnd, onNodeEnd, onNodeStart`

  ### Methods inherited from class Object

  `clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

- ## Constructor Details

  - ### BaseSQLTreeProcessor

    public BaseSQLTreeProcessor()

- ## Method Details

  - ### process

    public Node process(Node node)
    Specified by:
      `process` in interface `SQLTreeProcessor`

  - ### onValueNode

    protected void onValueNode(Node parent, ValueNode child, int index)

  - ### onFunctionNode

    protected void onFunctionNode(Node parent, FunctionNode child, int index)

  - ### onLimitOffsetNode

    protected void onLimitOffsetNode(Node parent, LimitOffsetNode child, int index)

  - ### onColumnNode

    protected void onColumnNode(Node parent, ColumnNode child, int index)

  - ### onInNode

    protected void onInNode(Node parent, InNode child, int index)

  - ### onLikeNode

    protected void onLikeNode(Node parent, LikeNode child, int index)

  - ### onResultNode

    protected void onResultNode(Node parent, Node child, int index)

  - ### onDistinctNode

    protected void onDistinctNode(Node parent, DistinctNode child, int index)

  - ### onUndefinedNode

    protected void onUndefinedNode(Node parent, Node child, int index)

  - ### replaceChild

    protected static void replaceChild(Node parent, int index, Node newChild)

  - ### replaceChild

    protected static void replaceChild(Node parent, int index, Node newChild, boolean transferChildren)

  - ### wrapInFunction

    protected static Node wrapInFunction(Node node, String function)

  - ### onChildNodeStart

    public boolean onChildNodeStart(Node parent, Node child, int index, boolean hasMore)
    Specified by:
      `onChildNodeStart` in interface `NodeTreeVisitor`
    Overrides:
      `onChildNodeStart` in class `SimpleNodeTreeVisitor`
    Parameters:
      `parent` - node
      `child` - node
      `index` - of this child in parent
      `hasMore` - true if more children after this child
    Returns:
      false if visitor should stop