📄 requestpattern.java
字号:
/* * $Source: /home/data/cvsroot/src/jacomma/platform/engine/RequestPattern.java,v $ * $Revision: 1.6 $ * $Date: 2000/10/28 20:09:08 $ * * This file is part of the jacomma framework * Copyright (c) 2000 Dimitrios Vyzovitis * mailto:dviz@egnatia.ee.auth.gr * * * * * * * This library is free software; you can redistribute it and/or modify * it under the terms of the GNU Library General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * This library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Library General Public License for more details. * * You should have received a copy of the GNU Library General Public License * along with this library; if not, write to the Free Software * Foundation, Inc., 59 Temple Place, Suite 330, * Boston, MA 02111-1307 USA */package jacomma.platform.engine;import jacomma.util.Environment;import jacomma.util.Cache;import java.net.InetAddress;import jacomma.icm.type.Handle;import jacomma.icm.type.Symbol;import jacomma.icm.type.Request;import jacomma.icm.type.Message;import jacomma.platform.core.MessagePattern;import java.util.List;/** * TBA **/public final class RequestPattern { static Cache cache_ = new Cache(); static MessagePattern createListPattern( Symbol sym ) { return createListPattern( Request.commServer, sym ); } static MessagePattern createListPattern( InetAddress where, Symbol sym ) { return createListPattern( Handle.createHandle( Request.icmCommServer, where ), sym ); } static MessagePattern createListPattern( Handle han, final Symbol sym ) { MessagePattern p = (MessagePattern)cache_.get( sym ); if ( p == null ) { Object test = new Object(){ public boolean equals( Object obj ) { try { return ((List)((Message)obj).getContent()).contains( sym ); } catch ( ClassCastException exc ) { return false; } } }; p = (MessagePattern)cache_.try_put( sym, MessagePattern .createPattern( han, List.class, test ) ); } return p; } static MessagePattern createListPattern( InetAddress where, Symbol sym, Object add_test ) { return createListPattern( Request.commServerAt( where ), sym, add_test ); } static MessagePattern createListPattern( Symbol sym, Object add_test ) { return createListPattern( Request.commServer, sym, add_test ); } static MessagePattern createListPattern( Handle han, final Symbol sym, final Object add_test ) { Object test = new Object(){ public boolean equals( Object obj ) { try { return ((List)((Message)obj).getContent()).contains( sym ) && add_test.equals( obj ); } catch ( ClassCastException exc ) { return false; } } }; return MessagePattern.createPattern( han, List.class, test ); } static MessagePattern createSymbolPattern( Symbol sym ) { return createSymbolPattern( Request.commServer, sym ); } static MessagePattern createSymbolPattern( InetAddress where, Symbol sym ) { return createSymbolPattern( Handle.createHandle( Request.icmCommServer, where ), sym ); } static MessagePattern createSymbolPattern( Handle han, final Symbol sym ) { MessagePattern p = (MessagePattern)cache_.get( sym ); if ( p == null ) { Object test = new Object(){ public boolean equals( Object obj ) { try { return ((Message)obj).getContent().equals( sym ); } catch ( ClassCastException exc ) { return false; } } }; p = (MessagePattern)cache_.try_put( sym, MessagePattern .createPattern( han, Symbol.class, test ) ); } return p; }}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -