From 56f3d8189002325ebff0bce132f22f662c7ecbbe Mon Sep 17 00:00:00 2001 From: Gregory Shrago Date: Mon, 6 Jun 2011 22:06:03 +0400 Subject: [PATCH] cleanup: use OpenTHashSet --- .../psi/impl/source/CharTableImpl.java | 210 +++++++++--------- .../util/containers/StringInterner.java | 26 +-- .../vcs/changes/LocalChangeListImpl.java | 23 +- 3 files changed, 114 insertions(+), 145 deletions(-) diff --git a/platform/lang-impl/src/com/intellij/psi/impl/source/CharTableImpl.java b/platform/lang-impl/src/com/intellij/psi/impl/source/CharTableImpl.java index b7af4c0c211b..73209ef430c2 100644 --- a/platform/lang-impl/src/com/intellij/psi/impl/source/CharTableImpl.java +++ b/platform/lang-impl/src/com/intellij/psi/impl/source/CharTableImpl.java @@ -17,10 +17,10 @@ package com.intellij.psi.impl.source; import com.intellij.util.CharTable; +import com.intellij.util.containers.OpenTHashSet; import com.intellij.util.text.CharArrayCharSequence; import com.intellij.util.text.CharArrayUtil; import com.intellij.util.text.CharSequenceHashingStrategy; -import gnu.trove.THashSet; /** * @author max @@ -28,9 +28,9 @@ import gnu.trove.THashSet; public class CharTableImpl implements CharTable { private static final int INTERN_THRESHOLD = 40; // 40 or more characters long tokens won't be interned. private static final CharSequenceHashingStrategy HASHER = new CharSequenceHashingStrategy(); - private static final MyTHashSet STATIC_ENTRIES = new MyStaticTHashSet(); + private static final OpenTHashSet STATIC_ENTRIES = newStaticSet(); - private final MyTHashSet entries = new MyTHashSet(); + private final OpenTHashSet entries = new OpenTHashSet(10, 0.9f, HASHER); public CharSequence intern(final CharSequence text) { if (text.length() > INTERN_THRESHOLD) return createSequence(text); @@ -72,115 +72,103 @@ public class CharTableImpl implements CharTable { } } - private static class MyTHashSet extends THashSet { - private MyTHashSet() { - super(10, 0.9f, HASHER); - } + private static OpenTHashSet newStaticSet() { + final OpenTHashSet r = new OpenTHashSet(10, 0.9f, HASHER); + r.add("==" ); + r.add("!=" ); + r.add("||" ); + r.add("++" ); + r.add("--" ); - public int index(final CharSequence obj) { - return super.index(obj); - } + r.add("<" ); + r.add("<=" ); + r.add("<<=" ); + r.add("<<" ); + r.add(">" ); + r.add("&" ); + r.add("&&" ); - public CharSequence get(int index) { - return (CharSequence)_set[index]; - } + r.add("+=" ); + r.add("-=" ); + r.add("*=" ); + r.add("/=" ); + r.add("&=" ); + r.add("|=" ); + r.add("^=" ); + r.add("%=" ); + + r.add("(" ); + r.add(")" ); + r.add("{" ); + r.add("}" ); + r.add("[" ); + r.add("]" ); + r.add(";" ); + r.add("," ); + r.add("..." ); + r.add("." ); + + r.add("=" ); + r.add("!" ); + r.add("~" ); + r.add("?" ); + r.add(":" ); + r.add("+" ); + r.add("-" ); + r.add("*" ); + r.add("/" ); + r.add("|" ); + r.add("^" ); + r.add("%" ); + r.add("@" ); + + r.add(" " ); + r.add(" " ); + r.add(" " ); + r.add(" " ); + r.add(" " ); + r.add(" " ); + r.add(" " ); + r.add(" " ); + r.add(" " ); + r.add(" " ); + r.add(" " ); + r.add(" " ); + r.add(" " ); + r.add(" " ); + r.add(" " ); + r.add("\n" ); + r.add("\n " ); + r.add("\n " ); + r.add("\n " ); + r.add("\n " ); + r.add("\n " ); + r.add("\n " ); + r.add("\n " ); + r.add("\n " ); + + r.add("<"); + r.add(">"); + r.add(""); + r.add("\""); + r.add("\'"); + r.add(""); + r.add(""); + r.add(""); + + r.add("<%"); + r.add("%>"); + r.add("<%="); + r.add("<%@"); + r.add("${"); + r.add(""); + return r; } - - private static class MyStaticTHashSet extends MyTHashSet {{ - add("==" ); - add("!=" ); - add("||" ); - add("++" ); - add("--" ); - - add("<" ); - add("<=" ); - add("<<=" ); - add("<<" ); - add(">" ); - add("&" ); - add("&&" ); - - add("+=" ); - add("-=" ); - add("*=" ); - add("/=" ); - add("&=" ); - add("|=" ); - add("^=" ); - add("%=" ); - - add("(" ); - add(")" ); - add("{" ); - add("}" ); - add("[" ); - add("]" ); - add(";" ); - add("," ); - add("..." ); - add("." ); - - add("=" ); - add("!" ); - add("~" ); - add("?" ); - add(":" ); - add("+" ); - add("-" ); - add("*" ); - add("/" ); - add("|" ); - add("^" ); - add("%" ); - add("@" ); - - add(" " ); - add(" " ); - add(" " ); - add(" " ); - add(" " ); - add(" " ); - add(" " ); - add(" " ); - add(" " ); - add(" " ); - add(" " ); - add(" " ); - add(" " ); - add(" " ); - add(" " ); - add("\n" ); - add("\n " ); - add("\n " ); - add("\n " ); - add("\n " ); - add("\n " ); - add("\n " ); - add("\n " ); - add("\n " ); - - add("<"); - add(">"); - add(""); - add("\""); - add("\'"); - add(""); - add(""); - add(""); - - add("<%"); - add("%>"); - add("<%="); - add("<%@"); - add("${"); - add(""); - }} } diff --git a/platform/util/src/com/intellij/util/containers/StringInterner.java b/platform/util/src/com/intellij/util/containers/StringInterner.java index 5042cc44fa48..4fcb2bb4493f 100644 --- a/platform/util/src/com/intellij/util/containers/StringInterner.java +++ b/platform/util/src/com/intellij/util/containers/StringInterner.java @@ -15,32 +15,26 @@ */ package com.intellij.util.containers; -import gnu.trove.THashSet; import org.jetbrains.annotations.NotNull; /** * @author max */ public class StringInterner { - private static class MySet extends THashSet { - public String intern(String name) { - int idx = index(name); - if (idx >= 0) { - return (String)_set[idx]; - } - boolean added = add(name); - assert added; - - return name; - } - } - - private final MySet mySet = new MySet(); + private final OpenTHashSet mySet = new OpenTHashSet(); @NotNull public String intern(@NotNull String name) { - return mySet.intern(name); + int idx = mySet.index(name); + if (idx >= 0) { + return mySet.get(idx); + } + + boolean added = mySet.add(name); + assert added; + + return name; } public void clear() { diff --git a/platform/vcs-impl/src/com/intellij/openapi/vcs/changes/LocalChangeListImpl.java b/platform/vcs-impl/src/com/intellij/openapi/vcs/changes/LocalChangeListImpl.java index 0ba07a00f98e..27bee8df6d9f 100644 --- a/platform/vcs-impl/src/com/intellij/openapi/vcs/changes/LocalChangeListImpl.java +++ b/platform/vcs-impl/src/com/intellij/openapi/vcs/changes/LocalChangeListImpl.java @@ -7,7 +7,7 @@ import com.intellij.openapi.util.Comparing; import com.intellij.openapi.vcs.history.VcsRevisionNumber; import com.intellij.openapi.vcs.impl.ExcludedFileIndex; import com.intellij.openapi.vfs.VirtualFile; -import gnu.trove.THashSet; +import com.intellij.util.containers.OpenTHashSet; import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; @@ -28,7 +28,7 @@ public class LocalChangeListImpl extends LocalChangeList { private boolean myIsDefault = false; private boolean myIsReadOnly = false; - private ChangeHashSet myChangesBeforeUpdate; + private OpenTHashSet myChangesBeforeUpdate; public static LocalChangeListImpl createEmptyChangeListImpl(Project project, String name) { return new LocalChangeListImpl(project, name); @@ -131,7 +131,7 @@ public class LocalChangeListImpl extends LocalChangeList { synchronized Collection startProcessingChanges(final Project project, @Nullable final VcsDirtyScope scope) { createReadChangesCache(); final Collection result = new ArrayList(); - myChangesBeforeUpdate = new ChangeHashSet(myChanges); + myChangesBeforeUpdate = new OpenTHashSet(myChanges); final ExcludedFileIndex fileIndex = ExcludedFileIndex.getInstance(project); for (Change oldBoy : myChangesBeforeUpdate) { final ContentRevision before = oldBoy.getBeforeRevision(); @@ -198,7 +198,7 @@ public class LocalChangeListImpl extends LocalChangeList { @Nullable private Change findOldChange(final Change newChange) { - Change oldChange = myChangesBeforeUpdate.getEqualChange(newChange); + Change oldChange = myChangesBeforeUpdate.get(newChange); if (oldChange != null && sameBeforeRevision(oldChange, newChange) && newChange.getFileStatus().equals(oldChange.getFileStatus())) { return oldChange; @@ -252,7 +252,7 @@ public class LocalChangeListImpl extends LocalChangeList { } if (myChangesBeforeUpdate != null) { - copy.myChangesBeforeUpdate = new ChangeHashSet(myChangesBeforeUpdate); + copy.myChangesBeforeUpdate = new OpenTHashSet((Collection)myChangesBeforeUpdate); } if (myReadChangesCache != null) { @@ -270,17 +270,4 @@ public class LocalChangeListImpl extends LocalChangeList { public void setId(String id) { myId = id; } - - private static class ChangeHashSet extends THashSet { - public ChangeHashSet(final Collection changes) { - super(changes); - } - - @Nullable - Change getEqualChange(Change other) { - int aIndex = index(other); - if (aIndex >= 0) return (Change)_set [aIndex]; - return null; - } - } }