Module org.jooq
Package org.jooq.impl

Interface QOM.BinaryOverlay

All Superinterfaces:
Field<byte[]>, FieldOrConstraint, FieldOrRow, FieldOrRowOrSelect, GroupField, Named, OrderField<byte[]>, QueryPart, SelectField<byte[]>, SelectFieldOrAsterisk, Serializable, TableElement, Typed<byte[]>
Enclosing class:
QOM

public static interface QOM.BinaryOverlay extends Field<byte[]>
The BINARY OVERLAY function.

Place a binary string on top of another binary string, replacing the original contents.

  • Method Details

    • $in

      @NotNull default @NotNull Field<byte[]> $in()
      The original binary string on top of which the overlay is placed.
    • $in

      @CheckReturnValue @NotNull default @NotNull QOM.BinaryOverlay $in(Field<byte[]> newIn)
      The original binary string on top of which the overlay is placed.
    • $placing

      @NotNull default @NotNull Field<byte[]> $placing()
      The binary string that is being placed on top of the other binary string.
    • $placing

      @CheckReturnValue @NotNull default @NotNull QOM.BinaryOverlay $placing(Field<byte[]> newPlacing)
      The binary string that is being placed on top of the other binary string.
    • $startIndex

      @NotNull default @NotNull Field<? extends Number> $startIndex()
      The start index (1-based) starting from where the overlay is placed.
    • $startIndex

      @CheckReturnValue @NotNull default @NotNull QOM.BinaryOverlay $startIndex(Field<? extends Number> newStartIndex)
      The start index (1-based) starting from where the overlay is placed.
    • $length

      @Nullable default @Nullable Field<? extends Number> $length()
      The length in the original string that will be replaced, if different from the overlay length.
    • $length

      @CheckReturnValue @NotNull default @NotNull QOM.BinaryOverlay $length(Field<? extends Number> newLength)
      The length in the original string that will be replaced, if different from the overlay length.
    • $arg1

      Field<byte[]> $arg1()
    • $arg2

      Field<byte[]> $arg2()
    • $arg3

      Field<? extends Number> $arg3()
    • $arg4

      Field<? extends Number> $arg4()
    • $arg1

      @CheckReturnValue @NotNull default QOM.BinaryOverlay $arg1(Field<byte[]> newArg1)
    • $arg2

      @CheckReturnValue @NotNull default QOM.BinaryOverlay $arg2(Field<byte[]> newArg2)
    • $arg3

      @CheckReturnValue @NotNull default QOM.BinaryOverlay $arg3(Field<? extends Number> newArg3)
    • $arg4

      @CheckReturnValue @NotNull default QOM.BinaryOverlay $arg4(Field<? extends Number> newArg4)
    • $constructor

      @NotNull @NotNull Function4<? super Field<byte[]>,? super Field<byte[]>,? super Field<? extends Number>,? super Field<? extends Number>,? extends QOM.BinaryOverlay> $constructor()
    • $args

      @NotNull default @NotNull List<?> $args()
    • $traverse

      default <T> T $traverse(Traverser<?,T> traverser)
      Description copied from interface: QueryPart
      Traverser this QueryPart expression tree using a composable Traverser, producing a result.

      This offers a generic way to traverse expression trees to translate the tree to arbitrary other data structures. The simplest traversal would just count all the tree elements:

      
       int count = CUSTOMER.NAME.eq(1).$traverse(0, (i, p) -> i + 1);
       

      The same can be achieved by translating the JDK Collector API to the Traverser API using Traversers.collecting(Collector).

      
       CUSTOMER.NAME.eq(1).$traverse(Traversers.collecting(Collectors.counting()));
       

      Unlike a Collector, a Traverser is optimised for tree traversal, not stream traversal:

      • Is not designed for parallelism
      • It can Traverser.abort() traversal early when the result can be produced early (e.g. when running Traversers.containing(QueryPart), and a result has been found).
      • It can decide whether to Traverser.recurse() into a QueryPart subtree, or whether that is not necessary or even undesirable, e.g. to prevent entering new subquery scopes.
      • Unlike a Collector, which can use its Collector.accumulator() to accumulate each element only once, in tree traversal, it's desirable to be able to distinguish between accumulating an item Traverser.before() or Traverser.after() recursing into it. This is useful e.g. to wrap each tree node in XML opening and closing tags.

      This is a commercial jOOQ edition only feature.

      Specified by:
      $traverse in interface QueryPart
    • $replace

      @NotNull default QueryPart $replace(Replacer replacer)
      Description copied from interface: QueryPart
      Traverse a QueryPart hierarchy and recursively replace its elements by alternatives.

      While replacing contents, this QueryPart isn't modified. Instead, a new object is returned.

      This is a commercial jOOQ edition only feature.

      Specified by:
      $replace in interface QueryPart