/** * * This file is a part of ZOOLA - an extensible BeanShell implementation. * Zoola is based on original BeanShell code created by Pat Niemeyer. * * Original BeanShell code is Copyright (C) 2000 Pat Niemeyer <pat@pat.net>. * * New portions are Copyright 2012 Rafal Lewczuk <rafal.lewczuk@jitlogic.com> * * This is free software. You can redistribute it and/or modify it under the * terms of the GNU Lesser General Public License as published by the Free Software * Foundation, either version 3 of the License, or (at your option) any later * version. * * This software 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 Lesser General Public License for more * details. * * You should have received a copy of the GNU Lesser General Public License * along with ZOOLA. If not, see <http://www.gnu.org/licenses/>. * */ package bsh; import java.util.*; /** This interface supports name completion, which is used primarily for command line tools, etc. It provides a flat source of "names" in a space. For example all of the classes in the classpath or all of the variables in a namespace (or all of those). <p> NameSource is the lightest weight mechanism for sources which wish to support name completion. In the future it might be better for NameSpace to implement NameCompletion directly in a more native and efficient fasion. However in general name competion is used for human interaction and therefore does not require high performance. <p> @see bsh.util.NameCompletion @see bsh.util.NameCompletionTable */ public interface NameSource { public String [] getAllNames(); public void addNameSourceListener( NameSource.Listener listener ); public static interface Listener { public void nameSourceChanged( NameSource src ); /** Provide feedback on the progress of mapping a namespace @param msg is an update about what's happening @perc is an integer in the range 0-100 indicating percentage done public void nameSourceMapping( NameSource src, String msg, int perc ); */ } }