• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 // © 2016 and later: Unicode, Inc. and others.
2 // License & terms of use: http://www.unicode.org/copyright.html#License
3 /*
4  *******************************************************************************
5  * Copyright (C) 2002-2004, International Business Machines Corporation and    *
6  * others. All Rights Reserved.                                                *
7  *******************************************************************************
8  */
9 
10 package com.ibm.icu.dev.tool.layout;
11 
12 
13 class Feature extends TaggedRecord
14 {
15     private int[] lookupIndices;
16     private int lookupCount;
17     private int featureIndex;
18 
Feature(String theFeatureTag)19     public Feature(String theFeatureTag)
20     {
21         super(theFeatureTag);
22 
23         lookupIndices = new int[10];
24         lookupCount = 0;
25         featureIndex = -1;
26     }
27 
addLookup(int theLookupIndex)28     public void addLookup(int theLookupIndex)
29     {
30         if (lookupCount >= lookupIndices.length) {
31             int[] newLookupIndices = new int[lookupIndices.length + 5];
32 
33             System.arraycopy(lookupIndices, 0, newLookupIndices, 0, lookupIndices.length);
34             lookupIndices = newLookupIndices;
35         }
36 
37         lookupIndices[lookupCount] = theLookupIndex;
38         lookupCount += 1;
39     }
40 
writeFeature(OpenTypeTableWriter writer)41     public void writeFeature(OpenTypeTableWriter writer)
42     {
43         writer.writeData(0);      // featureParams (must be NULL)
44 
45         writer.writeData(lookupCount);
46 
47         for (int i = 0; i < lookupCount; i += 1) {
48             writer.writeData(lookupIndices[i]);
49         }
50     }
51 
getFeatureIndex()52     public int getFeatureIndex()
53     {
54         return featureIndex;
55     }
56 
setFeatureIndex(int index)57     public void setFeatureIndex(int index)
58     {
59         featureIndex = index;
60     }
61 }