2273N/A * Copyright (c) 1997, 2011, Oracle and/or its affiliates. All rights reserved. 0N/A * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. 0N/A * This code is free software; you can redistribute it and/or modify it 0N/A * under the terms of the GNU General Public License version 2 only, as 0N/A * published by the Free Software Foundation. 0N/A * This code is distributed in the hope that it will be useful, but WITHOUT 0N/A * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or 0N/A * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License 0N/A * version 2 for more details (a copy is included in the LICENSE file that 0N/A * accompanied this code). 0N/A * You should have received a copy of the GNU General Public License version 0N/A * 2 along with this work; if not, write to the Free Software Foundation, 0N/A * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. 1472N/A * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA 0N/A// Class Reflection contains utility methods needed for implementing the 0N/A// Used by functions in the JVM interface. 0N/A// NOTE that in JDK 1.4 most of reflection is now implemented in Java 0N/A// using dynamic bytecode generation. The Array class has not yet been 0N/A// rewritten using bytecodes; if it were, most of the rest of this 0N/A// class could go away, as well as a few more entry points in jvm.cpp. 0N/A // Creating new java.lang.reflect.xxx wrappers 0N/A // Constants defined by java reflection api classes 0N/A // Boxing. Returns boxed value of appropriate type. Throws IllegalArgumentException. 0N/A // Unboxing. Returns type code and sets value. 0N/A // Widening of basic types. Throws IllegalArgumentException. 0N/A // Reflective array access. Returns type code. Throws ArrayIndexOutOfBoundsException. 0N/A // Returns mirror on array element type (NULL for basic type arrays and non-arrays). 0N/A // inner class reflection 665N/A // raise an ICCE unless the required relationship can be proven to hold 665N/A // If inner_is_member, require the inner to be a member of the outer. 665N/A // If !inner_is_member, require the inner to be anonymous (a non-member). 665N/A // Caller is responsible for figuring out in advance which case must be true. 0N/A // Support for reflection based on dynamic bytecode generation (JDK 1.4) 0N/A // Create a java.lang.reflect.Method object based on a method 0N/A // Create a java.lang.reflect.Constructor object based on a method 0N/A // Create a java.lang.reflect.Field object based on a field descriptor 0N/A // method resolution for invoke 0N/A // Method call (shared by invoke_method and invoke_constructor) 0N/A // Narrowing of basic types. Used to create correct jvalues for 0N/A // boolean, byte, char and short return return values from interpreter 0N/A // which are returned as ints. Throws IllegalArgumentException. 0N/A // Method invokation through java.lang.reflect.Method 0N/A // Method invokation through java.lang.reflect.Constructor 1879N/A#
endif // SHARE_VM_RUNTIME_REFLECTION_HPP