## cascading.pipe
Class CoGroup

    java.lang.Object
      cascading.pipe.Pipe
          cascading.pipe.Group
              cascading.pipe.CoGroup

All Implemented Interfaces:
  FlowElement, Serializable

    public class CoGroup

extends Group

The CoGroup pipe allows for two or more tuple streams to join into a single stream.

For every incoming `Pipe` instance, a `Fields` instance must be specified that denotes the field names or positions that should be co-grouped with the other given Pipe instances. If the incoming Pipe instances declare one or more field with the same name, the declaredFields must be given to name the outgoing Tuple stream fields to overcome field name collisions.

`resultGroupFields` value sets the resulting grouping field names. By default, if all 'groupFields' values are equal, that value will be used for resultGroupFields.

By default CoGroup performs an inner join via the `InnerJoin` `Joiner` class.

Self joins can be achieved by using a constructor that takes a single Pipe and a numSelfJoins value. A value of 1 for numSelfJoins will join the Pipe with itself once.

The outgoing grouping Tuple stream is sorted by the natural order of the grouping fields. To control this order, at least the first groupingFields value given should be an instance of `Fields` containing `Comparator` instances for the appropriate fields. This allows fine grained control of the sort grouping order.

CoGrouping, specifically joins, do not scale well when implemented over MapReduce. In Cascading there are two ways to optimize CoGrouping.

The first is to join streams with more data on the left hand side to streams with more sparse data on the right hand side. That is, always attempt to effect M x N joins where M is large and N is small, instead of where M is small and N is large. This typically will allow Cascading to forgo spilling a group via the `SpillableTupleList` internally.

If spills are happening, consider increasing the spill threshold (`CoGroupClosure.SPILL_THRESHOLD` via the properties handed to `FlowConnector`.

See Also:
  `InnerJoin`, `OuterJoin`, `LeftJoin`, `RightJoin`, `MixedJoin`, `Fields`, `SpillableTupleList`, `CoGroupClosure`, Serialized Form

Field Summary

Fields inherited from class cascading.pipe.Group
`declaredFields, groupFieldsMap, resultGroupFields, sortFieldsMap`

Fields inherited from class cascading.pipe.Pipe
`previous`

Constructor Summary
`CoGroup(Pipe... pipes)` Constructor CoGroup creates a new CoGroup instance.
`CoGroup(Pipe[] pipes, Fields[] groupFields)` Constructor CoGroup creates a new CoGroup instance.
`CoGroup(Pipe[] pipes, Fields[] groupFields, Fields declaredFields, Fields resultGroupFields, Joiner joiner)` Constructor CoGroup creates a new CoGroup instance.
`CoGroup(Pipe[] pipes, Fields[] groupFields, Fields declaredFields, Joiner joiner)` Constructor CoGroup creates a new CoGroup instance.
`CoGroup(Pipe pipe, Fields groupFields, int numSelfJoins)` Constructor CoGroup creates a new CoGroup instance that performs numSelfJoins number of self joins on the given `Pipe` instance.
`CoGroup(Pipe pipe, Fields groupFields, int numSelfJoins, Fields declaredFields)` Constructor CoGroup creates a new CoGroup instance that performs numSelfJoins number of self joins on the given `Pipe` instance.
`CoGroup(Pipe pipe, Fields groupFields, int numSelfJoins, Fields declaredFields, Fields resultGroupFields)` Constructor CoGroup creates a new CoGroup instance.
`CoGroup(Pipe pipe, Fields groupFields, int numSelfJoins, Fields declaredFields, Fields resultGroupFields, Joiner joiner)` Constructor CoGroup creates a new CoGroup instance.
`CoGroup(Pipe pipe, Fields groupFields, int numSelfJoins, Fields declaredFields, Joiner joiner)` Constructor CoGroup creates a new CoGroup instance that performs numSelfJoins number of self joins on the given `Pipe` instance.
`CoGroup(Pipe pipe, Fields groupFields, int numSelfJoins, Joiner joiner)` Constructor CoGroup creates a new CoGroup instance that performs numSelfJoins number of self joins on the given `Pipe` instance.
`CoGroup(Pipe lhs, Fields lhsGroupFields, Pipe rhs, Fields rhsGroupFields)` Constructor CoGroup creates a new CoGroup instance.
`CoGroup(Pipe lhs, Fields lhsGroupFields, Pipe rhs, Fields rhsGroupFields, Fields declaredFields)` Constructor CoGroup creates a new CoGroup instance.
`CoGroup(Pipe lhs, Fields lhsGroupFields, Pipe rhs, Fields rhsGroupFields, Fields declaredFields, Fields resultGroupFields)` Constructor CoGroup creates a new CoGroup instance.
`CoGroup(Pipe lhs, Fields lhsGroupFields, Pipe rhs, Fields rhsGroupFields, Fields declaredFields, Fields resultGroupFields, Joiner joiner)` Constructor CoGroup creates a new CoGroup instance.
`CoGroup(Pipe lhs, Fields lhsGroupFields, Pipe rhs, Fields rhsGroupFields, Fields declaredFields, Joiner joiner)` Constructor CoGroup creates a new CoGroup instance.
`CoGroup(Pipe lhs, Fields lhsGroupFields, Pipe rhs, Fields rhsGroupFields, Joiner joiner)` Constructor CoGroup creates a new CoGroup instance.
`CoGroup(String groupName, Pipe... pipes)` Constructor CoGroup creates a new CoGroup instance.
`CoGroup(String groupName, Pipe[] pipes, Fields[] groupFields)` Constructor CoGroup creates a new CoGroup instance.
`CoGroup(String groupName, Pipe[] pipes, Fields[] groupFields, Fields declaredFields)` Constructor CoGroup creates a new CoGroup instance.
`CoGroup(String groupName, Pipe[] pipes, Fields[] groupFields, Fields declaredFields, Fields resultGroupFields)` Constructor CoGroup creates a new CoGroup instance.
`CoGroup(String groupName, Pipe[] pipes, Fields[] groupFields, Fields declaredFields, Fields resultGroupFields, Joiner joiner)` Constructor CoGroup creates a new CoGroup instance.
`CoGroup(String groupName, Pipe[] pipes, Fields[] groupFields, Fields declaredFields, Joiner joiner)` Constructor CoGroup creates a new CoGroup instance.
`CoGroup(String groupName, Pipe pipe, Fields groupFields, int numSelfJoins)` Constructor CoGroup creates a new CoGroup instance that performs numSelfJoins number of self joins on the given `Pipe` instance.
`CoGroup(String groupName, Pipe pipe, Fields groupFields, int numSelfJoins, Fields declaredFields)` Constructor CoGroup creates a new CoGroup instance that performs numSelfJoins number of self joins on the given `Pipe` instance.
`CoGroup(String groupName, Pipe pipe, Fields groupFields, int numSelfJoins, Fields declaredFields, Fields resultGroupFields)` Constructor CoGroup creates a new CoGroup instance.
`CoGroup(String groupName, Pipe pipe, Fields groupFields, int numSelfJoins, Fields declaredFields, Fields resultGroupFields, Joiner joiner)` Constructor CoGroup creates a new CoGroup instance.
`CoGroup(String groupName, Pipe pipe, Fields groupFields, int numSelfJoins, Fields declaredFields, Joiner joiner)` Constructor CoGroup creates a new CoGroup instance that performs numSelfJoins number of self joins on the given `Pipe` instance.
`CoGroup(String groupName, Pipe pipe, Fields groupFields, int numSelfJoins, Joiner joiner)` Constructor CoGroup creates a new CoGroup instance that performs numSelfJoins number of self joins on the given `Pipe` instance.
`CoGroup(String groupName, Pipe lhs, Fields lhsGroupFields, Pipe rhs, Fields rhsGroupFields)` Constructor CoGroup creates a new CoGroup instance.
`CoGroup(String groupName, Pipe lhs, Fields lhsGroupFields, Pipe rhs, Fields rhsGroupFields, Fields declaredFields)` Constructor CoGroup creates a new CoGroup instance.
`CoGroup(String groupName, Pipe lhs, Fields lhsGroupFields, Pipe rhs, Fields rhsGroupFields, Fields declaredFields, Fields resultGroupFields)` Constructor CoGroup creates a new CoGroup instance.
`CoGroup(String groupName, Pipe lhs, Fields lhsGroupFields, Pipe rhs, Fields rhsGroupFields, Fields declaredFields, Fields resultGroupFields, Joiner joiner)` Constructor CoGroup creates a new CoGroup instance.
`CoGroup(String groupName, Pipe lhs, Fields lhsGroupFields, Pipe rhs, Fields rhsGroupFields, Fields declaredFields, Joiner joiner)` Constructor CoGroup creates a new CoGroup instance.
`CoGroup(String groupName, Pipe lhs, Fields lhsGroupFields, Pipe rhs, Fields rhsGroupFields, Joiner joiner)` Constructor CoGroup creates a new CoGroup instance.

Method Summary

Methods inherited from class cascading.pipe.Group
`collectReduceGrouping, equals, getDeclaredFields, getGroupingSelectors, getName, getPrevious, getSortingSelectors, hashCode, initializeReduce, isEquivalentTo, isGroupBy, isSorted, isSortReversed, iterateReduceValues, outgoingScopeFor, printInternal, resolveFields, toString, unwrapGrouping`

Methods inherited from class cascading.pipe.Pipe
`getHeads, getTrace, names, pipes, print, resolveIncomingOperationFields`

Methods inherited from class java.lang.Object
`clone, finalize, getClass, notify, notifyAll, wait, wait, wait`

Constructor Detail

### CoGroup

    @ConstructorProperties(value={"lhs","lhsGroupFields","rhs","rhsGroupFields","declaredFields"})
    public CoGroup(Pipe lhs,
                                              Fields lhsGroupFields,
                                              Pipe rhs,
                                              Fields rhsGroupFields,
                                              Fields declaredFields)

  Constructor CoGroup creates a new CoGroup instance.

  Parameters:
    `lhs` - of type Pipe
    `lhsGroupFields` - of type Fields
    `rhs` - of type Pipe
    `rhsGroupFields` - of type Fields
    `declaredFields` - of type Fields

### CoGroup

    @ConstructorProperties(value={"lhs","lhsGroupFields","rhs","rhsGroupFields","declaredFields","resultGroupFields"})
    public CoGroup(Pipe lhs,
                                              Fields lhsGroupFields,
                                              Pipe rhs,
                                              Fields rhsGroupFields,
                                              Fields declaredFields,
                                              Fields resultGroupFields)

  Constructor CoGroup creates a new CoGroup instance.

  Parameters:
    `lhs` - of type Pipe
    `lhsGroupFields` - of type Fields
    `rhs` - of type Pipe
    `rhsGroupFields` - of type Fields
    `declaredFields` - of type Fields
    `resultGroupFields` - of type Fields

### CoGroup

    @ConstructorProperties(value={"lhs","lhsGroupFields","rhs","rhsGroupFields","declaredFields","joiner"})
    public CoGroup(Pipe lhs,
                                              Fields lhsGroupFields,
                                              Pipe rhs,
                                              Fields rhsGroupFields,
                                              Fields declaredFields,
                                              Joiner joiner)

  Constructor CoGroup creates a new CoGroup instance.

  Parameters:
    `lhs` - of type Pipe
    `lhsGroupFields` - of type Fields
    `rhs` - of type Pipe
    `rhsGroupFields` - of type Fields
    `declaredFields` - of type Fields
    `joiner` - of type CoGrouper

### CoGroup

    @ConstructorProperties(value={"lhs","lhsGroupFields","rhs","rhsGroupFields","declaredFields","resultGroupFields","joiner"})
    public CoGroup(Pipe lhs,
                                              Fields lhsGroupFields,
                                              Pipe rhs,
                                              Fields rhsGroupFields,
                                              Fields declaredFields,
                                              Fields resultGroupFields,
                                              Joiner joiner)

  Constructor CoGroup creates a new CoGroup instance.

  Parameters:
    `lhs` - of type Pipe
    `lhsGroupFields` - of type Fields
    `rhs` - of type Pipe
    `rhsGroupFields` - of type Fields
    `declaredFields` - of type Fields
    `resultGroupFields` - of type Fields
    `joiner` - of type Joiner

### CoGroup

    @ConstructorProperties(value={"lhs","lhsGroupFields","rhs","rhsGroupFields","joiner"})
    public CoGroup(Pipe lhs,
                                              Fields lhsGroupFields,
                                              Pipe rhs,
                                              Fields rhsGroupFields,
                                              Joiner joiner)

  Constructor CoGroup creates a new CoGroup instance.

  Parameters:
    `lhs` - of type Pipe
    `lhsGroupFields` - of type Fields
    `rhs` - of type Pipe
    `rhsGroupFields` - of type Fields
    `joiner` - of type CoGrouper

### CoGroup

    @ConstructorProperties(value={"lhs","lhsGroupFields","rhs","rhsGroupFields"})
    public CoGroup(Pipe lhs,
                                              Fields lhsGroupFields,
                                              Pipe rhs,
                                              Fields rhsGroupFields)

  Constructor CoGroup creates a new CoGroup instance.

  Parameters:
    `lhs` - of type Pipe
    `lhsGroupFields` - of type Fields
    `rhs` - of type Pipe
    `rhsGroupFields` - of type Fields

### CoGroup

    @ConstructorProperties(value="pipes")
    public CoGroup(Pipe... pipes)

  Constructor CoGroup creates a new CoGroup instance.

  Parameters:
    `pipes` - of type Pipe...

### CoGroup

    @ConstructorProperties(value={"pipes","groupFields"})
    public CoGroup(Pipe[] pipes,
                                              Fields[] groupFields)

  Constructor CoGroup creates a new CoGroup instance.

  Parameters:
    `pipes` - of type Pipe[]
    `groupFields` - of type Fields[]

### CoGroup

    @ConstructorProperties(value={"pipes","groupFields","declaredFields","joiner"})
    public CoGroup(Pipe[] pipes,
                                              Fields[] groupFields,
                                              Fields declaredFields,
                                              Joiner joiner)

  Constructor CoGroup creates a new CoGroup instance.

  Parameters:
    `pipes` - of type Pipe[]
    `groupFields` - of type Fields[]
    `declaredFields` - of type Fields
    `joiner` - of type CoGrouper

### CoGroup

    @ConstructorProperties(value={"pipes","groupFields","declaredFields","resultGroupFields","joiner"})
    public CoGroup(Pipe[] pipes,
                                              Fields[] groupFields,
                                              Fields declaredFields,
                                              Fields resultGroupFields,
                                              Joiner joiner)

  Constructor CoGroup creates a new CoGroup instance.

  Parameters:
    `pipes` - of type Pipe[]
    `groupFields` - of type Fields[]
    `declaredFields` - of type Fields
    `resultGroupFields` - of type Fields
    `joiner` - of type Joiner

### CoGroup

    @ConstructorProperties(value={"groupName","pipes","groupFields"})
    public CoGroup(String groupName,
                                              Pipe[] pipes,
                                              Fields[] groupFields)

  Constructor CoGroup creates a new CoGroup instance.

  Parameters:
    `groupName` - of type String
    `pipes` - of type Pipe[]
    `groupFields` - of type Fields[]

### CoGroup

    @ConstructorProperties(value={"groupName","pipes","groupFields","declaredFields"})
    public CoGroup(String groupName,
                                              Pipe[] pipes,
                                              Fields[] groupFields,
                                              Fields declaredFields)

  Constructor CoGroup creates a new CoGroup instance.

  Parameters:
    `groupName` - of type String
    `pipes` - of type Pipe[]
    `groupFields` - of type Fields[]
    `declaredFields` - of type Fields

### CoGroup

    @ConstructorProperties(value={"groupName","pipes","groupFields","declaredFields","resultGroupFields"})
    public CoGroup(String groupName,
                                              Pipe[] pipes,
                                              Fields[] groupFields,
                                              Fields declaredFields,
                                              Fields resultGroupFields)

  Constructor CoGroup creates a new CoGroup instance.

  Parameters:
    `groupName` - of type String
    `pipes` - of type Pipe[]
    `groupFields` - of type Fields[]
    `declaredFields` - of type Fields
    `resultGroupFields` - of type Fields

### CoGroup

    @ConstructorProperties(value={"groupName","pipes","groupFields","declaredFields","joiner"})
    public CoGroup(String groupName,
                                              Pipe[] pipes,
                                              Fields[] groupFields,
                                              Fields declaredFields,
                                              Joiner joiner)

  Constructor CoGroup creates a new CoGroup instance.

  Parameters:
    `groupName` - of type String
    `pipes` - of type Pipe[]
    `groupFields` - of type Fields[]
    `declaredFields` - of type Fields
    `joiner` - of type CoGrouper

### CoGroup

    @ConstructorProperties(value={"groupName","pipes","groupFields","declaredFields","resultGroupFields","joiner"})
    public CoGroup(String groupName,
                                              Pipe[] pipes,
                                              Fields[] groupFields,
                                              Fields declaredFields,
                                              Fields resultGroupFields,
                                              Joiner joiner)

  Constructor CoGroup creates a new CoGroup instance.

  Parameters:
    `groupName` - of type String
    `pipes` - of type Pipe[]
    `groupFields` - of type Fields[]
    `declaredFields` - of type Fields
    `resultGroupFields` - of type Fields
    `joiner` - of type CoGrouper

### CoGroup

    @ConstructorProperties(value={"groupName","lhs","lhsGroupFields","rhs","rhsGroupFields","declaredFields"})
    public CoGroup(String groupName,
                                              Pipe lhs,
                                              Fields lhsGroupFields,
                                              Pipe rhs,
                                              Fields rhsGroupFields,
                                              Fields declaredFields)

  Constructor CoGroup creates a new CoGroup instance.

  Parameters:
    `groupName` - of type String
    `lhs` - of type Pipe
    `lhsGroupFields` - of type Fields
    `rhs` - of type Pipe
    `rhsGroupFields` - of type Fields
    `declaredFields` - of type Fields

### CoGroup

    @ConstructorProperties(value={"groupName","lhs","lhsGroupFields","rhs","rhsGroupFields","declaredFields","resultGroupFields"})
    public CoGroup(String groupName,
                                              Pipe lhs,
                                              Fields lhsGroupFields,
                                              Pipe rhs,
                                              Fields rhsGroupFields,
                                              Fields declaredFields,
                                              Fields resultGroupFields)

  Constructor CoGroup creates a new CoGroup instance.

  Parameters:
    `groupName` - of type String
    `lhs` - of type Pipe
    `lhsGroupFields` - of type Fields
    `rhs` - of type Pipe
    `rhsGroupFields` - of type Fields
    `declaredFields` - of type Fields
    `resultGroupFields` - of type Fields

### CoGroup

    @ConstructorProperties(value={"groupName","lhs","lhsGroupFields","rhs","rhsGroupFields","declaredFields","joiner"})
    public CoGroup(String groupName,
                                              Pipe lhs,
                                              Fields lhsGroupFields,
                                              Pipe rhs,
                                              Fields rhsGroupFields,
                                              Fields declaredFields,
                                              Joiner joiner)

  Constructor CoGroup creates a new CoGroup instance.

  Parameters:
    `groupName` - of type String
    `lhs` - of type Pipe
    `lhsGroupFields` - of type Fields
    `rhs` - of type Pipe
    `rhsGroupFields` - of type Fields
    `declaredFields` - of type Fields
    `joiner` - of type CoGrouper

### CoGroup

    @ConstructorProperties(value={"groupName","lhs","lhsGroupFields","rhs","rhsGroupFields","declaredFields","resultGroupFields","joiner"})
    public CoGroup(String groupName,
                                              Pipe lhs,
                                              Fields lhsGroupFields,
                                              Pipe rhs,
                                              Fields rhsGroupFields,
                                              Fields declaredFields,
                                              Fields resultGroupFields,
                                              Joiner joiner)

  Constructor CoGroup creates a new CoGroup instance.

  Parameters:
    `groupName` - of type String
    `lhs` - of type Pipe
    `lhsGroupFields` - of type Fields
    `rhs` - of type Pipe
    `rhsGroupFields` - of type Fields
    `declaredFields` - of type Fields
    `resultGroupFields` - of type Fields
    `joiner` - of type Joiner

### CoGroup

    @ConstructorProperties(value={"groupName","lhs","lhsGroupFields","rhs","rhsGroupFields","joiner"})
    public CoGroup(String groupName,
                                              Pipe lhs,
                                              Fields lhsGroupFields,
                                              Pipe rhs,
                                              Fields rhsGroupFields,
                                              Joiner joiner)

  Constructor CoGroup creates a new CoGroup instance.

  Parameters:
    `groupName` - of type String
    `lhs` - of type Pipe
    `lhsGroupFields` - of type Fields
    `rhs` - of type Pipe
    `rhsGroupFields` - of type Fields
    `joiner` - of type CoGrouper

### CoGroup

    @ConstructorProperties(value={"groupName","lhs","lhsGroupFields","rhs","rhsGroupFields"})
    public CoGroup(String groupName,
                                              Pipe lhs,
                                              Fields lhsGroupFields,
                                              Pipe rhs,
                                              Fields rhsGroupFields)

  Constructor CoGroup creates a new CoGroup instance.

  Parameters:
    `groupName` - of type String
    `lhs` - of type Pipe
    `lhsGroupFields` - of type Fields
    `rhs` - of type Pipe
    `rhsGroupFields` - of type Fields

### CoGroup

    @ConstructorProperties(value={"groupName","pipes"})
    public CoGroup(String groupName,
                                              Pipe... pipes)

  Constructor CoGroup creates a new CoGroup instance.

  Parameters:
    `groupName` - of type String
    `pipes` - of type Pipe...

### CoGroup

    @ConstructorProperties(value={"pipe","groupFields","numSelfJoins","declaredFields"})
    public CoGroup(Pipe pipe,
                                              Fields groupFields,
                                              int numSelfJoins,
                                              Fields declaredFields)

  Constructor CoGroup creates a new CoGroup instance that performs numSelfJoins number of self joins on the given `Pipe` instance.

  Parameters:
    `pipe` - of type Pipe
    `groupFields` - of type Fields
    `numSelfJoins` - of type int
    `declaredFields` - of type Fields

### CoGroup

    @ConstructorProperties(value={"pipe","groupFields","numSelfJoins","declaredFields","resultGroupFields"})
    public CoGroup(Pipe pipe,
                                              Fields groupFields,
                                              int numSelfJoins,
                                              Fields declaredFields,
                                              Fields resultGroupFields)

  Constructor CoGroup creates a new CoGroup instance.

  Parameters:
    `pipe` - of type Pipe
    `groupFields` - of type Fields
    `numSelfJoins` - of type int
    `declaredFields` - of type Fields
    `resultGroupFields` - of type Fields

### CoGroup

    @ConstructorProperties(value={"pipe","groupFields","numSelfJoins","declaredFields","joiner"})
    public CoGroup(Pipe pipe,
                                              Fields groupFields,
                                              int numSelfJoins,
                                              Fields declaredFields,
                                              Joiner joiner)

  Constructor CoGroup creates a new CoGroup instance that performs numSelfJoins number of self joins on the given `Pipe` instance.

  Parameters:
    `pipe` - of type Pipe
    `groupFields` - of type Fields
    `numSelfJoins` - of type int
    `declaredFields` - of type Fields
    `joiner` - of type CoGrouper

### CoGroup

    @ConstructorProperties(value={"pipe","groupFields","numSelfJoins","declaredFields","resultGroupFields","joiner"})
    public CoGroup(Pipe pipe,
                                              Fields groupFields,
                                              int numSelfJoins,
                                              Fields declaredFields,
                                              Fields resultGroupFields,
                                              Joiner joiner)

  Constructor CoGroup creates a new CoGroup instance.

  Parameters:
    `pipe` - of type Pipe
    `groupFields` - of type Fields
    `numSelfJoins` - of type int
    `declaredFields` - of type Fields
    `resultGroupFields` - of type Fields
    `joiner` - of type Joiner

### CoGroup

    @ConstructorProperties(value={"pipe","groupFields","numSelfJoins","joiner"})
    public CoGroup(Pipe pipe,
                                              Fields groupFields,
                                              int numSelfJoins,
                                              Joiner joiner)

  Constructor CoGroup creates a new CoGroup instance that performs numSelfJoins number of self joins on the given `Pipe` instance.

  Parameters:
    `pipe` - of type Pipe
    `groupFields` - of type Fields
    `numSelfJoins` - of type int
    `joiner` - of type CoGrouper

### CoGroup

    @ConstructorProperties(value={"pipe","groupFields","numSelfJoins"})
    public CoGroup(Pipe pipe,
                                              Fields groupFields,
                                              int numSelfJoins)

  Constructor CoGroup creates a new CoGroup instance that performs numSelfJoins number of self joins on the given `Pipe` instance.

  Parameters:
    `pipe` - of type Pipe
    `groupFields` - of type Fields
    `numSelfJoins` - of type int

### CoGroup

    @ConstructorProperties(value={"groupName","pipe","groupFields","numSelfJoins","declaredFields"})
    public CoGroup(String groupName,
                                              Pipe pipe,
                                              Fields groupFields,
                                              int numSelfJoins,
                                              Fields declaredFields)

  Constructor CoGroup creates a new CoGroup instance that performs numSelfJoins number of self joins on the given `Pipe` instance.

  Parameters:
    `groupName` - of type String
    `pipe` - of type Pipe
    `groupFields` - of type Fields
    `numSelfJoins` - of type int
    `declaredFields` - of type Fields

### CoGroup

    @ConstructorProperties(value={"groupName","pipe","groupFields","numSelfJoins","declaredFields","resultGroupFields"})
    public CoGroup(String groupName,
                                              Pipe pipe,
                                              Fields groupFields,
                                              int numSelfJoins,
                                              Fields declaredFields,
                                              Fields resultGroupFields)

  Constructor CoGroup creates a new CoGroup instance.

  Parameters:
    `groupName` - of type String
    `pipe` - of type Pipe
    `groupFields` - of type Fields
    `numSelfJoins` - of type int
    `declaredFields` - of type Fields
    `resultGroupFields` - of type Fields

### CoGroup

    @ConstructorProperties(value={"groupName","pipe","groupFields","numSelfJoins","declaredFields","joiner"})
    public CoGroup(String groupName,
                                              Pipe pipe,
                                              Fields groupFields,
                                              int numSelfJoins,
                                              Fields declaredFields,
                                              Joiner joiner)

  Constructor CoGroup creates a new CoGroup instance that performs numSelfJoins number of self joins on the given `Pipe` instance.

  Parameters:
    `groupName` - of type String
    `pipe` - of type Pipe
    `groupFields` - of type Fields
    `numSelfJoins` - of type int
    `declaredFields` - of type Fields
    `joiner` - of type CoGrouper

### CoGroup

    @ConstructorProperties(value={"groupName","pipe","groupFields","numSelfJoins","declaredFields","resultGroupFields","joiner"})
    public CoGroup(String groupName,
                                              Pipe pipe,
                                              Fields groupFields,
                                              int numSelfJoins,
                                              Fields declaredFields,
                                              Fields resultGroupFields,
                                              Joiner joiner)

  Constructor CoGroup creates a new CoGroup instance.

  Parameters:
    `groupName` - of type String
    `pipe` - of type Pipe
    `groupFields` - of type Fields
    `numSelfJoins` - of type int
    `declaredFields` - of type Fields
    `resultGroupFields` - of type Fields
    `joiner` - of type Joiner

### CoGroup

    @ConstructorProperties(value={"groupName","pipe","groupFields","numSelfJoins","joiner"})
    public CoGroup(String groupName,
                                              Pipe pipe,
                                              Fields groupFields,
                                              int numSelfJoins,
                                              Joiner joiner)

  Constructor CoGroup creates a new CoGroup instance that performs numSelfJoins number of self joins on the given `Pipe` instance.

  Parameters:
    `groupName` - of type String
    `pipe` - of type Pipe
    `groupFields` - of type Fields
    `numSelfJoins` - of type int
    `joiner` - of type CoGrouper

### CoGroup

    @ConstructorProperties(value={"groupName","pipe","groupFields","numSelfJoins"})
    public CoGroup(String groupName,
                                              Pipe pipe,
                                              Fields groupFields,
                                              int numSelfJoins)

  Constructor CoGroup creates a new CoGroup instance that performs numSelfJoins number of self joins on the given `Pipe` instance.

  Parameters:
    `groupName` - of type String
    `pipe` - of type Pipe
    `groupFields` - of type Fields
    `numSelfJoins` - of type int

Copyright © 2007-2010 Concurrent, Inc. All Rights Reserved.