public class ImportCleaner extends AbstractProcessor<CtElement>
CtElement.isImplicit()
.
Can be configured to add or remove imports using setCanAddImports(boolean)
and setCanRemoveImports(boolean)
.
This does not force some references to be implicit, and doesn't fix the wrong implicit which causes conflicts: this fixing done by ImportConflictDetector
Modifier and Type | Class and Description |
---|---|
class |
ImportCleaner.Context
a set of imports for a given compilation unit
|
class |
ImportCleaner.ImportCleanerScanner
A scanner that initializes context for a compilation unit.
|
Modifier and Type | Field and Description |
---|---|
protected static Set<CtRole> |
IGNORED_ROLES_WHEN_IMPLICIT |
protected EarlyTerminatingScanner |
scanner |
Constructor and Description |
---|
ImportCleaner() |
Modifier and Type | Method and Description |
---|---|
protected ImportCleaner.ImportCleanerScanner |
createScanner()
creates the scanner that will be used to visit the model
|
protected CtScannerListener |
createScannerListener() |
Comparator<CtImport> |
getImportComparator() |
protected static <T extends CtElement> |
getParentIfType(CtElement element,
Class<T> type) |
protected ImportCleaner.Context |
getScannerContextInformation()
extract the required information from the scanner to take a decision
|
protected void |
handleTargetedExpression(CtTargetedExpression<?,?> targetedExpression,
ImportCleaner.Context context)
what do we do a target expression (print target or not) ?
|
protected void |
handleTypeReference(CtTypeReference<?> reference,
ImportCleaner.Context context,
CtRole role)
what do we do a type reference?
|
boolean |
isCanAddImports() |
boolean |
isCanRemoveImports() |
protected void |
onEnter(U context,
CtRole role,
CtElement element) |
void |
process(CtElement el)
A callback method upcalled by the meta-model scanner to perform a
dedicated job on the currently scanned element.
|
protected static void |
process(CtScanner scanner,
CtCompilationUnit cu) |
ImportCleaner |
setCanAddImports(boolean canAddImports) |
ImportCleaner |
setCanRemoveImports(boolean canRemoveImports) |
ImportCleaner |
setImportComparator(Comparator<CtImport> importComparator) |
addProcessedElementType, clearProcessedElementType, getEnvironment, getFactory, getProcessedElementTypes, getTraversalStrategy, init, initProperties, interrupt, isToBeProcessed, loadProperties, process, processingDone, removeProcessedElementType, setFactory
protected EarlyTerminatingScanner scanner
protected ImportCleaner.ImportCleanerScanner createScanner()
protected ImportCleaner.Context getScannerContextInformation()
protected void handleTargetedExpression(CtTargetedExpression<?,?> targetedExpression, ImportCleaner.Context context)
protected void handleTypeReference(CtTypeReference<?> reference, ImportCleaner.Context context, CtRole role)
public boolean isCanAddImports()
public ImportCleaner setCanAddImports(boolean canAddImports)
canAddImports
- true if this processor is allowed to add new importspublic boolean isCanRemoveImports()
public ImportCleaner setCanRemoveImports(boolean canRemoveImports)
canRemoveImports
- true if this processor is allowed to remove importspublic Comparator<CtImport> getImportComparator()
public ImportCleaner setImportComparator(Comparator<CtImport> importComparator)
public void process(CtElement el)
Processor
Processor.getProcessedElementTypes()
), the traversal strategy (
Processor.getTraversalStrategy()
), and the used processing manager (
Environment.getManager()
. Also, this method is upcalled only if
the method Processor.isToBeProcessed(CtElement)
returns true for a given
scanned element. In order to manually scan the meta-model, one can define
the Processor.process()
method instead.el
- the element that is currently being scannedprotected static void process(CtScanner scanner, CtCompilationUnit cu)
protected CtScannerListener createScannerListener()
Copyright © 2007–2019 Inria. All rights reserved.