java.lang.Object
org.seasar.doma.internal.jdbc.sql.NodePreparedSqlBuilder
- All Implemented Interfaces:
SqlNodeVisitor<Void,org.seasar.doma.internal.jdbc.sql.NodePreparedSqlBuilder.Context>
public class NodePreparedSqlBuilder
extends Object
implements SqlNodeVisitor<Void,org.seasar.doma.internal.jdbc.sql.NodePreparedSqlBuilder.Context>
-
Nested Class Summary
Nested ClassesModifier and TypeClassDescriptionprotected static classprotected static classprotected static class -
Field Summary
FieldsModifier and TypeFieldDescriptionprotected final BiFunction<ExpandNode,String, List<String>> protected static final Patternprotected final Function<ExpandNode,List<String>> protected final Configprotected final ExpressionEvaluatorprotected final SqlKindprotected final SqlBuilderSettingsprotected final Stringprotected final SqlLogTypeprotected final BiConsumer<PopulateNode,SqlContext> -
Constructor Summary
ConstructorsConstructorDescriptionNodePreparedSqlBuilder(Config config, SqlKind kind, String sqlFilePath) NodePreparedSqlBuilder(Config config, SqlKind kind, String sqlFilePath, ExpressionEvaluator evaluator, SqlLogType sqlLogType) NodePreparedSqlBuilder(Config config, SqlKind kind, String sqlFilePath, ExpressionEvaluator evaluator, SqlLogType sqlLogType, Function<ExpandNode, List<String>> columnsExpander) NodePreparedSqlBuilder(Config config, SqlKind kind, String sqlFilePath, ExpressionEvaluator evaluator, SqlLogType sqlLogType, Function<ExpandNode, List<String>> columnsExpander, BiConsumer<PopulateNode, SqlContext> valuesPopulater) NodePreparedSqlBuilder(Config config, SqlKind kind, String sqlFilePath, ExpressionEvaluator evaluator, SqlLogType sqlLogType, Function<ExpandNode, List<String>> columnsExpander, BiConsumer<PopulateNode, SqlContext> valuesPopulater, BiFunction<ExpandNode, String, List<String>> aggregateColumnsExpander) -
Method Summary
Modifier and TypeMethodDescriptionprotected booleanhandleElseifNode(IfBlockNode node, org.seasar.doma.internal.jdbc.sql.NodePreparedSqlBuilder.Context p) protected voidhandleElseNode(IfBlockNode node, org.seasar.doma.internal.jdbc.sql.NodePreparedSqlBuilder.Context p) protected booleanhandleIfNode(IfBlockNode node, org.seasar.doma.internal.jdbc.sql.NodePreparedSqlBuilder.Context p) protected voidhandleIterableValueNode(ValueNode node, org.seasar.doma.internal.jdbc.sql.NodePreparedSqlBuilder.Context p, Iterable<?> values, Class<?> valueClass, Consumer<Scalar<?, ?>> consumer) protected voidhandleRemovableClauseNode(RemovableClauseNode node, org.seasar.doma.internal.jdbc.sql.NodePreparedSqlBuilder.Context p) protected VoidhandleSingleValueNode(ValueNode node, org.seasar.doma.internal.jdbc.sql.NodePreparedSqlBuilder.Context p, Object value, Class<?> valueClass, Consumer<Scalar<?, ?>> consumer) protected booleanstartsWithClauseKeyword(String fragment) visitAnonymousNode(AnonymousNode node, org.seasar.doma.internal.jdbc.sql.NodePreparedSqlBuilder.Context p) visitBindVariableNode(BindVariableNode node, org.seasar.doma.internal.jdbc.sql.NodePreparedSqlBuilder.Context p) visitCommentNode(CommentNode node, org.seasar.doma.internal.jdbc.sql.NodePreparedSqlBuilder.Context p) visitDistinctNode(DistinctNode node, org.seasar.doma.internal.jdbc.sql.NodePreparedSqlBuilder.Context context) visitElseifNode(ElseifNode node, org.seasar.doma.internal.jdbc.sql.NodePreparedSqlBuilder.Context p) visitElseNode(ElseNode node, org.seasar.doma.internal.jdbc.sql.NodePreparedSqlBuilder.Context p) visitEmbeddedVariableNode(EmbeddedVariableNode node, org.seasar.doma.internal.jdbc.sql.NodePreparedSqlBuilder.Context p) visitEndNode(EndNode node, org.seasar.doma.internal.jdbc.sql.NodePreparedSqlBuilder.Context p) visitEolNode(EolNode node, org.seasar.doma.internal.jdbc.sql.NodePreparedSqlBuilder.Context p) visitExpandNode(ExpandNode node, org.seasar.doma.internal.jdbc.sql.NodePreparedSqlBuilder.Context p) visitForBlockNode(ForBlockNode node, org.seasar.doma.internal.jdbc.sql.NodePreparedSqlBuilder.Context p) visitForNode(ForNode node, org.seasar.doma.internal.jdbc.sql.NodePreparedSqlBuilder.Context p) visitForUpdateClauseNode(ForUpdateClauseNode node, org.seasar.doma.internal.jdbc.sql.NodePreparedSqlBuilder.Context p) visitFragmentNode(FragmentNode node, org.seasar.doma.internal.jdbc.sql.NodePreparedSqlBuilder.Context p) visitFromClauseNode(FromClauseNode node, org.seasar.doma.internal.jdbc.sql.NodePreparedSqlBuilder.Context p) visitGroupByClauseNode(GroupByClauseNode node, org.seasar.doma.internal.jdbc.sql.NodePreparedSqlBuilder.Context p) visitHavingClauseNode(HavingClauseNode node, org.seasar.doma.internal.jdbc.sql.NodePreparedSqlBuilder.Context p) visitIfBlockNode(IfBlockNode node, org.seasar.doma.internal.jdbc.sql.NodePreparedSqlBuilder.Context p) visitIfNode(IfNode node, org.seasar.doma.internal.jdbc.sql.NodePreparedSqlBuilder.Context p) visitLiteralVariableNode(LiteralVariableNode node, org.seasar.doma.internal.jdbc.sql.NodePreparedSqlBuilder.Context p) visitLogicalOperatorNode(LogicalOperatorNode node, org.seasar.doma.internal.jdbc.sql.NodePreparedSqlBuilder.Context p) visitOptionClauseNode(OptionClauseNode node, org.seasar.doma.internal.jdbc.sql.NodePreparedSqlBuilder.Context p) visitOrderByClauseNode(OrderByClauseNode node, org.seasar.doma.internal.jdbc.sql.NodePreparedSqlBuilder.Context p) visitOtherNode(OtherNode node, org.seasar.doma.internal.jdbc.sql.NodePreparedSqlBuilder.Context p) visitParensNode(ParensNode node, org.seasar.doma.internal.jdbc.sql.NodePreparedSqlBuilder.Context p) visitPopulateNode(PopulateNode node, org.seasar.doma.internal.jdbc.sql.NodePreparedSqlBuilder.Context p) visitSelectClauseNode(SelectClauseNode node, org.seasar.doma.internal.jdbc.sql.NodePreparedSqlBuilder.Context p) visitSelectStatementNode(SelectStatementNode node, org.seasar.doma.internal.jdbc.sql.NodePreparedSqlBuilder.Context p) visitSetClauseNode(SetClauseNode node, org.seasar.doma.internal.jdbc.sql.NodePreparedSqlBuilder.Context p) visitUpdateClauseNode(UpdateClauseNode node, org.seasar.doma.internal.jdbc.sql.NodePreparedSqlBuilder.Context p) visitUpdateStatementNode(UpdateStatementNode node, org.seasar.doma.internal.jdbc.sql.NodePreparedSqlBuilder.Context p) protected VoidvisitValueNode(ValueNode node, org.seasar.doma.internal.jdbc.sql.NodePreparedSqlBuilder.Context p, Consumer<Scalar<?, ?>> valueHandler) visitWhereClauseNode(WhereClauseNode node, org.seasar.doma.internal.jdbc.sql.NodePreparedSqlBuilder.Context p) visitWhitespaceNode(WhitespaceNode node, org.seasar.doma.internal.jdbc.sql.NodePreparedSqlBuilder.Context p) visitWordNode(WordNode node, org.seasar.doma.internal.jdbc.sql.NodePreparedSqlBuilder.Context p) wrap(SqlLocation location, String bindVariableText, Object value, Class<?> valueClass) Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitMethods inherited from interface org.seasar.doma.jdbc.SqlNodeVisitor
visitInNode
-
Field Details
-
clauseKeywordPattern
-
config
-
sqlBuilderSettings
-
kind
-
sqlFilePath
-
evaluator
-
sqlLogType
-
columnsExpander
-
valuesPopulater
-
aggregateColumnsExpander
-
-
Constructor Details
-
NodePreparedSqlBuilder
-
NodePreparedSqlBuilder
public NodePreparedSqlBuilder(Config config, SqlKind kind, String sqlFilePath, ExpressionEvaluator evaluator, SqlLogType sqlLogType) -
NodePreparedSqlBuilder
public NodePreparedSqlBuilder(Config config, SqlKind kind, String sqlFilePath, ExpressionEvaluator evaluator, SqlLogType sqlLogType, Function<ExpandNode, List<String>> columnsExpander) -
NodePreparedSqlBuilder
public NodePreparedSqlBuilder(Config config, SqlKind kind, String sqlFilePath, ExpressionEvaluator evaluator, SqlLogType sqlLogType, Function<ExpandNode, List<String>> columnsExpander, BiConsumer<PopulateNode, SqlContext> valuesPopulater) -
NodePreparedSqlBuilder
public NodePreparedSqlBuilder(Config config, SqlKind kind, String sqlFilePath, ExpressionEvaluator evaluator, SqlLogType sqlLogType, Function<ExpandNode, List<String>> columnsExpander, BiConsumer<PopulateNode, SqlContext> valuesPopulater, BiFunction<ExpandNode, String, List<String>> aggregateColumnsExpander)
-
-
Method Details
-
build
-
visitAnonymousNode
public Void visitAnonymousNode(AnonymousNode node, org.seasar.doma.internal.jdbc.sql.NodePreparedSqlBuilder.Context p) - Specified by:
visitAnonymousNodein interfaceSqlNodeVisitor<Void,org.seasar.doma.internal.jdbc.sql.NodePreparedSqlBuilder.Context>
-
visitOtherNode
public Void visitOtherNode(OtherNode node, org.seasar.doma.internal.jdbc.sql.NodePreparedSqlBuilder.Context p) - Specified by:
visitOtherNodein interfaceSqlNodeVisitor<Void,org.seasar.doma.internal.jdbc.sql.NodePreparedSqlBuilder.Context>
-
visitWhitespaceNode
public Void visitWhitespaceNode(WhitespaceNode node, org.seasar.doma.internal.jdbc.sql.NodePreparedSqlBuilder.Context p) - Specified by:
visitWhitespaceNodein interfaceSqlNodeVisitor<Void,org.seasar.doma.internal.jdbc.sql.NodePreparedSqlBuilder.Context>
-
visitCommentNode
public Void visitCommentNode(CommentNode node, org.seasar.doma.internal.jdbc.sql.NodePreparedSqlBuilder.Context p) - Specified by:
visitCommentNodein interfaceSqlNodeVisitor<Void,org.seasar.doma.internal.jdbc.sql.NodePreparedSqlBuilder.Context>
-
visitBindVariableNode
public Void visitBindVariableNode(BindVariableNode node, org.seasar.doma.internal.jdbc.sql.NodePreparedSqlBuilder.Context p) - Specified by:
visitBindVariableNodein interfaceSqlNodeVisitor<Void,org.seasar.doma.internal.jdbc.sql.NodePreparedSqlBuilder.Context>
-
visitLiteralVariableNode
public Void visitLiteralVariableNode(LiteralVariableNode node, org.seasar.doma.internal.jdbc.sql.NodePreparedSqlBuilder.Context p) - Specified by:
visitLiteralVariableNodein interfaceSqlNodeVisitor<Void,org.seasar.doma.internal.jdbc.sql.NodePreparedSqlBuilder.Context>
-
visitValueNode
-
visitEmbeddedVariableNode
public Void visitEmbeddedVariableNode(EmbeddedVariableNode node, org.seasar.doma.internal.jdbc.sql.NodePreparedSqlBuilder.Context p) - Specified by:
visitEmbeddedVariableNodein interfaceSqlNodeVisitor<Void,org.seasar.doma.internal.jdbc.sql.NodePreparedSqlBuilder.Context>
-
startsWithClauseKeyword
-
handleSingleValueNode
-
handleIterableValueNode
-
visitIfBlockNode
public Void visitIfBlockNode(IfBlockNode node, org.seasar.doma.internal.jdbc.sql.NodePreparedSqlBuilder.Context p) - Specified by:
visitIfBlockNodein interfaceSqlNodeVisitor<Void,org.seasar.doma.internal.jdbc.sql.NodePreparedSqlBuilder.Context>
-
handleIfNode
protected boolean handleIfNode(IfBlockNode node, org.seasar.doma.internal.jdbc.sql.NodePreparedSqlBuilder.Context p) -
handleElseifNode
protected boolean handleElseifNode(IfBlockNode node, org.seasar.doma.internal.jdbc.sql.NodePreparedSqlBuilder.Context p) -
handleElseNode
protected void handleElseNode(IfBlockNode node, org.seasar.doma.internal.jdbc.sql.NodePreparedSqlBuilder.Context p) -
visitIfNode
public Void visitIfNode(IfNode node, org.seasar.doma.internal.jdbc.sql.NodePreparedSqlBuilder.Context p) - Specified by:
visitIfNodein interfaceSqlNodeVisitor<Void,org.seasar.doma.internal.jdbc.sql.NodePreparedSqlBuilder.Context>
-
visitElseifNode
public Void visitElseifNode(ElseifNode node, org.seasar.doma.internal.jdbc.sql.NodePreparedSqlBuilder.Context p) - Specified by:
visitElseifNodein interfaceSqlNodeVisitor<Void,org.seasar.doma.internal.jdbc.sql.NodePreparedSqlBuilder.Context>
-
visitElseNode
public Void visitElseNode(ElseNode node, org.seasar.doma.internal.jdbc.sql.NodePreparedSqlBuilder.Context p) - Specified by:
visitElseNodein interfaceSqlNodeVisitor<Void,org.seasar.doma.internal.jdbc.sql.NodePreparedSqlBuilder.Context>
-
visitEndNode
public Void visitEndNode(EndNode node, org.seasar.doma.internal.jdbc.sql.NodePreparedSqlBuilder.Context p) - Specified by:
visitEndNodein interfaceSqlNodeVisitor<Void,org.seasar.doma.internal.jdbc.sql.NodePreparedSqlBuilder.Context>
-
visitForBlockNode
public Void visitForBlockNode(ForBlockNode node, org.seasar.doma.internal.jdbc.sql.NodePreparedSqlBuilder.Context p) - Specified by:
visitForBlockNodein interfaceSqlNodeVisitor<Void,org.seasar.doma.internal.jdbc.sql.NodePreparedSqlBuilder.Context>
-
visitForNode
public Void visitForNode(ForNode node, org.seasar.doma.internal.jdbc.sql.NodePreparedSqlBuilder.Context p) - Specified by:
visitForNodein interfaceSqlNodeVisitor<Void,org.seasar.doma.internal.jdbc.sql.NodePreparedSqlBuilder.Context>
-
visitSelectStatementNode
public Void visitSelectStatementNode(SelectStatementNode node, org.seasar.doma.internal.jdbc.sql.NodePreparedSqlBuilder.Context p) - Specified by:
visitSelectStatementNodein interfaceSqlNodeVisitor<Void,org.seasar.doma.internal.jdbc.sql.NodePreparedSqlBuilder.Context>
-
visitSelectClauseNode
public Void visitSelectClauseNode(SelectClauseNode node, org.seasar.doma.internal.jdbc.sql.NodePreparedSqlBuilder.Context p) - Specified by:
visitSelectClauseNodein interfaceSqlNodeVisitor<Void,org.seasar.doma.internal.jdbc.sql.NodePreparedSqlBuilder.Context>
-
visitFromClauseNode
public Void visitFromClauseNode(FromClauseNode node, org.seasar.doma.internal.jdbc.sql.NodePreparedSqlBuilder.Context p) - Specified by:
visitFromClauseNodein interfaceSqlNodeVisitor<Void,org.seasar.doma.internal.jdbc.sql.NodePreparedSqlBuilder.Context>
-
visitWhereClauseNode
public Void visitWhereClauseNode(WhereClauseNode node, org.seasar.doma.internal.jdbc.sql.NodePreparedSqlBuilder.Context p) - Specified by:
visitWhereClauseNodein interfaceSqlNodeVisitor<Void,org.seasar.doma.internal.jdbc.sql.NodePreparedSqlBuilder.Context>
-
visitGroupByClauseNode
public Void visitGroupByClauseNode(GroupByClauseNode node, org.seasar.doma.internal.jdbc.sql.NodePreparedSqlBuilder.Context p) - Specified by:
visitGroupByClauseNodein interfaceSqlNodeVisitor<Void,org.seasar.doma.internal.jdbc.sql.NodePreparedSqlBuilder.Context>
-
visitHavingClauseNode
public Void visitHavingClauseNode(HavingClauseNode node, org.seasar.doma.internal.jdbc.sql.NodePreparedSqlBuilder.Context p) - Specified by:
visitHavingClauseNodein interfaceSqlNodeVisitor<Void,org.seasar.doma.internal.jdbc.sql.NodePreparedSqlBuilder.Context>
-
visitOptionClauseNode
public Void visitOptionClauseNode(OptionClauseNode node, org.seasar.doma.internal.jdbc.sql.NodePreparedSqlBuilder.Context p) - Specified by:
visitOptionClauseNodein interfaceSqlNodeVisitor<Void,org.seasar.doma.internal.jdbc.sql.NodePreparedSqlBuilder.Context>
-
visitOrderByClauseNode
public Void visitOrderByClauseNode(OrderByClauseNode node, org.seasar.doma.internal.jdbc.sql.NodePreparedSqlBuilder.Context p) - Specified by:
visitOrderByClauseNodein interfaceSqlNodeVisitor<Void,org.seasar.doma.internal.jdbc.sql.NodePreparedSqlBuilder.Context>
-
visitForUpdateClauseNode
public Void visitForUpdateClauseNode(ForUpdateClauseNode node, org.seasar.doma.internal.jdbc.sql.NodePreparedSqlBuilder.Context p) - Specified by:
visitForUpdateClauseNodein interfaceSqlNodeVisitor<Void,org.seasar.doma.internal.jdbc.sql.NodePreparedSqlBuilder.Context>
-
handleRemovableClauseNode
protected void handleRemovableClauseNode(RemovableClauseNode node, org.seasar.doma.internal.jdbc.sql.NodePreparedSqlBuilder.Context p) -
visitLogicalOperatorNode
public Void visitLogicalOperatorNode(LogicalOperatorNode node, org.seasar.doma.internal.jdbc.sql.NodePreparedSqlBuilder.Context p) - Specified by:
visitLogicalOperatorNodein interfaceSqlNodeVisitor<Void,org.seasar.doma.internal.jdbc.sql.NodePreparedSqlBuilder.Context>
-
visitUpdateStatementNode
public Void visitUpdateStatementNode(UpdateStatementNode node, org.seasar.doma.internal.jdbc.sql.NodePreparedSqlBuilder.Context p) - Specified by:
visitUpdateStatementNodein interfaceSqlNodeVisitor<Void,org.seasar.doma.internal.jdbc.sql.NodePreparedSqlBuilder.Context>
-
visitUpdateClauseNode
public Void visitUpdateClauseNode(UpdateClauseNode node, org.seasar.doma.internal.jdbc.sql.NodePreparedSqlBuilder.Context p) - Specified by:
visitUpdateClauseNodein interfaceSqlNodeVisitor<Void,org.seasar.doma.internal.jdbc.sql.NodePreparedSqlBuilder.Context>
-
visitSetClauseNode
public Void visitSetClauseNode(SetClauseNode node, org.seasar.doma.internal.jdbc.sql.NodePreparedSqlBuilder.Context p) - Specified by:
visitSetClauseNodein interfaceSqlNodeVisitor<Void,org.seasar.doma.internal.jdbc.sql.NodePreparedSqlBuilder.Context>
-
visitPopulateNode
public Void visitPopulateNode(PopulateNode node, org.seasar.doma.internal.jdbc.sql.NodePreparedSqlBuilder.Context p) - Specified by:
visitPopulateNodein interfaceSqlNodeVisitor<Void,org.seasar.doma.internal.jdbc.sql.NodePreparedSqlBuilder.Context>
-
visitWordNode
public Void visitWordNode(WordNode node, org.seasar.doma.internal.jdbc.sql.NodePreparedSqlBuilder.Context p) - Specified by:
visitWordNodein interfaceSqlNodeVisitor<Void,org.seasar.doma.internal.jdbc.sql.NodePreparedSqlBuilder.Context>
-
visitDistinctNode
public Void visitDistinctNode(DistinctNode node, org.seasar.doma.internal.jdbc.sql.NodePreparedSqlBuilder.Context context) - Specified by:
visitDistinctNodein interfaceSqlNodeVisitor<Void,org.seasar.doma.internal.jdbc.sql.NodePreparedSqlBuilder.Context>
-
visitFragmentNode
public Void visitFragmentNode(FragmentNode node, org.seasar.doma.internal.jdbc.sql.NodePreparedSqlBuilder.Context p) - Specified by:
visitFragmentNodein interfaceSqlNodeVisitor<Void,org.seasar.doma.internal.jdbc.sql.NodePreparedSqlBuilder.Context>
-
visitParensNode
public Void visitParensNode(ParensNode node, org.seasar.doma.internal.jdbc.sql.NodePreparedSqlBuilder.Context p) - Specified by:
visitParensNodein interfaceSqlNodeVisitor<Void,org.seasar.doma.internal.jdbc.sql.NodePreparedSqlBuilder.Context>
-
visitEolNode
public Void visitEolNode(EolNode node, org.seasar.doma.internal.jdbc.sql.NodePreparedSqlBuilder.Context p) - Specified by:
visitEolNodein interfaceSqlNodeVisitor<Void,org.seasar.doma.internal.jdbc.sql.NodePreparedSqlBuilder.Context>
-
visitExpandNode
public Void visitExpandNode(ExpandNode node, org.seasar.doma.internal.jdbc.sql.NodePreparedSqlBuilder.Context p) - Specified by:
visitExpandNodein interfaceSqlNodeVisitor<Void,org.seasar.doma.internal.jdbc.sql.NodePreparedSqlBuilder.Context>
-
wrap
-