org.eclipse.jdt.internal.compiler.AbstractAnnotationProcessorManager Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of ecj Show documentation
Show all versions of ecj Show documentation
Eclipse Compiler for Java(TM)
/*******************************************************************************
* 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);
}