protected static boolean isMethodMatch(Method method, String name, Type[] args) {

		if (!method.getName().equals(name)) {
			return false;
		}

		if (args == null) {
			return true;
		}

		Type[] formals = method.getParameterTypes();
		if (formals.length != args.length) {
			return false;
		}

		for (int i = 0; i < args.length; i++) {
			Type fact = args[i];
			Type formal = formals[i];
			int cmp = formal.compare(fact);
			if (cmp < 0) {
				return false;
			}
		}

		return true;
	}