Class ChildExpressionBuilder<P extends Builder<?>>

Object
ExpressionBuilder
ChildExpressionBuilder<P>
Type Parameters:
P - parent builder
All Implemented Interfaces:
Builder<Expression>
Direct Known Subclasses:
FunctionBuilder.ParamBuilder

public class ChildExpressionBuilder<P extends Builder<?>> extends ExpressionBuilder
Child expression builder; suitable for use collecting function parameters and binary expression arguments.

This builder is designed to be "chained" from a parent builder; you may return to the parent builder at any time by calling end().

  • Field Details

    • parent

      protected P extends Builder<?> parent
  • Constructor Details

    • ChildExpressionBuilder

      public ChildExpressionBuilder(P parent)
    • ChildExpressionBuilder

      public ChildExpressionBuilder(P parent, Expression expr1)
  • Method Details

    • reset

      public ChildExpressionBuilder<P> reset()
      Description copied from interface: Builder
      Configure the Builder to produce a default result.
      Specified by:
      reset in interface Builder<P extends Builder<?>>
      Overrides:
      reset in class ExpressionBuilder
      Returns:
      Builder configured to produce a default result.
    • reset

      public ChildExpressionBuilder<P> reset(Expression original)
      Description copied from interface: Builder
      Configure the Builder to produce a copy of the provided original.
      Specified by:
      reset in interface Builder<P extends Builder<?>>
      Overrides:
      reset in class ExpressionBuilder
      Parameters:
      original - Original, if null this will behave the same as unset()
      Returns:
      Builder configured to produce the provided original
    • unset

      public ChildExpressionBuilder<P> unset()
      Description copied from interface: Builder
      Configure the Builder to produce null.

      This method allows a Builder to be used as a placeholder; in its unset state the build() method will produce null. If any of the builder methods are used the builder will produce a result.

      Specified by:
      unset in interface Builder<P extends Builder<?>>
      Overrides:
      unset in class ExpressionBuilder
      Returns:
      Builder configured to build null
    • build

      public Expression build()
      Build the parameter; adding it to the parent.

      When using this from another builder you may wish to override the this build() method as shown below:

       final Expression array[] = ...
       ChildExpressionBuilder first = new ChildExpressionBuilder<?>(this) {
            public Expression build() {
                array[0] = super.build();
                return array[0];
            }
        };
       }
       
      Specified by:
      build in interface Builder<P extends Builder<?>>
      Overrides:
      build in class ExpressionBuilder
      Returns:
      internal expression
    • end

      public P end()
      Build the expression and return to the parent builder.

      Example use:b.add().expr1().literal(1).end().expr2().literal(2).end().build();

      See Also:
      • _build()
    • literal

      public P literal(Object obj)
      Inline literal value.

      Example:b.literal( 1 );

      Overrides:
      literal in class ExpressionBuilder
      Parameters:
      obj - Object to use as the resulting literal
    • property

      public P property(String xpath)
      Inline property name value.

      Example:b.property("x");

      Overrides:
      property in class ExpressionBuilder