Skip to content

Commit f8c0de9

Browse files
committed
Improve performance of fetching all ingredients
1 parent 21d1093 commit f8c0de9

File tree

1 file changed

+6
-4
lines changed

1 file changed

+6
-4
lines changed

Gui/src/main/java/mezz/jei/gui/search/ElementSearch.java

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,7 @@ public class ElementSearch implements IElementSearch {
2222

2323
private final Map<PrefixInfo<IListElementInfo<?>, IListElement<?>>, PrefixedSearchable<IListElementInfo<?>, IListElement<?>>> prefixedSearchables = new IdentityHashMap<>();
2424
private final CombinedSearchables<IListElement<?>> combinedSearchables = new CombinedSearchables<>();
25+
private final Set<IListElement<?>> allElements = Collections.newSetFromMap(new IdentityHashMap<>());
2526

2627
public ElementSearch(ElementPrefixParser elementPrefixParser) {
2728
for (PrefixInfo<IListElementInfo<?>, IListElement<?>> prefixInfo : elementPrefixParser.allPrefixInfos()) {
@@ -57,6 +58,7 @@ public Set<IListElement<?>> getSearchResults(ElementPrefixParser.TokenInfo token
5758

5859
@Override
5960
public void add(IListElementInfo<?> info) {
61+
this.allElements.add(info.getElement());
6062
for (PrefixedSearchable<IListElementInfo<?>, IListElement<?>> prefixedSearchable : this.prefixedSearchables.values()) {
6163
SearchMode searchMode = prefixedSearchable.getMode();
6264
if (searchMode != SearchMode.DISABLED) {
@@ -71,6 +73,9 @@ public void add(IListElementInfo<?> info) {
7173

7274
@Override
7375
public void addAll(Collection<IListElementInfo<?>> infos) {
76+
for (IListElementInfo<?> info : infos) {
77+
this.allElements.add(info.getElement());
78+
}
7479
for (PrefixedSearchable<IListElementInfo<?>, IListElement<?>> prefixedSearchable : this.prefixedSearchables.values()) {
7580
SearchMode searchMode = prefixedSearchable.getMode();
7681
if (searchMode != SearchMode.DISABLED) {
@@ -87,10 +92,7 @@ public void addAll(Collection<IListElementInfo<?>> infos) {
8792

8893
@Override
8994
public Set<IListElement<?>> getAllIngredients() {
90-
Set<IListElement<?>> results = Collections.newSetFromMap(new IdentityHashMap<>());
91-
PrefixedSearchable<IListElementInfo<?>, IListElement<?>> noPrefixSearchables = this.prefixedSearchables.get(ElementPrefixParser.NO_PREFIX);
92-
noPrefixSearchables.getAllElements(results::addAll);
93-
return results;
95+
return Collections.unmodifiableSet(allElements);
9496
}
9597

9698
@Override

0 commit comments

Comments
 (0)