From f8a96bdb648f598ce86dbf3bc5d4cd287f59531a Mon Sep 17 00:00:00 2001 From: Simon Urli Date: Tue, 26 Jun 2018 14:14:09 +0200 Subject: [PATCH] refactor: slightly change the import API (#2110) --- src/main/java/spoon/reflect/cu/CompilationUnit.java | 13 +++++++++---- .../java/spoon/reflect/visitor/ImportScanner.java | 9 ++++++--- .../spoon/reflect/visitor/ImportScannerImpl.java | 7 +++---- .../support/reflect/cu/CompilationUnitImpl.java | 8 ++++---- 4 files changed, 22 insertions(+), 15 deletions(-) diff --git a/src/main/java/spoon/reflect/cu/CompilationUnit.java b/src/main/java/spoon/reflect/cu/CompilationUnit.java index eb85768ec70..a726e1c1185 100644 --- a/src/main/java/spoon/reflect/cu/CompilationUnit.java +++ b/src/main/java/spoon/reflect/cu/CompilationUnit.java @@ -21,11 +21,12 @@ import spoon.reflect.declaration.CtPackage; import spoon.reflect.declaration.CtType; import spoon.reflect.declaration.CtImport; +import spoon.support.Experimental; import java.io.File; import java.io.Serializable; -import java.util.Collection; import java.util.List; +import java.util.Set; /** * Defines a compilation unit. In Java, a compilation unit can contain only one @@ -139,15 +140,19 @@ enum UNIT_TYPE { int getTabCount(int index); /** - * Get the imports computed for this CU + * Get the imports computed for this CU. + * WARNING: This method is tagged as experimental, as its signature and/or usage might change in future release. * @return All the imports from the original source code */ - Collection getImports(); + @Experimental + Set getImports(); /** * Set the imports of this CU + * WARNING: This method is tagged as experimental, as its signature and/or usage might change in future release. * @param imports All the imports of the original source code */ - void setImports(Collection imports); + @Experimental + void setImports(Set imports); } diff --git a/src/main/java/spoon/reflect/visitor/ImportScanner.java b/src/main/java/spoon/reflect/visitor/ImportScanner.java index adf4e01e240..5ed2f8d8d8e 100644 --- a/src/main/java/spoon/reflect/visitor/ImportScanner.java +++ b/src/main/java/spoon/reflect/visitor/ImportScanner.java @@ -19,12 +19,15 @@ import spoon.reflect.declaration.CtElement; import spoon.reflect.declaration.CtImport; import spoon.reflect.reference.CtReference; +import spoon.support.Experimental; -import java.util.Collection; +import java.util.Set; /** * Used to compute the imports required to write readable code with no fully qualified names. + * The import scanner API might still change in future release, that's why it is marked as experimental. */ +@Experimental public interface ImportScanner { /** @@ -37,7 +40,7 @@ public interface ImportScanner { * * @return the list of computed imports or an empty collection if not imports has been computed. */ - Collection getAllImports(); + Set getAllImports(); /** * Checks if the type is already imported. @@ -47,5 +50,5 @@ public interface ImportScanner { /** * Specify the original imports to use before computing new imports. */ - void initWithImports(Collection importCollection); + void initWithImports(Set importCollection); } diff --git a/src/main/java/spoon/reflect/visitor/ImportScannerImpl.java b/src/main/java/spoon/reflect/visitor/ImportScannerImpl.java index d312eedc8d9..41dc1487f1b 100644 --- a/src/main/java/spoon/reflect/visitor/ImportScannerImpl.java +++ b/src/main/java/spoon/reflect/visitor/ImportScannerImpl.java @@ -47,7 +47,6 @@ import spoon.support.SpoonClassNotFoundException; import java.lang.annotation.Annotation; -import java.util.ArrayList; import java.util.Arrays; import java.util.Collection; import java.util.Collections; @@ -235,8 +234,8 @@ public void visitCtInvocation(CtInvocation invocation) { } @Override - public Collection getAllImports() { - Collection listallImports = new ArrayList<>(); + public Set getAllImports() { + Set listallImports = new HashSet<>(); for (Map.Entry entry : this.usedImport.entrySet()) { if (entry.getValue()) { @@ -287,7 +286,7 @@ public boolean isImported(CtReference ref) { } @Override - public void initWithImports(Collection importCollection) { + public void initWithImports(Set importCollection) { for (CtImport ctImport : importCollection) { this.usedImport.put(ctImport, Boolean.FALSE); } diff --git a/src/main/java/spoon/support/reflect/cu/CompilationUnitImpl.java b/src/main/java/spoon/support/reflect/cu/CompilationUnitImpl.java index e7712148ffd..b55d1e05d85 100644 --- a/src/main/java/spoon/support/reflect/cu/CompilationUnitImpl.java +++ b/src/main/java/spoon/support/reflect/cu/CompilationUnitImpl.java @@ -32,10 +32,10 @@ import java.io.FileInputStream; import java.nio.file.Paths; import java.util.ArrayList; -import java.util.Collection; import java.util.Collections; import java.util.HashSet; import java.util.List; +import java.util.Set; import static spoon.reflect.ModelElementContainerDefaultCapacities.COMPILATION_UNIT_DECLARED_TYPES_CONTAINER_DEFAULT_CAPACITY; @@ -48,7 +48,7 @@ public class CompilationUnitImpl implements CompilationUnit, FactoryAccessor { CtPackage ctPackage; - Collection imports = new HashSet<>(); + Set imports = new HashSet<>(); CtModule ctModule; @@ -245,12 +245,12 @@ public int getTabCount(int index) { } @Override - public Collection getImports() { + public Set getImports() { return this.imports; } @Override - public void setImports(Collection imports) { + public void setImports(Set imports) { this.imports = imports; }