1 /***************************************************************************** 2 * * 3 * This file is part of the BeanShell Java Scripting distribution. * 4 * Documentation and updates may be found at http://www.beanshell.org/ * 5 * * 6 * Sun Public License Notice: * 7 * * 8 * The contents of this file are subject to the Sun Public License Version * 9 * 1.0 (the "License"); you may not use this file except in compliance with * 10 * the License. A copy of the License is available at http://www.sun.com * 11 * * 12 * The Original Code is BeanShell. The Initial Developer of the Original * 13 * Code is Pat Niemeyer. Portions created by Pat Niemeyer are Copyright * 14 * (C) 2000. All Rights Reserved. * 15 * * 16 * GNU Public License Notice: * 17 * * 18 * Alternatively, the contents of this file may be used under the terms of * 19 * the GNU Lesser General Public License (the "LGPL"), in which case the * 20 * provisions of LGPL are applicable instead of those above. If you wish to * 21 * allow use of your version of this file only under the terms of the LGPL * 22 * and not to allow others to use your version of this file under the SPL, * 23 * indicate your decision by deleting the provisions above and replace * 24 * them with the notice and other provisions required by the LGPL. If you * 25 * do not delete the provisions above, a recipient may use your version of * 26 * this file under either the SPL or the LGPL. * 27 * * 28 * Patrick Niemeyer (pat@pat.net) * 29 * Author of Learning Java, O'Reilly & Associates * 30 * http://www.pat.net/~pat/ * 31 * * 32 *****************************************************************************/ 33 34 package bsh; 35 import java.util.*; 36 37 /** 38 This interface supports name completion, which is used primarily for 39 command line tools, etc. It provides a flat source of "names" in a 40 space. For example all of the classes in the classpath or all of the 41 variables in a namespace (or all of those). 42 <p> 43 NameSource is the lightest weight mechanism for sources which wish to 44 support name completion. In the future it might be better for NameSpace 45 to implement NameCompletion directly in a more native and efficient 46 fasion. However in general name competion is used for human interaction 47 and therefore does not require high performance. 48 <p> 49 @see bsh.util.NameCompletion 50 @see bsh.util.NameCompletionTable 51 */ 52 public interface NameSource 53 { 54 public String [] getAllNames(); 55 public void addNameSourceListener( NameSource.Listener listener ); 56 57 public static interface Listener { 58 public void nameSourceChanged( NameSource src ); 59 /** 60 Provide feedback on the progress of mapping a namespace 61 @param msg is an update about what's happening 62 @perc is an integer in the range 0-100 indicating percentage done 63 public void nameSourceMapping( 64 NameSource src, String msg, int perc ); 65 */ 66 } 67 } 68