# Class SQLGenerationVisitor

java.lang.Object
org.apache.cayenne.access.sqlbuilder.SQLGenerationVisitor

All Implemented Interfaces:
  `NodeTreeVisitor`

public class SQLGenerationVisitor extends Object implements NodeTreeVisitor

Since:
  4.2

- ## Constructor Summary

  Constructors
  Constructor
  Description
  `SQLGenerationVisitor(SQLAppendable appendable, SQLGenerationContext context)`

- ## Method Summary

  Modifier and Type
  Method
  Description
  `String`
  `getSQLString()`
  `void`
  `onChildNodeEnd(Node parent, Node child, int index, boolean hasMore)`
  `boolean`
  `onChildNodeStart(Node parent, Node child, int index, boolean hasMore)`
  `void`
  `onNodeEnd(Node node)`
  `boolean`
  `onNodeStart(Node node)`

  ### Methods inherited from class Object

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

- ## Constructor Details

  - ### SQLGenerationVisitor

    public SQLGenerationVisitor(SQLAppendable appendable, SQLGenerationContext context)

- ## Method Details

  - ### onNodeStart

    public boolean onNodeStart(Node node)
    Specified by:
      `onNodeStart` in interface `NodeTreeVisitor`
    Parameters:
      `node` - to visit
    Returns:
      false if visitor should stop

  - ### onChildNodeStart

    public boolean onChildNodeStart(Node parent, Node child, int index, boolean hasMore)
    Specified by:
      `onChildNodeStart` in interface `NodeTreeVisitor`
    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

  - ### onChildNodeEnd

    public void onChildNodeEnd(Node parent, Node child, int index, boolean hasMore)
    Specified by:
      `onChildNodeEnd` in interface `NodeTreeVisitor`

  - ### onNodeEnd

    public void onNodeEnd(Node node)
    Specified by:
      `onNodeEnd` in interface `NodeTreeVisitor`

  - ### getSQLString

    public String getSQLString()