diff --git a/jps/jps-builders/src/org/jetbrains/jps/javac/ast/JavacReferenceCollectorListener.java b/jps/jps-builders/src/org/jetbrains/jps/javac/ast/JavacReferenceCollectorListener.java index 9d8fdacf7b14..8cf6224aae40 100644 --- a/jps/jps-builders/src/org/jetbrains/jps/javac/ast/JavacReferenceCollectorListener.java +++ b/jps/jps-builders/src/org/jetbrains/jps/javac/ast/JavacReferenceCollectorListener.java @@ -28,7 +28,7 @@ import org.jetbrains.annotations.NotNull; import org.jetbrains.jps.javac.ast.api.JavacDef; import org.jetbrains.jps.javac.ast.api.JavacFileData; import org.jetbrains.jps.javac.ast.api.JavacRef; -import org.jetbrains.jps.javac.ast.api.NameTableCache; +import org.jetbrains.jps.javac.ast.api.JavacNameTable; import javax.lang.model.element.Element; import javax.lang.model.element.ElementKind; @@ -49,7 +49,7 @@ final class JavacReferenceCollectorListener implements TaskListener { private final Elements myElementUtility; private final Types myTypeUtility; private final Trees myTreeUtility; - private final NameTableCache myNameTableCache; + private final JavacNameTable myNameTableCache; private NotNullLazyValue myAsterisk = new NotNullLazyValue() { @NotNull @@ -98,7 +98,7 @@ final class JavacReferenceCollectorListener implements TaskListener { myTypeUtility = typeUtility; myTreeUtility = treeUtility; myAstScanner = JavacTreeRefScanner.createASTScanner(); - myNameTableCache = new NameTableCache(elementUtility); + myNameTableCache = new JavacNameTable(elementUtility); } @Override diff --git a/jps/jps-builders/src/org/jetbrains/jps/javac/ast/api/NameTableCache.java b/jps/jps-builders/src/org/jetbrains/jps/javac/ast/api/JavacNameTable.java similarity index 73% rename from jps/jps-builders/src/org/jetbrains/jps/javac/ast/api/NameTableCache.java rename to jps/jps-builders/src/org/jetbrains/jps/javac/ast/api/JavacNameTable.java index 0ffcf53c2c95..48286c267273 100644 --- a/jps/jps-builders/src/org/jetbrains/jps/javac/ast/api/NameTableCache.java +++ b/jps/jps-builders/src/org/jetbrains/jps/javac/ast/api/JavacNameTable.java @@ -23,18 +23,24 @@ import javax.lang.model.element.Name; import javax.lang.model.element.TypeElement; import javax.lang.model.util.Elements; -public class NameTableCache extends SLRUCache { +public class JavacNameTable { + private final SLRUCache myParsedNameCache; private final Elements myElements; - public NameTableCache(Elements elements) { - super(1000, 1000); + public JavacNameTable(Elements elements) { + myParsedNameCache = new SLRUCache(1000, 1000) { + @NotNull + @Override + public String createValue(Name key) { + return key.toString(); + } + }; myElements = elements; } @NotNull - @Override - public String createValue(Name name) { - return name.toString(); + public String parseName(Name name) { + return myParsedNameCache.get(name); } public Name getBinaryName(Element element) { diff --git a/jps/jps-builders/src/org/jetbrains/jps/javac/ast/api/JavacRef.java b/jps/jps-builders/src/org/jetbrains/jps/javac/ast/api/JavacRef.java index 6458c8c2b1e9..e811c9701de0 100644 --- a/jps/jps-builders/src/org/jetbrains/jps/javac/ast/api/JavacRef.java +++ b/jps/jps-builders/src/org/jetbrains/jps/javac/ast/api/JavacRef.java @@ -120,9 +120,9 @@ public interface JavacRef { abstract class JavacElementRefBase implements JavacRef { protected final @NotNull Element myOriginalElement; - protected final NameTableCache myNameTableCache; + protected final JavacNameTable myNameTableCache; - protected JavacElementRefBase(@NotNull Element element, NameTableCache nameTableCache) { + protected JavacElementRefBase(@NotNull Element element, JavacNameTable nameTableCache) { myOriginalElement = element; myNameTableCache = nameTableCache; } @@ -135,7 +135,7 @@ public interface JavacRef { @NotNull @Override public String getName() { - return myNameTableCache.get(myOriginalElement.getSimpleName()); + return myNameTableCache.parseName(myOriginalElement.getSimpleName()); } @Override @@ -146,10 +146,10 @@ public interface JavacRef { @NotNull @Override public String getOwnerName() { - return myNameTableCache.get(myNameTableCache.getBinaryName(myOriginalElement.getEnclosingElement())); + return myNameTableCache.parseName(myNameTableCache.getBinaryName(myOriginalElement.getEnclosingElement())); } - public static JavacElementRefBase fromElement(Element element, NameTableCache nameTableCache) { + public static JavacElementRefBase fromElement(Element element, JavacNameTable nameTableCache) { if (element instanceof TypeElement) { return new JavacElementClassImpl(element, nameTableCache); } @@ -164,24 +164,24 @@ public interface JavacRef { } class JavacElementClassImpl extends JavacElementRefBase implements JavacClass { - public JavacElementClassImpl(@NotNull Element element, NameTableCache nameTableCache) { + public JavacElementClassImpl(@NotNull Element element, JavacNameTable nameTableCache) { super(element, nameTableCache); } @NotNull @Override public String getName() { - return myNameTableCache.get(myNameTableCache.getBinaryName(myOriginalElement)); + return myNameTableCache.parseName(myNameTableCache.getBinaryName(myOriginalElement)); } @Override public boolean isAnonymous() { - return myNameTableCache.get(myOriginalElement.getSimpleName()).isEmpty(); + return myNameTableCache.parseName(myOriginalElement.getSimpleName()).isEmpty(); } } class JavacElementMethodImpl extends JavacElementRefBase implements JavacMethod { - public JavacElementMethodImpl(@NotNull Element element, NameTableCache nameTableCache) { + public JavacElementMethodImpl(@NotNull Element element, JavacNameTable nameTableCache) { super(element, nameTableCache); } @@ -192,7 +192,7 @@ public interface JavacRef { } class JavacElementFieldImpl extends JavacElementRefBase implements JavacField { - public JavacElementFieldImpl(@NotNull Element element, NameTableCache nameTableCache) { + public JavacElementFieldImpl(@NotNull Element element, JavacNameTable nameTableCache) { super(element, nameTableCache); } }