fix #774 infinite loop in net.sourceforge.phpeclipse.builder.IdentifierIndexManager...
[phpeclipse.git] / net.sourceforge.phpeclipse / src / net / sourceforge / phpeclipse / phpeditor / IJavaAnnotation.java
index 266d368..2e109ad 100644 (file)
@@ -12,81 +12,97 @@ package net.sourceforge.phpeclipse.phpeditor;
 
 import java.util.Iterator;
 
+import net.sourceforge.phpdt.core.ICompilationUnit;
+
 import org.eclipse.swt.graphics.Image;
 import org.eclipse.swt.widgets.Display;
 
 /**
- * Interface of annotations representing markers
- * and problems.
+ * Interface of annotations representing markers and problems.
  * 
  * @see org.eclipse.core.resources.IMarker
- * @see org.eclipse.jdt.core.compiler.IProblem
+ * @see net.sourceforge.phpdt.core.compiler.IProblem
  */
 public interface IJavaAnnotation {
-       
-       AnnotationType getAnnotationType();
-       
-       boolean isTemporary();
-       
-       String getMessage();
-       
-       String[] getArguments();
-       
-       int getId();
-       
-       
-       Image getImage(Display display);
-       
+
        /**
-        * Returns whether this annotation is relavant.
-        * <p>
-        * If the annotation is overlaid then it is not
-        * relevant. After all overlays have been removed
-        * the annotation might either become relevant again
-        * or stay irrelevant.
-        * </p>
-        * 
-        * @return <code>true</code> if relevant
-        * @see #hasOverlay()
+        * @see org.eclipse.jface.text.source.Annotation#getType()
+        */
+       String getType();
+
+       /**
+        * @see org.eclipse.jface.text.source.Annotation#isPersistent()
         */
-       boolean isRelevant();
-       
+       boolean isPersistent();
+
+       /**
+        * @see org.eclipse.jface.text.source.Annotation#isMarkedDeleted()
+        */
+       boolean isMarkedDeleted();
+
+       /**
+        * @see org.eclipse.jface.text.source.Annotation#getText()
+        */
+       String getText();
+
        /**
         * Returns whether this annotation is overlaid.
         * 
         * @return <code>true</code> if overlaid
         */
        boolean hasOverlay();
-       
+
        /**
-        * Returns an iterator for iterating over the
-        * annotation which are overlaid by this annotation.
+        * Returns the overlay of this annotation.
+        * 
+        * @return the annotation's overlay
+        * @since 3.0
+        */
+       IJavaAnnotation getOverlay();
+
+       /**
+        * Returns an iterator for iterating over the annotation which are overlaid
+        * by this annotation.
         * 
         * @return an iterator over the overlaid annotaions
         */
        Iterator getOverlaidIterator();
-       
+
        /**
-        * Adds the given annotation to the list of
-        * annotations which are overlaid by this annotations.
-        *  
-        * @param annotation    the problem annoation
+        * Adds the given annotation to the list of annotations which are overlaid
+        * by this annotations.
+        * 
+        * @param annotation
+        *            the problem annoation
         */
        void addOverlaid(IJavaAnnotation annotation);
-       
+
        /**
-        * Removes the given annotation from the list of
-        * annotations which are overlaid by this annotation.
-        *  
-        * @param annotation    the problem annoation
+        * Removes the given annotation from the list of annotations which are
+        * overlaid by this annotation.
+        * 
+        * @param annotation
+        *            the problem annoation
         */
        void removeOverlaid(IJavaAnnotation annotation);
-       
+
        /**
-        * Tells whether this annotation is a problem
-        * annotation.
+        * Tells whether this annotation is a problem annotation.
         * 
         * @return <code>true</code> if it is a problem annotation
         */
        boolean isProblem();
+
+       /**
+        * Returns the compilation unit corresponding to the document on which the
+        * annotation is set or <code>null</code> if no corresponding
+        * co0mpilationunit exists.
+        */
+       ICompilationUnit getCompilationUnit();
+
+       String[] getArguments();
+
+       int getId();
+
+       Image getImage(Display display);
 }