X-Git-Url: http://gitweb.fperrin.net/?a=blobdiff_plain;f=src%2Fcom%2Fhughes%2Fandroid%2Fdictionary%2Fengine%2FAbstractEntry.java;h=4563017bcc2a15afc44c0bcaf6c439c8311524ab;hb=8674b09eae371994e01e0af541b546fced86c366;hp=aee7151085c9c75dbed48f97ae6ccf9eafe524ce;hpb=1736ec57730a60b560f7afb16a88bb94460f4c39;p=Dictionary.git diff --git a/src/com/hughes/android/dictionary/engine/AbstractEntry.java b/src/com/hughes/android/dictionary/engine/AbstractEntry.java index aee7151..4563017 100644 --- a/src/com/hughes/android/dictionary/engine/AbstractEntry.java +++ b/src/com/hughes/android/dictionary/engine/AbstractEntry.java @@ -1,8 +1,52 @@ +// 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.DataOutput; +import java.io.IOException; + +import com.hughes.util.IndexedObject; +import com.hughes.util.StringUtil; + +public abstract class AbstractEntry extends IndexedObject { + + public final EntrySource entrySource; + + AbstractEntry(EntrySource entrySource) { + super(-1); + this.entrySource = entrySource; + } + + AbstractEntry(Dictionary dictionary, DataInput raf, final int index) + throws IOException { + super(index); + if (dictionary.dictFileVersion >= 1) { + final int entrySourceIdx = dictionary.dictFileVersion >= 7 ? StringUtil.readVarInt(raf) : raf.readShort(); + this.entrySource = dictionary.sources.get(entrySourceIdx); + } else { + this.entrySource = null; + } + } + + void write(DataOutput raf) throws IOException { + StringUtil.writeVarInt(raf, entrySource.index()); + } + + public abstract void addToDictionary(final Dictionary dictionary); -public abstract class AbstractEntry { + public abstract RowBase CreateRow(int rowIndex, Index dictionaryIndex); - public abstract int addToDictionary(final Dictionary dictionary); - }