📄 jrelation.java
字号:
/* * Copyright (c) 2002-2003 UTStarcom, Inc. * All rights reserved. */package core.relation.jrelation;import core.relation.common.Relation;import core.relation.common.Body;import core.relation.common.FilterBody;import core.relation.common.MessageFilter;import java.util.Iterator;import java.util.Vector;/** * The JRelation class. * observer * @author Heter pan */public class JRelation implements Relation { Vector children; Object cache; Body parentBody; Vector messages; public JRelation() { children = new Vector( 1 ); messages = new Vector( 1 ); } public JRelation( Body aParentBody ) { parentBody = aParentBody; children = new Vector( 1 ); messages = new Vector( 1 ); } // set parent and remove all child and messages; public void reset( Body aParentBody ) { parentBody = aParentBody; messages.removeAllElements(); children.removeAllElements(); } public void removeAllMessages() { messages.removeAllElements(); } public void addMessage( Object message ) { if ( messages.contains( message ) ) { messages.remove( message ); messages.add( message ); } messages.add( message ); } public void removeMessage( Object message ) { messages.remove( message ); } // for message cache, used with addMessage and removeMessage public void send() { Iterator i = children.iterator(); while ( i.hasNext() ) { Body body = ( Body ) i.next(); if ( body instanceof FilterBody ) { MessageFilter mf = ( ( FilterBody ) body ).getFilter(); Iterator itor = messages.iterator(); while ( itor.hasNext() ) { System.out.println( "ok" ); Object message = itor.next(); if ( mf.filter( message ) ) body.receive( message ); } } else { Iterator itr = messages.iterator(); while ( itr.hasNext() ) { body.receive( itr.next() ); } } } } public void readyReceive( boolean b ) { Iterator i = children.iterator(); while ( i.hasNext() ) { Body body = ( Body ) i.next(); if ( body instanceof FilterBody ) { ( ( FilterBody ) body ).readyReceive( b ); } } } public void send( boolean filter ) { if ( filter ) { send(); return; } Iterator i = children.iterator(); while ( i.hasNext() ) { Body body = ( Body ) i.next(); if ( body instanceof FilterBody ) { Iterator itor = messages.iterator(); while ( itor.hasNext() ) { System.out.println( "ok" ); Object message = itor.next(); body.receive( message ); } } else { Iterator itr = messages.iterator(); while ( itr.hasNext() ) { body.receive( itr.next() ); } } } } public void sendCache() { if ( cache == null ) return; Iterator i = children.iterator(); while ( i.hasNext() ) { Body body = ( Body ) i.next(); if ( body instanceof FilterBody ) { MessageFilter mf = ( ( FilterBody ) body ).getFilter(); if ( mf.filter( cache ) ) body.receive( cache ); } else { body.receive( cache ); } } } public void sendAndSave( Object message ) { Iterator i = children.iterator(); while ( i.hasNext() ) { Body e = ( Body ) i.next(); if ( e instanceof FilterBody ) { if ( ( ( FilterBody ) e ).getFilter().filter( message ) ) e.receive( message ); } else e.receive( message ); } cache = message; } public void send( Object message ) { Iterator i = children.iterator(); while ( i.hasNext() ) { Body e = ( Body ) i.next(); if ( e instanceof FilterBody ) { if ( ( ( FilterBody ) e ).isReadyReceive() ) if ( ( ( FilterBody ) e ).getFilter().filter( message ) ) e.receive( message ); } else e.receive( message ); } } public void sendAndCache( Object message ) { Iterator i = children.iterator(); while ( i.hasNext() ) { Body e = ( Body ) i.next(); if ( e instanceof FilterBody ) { if ( ( ( FilterBody ) e ).isReadyReceive() ) if ( ( ( FilterBody ) e ).getFilter().filter( message ) ) e.receive( message ); } else e.receive( message ); } cache = message; } public void send( Object message, boolean filter ) { if ( filter ) send( message ); Iterator i = children.iterator(); while ( i.hasNext() ) { Body e = ( Body ) i.next(); if ( e instanceof FilterBody ) { if ( ( ( FilterBody ) e ).isReadyReceive() ) e.receive( message ); } else e.receive( message ); } } public void addChildBody( Body b ) { children.add( b ); } public void removeChildBody( Body b ) { children.remove( b ); } public void removeAllChildren() { children.removeAllElements(); }}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -