org.pentaho.di.trans
Class SlaveStepCopyPartitionDistribution

java.lang.Object
  extended by org.pentaho.di.trans.SlaveStepCopyPartitionDistribution

public class SlaveStepCopyPartitionDistribution
extends Object

This class keeps track of which step copy in which transformation is responsible for handling a certain partition nr. This distribution is created BEFORE the slave transformations are sent to the slave servers. As such, it will be easy to link a step copy on a certain slave server uniquely to a certain partition. That is to say, it will be done the same way accross the complete cluster.

Author:
matt

Nested Class Summary
 class SlaveStepCopyPartitionDistribution.SlaveStepCopy
           
 
Field Summary
static String XML_TAG
           
 
Constructor Summary
SlaveStepCopyPartitionDistribution()
           
SlaveStepCopyPartitionDistribution(Node node)
           
 
Method Summary
 int addPartition(String slaveServerName, String partitionSchemaName, int stepCopyNr)
          Add a partition number to the distribution if it doesn't already exist.
 void addPartition(String slaveServerName, String partitionSchemaName, int stepCopyNr, int partitionNr)
          Add a partition number to the distribution for re-use at runtime.
 Map<SlaveStepCopyPartitionDistribution.SlaveStepCopy,Integer> getDistribution()
           
 List<PartitionSchema> getOriginalPartitionSchemas()
           
 int getPartition(String slaveServerName, String partitionSchemaName, int stepCopyNr)
           
 String getXML()
           
 void setOriginalPartitionSchemas(List<PartitionSchema> originalPartitionSchemas)
           
 
Methods inherited from class java.lang.Object
equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

XML_TAG

public static final String XML_TAG
See Also:
Constant Field Values
Constructor Detail

SlaveStepCopyPartitionDistribution

public SlaveStepCopyPartitionDistribution()

SlaveStepCopyPartitionDistribution

public SlaveStepCopyPartitionDistribution(Node node)
Method Detail

addPartition

public void addPartition(String slaveServerName,
                         String partitionSchemaName,
                         int stepCopyNr,
                         int partitionNr)
Add a partition number to the distribution for re-use at runtime.

Parameters:
slaveServerName -
partitionSchemaName -
stepCopyNr -
partitionNr -

addPartition

public int addPartition(String slaveServerName,
                        String partitionSchemaName,
                        int stepCopyNr)
Add a partition number to the distribution if it doesn't already exist.

Parameters:
slaveServerName -
partitionSchemaName -
stepCopyNr -
Returns:
The found or created partition number

getPartition

public int getPartition(String slaveServerName,
                        String partitionSchemaName,
                        int stepCopyNr)

getXML

public String getXML()

getDistribution

public Map<SlaveStepCopyPartitionDistribution.SlaveStepCopy,Integer> getDistribution()

getOriginalPartitionSchemas

public List<PartitionSchema> getOriginalPartitionSchemas()
Returns:
the originalPartitionSchemas

setOriginalPartitionSchemas

public void setOriginalPartitionSchemas(List<PartitionSchema> originalPartitionSchemas)
Parameters:
originalPartitionSchemas - the originalPartitionSchemas to set