0N/A/*
2362N/A * Copyright (c) 1998, 2002, Oracle and/or its affiliates. All rights reserved.
0N/A * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
0N/A *
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
2362N/A * published by the Free Software Foundation. Oracle designates this
0N/A * particular file as subject to the "Classpath" exception as provided
2362N/A * by Oracle in the LICENSE file that accompanied this code.
0N/A *
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 *
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.
0N/A *
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
2362N/A * questions.
0N/A */
0N/A
0N/Apackage com.sun.jdi.request;
0N/A
0N/Aimport com.sun.jdi.*;
0N/A
0N/A/**
0N/A * Request for notification when a method is invoked in the target VM.
0N/A * When an enabled MethodEntryRequest is satisfied, an
0N/A * {@link com.sun.jdi.event.EventSet event set} containing a
0N/A * {@link com.sun.jdi.event.MethodEntryEvent MethodEntryEvent}
0N/A * will be placed on the
0N/A * {@link com.sun.jdi.event.EventQueue EventQueue}.
0N/A * The collection of existing MethodEntryRequests is
0N/A * managed by the {@link EventRequestManager}
0N/A *
0N/A * @see com.sun.jdi.event.MethodEntryEvent
0N/A * @see com.sun.jdi.event.EventQueue
0N/A * @see EventRequestManager
0N/A *
0N/A * @author Robert Field
0N/A * @since 1.3
0N/A */
0N/Apublic interface MethodEntryRequest extends EventRequest {
0N/A
0N/A /**
0N/A * Restricts the events generated by this request to those in
0N/A * the given thread.
0N/A * @param thread the thread to filter on.
0N/A * @throws InvalidRequestStateException if this request is currently
0N/A * enabled or has been deleted.
0N/A * Filters may be added only to disabled requests.
0N/A */
0N/A void addThreadFilter(ThreadReference thread);
0N/A
0N/A /**
0N/A * Restricts the events generated by this request to those whose
0N/A * method is in the given reference type or any of its subtypes.
0N/A * An event will be generated for any location in a reference type
0N/A * that can be safely cast to the given reference type.
0N/A *
0N/A * @param refType the reference type to filter on.
0N/A * @throws InvalidRequestStateException if this request is currently
0N/A * enabled or has been deleted.
0N/A * Filters may be added only to disabled requests.
0N/A */
0N/A void addClassFilter(ReferenceType refType);
0N/A
0N/A /**
0N/A * Restricts the events generated by this request to those
0N/A * whose method is in a class whose name matches this restricted
0N/A * regular expression. Regular expressions are limited
0N/A * to exact matches and patterns that begin with '*' or end with '*';
0N/A * for example, "*.Foo" or "java.*".
0N/A *
0N/A * @param classPattern the pattern String to filter for.
0N/A * @throws InvalidRequestStateException if this request is currently
0N/A * enabled or has been deleted.
0N/A * Filters may be added only to disabled requests.
0N/A */
0N/A void addClassFilter(String classPattern);
0N/A
0N/A /**
0N/A * Restricts the events generated by this request to those
0N/A * whose method is in a class whose name does <b>not</b> match this restricted
0N/A * regular expression, e.g. "java.*" or "*.Foo".
0N/A * @param classPattern the pattern String to filter against.
0N/A * @throws InvalidRequestStateException if this request is currently
0N/A * enabled or has been deleted.
0N/A * Filters may be added only to disabled requests.
0N/A */
0N/A void addClassExclusionFilter(String classPattern);
0N/A
0N/A /**
0N/A * Restricts the events generated by this request to those in
0N/A * which the currently executing instance ("this") is the object
0N/A * specified.
0N/A * <P>
0N/A * Not all targets support this operation.
0N/A * Use {@link VirtualMachine#canUseInstanceFilters()}
0N/A * to determine if the operation is supported.
0N/A * @since 1.4
0N/A * @param instance the object which must be the current instance
0N/A * in order to pass this filter.
0N/A * @throws java.lang.UnsupportedOperationException if
0N/A * the target virtual machine does not support this
0N/A * operation.
0N/A * @throws InvalidRequestStateException if this request is currently
0N/A * enabled or has been deleted.
0N/A * Filters may be added only to disabled requests.
0N/A */
0N/A void addInstanceFilter(ObjectReference instance);
0N/A}