]> gitweb.fperrin.net Git - Dictionary.git/blob - jars/icu4j-4_4_2-src/tools/misc/src/com/ibm/icu/dev/tool/layout/LookupList.java
go
[Dictionary.git] / jars / icu4j-4_4_2-src / tools / misc / src / com / ibm / icu / dev / tool / layout / LookupList.java
1 /*\r
2  *******************************************************************************\r
3  * Copyright (C) 1998-2004, International Business Machines Corporation and    *\r
4  * others. All Rights Reserved.                                                *\r
5  *******************************************************************************\r
6  *\r
7  * Created on Dec 3, 2003\r
8  *\r
9  *******************************************************************************\r
10  */\r
11 package com.ibm.icu.dev.tool.layout;\r
12 \r
13 public class LookupList\r
14 {\r
15     private Lookup[] lookups;\r
16     private int lookupCount;\r
17     \r
18     public LookupList()\r
19     {\r
20         lookups = new Lookup[10];\r
21         lookupCount = 0;\r
22     }\r
23     \r
24     public int addLookup(Lookup lookup)\r
25     {\r
26         if (lookupCount >= lookups.length) {\r
27             Lookup[] newLookups = new Lookup[lookups.length + 5];\r
28             \r
29             System.arraycopy(lookups, 0, newLookups, 0, lookups.length);\r
30             lookups = newLookups;\r
31         }\r
32         \r
33         lookups[lookupCount] = lookup;\r
34         \r
35         return lookupCount++;\r
36     }\r
37     \r
38     public void writeLookupList(OpenTypeTableWriter writer)\r
39     {\r
40         System.out.println("writing lookup list...");\r
41         \r
42         int lookupListBase = writer.getOutputIndex();\r
43         \r
44         writer.writeData(lookupCount);\r
45         \r
46         int lookupOffset = writer.getOutputIndex();\r
47         \r
48         for (int i = 0; i < lookupCount; i += 1) {\r
49             writer.writeData(0); // Offset to lookup (fixed later);\r
50         }\r
51         \r
52         for (int i = 0; i < lookupCount; i += 1) {\r
53             writer.fixOffset(lookupOffset++, lookupListBase);\r
54             lookups[i].writeLookup(writer);\r
55         }\r
56     }\r
57 }