summaryrefslogtreecommitdiffstats
path: root/JLanguageTool/src/java/de/danielnaber/languagetool/AnalyzedToken.java
diff options
context:
space:
mode:
authorArno Teigseth <arno@teigseth.no>2011-02-05 08:48:27 +0000
committerArno Teigseth <arno@teigseth.no>2011-02-05 08:48:27 +0000
commit4f3d565a5e5ede6eb6fd1f276d4e8ad37b67b5ce (patch)
tree7af736540eca93034428a975bd850e709fbbe2e5 /JLanguageTool/src/java/de/danielnaber/languagetool/AnalyzedToken.java
parentecaee85ab5984ebadd56721c295dc26b3335f7ce (diff)
downloadgrammar-norwegian-4f3d565a5e5ede6eb6fd1f276d4e8ad37b67b5ce.tar.gz
grammar-norwegian-4f3d565a5e5ede6eb6fd1f276d4e8ad37b67b5ce.tar.bz2
grammar-norwegian-4f3d565a5e5ede6eb6fd1f276d4e8ad37b67b5ce.tar.xz
added more files, to complete languagetool uploadHEADmaster
Diffstat (limited to 'JLanguageTool/src/java/de/danielnaber/languagetool/AnalyzedToken.java')
-rw-r--r--JLanguageTool/src/java/de/danielnaber/languagetool/AnalyzedToken.java137
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;
+ }
+
+}