Package: org.apache.groovy.ginq.provider.collection.runtime

## [Java] Interface WindowDefinition<T, U extends Comparable<? super U>>

-     public interface WindowDefinition<T, U extends Comparable<? super U>>

  Represents window definition, which will define the result set to construct the window

  Type Parameters:
    `T` - the type of Window element
    `U` - the type of field to sort
  Since:
    4.0.0

- - ### Methods Summary

    Methods
    Type Params | Return Type | Name and description
    --- | --- | ---
    `` | `public Object` | `getId()` Get the id of window definition
    `<T, U extends Comparable<? super U>>` | `public static WindowDefinition<T, U>` | `of()` Factory method to create WindowDefinition instance
    `<T, U extends Comparable<? super U>>` | `public static WindowDefinition<T, U>` | `of(Function<? super T, ?> partitionBy)` Factory method to create WindowDefinition instance
    `<T, U extends Comparable<? super U>>` | `public static WindowDefinition<T, U>` | `of(org.apache.groovy.ginq.provider.collection.runtime.Queryable.Order<? super T, ? extends U> orderBy)` Factory method to create WindowDefinition instance
    `<T, U extends Comparable<? super U>>` | `public static WindowDefinition<T, U>` | `of(List<Queryable.Order<? super T, ? extends U>> orderBy)` Factory method to create WindowDefinition instance
    `<T, U extends Comparable<? super U>>` | `public static WindowDefinition<T, U>` | `of(Function<? super T, ?> partitionBy, List<Queryable.Order<? super T, ? extends U>> orderBy)` Factory method to create WindowDefinition instance
    `<T, U extends Comparable<? super U>>` | `public static WindowDefinition<T, U>` | `of(Function<? super T, ?> partitionBy, List<Queryable.Order<? super T, ? extends U>> orderBy, RowBound rows)` Factory method to create WindowDefinition instance
    `<T, U extends Comparable<? super U>>` | `public static WindowDefinition<T, U>` | `of(List<Queryable.Order<? super T, ? extends U>> orderBy, RowBound rows)` Factory method to create WindowDefinition instance
    `<T, U extends Comparable<? super U>>` | `public static WindowDefinition<T, U>` | `of(Function<? super T, ?> partitionBy, List<Queryable.Order<? super T, ? extends U>> orderBy, ValueBound<? extends U> range)` Factory method to create WindowDefinition instance
    `<T, U extends Comparable<? super U>>` | `public static WindowDefinition<T, U>` | `of(List<Queryable.Order<? super T, ? extends U>> orderBy, ValueBound<? extends U> range)` Factory method to create WindowDefinition instance
    `` | `public List<Queryable.Order<? super T, ? extends U>>` | `orderBy()` Define order, similar to SQL's `order by` of window definition
    `` | `public Function<? super T, ?>` | `partitionBy()` Define partition, similar to SQL's `partition by` of window definition
    `` | `public ValueBound<? extends U>` | `range()` Define the window bounds by values, similar to MySQL's `range between 1.0 preceding and 1.0 following` of window definition
    `` | `public RowBound` | `rows()` Define the window bounds by offsets, similar to MySQL's `rows between 1 preceding and 1 following` of window definition
    `` | `public WindowDefinition<T, U>` | `setId(Object id)` Set the id of window definition

- - ### Method Detail

    - #### public Object getId()

      Get the id of window definition

      Returns:
        the id of window definition
      Since:
        4.0.0

    - #### <T, U extends Comparable<? super U>> public static WindowDefinition<T, U> of()

      Factory method to create WindowDefinition instance

      Type Parameters:
        `T` - the type of Queryable element
        `U` - the type of field to sort
      Returns:
        the WindowDefinition instance
      Since:
        4.0.0

    - #### <T, U extends Comparable<? super U>> public static WindowDefinition<T, U> of(Function<? super T, ?> partitionBy)

      Factory method to create WindowDefinition instance

      Parameters:
        `partitionBy` - partition definition
      Type Parameters:
        `T` - the type of Queryable element
        `U` - the type of field to sort
      Returns:
        the WindowDefinition instance
      Since:
        4.0.0

    - #### <T, U extends Comparable<? super U>> public static WindowDefinition<T, U> of(org.apache.groovy.ginq.provider.collection.runtime.Queryable.Order<? super T, ? extends U> orderBy)

      Factory method to create WindowDefinition instance

      Parameters:
        `orderBy` - order definition
      Type Parameters:
        `T` - the type of Queryable element
        `U` - the type of field to sort
      Returns:
        the WindowDefinition instance
      Since:
        4.0.0

    - #### <T, U extends Comparable<? super U>> public static WindowDefinition<T, U> of(List<Queryable.Order<? super T, ? extends U>> orderBy)

      Factory method to create WindowDefinition instance

      Parameters:
        `orderBy` - order definition
      Type Parameters:
        `T` - the type of Queryable element
        `U` - the type of field to sort
      Returns:
        the WindowDefinition instance
      Since:
        4.0.0

    - #### <T, U extends Comparable<? super U>> public static WindowDefinition<T, U> of(Function<? super T, ?> partitionBy, List<Queryable.Order<? super T, ? extends U>> orderBy)

      Factory method to create WindowDefinition instance

      Parameters:
        `partitionBy` - partition definition
        `orderBy` - order definition
      Type Parameters:
        `T` - the type of Queryable element
        `U` - the type of field to sort
      Returns:
        the WindowDefinition instance
      Since:
        4.0.0

    - #### <T, U extends Comparable<? super U>> public static WindowDefinition<T, U> of(Function<? super T, ?> partitionBy, List<Queryable.Order<? super T, ? extends U>> orderBy, RowBound rows)

      Factory method to create WindowDefinition instance

      Parameters:
        `partitionBy` - partition definition
        `orderBy` - order definition
        `rows` - the window bounds
      Type Parameters:
        `T` - the type of Queryable element
        `U` - the type of field to sort
      Returns:
        the WindowDefinition instance
      Since:
        4.0.0

    - #### <T, U extends Comparable<? super U>> public static WindowDefinition<T, U> of(List<Queryable.Order<? super T, ? extends U>> orderBy, RowBound rows)

      Factory method to create WindowDefinition instance

      Parameters:
        `orderBy` - order definition
        `rows` - the window bounds
      Type Parameters:
        `T` - the type of Queryable element
        `U` - the type of field to sort
      Returns:
        the WindowDefinition instance
      Since:
        4.0.0

    - #### <T, U extends Comparable<? super U>> public static WindowDefinition<T, U> of(Function<? super T, ?> partitionBy, List<Queryable.Order<? super T, ? extends U>> orderBy, ValueBound<? extends U> range)

      Factory method to create WindowDefinition instance

      Parameters:
        `partitionBy` - partition definition
        `orderBy` - order definition
        `range` - the window bounds
      Type Parameters:
        `T` - the type of Queryable element
        `U` - the type of field to sort
      Returns:
        the WindowDefinition instance
      Since:
        4.0.0

    - #### <T, U extends Comparable<? super U>> public static WindowDefinition<T, U> of(List<Queryable.Order<? super T, ? extends U>> orderBy, ValueBound<? extends U> range)

      Factory method to create WindowDefinition instance

      Parameters:
        `orderBy` - order definition
        `range` - the window bounds
      Type Parameters:
        `T` - the type of Queryable element
        `U` - the type of field to sort
      Returns:
        the WindowDefinition instance
      Since:
        4.0.0

    - #### public List<Queryable.Order<? super T, ? extends U>> orderBy()

      Define order, similar to SQL's `order by` of window definition

      Returns:
        order definition
      Since:
        4.0.0

    - #### public Function<? super T, ?> partitionBy()

      Define partition, similar to SQL's `partition by` of window definition

      Returns:
        partition definition

    - #### public ValueBound<? extends U> range()

      Define the window bounds by values, similar to MySQL's `range between 1.0 preceding and 1.0 following` of window definition

      Returns:
        range definition
      Since:
        4.0.0

    - #### public RowBound rows()

      Define the window bounds by offsets, similar to MySQL's `rows between 1 preceding and 1 following` of window definition

      Returns:
        rows definition
      Since:
        4.0.0

    - #### public WindowDefinition<T, U> setId(Object id)

      Set the id of window definition

      Parameters:
        `id` - the id of window definition
      Returns:
        self, i.e. current WindowDefinition instance
      Since:
        4.0.0