Code/Resource
Windows Develop
Linux-Unix program
Internet-Socket-Network
Web Server
Browser Client
Ftp Server
Ftp Client
Browser Plugins
Proxy Server
Email Server
Email Client
WEB Mail
Firewall-Security
Telnet Server
Telnet Client
ICQ-IM-Chat
Search Engine
Sniffer Package capture
Remote Control
xml-soap-webservice
P2P
WEB(ASP,PHP,...)
TCP/IP Stack
SNMP
Grid Computing
SilverLight
DNS
Cluster Service
Network Security
Communication-Mobile
Game Program
Editor
Multimedia program
Graph program
Compiler program
Compress-Decompress algrithms
Crypt_Decrypt algrithms
Mathimatics-Numerical algorithms
MultiLanguage
Disk/Storage
Java Develop
assembly language
Applications
Other systems
Database system
Embeded-SCM Develop
FlashMX/Flex
source in ebook
Delphi VCL
OS Develop
MiddleWare
MPI
MacOS develop
LabView
ELanguage
Software/Tools
E-Books
Artical/Document
InputBufferEventSupport.java
Package: antlr-2_7_0.zip [view]
Upload User: afrynkmhm
Upload Date: 2007-01-06
Package Size: 1262k
Code Size: 3k
Category:
Compiler program
Development Platform:
Others
- package antlr.debug;
- import java.util.Vector;
- import antlr.collections.impl.BitSet;
- import antlr.RecognitionException;
- public class InputBufferEventSupport {
- private Object source;
- private Vector inputBufferListeners;
- private InputBufferEvent inputBufferEvent;
- protected static final int CONSUME=0;
- protected static final int LA=1;
- protected static final int MARK=2;
- protected static final int REWIND=3;
- public InputBufferEventSupport(Object source) {
- inputBufferEvent = new InputBufferEvent(source);
- this.source = source;
- }
- public void addInputBufferListener(InputBufferListener l) {
- if (inputBufferListeners == null) inputBufferListeners = new Vector();
- inputBufferListeners.addElement(l);
- }
- public void fireConsume(char c) {
- inputBufferEvent.setValues(InputBufferEvent.CONSUME, c, 0);
- fireEvents(CONSUME, inputBufferListeners);
- }
- public void fireEvent(int type, ListenerBase l) {
- switch(type) {
- case CONSUME: ((InputBufferListener)l).inputBufferConsume(inputBufferEvent); break;
- case LA: ((InputBufferListener)l).inputBufferLA(inputBufferEvent); break;
- case MARK: ((InputBufferListener)l).inputBufferMark(inputBufferEvent); break;
- case REWIND: ((InputBufferListener)l).inputBufferRewind(inputBufferEvent); break;
- default:
- throw new IllegalArgumentException("bad type "+type+" for fireEvent()");
- }
- }
- public void fireEvents(int type, Vector listeners) {
- Vector targets=null;
- ListenerBase l=null;
- synchronized (this) {
- if (listeners == null) return;
- targets = (Vector)listeners.clone();
- }
- if (targets != null)
- for (int i = 0; i < targets.size(); i++) {
- l = (ListenerBase)targets.elementAt(i);
- fireEvent(type, l);
- }
- }
- public void fireLA(char c, int la) {
- inputBufferEvent.setValues(InputBufferEvent.LA, c, la);
- fireEvents(LA, inputBufferListeners);
- }
- public void fireMark(int pos) {
- inputBufferEvent.setValues(InputBufferEvent.MARK, ' ', pos);
- fireEvents(MARK, inputBufferListeners);
- }
- public void fireRewind(int pos) {
- inputBufferEvent.setValues(InputBufferEvent.REWIND, ' ', pos);
- fireEvents(REWIND, inputBufferListeners);
- }
- public Vector getInputBufferListeners() {
- return inputBufferListeners;
- }
- protected void refresh(Vector listeners) {
- Vector v;
- synchronized (listeners) {
- v = (Vector)listeners.clone();
- }
- if (v != null)
- for (int i = 0; i < v.size(); i++)
- ((ListenerBase)v.elementAt(i)).refresh();
- }
- public void refreshListeners() {
- refresh(inputBufferListeners);
- }
- public void removeInputBufferListener(InputBufferListener l) {
- if (inputBufferListeners != null)
- inputBufferListeners.removeElement(l);
- }
- }