package net.minecraft.command.parser; import java.util.HashSet; import java.util.Set; import java.util.regex.Matcher; import java.util.regex.Pattern; public final class MatcherRegistry { private static int count = 0; private static final Set<MatcherRegistry> matchers = new HashSet<>(); public final Pattern pattern; public MatcherRegistry(final Pattern pattern) { this.pattern = pattern; } public MatcherRegistry(final String pattern) { this.pattern = Pattern.compile(pattern); } private int id = -1; public int getId() { return this.id; } public Matcher matcher(final String toMatch) { return this.pattern.matcher(toMatch); } public static int getCount() { return count; } public void init() { if (matchers.add(this)) this.id = count++; } public void aliasId(final MatcherRegistry m) { this.id = m.id; matchers.add(this); } public static void clear() { count = 0; for (final MatcherRegistry m : matchers) m.id = -1; matchers.clear(); } }