X-Git-Url: http://gitweb.fperrin.net/?a=blobdiff_plain;f=src%2Fcom%2Fhughes%2Fandroid%2Fdictionary%2Fengine%2FTokenRow.java;h=4565fcc80c3e254c3248cf7e41880a4678c2f549;hb=8674b09eae371994e01e0af541b546fced86c366;hp=e40d124b5e7800b3d80722bfea4ae076c939169c;hpb=4b031e28dc75b564ae405ea4ce6d323dff75898c;p=Dictionary.git diff --git a/src/com/hughes/android/dictionary/engine/TokenRow.java b/src/com/hughes/android/dictionary/engine/TokenRow.java index e40d124..4565fcc 100644 --- a/src/com/hughes/android/dictionary/engine/TokenRow.java +++ b/src/com/hughes/android/dictionary/engine/TokenRow.java @@ -1,46 +1,84 @@ +// Copyright 2011 Google Inc. All Rights Reserved. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + package com.hughes.android.dictionary.engine; +import java.io.DataInput; import java.io.IOException; import java.io.PrintStream; -import java.io.RandomAccessFile; +import java.util.List; +import java.util.regex.Pattern; + +import com.hughes.android.dictionary.engine.Index.IndexEntry; +import com.ibm.icu.text.Transliterator; public class TokenRow extends RowBase { - - TokenRow(final RandomAccessFile raf, final int thisRowIndex, final Index index) throws IOException { - super(raf, thisRowIndex, index); - } - - TokenRow(final int referenceIndex, final int thisRowIndex, final Index index) { - super(referenceIndex, thisRowIndex, index); - } - - public String toString() { - return getToken() + "@" + referenceIndex; - } - - @Override - public TokenRow getTokenRow(final boolean search) { - return this; - } - - @Override - public void setTokenRow(TokenRow tokenRow) { - throw new RuntimeException("Shouldn't be setting TokenRow's TokenRow!"); - } - - public String getToken() { - return index.sortedIndexEntries.get(referenceIndex).token; - } - - @Override - public void print(final PrintStream out) { - out.println(getToken()); - } - - @Override - public String getRawText(boolean compact) { - return getToken(); - } + public final boolean hasMainEntry; + + TokenRow(final DataInput raf, final int thisRowIndex, final Index index, + final boolean hasMainEntry, int extra) throws IOException { + super(raf, thisRowIndex, index, extra); + this.hasMainEntry = hasMainEntry; + } + + TokenRow(final int referenceIndex, final int thisRowIndex, final Index index, + final boolean hasMainEntry) { + super(referenceIndex, thisRowIndex, index); + this.hasMainEntry = hasMainEntry; + } + + public String toString() { + return getToken() + "@" + referenceIndex; + } + + @Override + public TokenRow getTokenRow(final boolean search) { + return this; + } + + @Override + public void setTokenRow(TokenRow tokenRow) { + throw new RuntimeException("Shouldn't be setting TokenRow's TokenRow!"); + } + + public String getToken() { + return getIndexEntry().token; + } + + public IndexEntry getIndexEntry() { + return index.sortedIndexEntries.get(referenceIndex); + } + + @Override + public void print(final PrintStream out) { + final String surrounder = hasMainEntry ? "***" : "==="; + out.println(surrounder + getToken() + surrounder); + for (final HtmlEntry htmlEntry : index.sortedIndexEntries.get(referenceIndex).htmlEntries) { + out.println("HtmlEntry: " + htmlEntry.title + " <<<" + htmlEntry.getHtml() + ">>>"); + } + } + + @Override + public String getRawText(boolean compact) { + return getToken(); + } + + @Override + public RowMatchType matches(List searchTokens, final Pattern orderedMatchPattern, + Transliterator normalizer, boolean swapPairEntries) { + return RowMatchType.NO_MATCH; + } }