From 7514478a65b5841d1ec9532f8d95d9863265b9c2 Mon Sep 17 00:00:00 2001 From: Douglas Lovell Date: Thu, 29 Oct 2015 15:28:23 -0600 Subject: [PATCH] Make the transition token the hash key for a transition --- .../java/org/ahocorasick/trie/Transition.java | 27 +++++++++++++++++++ 1 file changed, 27 insertions(+) diff --git a/src/main/java/org/ahocorasick/trie/Transition.java b/src/main/java/org/ahocorasick/trie/Transition.java index 382213b..d20ecd6 100644 --- a/src/main/java/org/ahocorasick/trie/Transition.java +++ b/src/main/java/org/ahocorasick/trie/Transition.java @@ -15,6 +15,8 @@ */ package org.ahocorasick.trie; +import java.util.Objects; + /** * Enables the trie to model transitions on whole words or characters * ... or whatever! @@ -23,12 +25,37 @@ package org.ahocorasick.trie; */ public abstract class Transition { protected final T token; + public Transition(T token) { this.token = token; } + public T transitionToken() { return token; } + public abstract void updateMatch(StringBuilder match); public abstract boolean isWordSeparator(); + + @Override + public String toString() { + return "Transition on " + token; + } + + @Override + public int hashCode() { + return token.hashCode(); + } + + @Override + public boolean equals(Object obj) { + if (obj == null) { + return false; + } + if (getClass() != obj.getClass()) { + return false; + } + final Transition other = (Transition) obj; + return Objects.equals(this.token, other.token); + } }