/******************************************************************************* * Copyright (c) 2000, 2009 IBM Corporation and others. * All rights reserved. This program and the accompanying materials * are made available under the terms of the Eclipse Public License v1.0 * which accompanies this distribution, and is available at * http://www.eclipse.org/legal/epl-v10.html * * Contributors: * IBM Corporation - initial API and implementation *******************************************************************************/ package org.eclipse.jdt.internal.codeassist; import org.eclipse.jdt.core.compiler.CategorizedProblem; /** * A selection requestor accepts results from the selection engine. */ public interface ISelectionRequestor { /** * Code assist notification of a enum selection. * * @param packageName char[] Declaring package name of the type. * * @param annotationName char[] Name of the type. * * @param isDeclaration boolean Answer if the selected type is a declaration * * @param genericTypeSignature genric type signature of the selected type if it is a * parameterized type * * @param start Start of the selection * * @param end End of the selection * * NOTE - All package and type names are presented in their readable form: Package * names are in the form "a.b.c". Nested type names are in the qualified form "A.M". * The default package is represented by an empty array. */ void acceptType( char[] packageName, char[] annotationName, int modifiers, boolean isDeclaration, char[] genericTypeSignature, int start, int end); /** * Code assist notification of a compilation error detected during selection. * * @param error CategorizedProblem Only problems which are categorized as errors are notified to * the requestor, warnings are silently ignored. In case an error got signaled, no * other completions might be available, therefore the problem message should be * presented to the user. The source positions of the problem are related to the * source where it was detected (might be in another compilation unit, if it was * indirectly requested during the code assist process). Note: the problem knows its * originating file name. */ void acceptError(CategorizedProblem error); /** * Code assist notification of a field selection. * * @param declaringTypePackageName char[] Name of the package in which the type that contains * this field is declared. * * @param declaringTypeName char[] Name of the type declaring this new field. * * @param name char[] Name of the field. * * @param isDeclaration boolean Answer if the selected field is a declaration * * @param uniqueKey unique key of this field * * @param start Start of the selection * * @param end End of the selection * * NOTE - All package and type names are presented in their readable form: Package * names are in the form "a.b.c". Nested type names are in the qualified form "A.M". * The default package is represented by an empty array. */ void acceptField( char[] declaringTypePackageName, char[] declaringTypeName, char[] name, boolean isDeclaration, char[] uniqueKey, int start, int end); /** * Code assist notification of a method selection. * * @param declaringTypePackageName char[] Name of the package in which the type that contains * this new method is declared. * * @param declaringTypeName char[] Name of the type declaring this new method. * * @param enclosingDeclaringTypeSignature String Type signature of the declaring type of the * declaring type or <code>null</code> if declaring type is a top level type. * * @param selector char[] Name of the new method. * * @param parameterPackageNames char[][] Names of the packages in which the parameter types are * declared. Should contain as many elements as parameterTypeNames. * * @param parameterTypeNames char[][] Names of the parameters types. Should contain as many * elements as parameterPackageNames. * * @param parameterSignatures String[] Signature of the parameters types. Should contain as many * elements as parameterPackageNames. * * @param isConstructor boolean Answer if the method is a constructor. * * @param isDeclaration boolean Answer if the selected method is a declaration * * @param uniqueKey unique key of the method * * @param start Start of the selection * * @param end End of the selection * * NOTE - All package and type names are presented in their readable form: Package * names are in the form "a.b.c". Base types are in the form "int" or "boolean". * Array types are in the qualified form "M[]" or "int[]". Nested type names are in * the qualified form "A.M". The default package is represented by an empty array. */ // parameters 'isDeclaration', 'start' and 'end' are use to distinguish duplicate methods declarations void acceptMethod( char[] declaringTypePackageName, char[] declaringTypeName, String enclosingDeclaringTypeSignature, char[] selector, char[][] parameterPackageNames, char[][] parameterTypeNames, String[] parameterSignatures, char[][] typeParameterNames, char[][][] typeParameterBoundNames, boolean isConstructor, boolean isDeclaration, char[] uniqueKey, int start, int end); /** * Code assist notification of a package selection. * * @param packageName char[] The package name. * * NOTE - All package names are presented in their readable form: Package names are * in the form "a.b.c". The default package is represented by an empty array. */ void acceptPackage(char[] packageName); /** * Code assist notification of a type parameter selection. * * @param declaringTypePackageName char[] Name of the package in which the type that contains * this new method is declared. * * @param declaringTypeName char[] Name of the type declaring this new method. * * @param typeParameterName char[] Name of the type parameter. * * @param isDeclaration boolean Answer if the selected type parameter is a declaration * * @param start Start of the selection * * @param end End of the selection * * NOTE - All package and type names are presented in their readable form: Package * names are in the form "a.b.c". Nested type names are in the qualified form "A.M". * The default package is represented by an empty array. */ void acceptTypeParameter( char[] declaringTypePackageName, char[] declaringTypeName, char[] typeParameterName, boolean isDeclaration, int start, int end); /** * Code assist notification of a type parameter selection. * * @param declaringTypePackageName char[] Name of the package in which the type that contains * this new method is declared. * * @param declaringTypeName char[] Name of the type declaring this new method. * * @param selector char[] Name of the declaring method. * * @param selectorStart int Start of the selector. * * @param selectorEnd int End of the selector. * * @param typeParameterName char[] Name of the type parameter. * * @param isDeclaration boolean Answer if the selected type parameter is a declaration * * @param start Start of the selection * * @param end End of the selection * * NOTE - All package and type names are presented in their readable form: Package * names are in the form "a.b.c". Nested type names are in the qualified form "A.M". * The default package is represented by an empty array. */ void acceptMethodTypeParameter( char[] declaringTypePackageName, char[] declaringTypeName, char[] selector, int selectorStart, int selectorEnd, char[] typeParameterName, boolean isDeclaration, int start, int end); }