cgl.narada.wsinfra.deployment.impl
Class FilterPipelineImpl

java.lang.Object
  extended bycgl.narada.wsinfra.deployment.impl.FilterPipelineImpl
All Implemented Interfaces:
FilterPipeline

public class FilterPipelineImpl
extends Object
implements FilterPipeline

This class implements all the capabilities outlined within the FilterPipeline interface.


Constructor Summary
FilterPipelineImpl()
           
 
Method Summary
 void addFilter(Filter filter)
          Add a filter to this filter pipeline.
 void addFilterAt(Filter filter, int position)
          Add a filter to this filter pipeline at a specific position.
 Filter[] getFilters()
          Retrive an enumeration of the filters that are part of the filter pipeline.
 String getIdentifier()
          Retrieve the identifier of the filter pipeline.
 int getNumberOfInputFilters()
          Gets the total number of input filters.
 int getNumberOfOutputFilters()
          Gets the total number of output filters.
 int getPositionInFilterPipeline(Filter filter)
          Retrieves the position of the filter within the filter pipeline, irrespective of whether it is an input filter or output filter or both.
 int getPositionInFilterPipeline(Filter filter, boolean input)
          Gets the position of a given filter within the FilterPipeline.
 int getTotalNumberOfFilters()
          Gets the num of filters that comprise the filter pipeline.
 void injectMessageTowardsApplication(SOAPMessage soapMessage, Filter filter)
          Injects a message based on the filter's position within the filter pipeline towards the application.
 void injectMessageTowardsApplication(SOAPMessage soapMessage, int position)
          Injects a message at a specific location within the filter pipeline towards the application.
 void injectMessageTowardsNetwork(SOAPMessage soapMessage, Filter filter)
          Injects a message at the filter immediately following this filter in the path TOWARDS the NETWORK.
 void injectMessageTowardsNetwork(SOAPMessage soapMessage, int position)
          Injects a message at a specific location within the filter pipeline.
 boolean isPartOfPipeline(Filter filter)
          Checks to see if a given filter is part of this pipeline.
 void moveFilter(Filter filter, int position)
          This method moves a filter within a filter chain to the specified position.
 void processMessageFromApplication(SOAPMessage soapMessage)
          Process a message received from the application.
 void processMessageFromNetwork(SOAPMessage soapMessage)
          Process a message received over the network.
 void registerNetworkSubstrate(NetworkSubstrate networkSubstrate)
          Register a networking substrate for this filter pipeline.
 void registerServiceMessageListener(ServiceMessageListener serviceMessageListener)
          Register the service message listener for this filter pipeline.
 void removeFilter(Filter filter)
          Remove a filter from this filter-pipeline.
 void removeFilterAt(int position)
          Remove a filter at the specified location.
 void replaceFilter(Filter filter, int position)
          This method replaces the existing filter at a given position with the specified one.
 void setIdentifier(String pipelineIdentifier)
          Set the identifier of the filter pipeline.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

FilterPipelineImpl

public FilterPipelineImpl()
Method Detail

registerServiceMessageListener

public void registerServiceMessageListener(ServiceMessageListener serviceMessageListener)
                                    throws DeploymentException
Register the service message listener for this filter pipeline.

Specified by:
registerServiceMessageListener in interface FilterPipeline
Throws:
DeploymentException

registerNetworkSubstrate

public void registerNetworkSubstrate(NetworkSubstrate networkSubstrate)
                              throws DeploymentException
Register a networking substrate for this filter pipeline.

Specified by:
registerNetworkSubstrate in interface FilterPipeline
Throws:
DeploymentException

setIdentifier

public void setIdentifier(String pipelineIdentifier)
                   throws DeploymentException
Set the identifier of the filter pipeline.

Specified by:
setIdentifier in interface FilterPipeline
Throws:
DeploymentException

getIdentifier

public String getIdentifier()
Retrieve the identifier of the filter pipeline.

Specified by:
getIdentifier in interface FilterPipeline

isPartOfPipeline

public boolean isPartOfPipeline(Filter filter)
Checks to see if a given filter is part of this pipeline.

Specified by:
isPartOfPipeline in interface FilterPipeline

addFilter

public void addFilter(Filter filter)
               throws DeploymentException
Add a filter to this filter pipeline.

Specified by:
addFilter in interface FilterPipeline
Throws:
DeploymentException

addFilterAt

public void addFilterAt(Filter filter,
                        int position)
                 throws DeploymentException
Add a filter to this filter pipeline at a specific position.

Specified by:
addFilterAt in interface FilterPipeline
Throws:
DeploymentException

removeFilter

public void removeFilter(Filter filter)
                  throws DeploymentException
Remove a filter from this filter-pipeline.

Specified by:
removeFilter in interface FilterPipeline
Throws:
DeploymentException

removeFilterAt

public void removeFilterAt(int position)
                    throws DeploymentException
Remove a filter at the specified location.

Specified by:
removeFilterAt in interface FilterPipeline
Throws:
DeploymentException

moveFilter

public void moveFilter(Filter filter,
                       int position)
                throws DeploymentException
This method moves a filter within a filter chain to the specified position. The positions of all the other filters within the filter pipeline are adjusted accordingly. For e.g. F1 --- F2 --- F3 --- F4 --- F5, if you move F3 to the 5th position the filter chain would now look like F1 --- F2 --- F4 --- F5 --- F3. This method throws an exception if the filter does not belong to this filter pipeline OR if the position is not a valid one. The position number CANNOT exceed the number of filters within the filter chain. Also, filter numbering begins at 0.

Specified by:
moveFilter in interface FilterPipeline
Throws:
DeploymentException

replaceFilter

public void replaceFilter(Filter filter,
                          int position)
                   throws DeploymentException
This method replaces the existing filter at a given position with the specified one.

Specified by:
replaceFilter in interface FilterPipeline
Throws:
DeploymentException

processMessageFromNetwork

public void processMessageFromNetwork(SOAPMessage soapMessage)
Process a message received over the network.

Specified by:
processMessageFromNetwork in interface FilterPipeline

injectMessageTowardsApplication

public void injectMessageTowardsApplication(SOAPMessage soapMessage,
                                            Filter filter)
                                     throws DeploymentException
Injects a message based on the filter's position within the filter pipeline towards the application.

Specified by:
injectMessageTowardsApplication in interface FilterPipeline
Throws:
DeploymentException

injectMessageTowardsApplication

public void injectMessageTowardsApplication(SOAPMessage soapMessage,
                                            int position)
                                     throws DeploymentException
Injects a message at a specific location within the filter pipeline towards the application.

Specified by:
injectMessageTowardsApplication in interface FilterPipeline
Throws:
DeploymentException

processMessageFromApplication

public void processMessageFromApplication(SOAPMessage soapMessage)
                                   throws DeploymentException,
                                          MessageFlowException,
                                          ProcessingException
Process a message received from the application.

Specified by:
processMessageFromApplication in interface FilterPipeline
Throws:
DeploymentException
MessageFlowException
ProcessingException

injectMessageTowardsNetwork

public void injectMessageTowardsNetwork(SOAPMessage soapMessage,
                                        Filter filter)
                                 throws DeploymentException,
                                        MessageFlowException,
                                        ProcessingException
Injects a message at the filter immediately following this filter in the path TOWARDS the NETWORK.

Specified by:
injectMessageTowardsNetwork in interface FilterPipeline
Throws:
DeploymentException
MessageFlowException
ProcessingException

injectMessageTowardsNetwork

public void injectMessageTowardsNetwork(SOAPMessage soapMessage,
                                        int position)
                                 throws DeploymentException,
                                        MessageFlowException,
                                        ProcessingException
Injects a message at a specific location within the filter pipeline.

Specified by:
injectMessageTowardsNetwork in interface FilterPipeline
Throws:
DeploymentException
MessageFlowException
ProcessingException

getPositionInFilterPipeline

public int getPositionInFilterPipeline(Filter filter)
                                throws DeploymentException
Retrieves the position of the filter within the filter pipeline, irrespective of whether it is an input filter or output filter or both.

Specified by:
getPositionInFilterPipeline in interface FilterPipeline
Throws:
DeploymentException

getPositionInFilterPipeline

public int getPositionInFilterPipeline(Filter filter,
                                       boolean input)
                                throws DeploymentException
Gets the position of a given filter within the FilterPipeline. The second variable returns position depending on whether it is within the input path or the output path. Specifically, this method determines how many input/output filters reside before the filter in question.

Specified by:
getPositionInFilterPipeline in interface FilterPipeline
Throws:
DeploymentException

getTotalNumberOfFilters

public int getTotalNumberOfFilters()
Gets the num of filters that comprise the filter pipeline.

Specified by:
getTotalNumberOfFilters in interface FilterPipeline

getNumberOfInputFilters

public int getNumberOfInputFilters()
Gets the total number of input filters.

Specified by:
getNumberOfInputFilters in interface FilterPipeline

getNumberOfOutputFilters

public int getNumberOfOutputFilters()
Gets the total number of output filters.

Specified by:
getNumberOfOutputFilters in interface FilterPipeline

getFilters

public Filter[] getFilters()
Retrive an enumeration of the filters that are part of the filter pipeline.

Specified by:
getFilters in interface FilterPipeline