org.pentaho.di.trans.step
Class RemoteStep

java.lang.Object
  extended by org.pentaho.di.trans.step.RemoteStep
All Implemented Interfaces:
Cloneable, Comparable<RemoteStep>, XMLInterface

public class RemoteStep
extends Object
implements Cloneable, XMLInterface, Comparable<RemoteStep>

Defines and handles communication to and from remote steps. TODO: add compression as a parameter/option TODO add buffer size as a parameter

Author:
Matt

Field Summary
 AtomicBoolean stopped
           
static String XML_TAG
           
 
Constructor Summary
RemoteStep(Node node)
           
RemoteStep(String hostname, String remoteHostname, String port, String sourceStep, int sourceStepCopyNr, String targetStep, int targetStepCopyNr, String sourceSlaveServerName, String targetSlaveServerName, int bufferSize, boolean compressingStreams, RowMetaInterface rowMeta)
           
 
Method Summary
 void cleanup()
          Close left-over sockets, streams and so on.
 Object clone()
           
 int compareTo(RemoteStep remoteStep)
           
 boolean equals(Object obj)
           
 int getBufferSize()
           
 String getHostname()
           
 String getPort()
          int
 String getRemoteHostname()
           
 RowMetaInterface getRowMeta()
           
 ServerSocket getServerSocket()
           
 Socket getSocket()
           
 String getSourceSlaveServerName()
           
 String getSourceStep()
           
 int getSourceStepCopyNr()
           
 String getTargetSlaveServerName()
           
 String getTargetStep()
           
 int getTargetStepCopyNr()
           
 String getXML()
          Describes the Object implementing this interface as XML
 boolean isCompressingStreams()
           
 BlockingRowSet openReaderSocket(BaseStep baseStep)
           
 void openServerSocket(BaseStep baseStep)
           
 BlockingRowSet openWriterSocket()
          Open a socket for writing.
 void setBufferSize(int bufferSize)
           
 void setCompressingStreams(boolean compressingStreams)
           
 void setHostname(String hostname)
           
 void setPort(String port)
           
 void setRemoteHostname(String remoteHostname)
           
 void setRowMeta(RowMetaInterface rowMeta)
           
 void setSocket(Socket socket)
           
 void setSourceSlaveServerName(String sourceSlaveServerName)
           
 void setSourceStep(String sourceStep)
           
 void setSourceStepCopyNr(int sourceStepCopyNr)
           
 void setTargetSlaveServerName(String targetSlaveServerName)
           
 void setTargetStep(String targetStep)
           
 void setTargetStepCopyNr(int targetStepCopyNr)
           
 String toString()
           
 
Methods inherited from class java.lang.Object
getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Field Detail

XML_TAG

public static final String XML_TAG
See Also:
Constant Field Values

stopped

public AtomicBoolean stopped
Constructor Detail

RemoteStep

public RemoteStep(String hostname,
                  String remoteHostname,
                  String port,
                  String sourceStep,
                  int sourceStepCopyNr,
                  String targetStep,
                  int targetStepCopyNr,
                  String sourceSlaveServerName,
                  String targetSlaveServerName,
                  int bufferSize,
                  boolean compressingStreams,
                  RowMetaInterface rowMeta)
Parameters:
hostname -
remoteHostname -
port -
sourceStep -
sourceStepCopyNr -
targetStep -
targetStepCopyNr -
sourceSlaveServerName -
targetSlaveServerName -
bufferSize -
compressingStreams -
rowMeta - The expected row layout to pass through this step. (input or output)

RemoteStep

public RemoteStep(Node node)
           throws KettleException
Throws:
KettleException
Method Detail

clone

public Object clone()
Overrides:
clone in class Object

getXML

public String getXML()
Description copied from interface: XMLInterface
Describes the Object implementing this interface as XML

Specified by:
getXML in interface XMLInterface
Returns:
the XML string for this object

toString

public String toString()
Overrides:
toString in class Object

equals

public boolean equals(Object obj)
Overrides:
equals in class Object

compareTo

public int compareTo(RemoteStep remoteStep)
Specified by:
compareTo in interface Comparable<RemoteStep>

getHostname

public String getHostname()
Returns:
the host name

setHostname

public void setHostname(String hostname)
Parameters:
hostname - the host name to set

getPort

public String getPort()
int

Returns:
the port

setPort

public void setPort(String port)
Parameters:
port - the port to set

openServerSocket

public void openServerSocket(BaseStep baseStep)
                      throws IOException
Throws:
IOException

getServerSocket

public ServerSocket getServerSocket()
Returns:
the serverSocket that is created by the open server socket method.

getSocket

public Socket getSocket()
Returns:
the socket

setSocket

public void setSocket(Socket socket)
Parameters:
socket - the socket to set

openWriterSocket

public BlockingRowSet openWriterSocket()
                                throws IOException
Open a socket for writing.

Returns:
the RowSet created that will accept the rows for the remote step
Throws:
IOException

cleanup

public void cleanup()
Close left-over sockets, streams and so on.


openReaderSocket

public BlockingRowSet openReaderSocket(BaseStep baseStep)
                                throws IOException,
                                       KettleException
Throws:
IOException
KettleException

getSourceStep

public String getSourceStep()
Returns:
the sourceStep

setSourceStep

public void setSourceStep(String sourceStep)
Parameters:
sourceStep - the sourceStep to set

getTargetStep

public String getTargetStep()
Returns:
the targetStep

setTargetStep

public void setTargetStep(String targetStep)
Parameters:
targetStep - the targetStep to set

getTargetSlaveServerName

public String getTargetSlaveServerName()
Returns:
the targetSlaveServerName

setTargetSlaveServerName

public void setTargetSlaveServerName(String targetSlaveServerName)
Parameters:
targetSlaveServerName - the targetSlaveServerName to set

getSourceStepCopyNr

public int getSourceStepCopyNr()
Returns:
the sourceStepCopyNr

setSourceStepCopyNr

public void setSourceStepCopyNr(int sourceStepCopyNr)
Parameters:
sourceStepCopyNr - the sourceStepCopyNr to set

getTargetStepCopyNr

public int getTargetStepCopyNr()
Returns:
the targetStepCopyNr

setTargetStepCopyNr

public void setTargetStepCopyNr(int targetStepCopyNr)
Parameters:
targetStepCopyNr - the targetStepCopyNr to set

getBufferSize

public int getBufferSize()
Returns:
the bufferSize

setBufferSize

public void setBufferSize(int bufferSize)
Parameters:
bufferSize - the bufferSize to set

isCompressingStreams

public boolean isCompressingStreams()
Returns:
the compressingStreams

setCompressingStreams

public void setCompressingStreams(boolean compressingStreams)
Parameters:
compressingStreams - the compressingStreams to set

getRemoteHostname

public String getRemoteHostname()
Returns:
the remoteHostname

setRemoteHostname

public void setRemoteHostname(String remoteHostname)
Parameters:
remoteHostname - the remoteHostname to set

getSourceSlaveServerName

public String getSourceSlaveServerName()
Returns:
the sourceSlaveServer name

setSourceSlaveServerName

public void setSourceSlaveServerName(String sourceSlaveServerName)
Parameters:
sourceSlaveServername - the sourceSlaveServerName to set

getRowMeta

public RowMetaInterface getRowMeta()

setRowMeta

public void setRowMeta(RowMetaInterface rowMeta)