]> gitweb.fperrin.net Git - Dictionary.git/blob - src/com/hughes/android/dictionary/engine/Dictionary.java
go
[Dictionary.git] / src / com / hughes / android / dictionary / engine / Dictionary.java
1 package com.hughes.android.dictionary.engine;
2
3 import java.io.IOException;
4 import java.io.RandomAccessFile;
5 import java.util.ArrayList;
6 import java.util.List;
7
8 import com.hughes.util.raf.RAFList;
9 import com.hughes.util.raf.RAFSerializer;
10
11
12 public class Dictionary {
13   
14   // persisted
15   final List<PairEntry> pairEntries;
16   
17   // persisted
18   final List<EntrySource> sources;
19   
20   // persisted
21   final List<Index> indices;
22   
23   public Dictionary() {
24     pairEntries = new ArrayList<PairEntry>();
25     sources = new ArrayList<EntrySource>();
26     indices = new ArrayList<Index>();
27   }
28
29   public Dictionary(final RandomAccessFile raf) throws IOException {
30     pairEntries = RAFList.create(raf, PairEntry.SERIALIZER, raf.getFilePointer());
31     sources = new ArrayList<EntrySource>();
32
33     final RAFSerializer<Index> indexSerializer = new RAFSerializer<Index>() {
34
35       @Override
36       public Index read(RandomAccessFile raf) throws IOException {
37         return new Index(Dictionary.this, raf);
38       }
39
40       @Override
41       public void write(RandomAccessFile raf, Index t) throws IOException {
42         t.write(raf);
43         
44       }};
45     indices = RAFList.create(raf, indexSerializer, raf.getFilePointer());
46   }
47   
48 }