001 package com.croftsoft.core.util.pubsub; 002 003 /********************************************************************* 004 * An interface for publish-and-subscribe publishers. 005 * 006 * <p> 007 * Used to pass messages and events between loosely coupled objects. 008 * </p> 009 * 010 * <p> 011 * This interface extends interface Subscriber so that it can be used 012 * as a one-to-many relay; received messages are simply published. 013 * </p> 014 * 015 * @see 016 * Subscriber 017 * 018 * @version 019 * 2002-01-29 020 * @since 021 * 2002-01-29 022 * @author 023 * <a href="https://www.croftsoft.com/">David Wallace Croft</a> 024 *********************************************************************/ 025 026 public interface Publisher 027 extends Subscriber 028 ////////////////////////////////////////////////////////////////////// 029 ////////////////////////////////////////////////////////////////////// 030 { 031 032 public boolean addSubscriber ( Subscriber subscriber ); 033 034 public boolean removeSubscriber ( Subscriber subscriber ); 035 036 public void publish ( Object message ); 037 038 /********************************************************************* 039 * Simply calls method <code>publish(message)</code>. 040 * 041 * <p> 042 * This interface extends interface Subscriber so that it can be used 043 * as a one-to-many relay; received messages are published. 044 * </p> 045 *********************************************************************/ 046 public void receive ( Object message ); 047 048 ////////////////////////////////////////////////////////////////////// 049 ////////////////////////////////////////////////////////////////////// 050 }