6116N/A * Copyright (c) 2008, 2013, Oracle and/or its affiliates. All rights reserved. 827N/A * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. 827N/A * This code is free software; you can redistribute it and/or modify it 827N/A * under the terms of the GNU General Public License version 2 only, as 2362N/A * published by the Free Software Foundation. Oracle designates this 827N/A * particular file as subject to the "Classpath" exception as provided 2362N/A * by Oracle in the LICENSE file that accompanied this code. 827N/A * This code is distributed in the hope that it will be useful, but WITHOUT 827N/A * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or 827N/A * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License 827N/A * version 2 for more details (a copy is included in the LICENSE file that 827N/A * accompanied this code). 827N/A * You should have received a copy of the GNU General Public License version 827N/A * 2 along with this work; if not, write to the Free Software Foundation, 827N/A * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. 2362N/A * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA 2362N/A * or visit www.oracle.com if you need additional information or have any 827N/A * This utility class provides {@code static} methods 827N/A * to find a public method with specified name and parameter types 827N/A * @author Sergey A. Malenkov 827N/A * Finds public method (static or non-static) 827N/A * that is accessible from public class. 827N/A * @param type the class that can have method 827N/A * @param name the name of method to find 827N/A * @param args parameter types that is used to find method 827N/A * @return object that represents found method 827N/A * @throws NoSuchMethodException if method could not be found 827N/A * or some methods are found 827N/A * Finds public non-static method 827N/A * that is accessible from public class. 827N/A * @param type the class that can have method 827N/A * @param name the name of method to find 827N/A * @param args parameter types that is used to find method 827N/A * @return object that represents found method 827N/A * @throws NoSuchMethodException if method could not be found 827N/A * or some methods are found 827N/A * Finds public static method 827N/A * that is accessible from public class. 827N/A * @param type the class that can have method 827N/A * @param name the name of method to find 827N/A * @param args parameter types that is used to find method 827N/A * @return object that represents found method 827N/A * @throws NoSuchMethodException if method could not be found 827N/A * or some methods are found 827N/A * Finds method that is accessible from public class or interface through class hierarchy. 827N/A * @param method object that represents found method 827N/A * @return object that represents accessible method 827N/A * @throws NoSuchMethodException if method is not accessible or is not found 827N/A * in specified superclass or interface 827N/A // try to find in superclass or another interface 827N/A * Finds method that accessible from specified class. 827N/A * @param method object that represents found method 834N/A * @param generic generic type that is used to find accessible method 827N/A * @return object that represents accessible method 827N/A * @throws NoSuchMethodException if method is not accessible or is not found 827N/A * in specified superclass or interface 827N/A * Creates method finder with specified array of parameter types. 827N/A * @param name the name of method to find 827N/A * @param args the array of parameter types 827N/A * Returns an array of {@code Class} objects 4513N/A * that represent the formal parameter types of the method. 827N/A * Returns an empty array if the method takes no parameters. 827N/A * @param method the object that represents method 827N/A * @return the parameter types of the method 827N/A * Returns {@code true} if and only if the method 827N/A * was declared to take a variable number of arguments. 827N/A * @param method the object that represents method 827N/A * @return {@code true} if the method was declared 827N/A * to take a variable number of arguments; 827N/A * {@code false} otherwise 827N/A * Checks validness of the method. 827N/A * The valid method should be public and 827N/A * should have the specified name. 827N/A * @param method the object that represents method 827N/A * @return {@code true} if the method is valid, 827N/A * {@code false} otherwise