public static Object executeIfSupported( Object ob, Object[] args, String methname )
	{
		try
		{
			Object retob = null;
			Method[] mt = ob.getClass().getMethods();
			int t = 0;
			for(; t < mt.length; t++ )
			{
				// Make JDK-specific call to method
				//Logger.logInfo(mt[t].getName());
				int numparms = 0;
				int numargs = 0;
				if( args != null )
				{
					numargs = args.length;
				}
				if( mt[t].getParameterTypes() != null )
				{
					numparms = mt[t].getParameterTypes().length;
				}
				String nm = mt[t].getName();
				if( (nm.equals( methname )) && (numparms == numargs) )
				{
					try
					{
						Method mx = mt[t];
						retob = mx.invoke( ob, args );
						break;
					}
					catch( Exception e )
					{
							log.warn( "ResourceLoader.executeIfSupported() Method NOT supported: " + methname + " in " + ob.getClass()
							                                                                                               .getName() + " for arguments " + StringTool
									.arrayToString( args ) );
						return null;
					}
				}
			}
			
				if( t == mt.length )
				{
					log.warn( "ResourceLoader.executeIfSupported() Method NOT found: " + methname + " in " + ob.getClass()
					                                                                                                 .getName() + " for arguments " + StringTool
							.arrayToString( args ) );
				}
			return retob;
		}
		catch( NoSuchMethodError e )
		{
			return null;
		}
	}