package com.google.typography.font.sfntly.table.core; import com.google.typography.font.sfntly.data.FontData.DataSize; import com.google.typography.font.sfntly.data.ReadableFontData; import com.google.typography.font.sfntly.data.WritableFontData; import java.util.Iterator; import java.util.NoSuchElementException; public final class CMapFormat6 extends CMap { private final int firstCode = this.data.readUShort(CMapTable.Offset.format6FirstCode.offset); private final int entryCount = this.data.readUShort(CMapTable.Offset.format6EntryCount.offset); protected CMapFormat6(ReadableFontData paramReadableFontData, CMapTable.CMapId paramCMapId) { super(paramReadableFontData, CMap.CMapFormat.Format6.value, paramCMapId); } public int glyphId(int paramInt) { if ((paramInt < this.firstCode) || (paramInt >= this.firstCode + this.entryCount)) { return 0; } return this.data.readUShort(CMapTable.Offset.format6GlyphIdArray.offset + (paramInt - this.firstCode) * FontData.DataSize.USHORT.size()); } public int language() { return this.data.readUShort(CMapTable.Offset.format6Language.offset); } public Iterator<Integer> iterator() { return new CharacterIterator(null); } public static class Builder extends CMap.Builder<CMapFormat6> { protected Builder(WritableFontData paramWritableFontData, int paramInt, CMapTable.CMapId paramCMapId) { super(CMap.CMapFormat.Format6, paramCMapId); } protected Builder(ReadableFontData paramReadableFontData, int paramInt, CMapTable.CMapId paramCMapId) { super(CMap.CMapFormat.Format6, paramCMapId); } protected CMapFormat6 subBuildTable(ReadableFontData paramReadableFontData) { return new CMapFormat6(paramReadableFontData, cmapId()); } } private class CharacterIterator implements Iterator<Integer> { private int character = CMapFormat6.this.firstCode; private CharacterIterator() {} public boolean hasNext() { return this.character < CMapFormat6.this.firstCode + CMapFormat6.this.entryCount; } public Integer next() { if (!hasNext()) { throw new NoSuchElementException("No more characters to iterate."); } return Integer.valueOf(this.character++); } public void remove() { throw new UnsupportedOperationException("Unable to remove a character from cmap."); } } } /* Location: C:\Users\Ethan\Desktop\FontZip\FontTool\sfnttool.jar!\com\google\typography\font\sfntly\table\core\CMapFormat6.class * Java compiler version: 6 (50.0) * JD-Core Version: 0.7.1 */