Coverage Report - com.sourceforge.jpatterns.patterns.bhv.chain.IChainHandler
 
Classes in this File Line Coverage Branch Coverage Complexity
IChainHandler
N/A 
N/A 
1
 
 1  
 package com.sourceforge.jpatterns.patterns.bhv.chain;
 2  
 
 3  
 /**
 4  
  * This class is served as handler of the messages by types and by my implementations of {@link IChainMessage} specified. It could
 5  
  * also see not only the implementation  of the message but also its type and composition of the inout params. It allows to provide
 6  
  * output params (in that view IChainMessage is Data Trasnfer Object).
 7  
  *
 8  
  * todo: method for checking the permissions on the changing inputs/outputs
 9  
  * todo: method answering the questions: forward/include/ next chain ???
 10  
  * todo: method saying if it rewriting output/ does this extend the input.
 11  
  *
 12  
  * todo: !!! we could chain the handlers using appropriate parents' handlers of this type of message or could chain the handlers
 13  
  * of this chain item
 14  
  * todo: IHandlersChain running all the hadnlers of this chain item for appropriate type of message and then passing the control
 15  
  * above.
 16  
  *
 17  
  *
 18  
  *                dfvgsdg
 19  
  * $Author:: zmicer             $<br/>
 20  
  */
 21  
 public interface IChainHandler
 22  
 {
 23  
     /**
 24  
      * @return the type of the chain handler. This type is useful when we need to divide some instances of the same implementation
 25  
      * on the groups. Could be null if this info is not valuable at the context of the implementation of the handler.
 26  
      */
 27  
     String getType();
 28  
 
 29  
     /**
 30  
      * Answers the question if the specified message fits this handler (could be handled by it). The specifics of this info is
 31  
      * specified at the configuration of system (it is implementation specific info).
 32  
      *
 33  
      * @param message for which we need to answer the question above. Can not be null (otherwise
 34  
      *        <code>IllegalArgumentException</code> would appear).
 35  
      *
 36  
      * @return <code>true</code> if message could handle the message and <code>false</code> otherwise.
 37  
      */
 38  
     boolean doesMessageFit(String message);
 39  
 
 40  
     /**
 41  
      * Answers the question if the specified message fits this handler (could be handled by it). The specifics of this info is
 42  
      * specified at the configuration of system (it is implementation specific info).
 43  
      *
 44  
      * @param message for which we need to answer the question above. Can not be null (otherwise
 45  
      *        <code>IllegalArgumentException</code> would appear).
 46  
      *
 47  
      * @return <code>true</code> if message could handle the message and <code>false</code> otherwise.
 48  
      */
 49  
     boolean doesMessageFit(IChainMessage message);
 50  
 
 51  
     /**
 52  
      * Handle the message.
 53  
      *                            t
 54  
      * todo: think of the return type - status etc??
 55  
      * todo: think if this method operating with string is usefull??? where it could be used???
 56  
      *
 57  
      * @param message which we need to handle. Can not be null (otherwise <code>IllegalArgumentException</code> would appear).
 58  
      *
 59  
      * @throws UnsupportedOperationException in the case it can not handle the message (not permissions/illegal type of message etc.)
 60  
      */
 61  
     void handleMessage(String message) throws UnsupportedOperationException;
 62  
 
 63  
     /**
 64  
      * Handle the message. The chain item is specified too to allow handler to perform chaining the handlers ot to call chain methods
 65  
      * of the above chain items etc.
 66  
      * todo: see IHandlersChain
 67  
      *
 68  
      * todo: think of the return type - status etc??
 69  
      * todo: think if this method operating with string is usefull??? where it could be used???
 70  
      *
 71  
      * @param message which we need to handle. Can not be null (otherwise <code>IllegalArgumentException</code> would appear).
 72  
      * @param chainItem the current chain item calling this
 73  
      *
 74  
      * @throws UnsupportedOperationException in the case it can not handle the message (not permissions/illegal type of message etc.)
 75  
      */
 76  
     void handleMessage(String message, IHierarchyItem chainItem) throws UnsupportedOperationException;
 77  
 
 78  
     /**
 79  
      * Handle the message. The chain item is specified too to allow handler to perform chaining the handlers ot to call chain methods
 80  
      * of the above chain items etc.
 81  
      * todo: see IHandlersChain
 82  
      *
 83  
      * @param message which we need to handle. Can not be null (otherwise <code>IllegalArgumentException</code> would appear).
 84  
      *
 85  
      * @throws UnsupportedOperationException in the case it can not handle the message (not permissions/illegal type of message etc.)
 86  
      */
 87  
     void handleMessage(IChainMessage message, IHierarchyItem chainItem) throws UnsupportedOperationException;
 88  
 
 89  
 }