< prev index next >

src/jdk.jdi/share/classes/com/sun/jdi/InterfaceType.java

Print this page


   1 /*
   2  * Copyright (c) 1998, 2013, Oracle and/or its affiliates. All rights reserved.
   3  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
   4  *
   5  * This code is free software; you can redistribute it and/or modify it
   6  * under the terms of the GNU General Public License version 2 only, as
   7  * published by the Free Software Foundation.  Oracle designates this
   8  * particular file as subject to the "Classpath" exception as provided
   9  * by Oracle in the LICENSE file that accompanied this code.
  10  *
  11  * This code is distributed in the hope that it will be useful, but WITHOUT
  12  * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
  13  * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
  14  * version 2 for more details (a copy is included in the LICENSE file that
  15  * accompanied this code).
  16  *
  17  * You should have received a copy of the GNU General Public License version
  18  * 2 along with this work; if not, write to the Free Software Foundation,
  19  * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
  20  *
  21  * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
  22  * or visit www.oracle.com if you need additional information or have any


 151      * Only the specified thread will be resumed (as described for all
 152      * threads above). Upon completion of a single threaded invoke, the invoking thread
 153      * will be suspended once again. Note that any threads started during
 154      * the single threaded invocation will not be suspended when the
 155      * invocation completes.
 156      * <p>
 157      * If the target VM is disconnected during the invoke (for example, through
 158      * {@link VirtualMachine#dispose}) the method invocation continues.
 159      *
 160      * @param thread the thread in which to invoke.
 161      * @param method the {@link Method} to invoke.
 162      * @param arguments the list of {@link Value} arguments bound to the
 163      * invoked method. Values from the list are assigned to arguments
 164      * in the order they appear in the method signature.
 165      * @param options the integer bit flag options.
 166      * @return a {@link Value} mirror of the invoked method's return value.
 167      * @throws java.lang.IllegalArgumentException if the method is not
 168      * a member of this interface, if the size of the argument list
 169      * does not match the number of declared arguments for the method, or
 170      * if the method is not static or is a static initializer.
 171      * @throws {@link InvalidTypeException} if any argument in the
 172      * argument list is not assignable to the corresponding method argument
 173      * type.
 174      * @throws ClassNotLoadedException if any argument type has not yet been loaded
 175      * through the appropriate class loader.
 176      * @throws IncompatibleThreadStateException if the specified thread has not
 177      * been suspended by an event.
 178      * @throws InvocationException if the method invocation resulted in
 179      * an exception in the target VM.
 180      * @throws InvalidTypeException If the arguments do not meet this requirement --
 181      *         Object arguments must be assignment compatible with the argument
 182      *         type.  This implies that the argument type must be
 183      *         loaded through the enclosing class' class loader.
 184      *         Primitive arguments must be either assignment compatible with the
 185      *         argument type or must be convertible to the argument type without loss
 186      *         of information. See JLS section 5.2 for more information on assignment
 187      *         compatibility.
 188      * @throws VMCannotBeModifiedException if the VirtualMachine is read-only - see {@link VirtualMachine#canBeModified()}.
 189      *
 190      * @since 1.8
 191      */
 192     default Value invokeMethod(ThreadReference thread, Method method,
 193                        List<? extends Value> arguments, int options)
   1 /*
   2  * Copyright (c) 1998, 2017, Oracle and/or its affiliates. All rights reserved.
   3  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
   4  *
   5  * This code is free software; you can redistribute it and/or modify it
   6  * under the terms of the GNU General Public License version 2 only, as
   7  * published by the Free Software Foundation.  Oracle designates this
   8  * particular file as subject to the "Classpath" exception as provided
   9  * by Oracle in the LICENSE file that accompanied this code.
  10  *
  11  * This code is distributed in the hope that it will be useful, but WITHOUT
  12  * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
  13  * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
  14  * version 2 for more details (a copy is included in the LICENSE file that
  15  * accompanied this code).
  16  *
  17  * You should have received a copy of the GNU General Public License version
  18  * 2 along with this work; if not, write to the Free Software Foundation,
  19  * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
  20  *
  21  * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
  22  * or visit www.oracle.com if you need additional information or have any


 151      * Only the specified thread will be resumed (as described for all
 152      * threads above). Upon completion of a single threaded invoke, the invoking thread
 153      * will be suspended once again. Note that any threads started during
 154      * the single threaded invocation will not be suspended when the
 155      * invocation completes.
 156      * <p>
 157      * If the target VM is disconnected during the invoke (for example, through
 158      * {@link VirtualMachine#dispose}) the method invocation continues.
 159      *
 160      * @param thread the thread in which to invoke.
 161      * @param method the {@link Method} to invoke.
 162      * @param arguments the list of {@link Value} arguments bound to the
 163      * invoked method. Values from the list are assigned to arguments
 164      * in the order they appear in the method signature.
 165      * @param options the integer bit flag options.
 166      * @return a {@link Value} mirror of the invoked method's return value.
 167      * @throws java.lang.IllegalArgumentException if the method is not
 168      * a member of this interface, if the size of the argument list
 169      * does not match the number of declared arguments for the method, or
 170      * if the method is not static or is a static initializer.



 171      * @throws ClassNotLoadedException if any argument type has not yet been loaded
 172      * through the appropriate class loader.
 173      * @throws IncompatibleThreadStateException if the specified thread has not
 174      * been suspended by an event.
 175      * @throws InvocationException if the method invocation resulted in
 176      * an exception in the target VM.
 177      * @throws InvalidTypeException If the arguments do not meet this requirement --
 178      *         Object arguments must be assignment compatible with the argument
 179      *         type.  This implies that the argument type must be
 180      *         loaded through the enclosing class' class loader.
 181      *         Primitive arguments must be either assignment compatible with the
 182      *         argument type or must be convertible to the argument type without loss
 183      *         of information. See JLS section 5.2 for more information on assignment
 184      *         compatibility.
 185      * @throws VMCannotBeModifiedException if the VirtualMachine is read-only - see {@link VirtualMachine#canBeModified()}.
 186      *
 187      * @since 1.8
 188      */
 189     default Value invokeMethod(ThreadReference thread, Method method,
 190                        List<? extends Value> arguments, int options)
< prev index next >