edu.isi.pegasus.planner.cluster

## Interface Clusterer

All Known Implementing Classes:
  Abstract, Horizontal, Vertical

    public interface Clusterer

The clustering API, that constructs clusters of jobs out of a single partition.

Version:
  $Revision$
Author:
  Karan Vahi

### Field Summary

Fields
`static java.lang.String` `VERSION` The version number associated with this API of Code Generator.

### Method Summary

All Methods Instance Methods Abstract Methods
`java.lang.String` `description()` Returns a textual description of the transfer implementation.
`void` `determineClusters(Partition partition)` Determine the clusters for a partition.
`ADag` `getClusteredDAG()` Returns the clustered workflow.
`void` `initialize(ADag dag, PegasusBag bag)` Initializes the Clusterer impelementation
`void` `parents(java.lang.String partitionID, java.util.List parents)` Associates the relations between the partitions with the corresponding relations between the clustered jobs that are created for each Partition.

### Field Detail

#### VERSION

    static final java.lang.String VERSION

The version number associated with this API of Code Generator.

See Also:
  Constant Field Values

### Method Detail

#### initialize

    void initialize(ADag dag,
                    PegasusBag bag)
             throws ClustererException

Initializes the Clusterer impelementation

Parameters:
  `dag` - the workflow that is being clustered.
  `bag` - the bag of objects that is useful for initialization.
Throws:
  `ClustererException` - in case of error.

#### determineClusters

    void determineClusters(Partition partition)
                    throws ClustererException

Determine the clusters for a partition.

Parameters:
  `partition` - the partition for which the clusters need to be determined.
Throws:
  `ClustererException` - in case of error.

#### parents

    void parents(java.lang.String partitionID,
                 java.util.List parents)
          throws ClustererException

Associates the relations between the partitions with the corresponding relations between the clustered jobs that are created for each Partition.

Parameters:
  `partitionID` - the id of a partition.
  `parents` - the list of `String` objects that contain the id's of the parents of the partition.
Throws:
  `ClustererException` - in case of error.

#### getClusteredDAG

    ADag getClusteredDAG()
                  throws ClustererException

Returns the clustered workflow.

Returns:
  the `ADag` object corresponding to the clustered workflow.
Throws:
  `ClustererException` - in case of error.

#### description

    java.lang.String description()

Returns a textual description of the transfer implementation.

Returns:
  a short textual description