2 *******************************************************************************
3 * Copyright (C) 1998-2004, International Business Machines Corporation and *
4 * others. All Rights Reserved. *
5 *******************************************************************************
7 * Created on Dec 3, 2003
9 *******************************************************************************
11 package com.ibm.icu.dev.tool.layout;
14 public class FeatureList
17 private Feature[] features;
18 private int featureCount;
22 features = new Feature[10];
26 public void addFeature(Feature feature)
28 if (featureCount >= features.length) {
29 Feature[] newFeatures = new Feature[features.length + 5];
31 System.arraycopy(features, 0, newFeatures, 0, features.length);
32 features = newFeatures;
35 features[featureCount++] = feature;
38 public void finalizeFeatureList()
40 TaggedRecord.sort(features, featureCount);
42 for (int i = 0; i < featureCount; i += 1) {
43 features[i].setFeatureIndex(i);
47 public void writeFeaturetList(OpenTypeTableWriter writer)
49 System.out.print("writing feature list...");
51 int featureListBase = writer.getOutputIndex();
53 writer.writeData(featureCount);
55 int featureRecordOffset = writer.getOutputIndex();
57 for (int i = 0; i < featureCount; i += 1) {
58 String tag = features[i].getTag();
60 System.out.print(" '" + tag + "'");
65 for (int i = 0; i < featureCount; i += 1) {
66 // fix the offset in the featureRecordArray.
67 // The "+2" skips over the tag and the "+3"
68 // skips to the next featureRecord entry
69 writer.fixOffset(featureRecordOffset + 2, featureListBase);
70 featureRecordOffset += 3;
72 features[i].writeFeature(writer);