| /* |
| ******************************************************************************* |
| * Copyright (C) 1998-2004, International Business Machines Corporation and * |
| * others. All Rights Reserved. * |
| ******************************************************************************* |
| * |
| * Created on Dec 3, 2003 |
| * |
| ******************************************************************************* |
| */ |
| package com.ibm.icu.dev.tool.layout; |
| |
| public class LookupList |
| { |
| private Lookup[] lookups; |
| private int lookupCount; |
| |
| public LookupList() |
| { |
| lookups = new Lookup[10]; |
| lookupCount = 0; |
| } |
| |
| public int addLookup(Lookup lookup) |
| { |
| if (lookupCount >= lookups.length) { |
| Lookup[] newLookups = new Lookup[lookups.length + 5]; |
| |
| System.arraycopy(lookups, 0, newLookups, 0, lookups.length); |
| lookups = newLookups; |
| } |
| |
| lookups[lookupCount] = lookup; |
| |
| return lookupCount++; |
| } |
| |
| public void writeLookupList(OpenTypeTableWriter writer) |
| { |
| System.out.println("writing lookup list..."); |
| |
| int lookupListBase = writer.getOutputIndex(); |
| |
| writer.writeData(lookupCount); |
| |
| int lookupOffset = writer.getOutputIndex(); |
| |
| for (int i = 0; i < lookupCount; i += 1) { |
| writer.writeData(0); // Offset to lookup (fixed later); |
| } |
| |
| for (int i = 0; i < lookupCount; i += 1) { |
| writer.fixOffset(lookupOffset++, lookupListBase); |
| lookups[i].writeLookup(writer); |
| } |
| } |
| } |