1) Added parameter 'parent' to XDebugVariable, so we can determine whether a variable...
[phpeclipse.git] / net.sourceforge.phpeclipse.xdebug.core / src / net / sourceforge / phpeclipse / xdebug / php / model / IXDebugBreakpoint.java
1 /*******************************************************************************
2  * Copyright (c) 2000, 2006 IBM Corporation and others.
3  * All rights reserved. This program and the accompanying materials
4  * are made available under the terms of the Eclipse Public License v1.0
5  * which accompanies this distribution, and is available at
6  * http://www.eclipse.org/legal/epl-v10.html
7  *
8  * Contributors:
9  *     IBM Corporation - initial API and implementation
10  *******************************************************************************/
11 package net.sourceforge.phpeclipse.xdebug.php.model;
12
13
14 import org.eclipse.core.runtime.CoreException;
15 import org.eclipse.debug.core.model.IBreakpoint;
16
17 /**
18  * A breakpoint specific to the Java debug model. A Java breakpoint
19  * supports:
20  * <ul>
21  * <li>a hit count</li>
22  * <li>a suspend policy that determines if the entire VM or
23  *   a single thread is suspended when hit</li>
24  * <li>a thread filter to restrict a breakpoint to a specific
25  *  thread within a VM</li>
26  * <li>an installed property that indicates a breakpoint was successfully
27  *  installed in a VM</li>
28  * </ul>
29  * <p>
30  * Clients are not intended to implement this interface
31  * </p>
32  * @since 2.0
33  */
34 public interface IXDebugBreakpoint extends IBreakpoint {
35         
36         /**
37          * Returns whether this breakpoint is installed in at least
38          * one debug target.
39          * 
40          * @return whether this breakpoint is installed
41          * @exception CoreException if unable to access the property 
42          *      on this breakpoint's underlying marker
43          */
44         public boolean isInstalled() throws CoreException;
45         /**
46          * Returns the fully qualified name of the type this breakpoint
47          * is located in, or <code>null</code> if this breakpoint
48          * is not located in a specific type - for example, a pattern breakpoint.
49          * 
50          * @return the fully qualified name of the type this breakpoint
51          *  is located in, or <code>null</code>
52          * @exception CoreException if unable to access the property
53          *      from this breakpoint's underlying marker
54          */
55         public String getTypeName() throws CoreException;
56         /**
57          * Returns this breakpoint's hit count or, -1 if this
58          * breakpoint does not have a hit count.
59          * 
60          * @return this breakpoint's hit count, or -1
61          * @exception CoreException if unable to access the property
62          *  from this breakpoint's underlying marker
63          */
64         public int getHitCount() throws CoreException;
65         /**
66          * Sets the hit count attribute of this breakpoint.
67          * If this breakpoint is currently disabled and the hit count
68          * is set greater than -1, this breakpoint is automatically enabled.
69          * 
70          * @param count the new hit count
71          * @exception CoreException if unable to set the property
72          *      on this breakpoint's underlying marker
73          */
74         public void setHitCount(int count) throws CoreException;        
75         
76         /**
77          * Adds the given object to the list of objects in which this
78          * breakpoint is restricted to suspend execution. Has no effect
79          * if the object has already been added. Note that clients should
80          * first ensure that a breakpoint supports instance filters.
81          * <p>
82          * Note: This implementation will add more than one filter. However, if there is
83          * more than one instance filter for a debug target, the breakpoint will never be hit
84          * in that target, as the current context cannot be two different instances at the
85          * same time.
86          * </p>
87          * 
88          * @param object instance filter to add
89          * @exception CoreException if unable to add the given instance filter
90          * @since 2.1
91          */
92         //public void addInstanceFilter(/*IJava*/Object object) throws CoreException;
93         
94         /**
95          * Removes the given object from the list of objects in which this
96          * breakpoint is restricted to suspend execution. Has no effect if the
97          * object has not yet been added as an instance filter.
98          * 
99          * @param object instance filter to remove
100          * @exception CoreException if unable to remove the given instance filter
101          * @since 2.1
102          */
103         //public void removeInstanceFilter(/*IJava*/Object object) throws CoreException;
104         
105         /**
106          * Returns whether this breakpoints supports instance filters.
107          * 
108          * @return whether this breakpoints supports instance filters
109          * @since 3.0
110          */
111         //public boolean supportsInstanceFilters();
112         
113         /**
114          * Returns the current set of active instance filters.
115          * 
116          * @return the current set of active instance filters.
117          * @exception CoreException if unable to retrieve the list
118          * @since 2.1
119          */     
120         //public IJavaObject[] getInstanceFilters() throws CoreException;
121 }