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