1 /* 2 * TokenizerPropertyListener.java: tokenizer property change event handler. 3 * 4 * Copyright (C) 2002 Heiko Blau 5 * 6 * This file belongs to the JTopas Library. 7 * JTopas is free software; you can redistribute it and/or modify it 8 * under the terms of the GNU Lesser General Public License as published by the 9 * Free Software Foundation; either version 2.1 of the License, or (at your 10 * option) any later version. 11 * 12 * This software is distributed in the hope that it will be useful, but WITHOUT 13 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or 14 * FITNESS FOR A PARTICULAR PURPOSE. 15 * See the GNU Lesser General Public License for more details. 16 * 17 * You should have received a copy of the GNU Lesser General Public License along 18 * with JTopas. If not, write to the 19 * 20 * Free Software Foundation, Inc. 21 * 59 Temple Place, Suite 330, 22 * Boston, MA 02111-1307 23 * USA 24 * 25 * or check the Internet: http://www.fsf.org 26 * 27 * Contact: 28 * email: heiko@susebox.de 29 */ 30 31 package de.susebox.jtopas; 32 33 //----------------------------------------------------------------------------- 34 // Imports 35 // 36 37 38 //----------------------------------------------------------------------------- 39 // Interface TokenizerPropertyListener 40 // 41 42 /**<p> 43 * The interface <code>TokenizerPropertyListener</code> is implemented by classes 44 * that are interested in changes in {@link TokenizerProperties} objects. Such 45 * changes are adding, removing and modifying of properties like keywords, special 46 * sequences etc. or parse flags. 47 *</p><p> 48 * Usually, a {@link Tokenizer} implementation will also implement this interface. 49 * An example is {@link StandardTokenizer}. With the listener design pattern, 50 * a tokenizer can cache information for fast access that is originally held in 51 * its associated <code>TokenizerProperties</code> object, without the danger of 52 * using out-of-date data. 53 *</p><p> 54 * The method {@link TokenizerProperties#addTokenizerPropertyListener} is used to 55 * register a listener. De-registering is done via 56 * {@link TokenizerProperties#removeTokenizerPropertyListener}. The whole mechanism 57 * is therefore the same as the event listener schemes used in the AWT or the 58 * Swing packages of the JDK. 59 *</p> 60 * 61 * @see TokenizerProperties 62 * @see Tokenizer 63 * @see TokenizerPropertyEvent 64 * @author Heiko Blau 65 */ 66 public interface TokenizerPropertyListener { 67 68 /** 69 * Event handler method. The given {@link TokenizerPropertyEvent} parameter 70 * contains the nessecary information about the property change. We choose 71 * one single method in favour of various more specialized methods since the 72 * reactions on adding, removing and modifying tokenizer properties are often 73 * the same (flushing cash, rereading information etc.) or not very different. 74 *<br> 75 * A {@link TokenizerProperties} object calling its listeners should do this in 76 * the order the listeners were registered with the 77 * {@link TokenizerProperties#addTokenizerPropertyListener} method. 78 * 79 * @param event the {@link TokenizerPropertyEvent} that describes the change 80 */ 81 public void propertyChanged(TokenizerPropertyEvent event); 82 } 83