Java tutorial
/******************************************************************************* * Copyright (c) 2006, 2018 IBM Corporation and others. * * This program and the accompanying materials * are made available under the terms of the Eclipse Public License 2.0 * which accompanies this distribution, and is available at * https://www.eclipse.org/legal/epl-2.0/ * * SPDX-License-Identifier: EPL-2.0 * * Contributors: * IBM Corporation - initial API and implementation * BEA - Patch for bug 172743 *******************************************************************************/ package org.eclipse.jdt.internal.compiler; import java.io.PrintWriter; import org.eclipse.jdt.internal.compiler.ast.CompilationUnitDeclaration; import org.eclipse.jdt.internal.compiler.env.ICompilationUnit; import org.eclipse.jdt.internal.compiler.lookup.ReferenceBinding; public abstract class AbstractAnnotationProcessorManager { /** * Configure the receiver using the given batch compiler and the given options. * The parameter batchCompiler is expected to be an instance of the batch compiler. This method is * only used for the batch mode. For the IDE mode, please see {@link #configureFromPlatform(Compiler, Object, Object, boolean)}. * * @param batchCompiler the given batch compiler object * @param options the given options */ public abstract void configure(Object batchCompiler, String[] options); /** * Configure the receiver using the given compiler, the given compilationUnitLocator and * the given java project. * * @param compiler the given compiler * @param compilationUnitLocator the given compilation unit locator * @param javaProject the given java project * @param isTestCode */ public abstract void configureFromPlatform(Compiler compiler, Object compilationUnitLocator, Object javaProject, boolean isTestCode); /** * Set the print writer for the standard output. * * @param out the given print writer for output */ public abstract void setOut(PrintWriter out); /** * Set the print writer for the standard error. * * @param err the given print writer for error */ public abstract void setErr(PrintWriter err); /** * Return the new units created in the last round. * * @return the new units created in the last round */ public abstract ICompilationUnit[] getNewUnits(); /** * Return the new binary bindings created in the last round. * * @return the new binary bindings created in the last round */ public abstract ReferenceBinding[] getNewClassFiles(); /** * Returns the deleted units. * @return the deleted units */ public abstract ICompilationUnit[] getDeletedUnits(); /** * Reinitialize the receiver */ public abstract void reset(); /** * Final cleanup after all rounds have completed. */ protected void cleanUp() { // default: do nothing, because reset() already did the common work } /** * Run a new annotation processing round on the given values. * * @param units the given source type * @param referenceBindings the given binary types * @param isLastRound flag to notify the last round */ public abstract void processAnnotations(CompilationUnitDeclaration[] units, ReferenceBinding[] referenceBindings, boolean isLastRound); /** * Set the processors for annotation processing. * * @param processors the given processors */ public abstract void setProcessors(Object[] processors); }