--- org/netbeans/modules/java/hints/Imports.java +++ org/netbeans/modules/java/hints/Imports.java @@ -52,6 +52,7 @@ import org.netbeans.api.java.source.TreeMaker; import org.netbeans.api.java.source.TreePathHandle; import org.netbeans.api.java.source.WorkingCopy; +import org.netbeans.modules.editor.java.Utilities; import org.netbeans.modules.java.editor.semantic.RemoveUnusedImportFix; import org.netbeans.modules.java.hints.spi.AbstractHint; import org.netbeans.spi.editor.hints.ChangeInfo; @@ -77,6 +78,7 @@ private Imports duplicate; private Imports defaultPackage; private Imports samePackage; + private Imports excludedPackage; private Imports forbiddenPackage; private Imports unused; private Imports star; @@ -109,6 +111,12 @@ return d.defaultPackage; } + public static Imports createExcluded() { + Imports d = getDelegate(); + d.excludedPackage = new Imports( ImportHintKind.EXCLUDED ); + return d.excludedPackage; + } + public static Imports createForbidden() { Imports d = getDelegate(); d.forbiddenPackage = new Imports( ImportHintKind.FORBIDDEN ); @@ -239,6 +247,22 @@ } break; + case EXCLUDED: + Imports excludePackage = getDelegate().excludedPackage; + System.err.println("Imports:EXCLUDED:" + ms.getExpression().toString() + ", " + ms.getIdentifier()); + if (excludePackage != null && + excludePackage.isEnabled() && + Utilities.isExcluded(ms.getExpression().toString())) { + result.add(ErrorDescriptionFactory.createErrorDescription( + excludePackage.getSeverity().toEditorSeverity(), + excludePackage.getDisplayName(), + NO_FIXES, + ci.getFileObject(), + (int) ci.getTrees().getSourcePositions().getStartPosition(ci.getCompilationUnit(), it), + (int) ci.getTrees().getSourcePositions().getEndPosition(ci.getCompilationUnit(), it))); + } + + break; default: return null; } @@ -400,13 +424,15 @@ SAME_PACKAGE, DEFAULT_PACKAGE, FORBIDDEN, - STAR; + STAR, + EXCLUDED; boolean defaultOn() { switch( this ) { case DELEGATE: case FORBIDDEN: + case EXCLUDED: case SAME_PACKAGE: case DEFAULT_PACKAGE: case UNUSED: --- org/netbeans/modules/java/hints/resources/layer.xml +++ org/netbeans/modules/java/hints/resources/layer.xml @@ -174,6 +174,9 @@ + + +