mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-09-27 10:03:11 +07:00
cleanup
This commit is contained in:
@@ -22,7 +22,6 @@ import com.intellij.diagnostic.LogMessageEx;
|
||||
import com.intellij.icons.AllIcons;
|
||||
import com.intellij.ide.DataManager;
|
||||
import com.intellij.ide.highlighter.XmlFileType;
|
||||
import com.intellij.openapi.Disposable;
|
||||
import com.intellij.openapi.application.Application;
|
||||
import com.intellij.openapi.application.ApplicationManager;
|
||||
import com.intellij.openapi.application.Result;
|
||||
@@ -57,7 +56,6 @@ import com.intellij.openapi.ui.popup.JBPopupFactory;
|
||||
import com.intellij.openapi.ui.popup.PopupStep;
|
||||
import com.intellij.openapi.ui.popup.util.BaseListPopupStep;
|
||||
import com.intellij.openapi.util.Comparing;
|
||||
import com.intellij.openapi.util.Condition;
|
||||
import com.intellij.openapi.util.Disposer;
|
||||
import com.intellij.openapi.util.TextRange;
|
||||
import com.intellij.openapi.util.text.StringUtil;
|
||||
@@ -68,7 +66,10 @@ import com.intellij.psi.impl.PsiModificationTrackerImpl;
|
||||
import com.intellij.psi.xml.XmlDocument;
|
||||
import com.intellij.psi.xml.XmlFile;
|
||||
import com.intellij.psi.xml.XmlTag;
|
||||
import com.intellij.util.*;
|
||||
import com.intellij.util.ArrayUtil;
|
||||
import com.intellij.util.IncorrectOperationException;
|
||||
import com.intellij.util.Processor;
|
||||
import com.intellij.util.SmartList;
|
||||
import com.intellij.util.containers.ContainerUtil;
|
||||
import com.intellij.util.messages.MessageBus;
|
||||
import com.intellij.util.messages.MessageBusConnection;
|
||||
@@ -82,8 +83,10 @@ import javax.swing.*;
|
||||
import java.awt.*;
|
||||
import java.awt.event.ActionEvent;
|
||||
import java.io.IOException;
|
||||
import java.util.*;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Collections;
|
||||
import java.util.List;
|
||||
import java.util.Set;
|
||||
|
||||
/**
|
||||
* @author anna
|
||||
@@ -107,12 +110,7 @@ public class ExternalAnnotationsManagerImpl extends ReadableExternalAnnotationsM
|
||||
|
||||
final MyVirtualFileListener fileListener = new MyVirtualFileListener();
|
||||
VirtualFileManager.getInstance().addVirtualFileListener(fileListener);
|
||||
Disposer.register(myPsiManager.getProject(), new Disposable() {
|
||||
@Override
|
||||
public void dispose() {
|
||||
VirtualFileManager.getInstance().removeVirtualFileListener(fileListener);
|
||||
}
|
||||
});
|
||||
Disposer.register(myPsiManager.getProject(), () -> VirtualFileManager.getInstance().removeVirtualFileListener(fileListener));
|
||||
}
|
||||
|
||||
private void notifyAfterAnnotationChanging(@NotNull PsiModifierListOwner owner, @NotNull String annotationFQName, boolean successful) {
|
||||
@@ -167,7 +165,7 @@ public class ExternalAnnotationsManagerImpl extends ReadableExternalAnnotationsM
|
||||
}
|
||||
|
||||
@Nullable
|
||||
protected List<XmlFile> findExternalAnnotationsXmlFiles(@NotNull PsiModifierListOwner listOwner) {
|
||||
private List<XmlFile> findExternalAnnotationsXmlFiles(@NotNull PsiModifierListOwner listOwner) {
|
||||
List<PsiFile> psiFiles = findExternalAnnotationsFiles(listOwner);
|
||||
if (psiFiles == null) {
|
||||
return null;
|
||||
@@ -274,7 +272,7 @@ public class ExternalAnnotationsManagerImpl extends ReadableExternalAnnotationsM
|
||||
|
||||
@NotNull
|
||||
private static VirtualFile[] filterByReadOnliness(@NotNull VirtualFile[] files) {
|
||||
List<VirtualFile> result = ContainerUtil.filter(files, file -> file.isInLocalFileSystem());
|
||||
List<VirtualFile> result = ContainerUtil.filter(files, VirtualFile::isInLocalFileSystem);
|
||||
return VfsUtilCore.toVirtualFileArray(result);
|
||||
}
|
||||
|
||||
@@ -694,7 +692,7 @@ public class ExternalAnnotationsManagerImpl extends ReadableExternalAnnotationsM
|
||||
private static final String ADD_IN_CODE = ProjectBundle.message("external.annotations.in.code.option");
|
||||
private static final String MESSAGE = ProjectBundle.message("external.annotations.suggestion.message");
|
||||
|
||||
public MyExternalPromptDialog(final Project project) {
|
||||
MyExternalPromptDialog(final Project project) {
|
||||
super(project, MESSAGE, ProjectBundle.message("external.annotation.prompt"), Messages.getQuestionIcon());
|
||||
myProject = project;
|
||||
init();
|
||||
@@ -713,7 +711,7 @@ public class ExternalAnnotationsManagerImpl extends ReadableExternalAnnotationsM
|
||||
|
||||
@Override
|
||||
@NotNull
|
||||
@SuppressWarnings({"NonStaticInitializer"})
|
||||
@SuppressWarnings("NonStaticInitializer")
|
||||
protected Action[] createActions() {
|
||||
final Action okAction = getOKAction();
|
||||
assignMnemonic(ADD_IN_CODE, okAction);
|
||||
|
||||
@@ -25,10 +25,6 @@ import org.jetbrains.annotations.Nullable;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* @authot anna
|
||||
* @since 26-Jun-2007
|
||||
*/
|
||||
public abstract class ExternalAnnotationsManager {
|
||||
public static final String ANNOTATIONS_XML = "annotations.xml";
|
||||
|
||||
|
||||
+17
-17
@@ -61,7 +61,7 @@ public abstract class BaseExternalAnnotationsManager extends ExternalAnnotations
|
||||
protected final PsiManager myPsiManager;
|
||||
|
||||
private final ConcurrentMap<VirtualFile, List<PsiFile>> myExternalAnnotationsCache = ContainerUtil.createConcurrentWeakKeySoftValueMap();
|
||||
private final Map<AnnotationData, AnnotationData> myAnnotationDataCache = new WeakKeyWeakValueHashMap<AnnotationData, AnnotationData>();
|
||||
private final Map<AnnotationData, AnnotationData> myAnnotationDataCache = new WeakKeyWeakValueHashMap<AnnotationData, AnnotationData>(); // guarded by myAnnotationDataCache
|
||||
private final ConcurrentMap<PsiFile, Pair<MostlySingularMultiMap<String, AnnotationData>, Long>> myAnnotationFileToDataAndModStampCache = ContainerUtil.createConcurrentSoftMap();
|
||||
|
||||
public BaseExternalAnnotationsManager(@NotNull PsiManager psiManager) {
|
||||
@@ -105,7 +105,7 @@ public abstract class BaseExternalAnnotationsManager extends ExternalAnnotations
|
||||
return ContainerUtil.find(map, new Condition<AnnotationData>() {
|
||||
@Override
|
||||
public boolean value(AnnotationData data) {
|
||||
return data.myFqName.equals(annotationFQN);
|
||||
return data.annotationClassFqName.equals(annotationFQN);
|
||||
}
|
||||
});
|
||||
}
|
||||
@@ -243,24 +243,24 @@ public abstract class BaseExternalAnnotationsManager extends ExternalAnnotations
|
||||
}
|
||||
}
|
||||
|
||||
Set<PsiFile> possibleAnnotations = new THashSet<PsiFile>();
|
||||
Set<PsiFile> possibleAnnotationXmls = new THashSet<PsiFile>();
|
||||
String relativePath = ((PsiJavaFile)containingFile).getPackageName().replace('.', '/') + '/' + ANNOTATIONS_XML;
|
||||
for (VirtualFile root : getExternalAnnotationsRoots(virtualFile)) {
|
||||
VirtualFile ext = root.findFileByRelativePath(relativePath);
|
||||
if (ext != null && ext.isValid()) {
|
||||
PsiFile psiFile = myPsiManager.findFile(ext);
|
||||
if (psiFile != null) {
|
||||
possibleAnnotations.add(psiFile);
|
||||
possibleAnnotationXmls.add(psiFile);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if (possibleAnnotations.isEmpty()) {
|
||||
if (possibleAnnotationXmls.isEmpty()) {
|
||||
myExternalAnnotationsCache.put(virtualFile, NULL_LIST);
|
||||
return null;
|
||||
}
|
||||
|
||||
List<PsiFile> result = new SmartList<PsiFile>(possibleAnnotations);
|
||||
List<PsiFile> result = new SmartList<PsiFile>(possibleAnnotationXmls);
|
||||
// writable go first
|
||||
Collections.sort(result, new Comparator<PsiFile>() {
|
||||
@Override
|
||||
@@ -346,22 +346,22 @@ public abstract class BaseExternalAnnotationsManager extends ExternalAnnotations
|
||||
}
|
||||
|
||||
private static class AnnotationData {
|
||||
private final String myFqName;
|
||||
private final String myParameters;
|
||||
private final String annotationClassFqName;
|
||||
private final String annotationParameters;
|
||||
|
||||
private volatile PsiAnnotation myAnnotation;
|
||||
|
||||
private AnnotationData(@NotNull String fqn, @NotNull String parameters) {
|
||||
myFqName = fqn;
|
||||
myParameters = parameters;
|
||||
annotationClassFqName = fqn;
|
||||
annotationParameters = parameters;
|
||||
}
|
||||
|
||||
@NotNull
|
||||
private PsiAnnotation getAnnotation(@NotNull BaseExternalAnnotationsManager context) {
|
||||
PsiAnnotation a = myAnnotation;
|
||||
if (a == null) {
|
||||
String text = "@" + myFqName + (myParameters.isEmpty() ? "" : "(" + myParameters + ")");
|
||||
myAnnotation = a = markAsExternalAnnotation(context.createAnnotationFromText(text));
|
||||
String text = "@" + annotationClassFqName + (annotationParameters.isEmpty() ? "" : "(" + annotationParameters + ")");
|
||||
myAnnotation = a = context.createAnnotationFromText(text);
|
||||
}
|
||||
return a;
|
||||
}
|
||||
@@ -373,19 +373,19 @@ public abstract class BaseExternalAnnotationsManager extends ExternalAnnotations
|
||||
|
||||
AnnotationData data = (AnnotationData)o;
|
||||
|
||||
return myFqName.equals(data.myFqName) && myParameters.equals(data.myParameters);
|
||||
return annotationClassFqName.equals(data.annotationClassFqName) && annotationParameters.equals(data.annotationParameters);
|
||||
}
|
||||
|
||||
@Override
|
||||
public int hashCode() {
|
||||
int result = myFqName.hashCode();
|
||||
result = 31 * result + myParameters.hashCode();
|
||||
int result = annotationClassFqName.hashCode();
|
||||
result = 31 * result + annotationParameters.hashCode();
|
||||
return result;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String toString() {
|
||||
return myFqName + "(" + myParameters + ")";
|
||||
return annotationClassFqName + "(" + annotationParameters + ")";
|
||||
}
|
||||
}
|
||||
|
||||
@@ -457,7 +457,7 @@ public abstract class BaseExternalAnnotationsManager extends ExternalAnnotations
|
||||
else if ("annotation".equals(qName) && myExternalName != null && myAnnotationFqn != null) {
|
||||
String argumentsString = myArguments.length() == 0 ? "" : intern(myArguments.toString());
|
||||
for (AnnotationData existingData : myData.get(myExternalName)) {
|
||||
if (existingData.myFqName.equals(myAnnotationFqn)) {
|
||||
if (existingData.annotationClassFqName.equals(myAnnotationFqn)) {
|
||||
duplicateError(myFile, myExternalName, "Duplicate annotation '" + myAnnotationFqn + "'");
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user