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 }