001         package com.croftsoft.core.util.state;
002    
003         import java.rmi.*;
004         import java.rmi.server.UnicastRemoteObject;
005    
006         /*********************************************************************
007         *
008         * An adapter for StateMulticasters of remote States.
009         *
010         * @author
011         *   <a href="https://www.croftsoft.com/">David Wallace Croft</a>
012         * @version
013         *   1998-12-05
014         *********************************************************************/
015    
016         public class  StateMulticasterProxy
017           extends UnicastRemoteObject implements StateMulticasterRemote
018         //////////////////////////////////////////////////////////////////////
019         //////////////////////////////////////////////////////////////////////
020         {
021    
022         private StateMulticaster  stateMulticaster;
023    
024         //////////////////////////////////////////////////////////////////////
025         //////////////////////////////////////////////////////////////////////
026    
027         public static void  main ( String [ ]  args )
028         //////////////////////////////////////////////////////////////////////
029         {
030           String  name = "StateMulticasterProxy";
031    
032           if ( args.length > 0 ) name = args [ 0 ];
033    
034           try
035           {
036             Naming.rebind ( name, new StateMulticasterProxy (
037               new QueuedStateMulticaster ( ) ) );
038           }
039           catch ( Exception  ex )
040           {
041             ex.printStackTrace ( );
042           }
043         }
044    
045         //////////////////////////////////////////////////////////////////////
046         //////////////////////////////////////////////////////////////////////
047    
048         public  StateMulticasterProxy ( StateMulticaster  stateMulticaster )
049           throws RemoteException
050         //////////////////////////////////////////////////////////////////////
051         {
052           this.stateMulticaster = stateMulticaster;
053         }
054    
055         //////////////////////////////////////////////////////////////////////
056         //////////////////////////////////////////////////////////////////////
057    
058         public void  update ( State  state )
059           throws RemoteException
060         //////////////////////////////////////////////////////////////////////
061         {
062           stateMulticaster.update ( state );
063         }
064    
065         public boolean  addStateListener ( StateListener  stateListener )
066           throws RemoteException
067         //////////////////////////////////////////////////////////////////////
068         {
069           return stateMulticaster.addStateListener ( stateListener );
070         }
071    
072         public boolean  removeStateListener ( StateListener  stateListener )
073           throws RemoteException
074         //////////////////////////////////////////////////////////////////////
075         {
076           return stateMulticaster.removeStateListener ( stateListener );
077         }
078    
079    
080         //////////////////////////////////////////////////////////////////////
081         //////////////////////////////////////////////////////////////////////
082         }