1 18 package org.apache.batik.svggen.font.table; 19 20 import java.io.IOException ; 21 import java.io.RandomAccessFile ; 22 23 28 public class FeatureList { 29 30 private int featureCount; 31 private FeatureRecord[] featureRecords; 32 private Feature[] features; 33 34 35 public FeatureList(RandomAccessFile raf, int offset) throws IOException { 36 raf.seek(offset); 37 featureCount = raf.readUnsignedShort(); 38 featureRecords = new FeatureRecord[featureCount]; 39 features = new Feature[featureCount]; 40 for (int i = 0; i < featureCount; i++) { 41 featureRecords[i] = new FeatureRecord(raf); 42 } 43 for (int i = 0; i < featureCount; i++) { 44 features[i] = new Feature(raf, offset + featureRecords[i].getOffset()); 45 } 46 } 47 48 public Feature findFeature(LangSys langSys, String tag) { 49 if (tag.length() != 4) { 50 return null; 51 } 52 int tagVal = ((tag.charAt(0)<<24) 53 | (tag.charAt(1)<<16) 54 | (tag.charAt(2)<<8) 55 | tag.charAt(3)); 56 for (int i = 0; i < featureCount; i++) { 57 if (featureRecords[i].getTag() == tagVal) { 58 if (langSys.isFeatureIndexed(i)) { 59 return features[i]; 60 } 61 } 62 } 63 return null; 64 } 65 66 } 67 | Popular Tags |