diff options
author | Arno Teigseth <arno@teigseth.no> | 2011-02-05 08:48:27 +0000 |
---|---|---|
committer | Arno Teigseth <arno@teigseth.no> | 2011-02-05 08:48:27 +0000 |
commit | 4f3d565a5e5ede6eb6fd1f276d4e8ad37b67b5ce (patch) | |
tree | 7af736540eca93034428a975bd850e709fbbe2e5 /JLanguageTool/src/java/de/danielnaber/languagetool/AnalyzedToken.java | |
parent | ecaee85ab5984ebadd56721c295dc26b3335f7ce (diff) | |
download | grammar-norwegian-4f3d565a5e5ede6eb6fd1f276d4e8ad37b67b5ce.tar.gz grammar-norwegian-4f3d565a5e5ede6eb6fd1f276d4e8ad37b67b5ce.tar.bz2 grammar-norwegian-4f3d565a5e5ede6eb6fd1f276d4e8ad37b67b5ce.tar.xz |
Diffstat (limited to 'JLanguageTool/src/java/de/danielnaber/languagetool/AnalyzedToken.java')
-rw-r--r-- | JLanguageTool/src/java/de/danielnaber/languagetool/AnalyzedToken.java | 137 |
1 files changed, 137 insertions, 0 deletions
diff --git a/JLanguageTool/src/java/de/danielnaber/languagetool/AnalyzedToken.java b/JLanguageTool/src/java/de/danielnaber/languagetool/AnalyzedToken.java new file mode 100644 index 0000000..d36274a --- /dev/null +++ b/JLanguageTool/src/java/de/danielnaber/languagetool/AnalyzedToken.java @@ -0,0 +1,137 @@ +/* LanguageTool, a natural language style checker + * Copyright (C) 2005 Daniel Naber (http://www.danielnaber.de) + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 + * USA + */ +package de.danielnaber.languagetool; + +/** + * A word (or punctuation, or whitespace) and its part-of-speech tag. + * + * @author Daniel Naber + */ +public class AnalyzedToken { + + private final String token; + private final String posTag; + private final String lemma; + + /** + * used only for matching with Elements + */ + private final String tokenInflected; + + private boolean isWhitespaceBefore; + + public AnalyzedToken(final String token, final String posTag, final String lemma) { + if (token == null) { + throw new NullPointerException("Token cannot be null!"); + } + this.token = token; + this.posTag = posTag; + this.lemma = lemma; + if (lemma == null) { + tokenInflected = token; + } else { + tokenInflected = lemma; + } + } + + public final String getToken() { + return token; + } + + public final String getPOSTag() { + return posTag; + } + + public final String getLemma() { + return lemma; + } + + public final String getTokenInflected() { + return tokenInflected; + } + + public final void setWhitespaceBefore(final boolean isWhite) { + isWhitespaceBefore = isWhite; + } + + public final boolean isWhitespaceBefore() { + return isWhitespaceBefore; + } + + public String toString() { + final StringBuilder sb = new StringBuilder(); + sb.append(tokenInflected); + sb.append('/'); + sb.append(posTag); + return sb.toString(); + } + + @Override + public final int hashCode() { + // TODO: use Apache Commons Lang HashCodeBuilder + final int prime = 31; + int result = 1; + result = prime * result + (isWhitespaceBefore ? 1231 : 1237); + result = prime * result + ((lemma == null) ? 0 : lemma.hashCode()); + result = prime * result + ((posTag == null) ? 0 : posTag.hashCode()); + result = prime * result + ((token == null) ? 0 : token.hashCode()); + return result; + } + + @Override + public final boolean equals(final Object obj) { + // TODO: use Apache Commons Lang EqualsBuilder + if (this == obj) { + return true; + } + if (obj == null) { + return false; + } + if (getClass() != obj.getClass()) { + return false; + } + final AnalyzedToken other = (AnalyzedToken) obj; + if (isWhitespaceBefore != other.isWhitespaceBefore) { + return false; + } + if (lemma == null) { + if (other.lemma != null) { + return false; + } + } else if (!lemma.equals(other.lemma)) { + return false; + } + if (posTag == null) { + if (other.posTag != null) { + return false; + } + } else if (!posTag.equals(other.posTag)) { + return false; + } + if (token == null) { + if (other.token != null) { + return false; + } + } else if (!token.equals(other.token)) { + return false; + } + return true; + } + +} |