001         package com.croftsoft.core.util.state;
002    
003         /*********************************************************************
004         *
005         * @author
006         *   <a href="https://www.croftsoft.com/">David Wallace Croft</a>
007         * @version
008         *   1998-12-06
009         *********************************************************************/
010    
011         public class  RelayStateMulticaster
012           implements StateMulticaster, StateListener
013         //////////////////////////////////////////////////////////////////////
014         //////////////////////////////////////////////////////////////////////
015         {
016    
017         private StateMulticaster  stateMulticaster;
018    
019         private StateMulticaster  queuedStateMulticaster
020           = new QueuedStateMulticaster ( );
021    
022         //////////////////////////////////////////////////////////////////////
023         //////////////////////////////////////////////////////////////////////
024    
025         public  RelayStateMulticaster ( StateMulticaster  stateMulticaster )
026         //////////////////////////////////////////////////////////////////////
027         {
028           this.stateMulticaster = stateMulticaster;
029           queuedStateMulticaster.addStateListener ( this );
030         }
031    
032         public void  update ( State  state )
033         //////////////////////////////////////////////////////////////////////
034         {
035           queuedStateMulticaster.update ( state );
036         }
037    
038         public boolean  addStateListener ( StateListener  stateListener )
039         //////////////////////////////////////////////////////////////////////
040         {
041           return stateMulticaster.addStateListener ( stateListener );
042         }
043    
044         public boolean  removeStateListener ( StateListener  stateListener )
045         //////////////////////////////////////////////////////////////////////
046         {
047           return stateMulticaster.removeStateListener ( stateListener );
048         }
049    
050         public void  stateListen ( State  state )
051         //////////////////////////////////////////////////////////////////////
052         {
053           stateMulticaster.update ( state );
054         }
055    
056         //////////////////////////////////////////////////////////////////////
057         //////////////////////////////////////////////////////////////////////
058         }