[java] reuses getName() and getNameIdentifier() methods for modules

This commit is contained in:
Roman Shevchenko
2017-02-13 13:22:11 +01:00
parent 79a9fd6831
commit f129fb5daf
22 changed files with 79 additions and 95 deletions
@@ -298,7 +298,7 @@ public class ApplicationConfiguration extends ModuleBasedConfiguration<JavaRunCo
if (mainClass != null) {
PsiJavaModule mainModule = JavaModuleGraphUtil.findDescriptorByElement(mainClass);
if (mainModule != null) {
params.setModuleName(mainModule.getModuleName());
params.setModuleName(mainModule.getName());
PathsList classPath = params.getClassPath(), modulePath = params.getModulePath();
modulePath.addAll(classPath.getPathList());
classPath.clear();
@@ -128,7 +128,7 @@ public class JavaModuleInsight extends ModuleInsight {
if (javaModule == null) {
throw new IncorrectOperationException("Incorrect module declaration '" + file.getPath() + "'");
}
ModuleInfo info = new ModuleInfo(javaModule.getModuleName());
ModuleInfo info = new ModuleInfo(javaModule.getName());
javaModule.accept(new ModuleInfoVisitor(info));
return info;
});
@@ -66,7 +66,7 @@ public class JavaModuleGraphUtil {
Map<String, Set<String>> exports = CachedValuesManager.getCachedValue(source, () ->
Result.create(exportsMap(source), source.getContainingFile()));
Set<String> targets = exports.get(packageName);
return targets != null && (targets.isEmpty() || targets.contains(target.getModuleName()));
return targets != null && (targets.isEmpty() || targets.contains(target.getName()));
}
public static boolean reads(@NotNull PsiJavaModule source, @NotNull PsiJavaModule destination) {
@@ -178,7 +178,7 @@ public class JavaModuleGraphUtil {
}
public static String key(PsiJavaModule module, PsiJavaModule exporter) {
return module.getModuleName() + '/' + exporter.getModuleName();
return module.getName() + '/' + exporter.getName();
}
}
@@ -223,13 +223,13 @@ public class ModuleHighlightUtil {
return moduleResolveError(refElement, ref);
}
else if (target == container) {
String message = JavaErrorMessages.message("module.cyclic.dependence", container.getModuleName());
String message = JavaErrorMessages.message("module.cyclic.dependence", container.getName());
return HighlightInfo.newHighlightInfo(HighlightInfoType.ERROR).range(refElement).description(message).create();
}
else {
Collection<PsiJavaModule> cycle = JavaModuleGraphUtil.findCycle((PsiJavaModule)target);
if (cycle != null && cycle.contains(container)) {
Stream<String> stream = cycle.stream().map(PsiJavaModule::getModuleName);
Stream<String> stream = cycle.stream().map(PsiJavaModule::getName);
if (ApplicationManager.getApplication().isUnitTestMode()) stream = stream.sorted();
String message = JavaErrorMessages.message("module.cyclic.dependence", stream.collect(Collectors.joining(", ")));
return HighlightInfo.newHighlightInfo(HighlightInfoType.ERROR).range(refElement).description(message).create();
@@ -373,8 +373,8 @@ public class ModuleHighlightUtil {
return HighlightInfo.newHighlightInfo(HighlightInfoType.WRONG_REF).range(ref).description(message).create();
}
String refModuleName = refModule.getModuleName();
String requiredName = targetModule.getModuleName();
String refModuleName = refModule.getName();
String requiredName = targetModule.getName();
if (!(targetModule instanceof LightJavaModule || JavaModuleGraphUtil.exports(targetModule, packageName, refModule))) {
String message = JavaErrorMessages.message("module.package.not.exported", requiredName, packageName, refModuleName);
return HighlightInfo.newHighlightInfo(HighlightInfoType.WRONG_REF).range(ref).description(message).create();
@@ -421,7 +421,7 @@ public class ModuleHighlightUtil {
private static TextRange range(PsiJavaModule module) {
PsiKeyword kw = PsiTreeUtil.getChildOfType(module, PsiKeyword.class);
return new TextRange(kw != null ? kw.getTextOffset() : module.getTextOffset(), module.getNameElement().getTextRange().getEndOffset());
return new TextRange(kw != null ? kw.getTextOffset() : module.getTextOffset(), module.getNameIdentifier().getTextRange().getEndOffset());
}
private static PsiElement range(PsiJavaCodeReferenceElement refElement) {
@@ -1,5 +1,5 @@
/*
* Copyright 2000-2016 JetBrains s.r.o.
* Copyright 2000-2017 JetBrains s.r.o.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -66,8 +66,7 @@ public class AddRequiredModuleFix implements IntentionAction {
if (module == null) return;
PsiJavaParserFacade parserFacade = JavaPsiFacade.getInstance(project).getParserFacade();
PsiJavaModule tempModule =
parserFacade.createModuleFromText("module " + module.getModuleName() + " { requires " + myRequiredName + "; }");
PsiJavaModule tempModule = parserFacade.createModuleFromText("module " + module.getName() + " { requires " + myRequiredName + "; }");
Iterable<PsiRequiresStatement> tempModuleRequires = tempModule.getRequires();
PsiRequiresStatement requiresStatement = tempModuleRequires.iterator().next();
@@ -90,7 +89,7 @@ public class AddRequiredModuleFix implements IntentionAction {
@Nullable
private static PsiElement getLBrace(@NotNull PsiJavaModule module) {
PsiJavaModuleReferenceElement nameElement = module.getNameElement();
PsiJavaModuleReferenceElement nameElement = module.getNameIdentifier();
for (PsiElement element = nameElement.getNextSibling(); element != null; element = element.getNextSibling()) {
if (PsiUtil.isJavaToken(element, JavaTokenType.LBRACE)) {
return element;
@@ -55,7 +55,7 @@ public class Java9ModuleExportsPackageToItselfInspection extends BaseJavaLocalIn
super.visitExportsStatement(statement);
PsiJavaModule javaModule = PsiTreeUtil.getParentOfType(statement, PsiJavaModule.class);
if (javaModule != null) {
String moduleName = javaModule.getModuleName();
String moduleName = javaModule.getName();
List<PsiJavaModuleReferenceElement> referenceElements = ContainerUtil.newArrayList(statement.getModuleReferences());
for (PsiJavaModuleReferenceElement referenceElement : referenceElements) {
if (moduleName.equals(referenceElement.getReferenceText())) {
@@ -173,7 +173,7 @@ public class Java9RedundantRequiresStatementInspection extends GlobalJavaBatchIn
return StreamEx.of(transitiveModules)
.filter(transitiveModule -> isReexported(currentModule, transitiveModule))
.map(transitiveModule -> transitiveModule.getModuleName())
.map(transitiveModule -> transitiveModule.getName())
.toSet();
}
@@ -204,7 +204,7 @@ public class Java9RedundantRequiresStatementInspection extends GlobalJavaBatchIn
PsiJavaParserFacade parserFacade = JavaPsiFacade.getInstance(currentModule.getProject()).getParserFacade();
for (String dependencyName : reexportedDependencies) {
PsiJavaModule tempModule =
parserFacade.createModuleFromText("module " + currentModule.getModuleName() + " { requires " + dependencyName + "; }");
parserFacade.createModuleFromText("module " + currentModule.getName() + " { requires " + dependencyName + "; }");
Iterable<PsiRequiresStatement> tempModuleRequires = tempModule.getRequires();
PsiRequiresStatement requiresStatement = tempModuleRequires.iterator().next();
currentModule.addAfter(requiresStatement, addingPlace);
@@ -37,7 +37,7 @@ public class RefJavaModuleImpl extends RefElementImpl implements RefJavaModule {
private List<RequiredModule> myRequiredModules;
public RefJavaModuleImpl(@NotNull PsiJavaModule javaModule, @NotNull RefManagerImpl manager) {
super(javaModule.getModuleName(), javaModule, manager);
super(javaModule.getName(), javaModule, manager);
myRefModule = manager.getRefModule(ModuleUtilCore.findModuleForPsiElement(javaModule));
}
@@ -91,7 +91,7 @@ public class RefJavaModuleImpl extends RefElementImpl implements RefJavaModule {
PsiJavaModule requiredModule = (PsiJavaModule)element;
Map<String, List<String>> packagesExportedByModule = getPackagesExportedByModule(requiredModule);
if (myRequiredModules == null) myRequiredModules = new ArrayList<>(1);
myRequiredModules.add(new RequiredModule(requiredModule.getModuleName(), packagesExportedByModule, statement.isPublic()));
myRequiredModules.add(new RequiredModule(requiredModule.getName(), packagesExportedByModule, statement.isPublic()));
}
}
}
@@ -110,7 +110,7 @@ public class RefJavaModuleImpl extends RefElementImpl implements RefJavaModule {
if (packageName != null && moduleElement instanceof PsiJavaModule) {
List<String> toModuleNames = myExportedPackageNames.get(packageName);
if (toModuleNames == emptyList) myExportedPackageNames.put(packageName, toModuleNames = new ArrayList<>(1));
toModuleNames.add(((PsiJavaModule)moduleElement).getModuleName());
toModuleNames.add(((PsiJavaModule)moduleElement).getName());
}
}
}
@@ -92,7 +92,7 @@ class JavaModuleCompletion {
if (!(statement instanceof PsiJavaModule)) {
PsiElement host = statement.getParent();
if (host instanceof PsiJavaModule) {
String hostName = ((PsiJavaModule)host).getModuleName();
String hostName = ((PsiJavaModule)host).getName();
Project project = context.getProject();
JavaModuleNameIndex index = JavaModuleNameIndex.getInstance();
GlobalSearchScope scope = ProjectScope.getAllScope(project);
@@ -1,5 +1,5 @@
/*
* Copyright 2000-2016 JetBrains s.r.o.
* Copyright 2000-2017 JetBrains s.r.o.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -729,7 +729,7 @@ public class JavaDocInfoGenerator {
private void generateModuleJavaDoc(StringBuilder buffer, PsiJavaModule module, boolean generatePrologueAndEpilogue) {
if (generatePrologueAndEpilogue) generatePrologue(buffer);
buffer.append("<pre>module <b>").append(module.getModuleName()).append("</b></pre>");
buffer.append("<pre>module <b>").append(module.getName()).append("</b></pre>");
PsiDocComment comment = module.getDocComment();
if (comment != null) {
@@ -1,5 +1,5 @@
/*
* Copyright 2000-2016 JetBrains s.r.o.
* Copyright 2000-2017 JetBrains s.r.o.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -66,7 +66,7 @@ public class JavaQualifiedNameProvider implements QualifiedNameProvider {
}
if (element instanceof PsiJavaModule) {
return ((PsiJavaModule)element).getModuleName();
return ((PsiJavaModule)element).getName();
}
if (element instanceof PsiJavaModuleReferenceElement) {
@@ -74,7 +74,7 @@ public class JavaQualifiedNameProvider implements QualifiedNameProvider {
if (reference != null) {
PsiElement target = reference.resolve();
if (target instanceof PsiJavaModule) {
return ((PsiJavaModule)target).getModuleName();
return ((PsiJavaModule)target).getName();
}
}
}
@@ -384,7 +384,7 @@ public class JavaDocumentationProvider extends DocumentationProviderEx implement
VirtualFile file = PsiImplUtil.getModuleVirtualFile(module);
generateOrderEntryInfo(sb, file, module.getProject());
sb.append(LangBundle.message("java.terms.module")).append(' ').append(module.getModuleName());
sb.append(LangBundle.message("java.terms.module")).append(' ').append(module.getName());
return sb.toString();
}
@@ -1,5 +1,5 @@
/*
* Copyright 2000-2016 JetBrains s.r.o.
* Copyright 2000-2017 JetBrains s.r.o.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -194,7 +194,7 @@ public class JavaFindUsagesProvider implements FindUsagesProvider {
return element.getText();
}
if (element instanceof PsiJavaModule) {
return ((PsiJavaModule)element).getModuleName();
return ((PsiJavaModule)element).getName();
}
return "";
@@ -22,14 +22,14 @@ import org.jetbrains.annotations.NotNull;
*
* @since 2016.3
*/
public interface PsiJavaModule extends NavigatablePsiElement, PsiNamedElement, PsiJavaDocumentedElement {
public interface PsiJavaModule extends NavigatablePsiElement, PsiNameIdentifierOwner, PsiJavaDocumentedElement {
String MODULE_INFO_CLASS = "module-info";
String MODULE_INFO_FILE = MODULE_INFO_CLASS + ".java";
String MODULE_INFO_CLS_FILE = MODULE_INFO_CLASS + ".class";
String JAVA_BASE = "java.base";
@NotNull PsiJavaModuleReferenceElement getNameElement();
@NotNull String getModuleName();
@Override @NotNull PsiJavaModuleReferenceElement getNameIdentifier();
@Override @NotNull String getName();
@NotNull Iterable<PsiRequiresStatement> getRequires();
@NotNull Iterable<PsiPackageAccessibilityStatement> getExports();
@@ -41,18 +41,6 @@ public class ClsJavaModuleImpl extends ClsRepositoryPsiElement<PsiJavaModuleStub
myReference = new ClsJavaModuleReferenceElementImpl(this, stub.getName());
}
@NotNull
@Override
public PsiJavaModuleReferenceElement getNameElement() {
return myReference;
}
@NotNull
@Override
public String getModuleName() {
return myReference.getReferenceText();
}
@NotNull
@Override
public Iterable<PsiRequiresStatement> getRequires() {
@@ -85,7 +73,7 @@ public class ClsJavaModuleImpl extends ClsRepositoryPsiElement<PsiJavaModuleStub
@Override
public void appendMirrorText(int indentLevel, @NotNull StringBuilder buffer) {
buffer.append("module ").append(getModuleName()).append(" {\n");
buffer.append("module ").append(getName()).append(" {\n");
int newIndentLevel = indentLevel + getIndentSize();
@@ -106,7 +94,7 @@ public class ClsJavaModuleImpl extends ClsRepositoryPsiElement<PsiJavaModuleStub
PsiJavaModule mirror = SourceTreeToPsiMap.treeToPsiNotNull(element);
setMirrorCheckingType(element, JavaElementType.MODULE);
setMirror(getNameElement(), mirror.getNameElement());
setMirror(getNameIdentifier(), mirror.getNameIdentifier());
setMirrors(newArrayList(getStub().getChildrenByType(JavaElementType.REQUIRES_STATEMENT, PsiRequiresStatement.EMPTY_ARRAY)),
newArrayList(mirror.getRequires()));
@@ -115,9 +103,16 @@ public class ClsJavaModuleImpl extends ClsRepositoryPsiElement<PsiJavaModuleStub
newArrayList(mirror.getExports()));
}
@NotNull
@Override
public PsiJavaModuleReferenceElement getNameIdentifier() {
return myReference;
}
@NotNull
@Override
public String getName() {
return getModuleName();
return myReference.getReferenceText();
}
@Override
@@ -139,7 +134,7 @@ public class ClsJavaModuleImpl extends ClsRepositoryPsiElement<PsiJavaModuleStub
@NotNull
@Override
public PsiElement getNavigationElement() {
return getNameElement();
return getNameIdentifier();
}
@Override
@@ -154,6 +149,6 @@ public class ClsJavaModuleImpl extends ClsRepositoryPsiElement<PsiJavaModuleStub
@Override
public String toString() {
return "PsiJavaModule:" + getModuleName();
return "PsiJavaModule:" + getName();
}
}
@@ -55,18 +55,6 @@ public class LightJavaModule extends LightElement implements PsiJavaModule {
return null;
}
@NotNull
@Override
public PsiJavaModuleReferenceElement getNameElement() {
return myRefElement;
}
@NotNull
@Override
public String getModuleName() {
return myRefElement.getReferenceText();
}
@NotNull
@Override
public Iterable<PsiRequiresStatement> getRequires() {
@@ -97,9 +85,16 @@ public class LightJavaModule extends LightElement implements PsiJavaModule {
return Collections.emptyList();
}
@NotNull
@Override
public PsiJavaModuleReferenceElement getNameIdentifier() {
return myRefElement;
}
@NotNull
@Override
public String getName() {
return getModuleName();
return myRefElement.getReferenceText();
}
@Override
@@ -125,12 +120,12 @@ public class LightJavaModule extends LightElement implements PsiJavaModule {
@Override
public int hashCode() {
return getModuleName().hashCode() * 31 + getManager().hashCode();
return getName().hashCode() * 31 + getManager().hashCode();
}
@Override
public String toString() {
return "PsiJavaModule:" + getModuleName();
return "PsiJavaModule:" + getName();
}
private static class LightJavaModuleReferenceElement extends LightElement implements PsiJavaModuleReferenceElement {
@@ -54,24 +54,6 @@ public class PsiJavaModuleImpl extends JavaStubPsiElement<PsiJavaModuleStub> imp
super(node);
}
@NotNull
@Override
public PsiJavaModuleReferenceElement getNameElement() {
return PsiTreeUtil.getRequiredChildOfType(this, PsiJavaModuleReferenceElement.class);
}
@NotNull
@Override
public String getModuleName() {
PsiJavaModuleStub stub = getGreenStub();
if (stub != null) {
return stub.getName();
}
else {
return getNameElement().getReferenceText();
}
}
@NotNull
@Override
public Iterable<PsiRequiresStatement> getRequires() {
@@ -120,16 +102,29 @@ public class PsiJavaModuleImpl extends JavaStubPsiElement<PsiJavaModuleStub> imp
return psiTraverser().children(this).filter(PsiProvidesStatement.class);
}
@NotNull
@Override
public PsiJavaModuleReferenceElement getNameIdentifier() {
return PsiTreeUtil.getRequiredChildOfType(this, PsiJavaModuleReferenceElement.class);
}
@NotNull
@Override
public String getName() {
return getModuleName();
PsiJavaModuleStub stub = getGreenStub();
if (stub != null) {
return stub.getName();
}
else {
return getNameIdentifier().getReferenceText();
}
}
@Override
public PsiElement setName(@NotNull String name) throws IncorrectOperationException {
PsiElementFactory factory = PsiElementFactory.SERVICE.getInstance(getProject());
PsiJavaModuleReferenceElement newName = factory.createModuleFromText("module " + name + " {}").getNameElement();
getNameElement().replace(newName);
PsiJavaModuleReferenceElement newName = factory.createModuleFromText("module " + name + " {}").getNameIdentifier();
getNameIdentifier().replace(newName);
return this;
}
@@ -147,7 +142,7 @@ public class PsiJavaModuleImpl extends JavaStubPsiElement<PsiJavaModuleStub> imp
@NotNull
@Override
public PsiElement getNavigationElement() {
return getNameElement();
return getNameIdentifier();
}
@Override
@@ -162,6 +157,6 @@ public class PsiJavaModuleImpl extends JavaStubPsiElement<PsiJavaModuleStub> imp
@Override
public String toString() {
return "PsiJavaModule:" + getModuleName();
return "PsiJavaModule:" + getName();
}
}
@@ -1,5 +1,5 @@
/*
* Copyright 2000-2016 JetBrains s.r.o.
* Copyright 2000-2017 JetBrains s.r.o.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -67,7 +67,7 @@ public class PsiJavaModuleReference extends PsiReferenceBase.Poly<PsiJavaModuleR
throw new IncorrectOperationException(JavaCoreBundle.message("psi.error.attempt.to.edit.class.file", element.getContainingFile()));
}
PsiElementFactory factory = PsiElementFactory.SERVICE.getInstance(element.getProject());
PsiJavaModuleReferenceElement newElement = factory.createModuleFromText("module " + newName + " {}").getNameElement();
PsiJavaModuleReferenceElement newElement = factory.createModuleFromText("module " + newName + " {}").getNameIdentifier();
return element.replace(newElement);
}
@@ -1,5 +1,5 @@
/*
* Copyright 2000-2016 JetBrains s.r.o.
* Copyright 2000-2017 JetBrains s.r.o.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -36,10 +36,9 @@ public class JavaModulePresentationProvider implements ItemPresentationProvider<
@Override
public ItemPresentation getPresentation(@NotNull final PsiJavaModule item) {
return new ItemPresentation() {
@Nullable
@Override
public String getPresentableText() {
return item.getModuleName();
return item.getName();
}
@Nullable
@@ -1,5 +1,5 @@
/*
* Copyright 2000-2016 JetBrains s.r.o.
* Copyright 2000-2017 JetBrains s.r.o.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -423,7 +423,7 @@ public class ClsPsiTest extends LightIdeaTestCase {
PsiJavaModule module = file.getModuleDeclaration();
assertNotNull(module);
assertEquals("M.N", module.getModuleName());
assertEquals("M.N", module.getName());
assertNull(file.getPackageStatement());
assertEquals(0, file.getClasses().length);
@@ -1,6 +1,6 @@
/*
* Copyright 2000-2014 JetBrains s.r.o.
* Copyright 2000-2017 JetBrains s.r.o.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -274,6 +274,7 @@ public abstract class PsiElementBase extends ElementBase implements NavigatableP
visitor.visitElement(this);
}
@NotNull
@Override
public String getName() {
return null;
@@ -87,7 +87,7 @@ public class ClassEscapesItsScopeInspection extends BaseJavaBatchLocalInspection
Set<String> exportedPackageNames =
new THashSet<>(ContainerUtil.mapNotNull(psiModule.getExports(), PsiPackageAccessibilityStatement::getPackageName));
if (exportedPackageNames.contains(javaFile.getPackageName())) {
checkers.add(new Java9NonAccessibleTypeExposedVisitor(holder, module, psiModule.getModuleName(), exportedPackageNames));
checkers.add(new Java9NonAccessibleTypeExposedVisitor(holder, module, psiModule.getName(), exportedPackageNames));
}
}
}