001 package com.croftsoft.core.util.state; 002 003 import java.io.Serializable; 004 import java.rmi.*; 005 006 import com.croftsoft.core.lang.ex.*; 007 008 /********************************************************************* 009 * 010 * An ambassador proxy for StateListenerRemote objects. 011 * 012 * @author 013 * <a href="https://www.croftsoft.com/">David Wallace Croft</a> 014 * @version 015 * 1998-12-05 016 *********************************************************************/ 017 018 public class StateListenerAmbassador 019 implements StateListener, Serializable 020 ////////////////////////////////////////////////////////////////////// 021 ////////////////////////////////////////////////////////////////////// 022 { 023 024 private StateListenerRemote stateListenerRemote; 025 026 private transient ExceptionListener exceptionListener; 027 028 ////////////////////////////////////////////////////////////////////// 029 ////////////////////////////////////////////////////////////////////// 030 031 public StateListenerAmbassador ( 032 StateListenerRemote stateListenerRemote, 033 ExceptionListener exceptionListener ) 034 ////////////////////////////////////////////////////////////////////// 035 { 036 this.stateListenerRemote = stateListenerRemote; 037 this.exceptionListener = exceptionListener; 038 } 039 040 public StateListenerAmbassador ( 041 StateListenerRemote stateListenerRemote ) 042 ////////////////////////////////////////////////////////////////////// 043 { 044 this ( stateListenerRemote, new PrintExceptionListener ( ) ); 045 } 046 047 ////////////////////////////////////////////////////////////////////// 048 ////////////////////////////////////////////////////////////////////// 049 050 public void stateListen ( State state ) 051 ////////////////////////////////////////////////////////////////////// 052 { 053 try 054 { 055 stateListenerRemote.stateListen ( state ); 056 } 057 catch ( Exception ex ) 058 { 059 if ( exceptionListener != null ) 060 { 061 exceptionListener.threwException ( this, ex ); 062 } 063 } 064 } 065 066 ////////////////////////////////////////////////////////////////////// 067 ////////////////////////////////////////////////////////////////////// 068 }