public BshMethod getMethod( String name, Class [] sig, boolean declaredOnly )
public BshMethod getMethod( String name, Class [] sig )
    public BshMethod getMethod( 		String name, Class [] sig, boolean declaredOnly ) 		throws UtilEvalError	{		BshMethod method = null;		// Change import precedence if we are a class body/instance		// Get import first.		if ( method == null && isClass && !declaredOnly )			method = getImportedMethod( name, sig );		Object m = null;		if ( method == null && methods != null )		{			m = methods.get(name);			// m contains either BshMethod or Vector of BshMethod			if ( m != null ) 			{				// unwrap 				BshMethod [] ma;				if ( m instanceof Vector ) 				{					Vector vm = (Vector)m;					ma = new BshMethod[ vm.size() ];					vm.copyInto( ma );				} else					ma = new BshMethod[] { (BshMethod)m };				// Apply most specific signature matching				Class [][] candidates = new Class[ ma.length ][];				for( int i=0; i< ma.length; i++ )					candidates[i] = ma[i].getParameterTypes();				int match = 					Reflect.findMostSpecificSignature( sig, candidates );				if ( match != -1 )					method = ma[match];			}		}		if ( method == null && !isClass && !declaredOnly )			method = getImportedMethod( name, sig );				// try parent		if ( !declaredOnly && (method == null) && (parent != null) )			return parent.getMethod( name, sig );		return method;    }