Package net.sf.saxon.expr.flwor

## Class GroupByClausePush

- java.lang.Object
- - net.sf.saxon.expr.flwor.TuplePush
  - - net.sf.saxon.expr.flwor.GroupByClausePush

-     public class GroupByClausePush
      extends TuplePush

  Represents the tuple stream delivered by an "group by" clause. This groups the tuple stream supplied as its input, and outputs a new set of tuples one per group of the input tuples. No groups are output until all the groups have been read.

- - ### Constructor Summary

    Constructors
    Constructor | Description
    --- | ---
    `GroupByClausePush​(Outputter outputter, TuplePush destination, GroupByClause groupBy, XPathContext context)` |

  - ### Method Summary

    All Methods Static Methods Instance Methods Concrete Methods
    Modifier and Type | Method | Description
    --- | --- | ---
    `protected static void` | `addToGroup​(java.lang.Object key, GroupByClause.ObjectToBeGrouped objectToBeGrouped, java.util.List<GroupByClause.ObjectToBeGrouped> group, java.util.HashMap<java.lang.Object,​java.util.List<GroupByClause.ObjectToBeGrouped>> map)` |
    `protected static void` | `checkGroupingValues​(Sequence[] groupingValues)` |
    `void` | `close()` | Close the tuple stream, indicating that although not all tuples have been read, no further tuples are required and resources can be released
    `void` | `processTuple​(XPathContext context)` | Move on to the next tuple.

    - ### Methods inherited from class net.sf.saxon.expr.flwor.TuplePush

      `getOutputter`

    - ### Methods inherited from class java.lang.Object

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

- - ### Constructor Detail

    - #### GroupByClausePush

          public GroupByClausePush​(Outputter outputter,
                                   TuplePush destination,
                                   GroupByClause groupBy,
                                   XPathContext context)

  - ### Method Detail

    - #### processTuple

          public void processTuple​(XPathContext context)
                            throws XPathException

      Move on to the next tuple. Before returning, this method must set all the variables corresponding to the "returned" tuple in the local stack frame associated with the context object
      Specified by:
        `processTuple` in class `TuplePush`
      Parameters:
        `context` - the dynamic evaluation context
      Throws:
        `XPathException` - if a dynamic error occurs

    - #### addToGroup

          protected static void addToGroup​(java.lang.Object key,
                                           GroupByClause.ObjectToBeGrouped objectToBeGrouped,
                                           java.util.List<GroupByClause.ObjectToBeGrouped> group,
                                           java.util.HashMap<java.lang.Object,​java.util.List<GroupByClause.ObjectToBeGrouped>> map)

    - #### checkGroupingValues

          protected static void checkGroupingValues​(Sequence[] groupingValues)
                                             throws XPathException

      Throws:
        `XPathException`

    - #### close

          public void close()
                     throws XPathException

      Close the tuple stream, indicating that although not all tuples have been read, no further tuples are required and resources can be released
      Overrides:
        `close` in class `TuplePush`
      Throws:
        `XPathException` - if a dynamic error occurs