package org.eclipse.jdt.internal.compiler;
import java.util.HashMap;
import org.eclipse.jdt.core.compiler.CategorizedProblem;
import org.eclipse.jdt.internal.compiler.ast.AbstractMethodDeclaration;
import org.eclipse.jdt.internal.compiler.ast.Annotation;
import org.eclipse.jdt.internal.compiler.ast.Expression;
import org.eclipse.jdt.internal.compiler.ast.FieldDeclaration;
import org.eclipse.jdt.internal.compiler.ast.ImportReference;
import org.eclipse.jdt.internal.compiler.ast.ModuleDeclaration;
import org.eclipse.jdt.internal.compiler.ast.TypeDeclaration;
@SuppressWarnings("rawtypes")
public interface ISourceElementRequestor {
public static class ModuleInfo {
public int declarationStart;
public int modifiers;
public char[] name;
public int nameSourceStart;
public int nameSourceEnd;
public char[] moduleName;
public RequiresInfo[] requires;
public PackageExportInfo[] exports;
public ServicesInfo[] services;
public PackageExportInfo[] opens;
public char[][] usedServices;
public Annotation[] annotations;
public ModuleDeclaration node;
public char[][] categories;
}
public static class RequiresInfo {
public char[] moduleName;
public int modifiers;
}
public static class PackageExportInfo {
public char[] pkgName;
public char[][] targets;
}
public static class ServicesInfo {
public char[] serviceName;
public char[][] implNames;
}
public static class TypeInfo {
public boolean typeAnnotated;
public int declarationStart;
public int modifiers;
public char[] name;
public int nameSourceStart;
public int nameSourceEnd;
public char[] superclass;
public char[][] superinterfaces;
public TypeParameterInfo[] typeParameters;
public char[][] categories;
public boolean secondary;
public boolean anonymousMember;
public Annotation[] annotations;
public int ;
public TypeDeclaration node;
public HashMap childrenCategories = new HashMap();
}
public static class TypeParameterInfo {
public boolean typeAnnotated;
public int declarationStart;
public int declarationEnd;
public char[] name;
public int nameSourceStart;
public int nameSourceEnd;
public char[][] bounds;
}
public static class MethodInfo {
public boolean typeAnnotated;
public boolean isConstructor;
public boolean isAnnotation;
public int declarationStart;
public int modifiers;
public char[] returnType;
public char[] name;
public int nameSourceStart;
public int nameSourceEnd;
public char[][] parameterTypes;
public char[][] parameterNames;
public char[][] exceptionTypes;
public TypeParameterInfo[] typeParameters;
public char[][] categories;
public Annotation[] annotations;
public char[] declaringPackageName;
public int declaringTypeModifiers;
public int ;
public AbstractMethodDeclaration node;
public ParameterInfo[] parameterInfos;
public TypeDeclaration enclosingType;
}
public static class ParameterInfo {
public int modifiers;
public int declarationStart;
public int declarationEnd;
public int nameSourceStart;
public int nameSourceEnd;
public char[] name;
}
public static class FieldInfo {
public boolean typeAnnotated;
public int declarationStart;
public int modifiers;
public char[] type;
public char[] name;
public int nameSourceStart;
public int nameSourceEnd;
public char[][] categories;
public Annotation[] annotations;
public FieldDeclaration node;
}
void acceptAnnotationTypeReference(char[][] annotation, int sourceStart, int sourceEnd);
void acceptAnnotationTypeReference(char[] annotation, int sourcePosition);
void acceptConstructorReference(char[] typeName, int argCount, int sourcePosition);
void acceptFieldReference(char[] fieldName, int sourcePosition);
void acceptImport(int declarationStart, int declarationEnd, int nameStart, int nameEnd, char[][] tokens, boolean onDemand, int modifiers);
void acceptLineSeparatorPositions(int[] positions);
void acceptMethodReference(char[] methodName, int argCount, int sourcePosition);
void acceptPackage(ImportReference importReference);
void acceptProblem(CategorizedProblem 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 enterCompilationUnit();
void enterConstructor(MethodInfo methodInfo);
void enterField(FieldInfo fieldInfo);
void enterInitializer(int declarationStart, int modifiers);
void enterMethod(MethodInfo methodInfo);
void enterType(TypeInfo typeInfo);
void exitCompilationUnit(int declarationEnd);
void exitConstructor(int declarationEnd);
void exitField(int initializationStart, int declarationEnd, int declarationSourceEnd);
void exitInitializer(int declarationEnd);
void exitMethod(int declarationEnd, Expression defaultValue);
void exitType(int declarationEnd);
default void enterModule(ModuleInfo info) {
}
default void exitModule(int declarationEnd) {
}
}