import net.sourceforge.phpdt.core.compiler.IProblem;
/*
- * Part of the source element parser responsible for building the output.
- * It gets notified of structural information as they are detected, relying
- * on the requestor to assemble them together, based on the notifications it got.
- *
- * The structural investigation includes:
- * - package statement
- * - import statements
- * - top-level types: package member, member types (member types of member types...)
- * - fields
- * - methods
- *
+ * Part of the source element parser responsible for building the output. It
+ * gets notified of structural information as they are detected, relying on the
+ * requestor to assemble them together, based on the notifications it got.
+ *
+ * The structural investigation includes: - package statement - import
+ * statements - top-level types: package member, member types (member types of
+ * member types...) - fields - methods
+ *
* If reference information is requested, then all source constructs are
* investigated and type, field & method references are provided as well.
- *
+ *
* Any (parsing) problem encountered is also provided.
- *
+ *
* All positions are relative to the exact source fed to the parser.
- *
- * Elements which are complex are notified in two steps:
- * - enter<Element> : once the element header has been identified
- * - exit<Element> : once the element has been fully consumed
- *
- * other simpler elements (package, import) are read all at once:
- * - accept<Element>
+ *
+ * Elements which are complex are notified in two steps: - enter<Element> :
+ * once the element header has been identified - exit<Element> : once the
+ * element has been fully consumed
+ *
+ * other simpler elements (package, import) are read all at once: - accept<Element>
*/
public interface ISourceElementRequestor {
- void acceptConstructorReference(char[] typeName, int argCount, int sourcePosition);
- //void acceptFieldReference(char[] fieldName, int sourcePosition);
- /**
- * @param declarationStart This is the position of the first character of the
- * import keyword.
- * @param declarationEnd This is the position of the ';' ending the import statement
- * or the end of the comment following the import.
- * @param name This is the name of the import like specified in the source including the dots. The '.*'
- * is never included in the name.
- * @param onDemand set to true if the import is an import on demand (e.g. import java.io.*). False otherwise.
- */
- void acceptImport(
- int declarationStart,
- int declarationEnd,
- char[] name,
- boolean onDemand);
- /*
- * Table of line separator position. This table is passed once at the end
- * of the parse action, so as to allow computation of normalized ranges.
- *
- * A line separator might corresponds to several characters in the source,
- *
- */
- void acceptLineSeparatorPositions(int[] positions);
- void acceptMethodReference(char[] methodName, int argCount, int sourcePosition);
- //void acceptPackage(
- // int declarationStart,
- // int declarationEnd,
- // char[] name);
- void acceptProblem(IProblem problem);
- void acceptTypeReference(char[][] typeName, int sourceStart, int sourceEnd);
- void acceptTypeReference(char[] typeName, int sourcePosition);
- void acceptUnknownReference(char[][] name, int sourceStart, int sourceEnd);
- void acceptUnknownReference(char[] name, int sourcePosition);
- void enterClass(
- int declarationStart,
- int modifiers,
- char[] name,
- int nameSourceStart,
- int nameSourceEnd,
- char[] superclass,
- char[][] superinterfaces);
- void enterCompilationUnit();
- void enterConstructor(
- int declarationStart,
- int modifiers,
- char[] name,
- int nameSourceStart,
- int nameSourceEnd,
- char[][] parameterTypes,
- char[][] parameterNames,
- char[][] exceptionTypes);
- void enterField(int declarationStart, int modifiers, char[] type, char[] name, int nameSourceStart, int nameSourceEnd);
- //void enterInitializer(
- // int declarationStart,
- // int modifiers);
- void enterInterface(
- int declarationStart,
- int modifiers,
- char[] name,
- int nameSourceStart,
- int nameSourceEnd,
- char[][] superinterfaces);
- void enterMethod(
- int declarationStart,
- int modifiers,
- char[] returnType,
- char[] name,
- int nameSourceStart,
- int nameSourceEnd,
- char[][] parameterTypes,
- char[][] parameterNames,
- char[][] exceptionTypes);
- void exitClass(int declarationEnd);
- void exitCompilationUnit(int declarationEnd);
- void exitConstructor(int declarationEnd);
- /*
- * initializationStart denotes the source start of the expression used for initializing
- * the field if any (-1 if no initialization).
- */
- void exitField(int initializationStart, int declarationEnd, int declarationSourceEnd);
- void exitInitializer(int declarationEnd);
- void exitInterface(int declarationEnd);
- void exitMethod(int declarationEnd);
+ void acceptConstructorReference(char[] typeName, int argCount,
+ int sourcePosition);
+
+ // void acceptFieldReference(char[] fieldName, int sourcePosition);
+ /**
+ * @param declarationStart
+ * This is the position of the first character of the import
+ * keyword.
+ * @param declarationEnd
+ * This is the position of the ';' ending the import statement or
+ * the end of the comment following the import.
+ * @param name
+ * This is the name of the import like specified in the source
+ * including the dots. The '.*' is never included in the name.
+ * @param onDemand
+ * set to true if the import is an import on demand (e.g. import
+ * java.io.*). False otherwise.
+ */
+ void acceptImport(int declarationStart, int declarationEnd, char[] name,
+ boolean onDemand);
+
+ /*
+ * Table of line separator position. This table is passed once at the end of
+ * the parse action, so as to allow computation of normalized ranges.
+ *
+ * A line separator might corresponds to several characters in the source,
+ *
+ */
+ void acceptLineSeparatorPositions(int[] positions);
+
+ void acceptMethodReference(char[] methodName, int argCount,
+ int sourcePosition);
+
+ // void acceptPackage(
+ // int declarationStart,
+ // int declarationEnd,
+ // char[] name);
+ void acceptProblem(IProblem problem);
+
+ void acceptTypeReference(char[][] typeName, int sourceStart, int sourceEnd);
+
+ void acceptTypeReference(char[] typeName, int sourcePosition);
+
+ void acceptUnknownReference(char[][] name, int sourceStart, int sourceEnd);
+
+ void acceptUnknownReference(char[] name, int sourcePosition);
+
+ void enterClass(int declarationStart, int modifiers, char[] name,
+ int nameSourceStart, int nameSourceEnd, char[] superclass,
+ char[][] superinterfaces);
+
+ void enterCompilationUnit();
+
+ void enterConstructor(int declarationStart, int modifiers, char[] name,
+ int nameSourceStart, int nameSourceEnd, char[][] parameterTypes,
+ char[][] parameterNames, char[][] exceptionTypes);
+
+ void enterField(int declarationStart, int modifiers, char[] type,
+ char[] name, int nameSourceStart, int nameSourceEnd);
+
+ // void enterInitializer(
+ // int declarationStart,
+ // int modifiers);
+ void enterInterface(int declarationStart, int modifiers, char[] name,
+ int nameSourceStart, int nameSourceEnd, char[][] superinterfaces);
+
+ void enterMethod(int declarationStart, int modifiers, char[] returnType,
+ char[] name, int nameSourceStart, int nameSourceEnd,
+ char[][] parameterTypes, char[][] parameterNames,
+ char[][] exceptionTypes);
+
+ void exitClass(int declarationEnd);
+
+ void exitCompilationUnit(int declarationEnd);
+
+ void exitConstructor(int declarationEnd);
+
+ /*
+ * initializationStart denotes the source start of the expression used for
+ * initializing the field if any (-1 if no initialization).
+ */
+ void exitField(int initializationStart, int declarationEnd,
+ int declarationSourceEnd);
+
+ void exitInitializer(int declarationEnd);
+
+ void exitInterface(int declarationEnd);
+
+ void exitMethod(int declarationEnd);
}