public Feature findFeature(final LangSys langSys, final String tag) { if (tag.length() != 4) { return null; } final int tagVal = ((tag.charAt(0)<<24) | (tag.charAt(1)<<16) | (tag.charAt(2)<<8) | tag.charAt(3)); for (int i = 0; i < _featureCount; i++) { if (_featureRecords[i].getTag() == tagVal) { if (langSys.isFeatureIndexed(i)) { return _features[i]; } } } return null; }
/** Creates new ScriptTable */ protected Script(final DataInputStream dis, final int offset) throws IOException { // Ensure we're in the right place dis.reset(); dis.skipBytes(offset); // Start reading _defaultLangSysOffset = dis.readUnsignedShort(); _langSysCount = dis.readUnsignedShort(); if (_langSysCount > 0) { _langSysRecords = new LangSysRecord[_langSysCount]; for (int i = 0; i < _langSysCount; i++) { _langSysRecords[i] = new LangSysRecord(dis); } } // Read the LangSys tables if (_langSysCount > 0) { _langSys = new LangSys[_langSysCount]; for (int i = 0; i < _langSysCount; i++) { dis.reset(); dis.skipBytes(offset + _langSysRecords[i].getOffset()); _langSys[i] = new LangSys(dis); } } if (_defaultLangSysOffset > 0) { dis.reset(); dis.skipBytes(offset + _defaultLangSysOffset); _defaultLangSys = new LangSys(dis); } }
/** Creates new ScriptTable */ protected Script(final DataInputStream dis, final int offset) throws IOException { // Ensure we're in the right place dis.reset(); dis.skipBytes(offset); // Start reading _defaultLangSysOffset = dis.readUnsignedShort(); _langSysCount = dis.readUnsignedShort(); if (_langSysCount > 0) { _langSysRecords = new LangSysRecord[_langSysCount]; for (int i = 0; i < _langSysCount; i++) { _langSysRecords[i] = new LangSysRecord(dis); } } // Read the LangSys tables if (_langSysCount > 0) { _langSys = new LangSys[_langSysCount]; for (int i = 0; i < _langSysCount; i++) { dis.reset(); dis.skipBytes(offset + _langSysRecords[i].getOffset()); _langSys[i] = new LangSys(dis); } } if (_defaultLangSysOffset > 0) { dis.reset(); dis.skipBytes(offset + _defaultLangSysOffset); _defaultLangSys = new LangSys(dis); } }
public Feature findFeature(final LangSys langSys, final String tag) { if (tag.length() != 4) { return null; } final int tagVal = ((tag.charAt(0)<<24) | (tag.charAt(1)<<16) | (tag.charAt(2)<<8) | tag.charAt(3)); for (int i = 0; i < _featureCount; i++) { if (_featureRecords[i].getTag() == tagVal) { if (langSys.isFeatureIndexed(i)) { return _features[i]; } } } return null; }