Skip to content

Commit

Permalink
Merge remote-tracking branch 'github/pr/24'
Browse files Browse the repository at this point in the history
  • Loading branch information
ctubbsii committed Apr 25, 2020
2 parents af40951 + 4dda293 commit b8bf61f
Show file tree
Hide file tree
Showing 3 changed files with 23 additions and 8 deletions.
17 changes: 11 additions & 6 deletions src/main/java/net/revelc/code/impsort/ImpSort.java
Original file line number Diff line number Diff line change
Expand Up @@ -228,12 +228,17 @@ private static void convertAndAddImport(LinkedHashSet<Import> allImports, List<N
private static Set<String> tokensInUse(CompilationUnit unit) {

// Extract tokens from the java code:
Stream<String> typesInCode =
unit.getTypes().stream().map(TypeDeclaration::getTokenRange).filter(Optional::isPresent)
.map(Optional::get).filter(r -> r != TokenRange.INVALID).flatMap(r -> {
// get all JavaTokens as strings from each range
return StreamSupport.stream(r.spliterator(), false);
}).map(JavaToken::asString);
Stream<Node> packageDecl =
unit.getPackageDeclaration().isPresent()
? Stream.of(unit.getPackageDeclaration().get()).map(PackageDeclaration::getAnnotations)
.flatMap(NodeList::stream)
: Stream.empty();
Stream<String> typesInCode = Stream.concat(packageDecl, unit.getTypes().stream())
.map(Node::getTokenRange).filter(Optional::isPresent).map(Optional::get)
.filter(r -> r != TokenRange.INVALID).flatMap(r -> {
// get all JavaTokens as strings from each range
return StreamSupport.stream(r.spliterator(), false);
}).map(JavaToken::asString);

// Extract referenced class names from parsed javadoc comments:
Stream<String> typesInJavadocs = unit.getAllComments().stream()
Expand Down
6 changes: 4 additions & 2 deletions src/test/java/net/revelc/code/impsort/ImpSortTest.java
Original file line number Diff line number Diff line change
Expand Up @@ -91,8 +91,8 @@ public void testUnused() throws IOException {
.parseFile(p);
Set<String> imports =
result.getImports().stream().map(Import::getImport).collect(Collectors.toSet());
assertEquals(20, imports.size());
assertEquals(20, result.getImports().size());
assertEquals(22, imports.size());
assertEquals(22, result.getImports().size());

assertTrue(imports.contains("com.foo.Type1"));
assertTrue(imports.contains("com.foo.Type2"));
Expand All @@ -107,6 +107,8 @@ public void testUnused() throws IOException {
assertTrue(imports.contains("com.foo.Type11"));
assertTrue(imports.contains("com.foo.internal.Type12"));
assertTrue(imports.contains("com.foo.params.Type13"));
assertTrue(imports.contains("javax.xml.bind.annotation.XmlNs"));
assertTrue(imports.contains("javax.xml.bind.annotation.XmlSchema"));

assertFalse(imports.contains("com.google.common.base.Predicates"));
assertTrue(imports.contains("com.google.common.collect.ImmutableMap"));
Expand Down
8 changes: 8 additions & 0 deletions src/test/resources/UnusedImports.java
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,12 @@
* limitations under the License.
*/

@XmlSchema(
xmlns = {
@XmlNs(prefix = "order", namespaceURI = "http://www.camel.apache.org/jaxb/example/order/1"),
@XmlNs(prefix = "address", namespaceURI = "http://www.camel.apache.org/jaxb/example/address/1")
}
)
package net.revelc.code.imp;

import com.foo.Type1;
Expand Down Expand Up @@ -41,6 +47,8 @@
import com.foo.Type11;
import com.foo.internal.Type12;
import com.foo.params.Type13;
import javax.xml.bind.annotation.XmlNs;
import javax.xml.bind.annotation.XmlSchema;

import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertFalse;
Expand Down

0 comments on commit b8bf61f

Please sign in to comment.