]> gitweb.fperrin.net Git - Dictionary.git/blob - src/com/hughes/android/dictionary/engine/PairEntry.java
go
[Dictionary.git] / src / com / hughes / android / dictionary / engine / PairEntry.java
1 package com.hughes.android.dictionary.engine;
2
3 import java.io.IOException;
4 import java.io.PrintStream;
5 import java.io.RandomAccessFile;
6
7 import com.hughes.util.raf.RAFSerializable;
8 import com.hughes.util.raf.RAFSerializer;
9
10 public class PairEntry extends Entry implements RAFSerializable<PairEntry> {
11   
12   public static final class Pair {
13     final String lang1;
14     final String lang2;
15     public Pair(final String lang1, final String lang2) {
16       this.lang1 = lang1;
17       this.lang2 = lang2;
18     }
19     public String toString() {
20       return lang1 + " :: " + lang2;
21     }
22   }
23   
24   final Pair[] pairs;
25   
26   public PairEntry(final Pair[] pairs) {
27     this.pairs = pairs;
28   }
29   
30   public PairEntry(final RandomAccessFile raf) throws IOException {
31     pairs = new Pair[raf.readInt()];
32     for (int i = 0; i < pairs.length; ++i) {
33       pairs[i] = new Pair(raf.readUTF(), raf.readUTF());
34     }
35   }
36   @Override
37   public void write(RandomAccessFile raf) throws IOException {
38     // TODO: this could be a short.
39     raf.writeInt(pairs.length);
40     for (int i = 0; i < pairs.length; ++i) {
41       raf.writeUTF(pairs[i].lang1);
42       raf.writeUTF(pairs[i].lang2);
43     }
44   }
45   
46   static final RAFSerializer<PairEntry> SERIALIZER = new RAFSerializer<PairEntry>() {
47     @Override
48     public PairEntry read(RandomAccessFile raf) throws IOException {
49       return new PairEntry(raf);
50     }
51
52     @Override
53     public void write(RandomAccessFile raf, PairEntry t) throws IOException {
54       t.write(raf);
55     }
56   };
57   
58
59   public static class Row extends RowBase {
60     
61     Row(final RandomAccessFile raf, final int thisRowIndex,
62         final Index index) throws IOException {
63       super(raf, thisRowIndex, index);
64     }
65
66     Row(final int referenceIndex, final int thisRowIndex,
67         final Index index) {
68       super(referenceIndex, thisRowIndex, index);
69     }
70
71     public PairEntry getEntry() {
72       return index.dict.pairEntries.get(referenceIndex);
73     }
74     
75     @Override
76     public Object draw(String searchText) {
77       // TODO Auto-generated method stub
78       return null;
79     }
80
81     @Override
82     public void print(PrintStream out) {
83       final PairEntry pairEntry = getEntry();
84       for (int i = 0; i < pairEntry.pairs.length; ++i) {
85         out.print((i == 0 ? "  " : "    ") + pairEntry.pairs[i]);
86         out.println();
87       }
88     }
89   }
90
91
92
93 }