]> gitweb.fperrin.net Git - Dictionary.git/blob - src/com/hughes/android/dictionary/engine/AbstractEntry.java
First decent implementation of HtmlEntry attached to TokenRow.
[Dictionary.git] / src / com / hughes / android / dictionary / engine / AbstractEntry.java
1 // Copyright 2011 Google Inc. All Rights Reserved.
2 //
3 // Licensed under the Apache License, Version 2.0 (the "License");
4 // you may not use this file except in compliance with the License.
5 // You may obtain a copy of the License at
6 //
7 //     http://www.apache.org/licenses/LICENSE-2.0
8 //
9 // Unless required by applicable law or agreed to in writing, software
10 // distributed under the License is distributed on an "AS IS" BASIS,
11 // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12 // See the License for the specific language governing permissions and
13 // limitations under the License.
14
15 package com.hughes.android.dictionary.engine;
16
17 import com.hughes.util.IndexedObject;
18
19 import java.io.IOException;
20 import java.io.RandomAccessFile;
21
22
23 public abstract class AbstractEntry extends IndexedObject {
24   
25   final EntrySource entrySource;
26   
27   protected AbstractEntry(EntrySource entrySource) {
28     super(-1);
29     this.entrySource = entrySource;
30   }
31
32   public AbstractEntry(Dictionary dictionary, RandomAccessFile raf, final int index) throws IOException {
33     super(index);
34     if (dictionary.dictFileVersion >= 1) {
35       final int entrySouceIdx = raf.readShort();
36       this.entrySource = dictionary.sources.get(entrySouceIdx);
37     } else {
38       this.entrySource = null;
39     }
40   }
41
42   public void write(RandomAccessFile raf) throws IOException {
43     raf.writeShort(entrySource.index());
44   }
45
46   public abstract void addToDictionary(final Dictionary dictionary);
47
48   public abstract RowBase CreateRow(int rowIndex, Index dictionaryIndex);
49
50 }