package com.google.typography.font.sfntly.table; import com.google.typography.font.sfntly.Tag; import com.google.typography.font.sfntly.data.ReadableFontData; import com.google.typography.font.sfntly.data.WritableFontData; import com.google.typography.font.sfntly.table.bitmap.EbdtTable.Builder; import com.google.typography.font.sfntly.table.bitmap.EblcTable.Builder; import com.google.typography.font.sfntly.table.bitmap.EbscTable.Builder; import com.google.typography.font.sfntly.table.core.CMapTable.Builder; import com.google.typography.font.sfntly.table.core.FontHeaderTable.Builder; import com.google.typography.font.sfntly.table.core.HorizontalDeviceMetricsTable.Builder; import com.google.typography.font.sfntly.table.core.HorizontalHeaderTable.Builder; import com.google.typography.font.sfntly.table.core.HorizontalMetricsTable.Builder; import com.google.typography.font.sfntly.table.core.MaximumProfileTable.Builder; import com.google.typography.font.sfntly.table.core.NameTable.Builder; import com.google.typography.font.sfntly.table.core.OS2Table.Builder; import com.google.typography.font.sfntly.table.core.PostScriptTable.Builder; import com.google.typography.font.sfntly.table.truetype.ControlProgramTable.Builder; import com.google.typography.font.sfntly.table.truetype.ControlValueTable.Builder; import com.google.typography.font.sfntly.table.truetype.GlyphTable.Builder; import com.google.typography.font.sfntly.table.truetype.LocaTable.Builder; public class Table extends FontDataTable { private Header header; protected Table(Header paramHeader, ReadableFontData paramReadableFontData) { super(paramReadableFontData); this.header = paramHeader; } public long calculatedChecksum() { return this.data.checksum(); } public Header header() { return this.header; } public int headerTag() { return header().tag(); } public int headerOffset() { return header().offset(); } public int headerLength() { return header().length(); } public long headerChecksum() { return header().checksum(); } public String toString() { StringBuilder localStringBuilder = new StringBuilder(); localStringBuilder.append("["); localStringBuilder.append(Tag.stringValue(this.header.tag())); localStringBuilder.append(", cs=0x"); localStringBuilder.append(Long.toHexString(this.header.checksum())); localStringBuilder.append(", offset=0x"); localStringBuilder.append(Integer.toHexString(this.header.offset())); localStringBuilder.append(", size=0x"); localStringBuilder.append(Integer.toHexString(this.header.length())); localStringBuilder.append("]"); return localStringBuilder.toString(); } public static abstract class Builder<T extends Table> extends FontDataTable.Builder<T> { private Header header; protected Builder(Header paramHeader, WritableFontData paramWritableFontData) { super(); this.header = paramHeader; } protected Builder(Header paramHeader, ReadableFontData paramReadableFontData) { super(); this.header = paramHeader; } protected Builder(Header paramHeader) { this(paramHeader, null); } public String toString() { return "Table Builder for - " + this.header.toString(); } public final Header header() { return this.header; } protected void notifyPostTableBuild(T paramT) { if ((modelChanged()) || (dataChanged())) { Header localHeader = new Header(header().tag(), paramT.dataLength()); paramT.header = localHeader; } } public static Builder<? extends Table> getBuilder(Header paramHeader, WritableFontData paramWritableFontData) { int i = paramHeader.tag(); if (i == Tag.cmap) { return CMapTable.Builder.createBuilder(paramHeader, paramWritableFontData); } if (i == Tag.head) { return FontHeaderTable.Builder.createBuilder(paramHeader, paramWritableFontData); } if (i == Tag.hhea) { return HorizontalHeaderTable.Builder.createBuilder(paramHeader, paramWritableFontData); } if (i == Tag.hmtx) { return HorizontalMetricsTable.Builder.createBuilder(paramHeader, paramWritableFontData); } if (i == Tag.maxp) { return MaximumProfileTable.Builder.createBuilder(paramHeader, paramWritableFontData); } if (i == Tag.name) { return NameTable.Builder.createBuilder(paramHeader, paramWritableFontData); } if (i == Tag.OS_2) { return OS2Table.Builder.createBuilder(paramHeader, paramWritableFontData); } if (i == Tag.post) { return PostScriptTable.Builder.createBuilder(paramHeader, paramWritableFontData); } if (i == Tag.cvt) { return ControlValueTable.Builder.createBuilder(paramHeader, paramWritableFontData); } if (i == Tag.glyf) { return GlyphTable.Builder.createBuilder(paramHeader, paramWritableFontData); } if (i == Tag.loca) { return LocaTable.Builder.createBuilder(paramHeader, paramWritableFontData); } if (i == Tag.prep) { return ControlProgramTable.Builder.createBuilder(paramHeader, paramWritableFontData); } if (i == Tag.EBDT) { return EbdtTable.Builder.createBuilder(paramHeader, paramWritableFontData); } if (i == Tag.EBLC) { return EblcTable.Builder.createBuilder(paramHeader, paramWritableFontData); } if (i == Tag.EBSC) { return EbscTable.Builder.createBuilder(paramHeader, paramWritableFontData); } if (i == Tag.hdmx) { return HorizontalDeviceMetricsTable.Builder.createBuilder(paramHeader, paramWritableFontData); } if (i == Tag.bhed) { return FontHeaderTable.Builder.createBuilder(paramHeader, paramWritableFontData); } if (i == Tag.bdat) { return EbdtTable.Builder.createBuilder(paramHeader, paramWritableFontData); } if (i == Tag.bloc) { return EblcTable.Builder.createBuilder(paramHeader, paramWritableFontData); } return GenericTableBuilder.createBuilder(paramHeader, paramWritableFontData); } } } /* Location: C:\Users\Ethan\Desktop\FontZip\FontTool\sfnttool.jar!\com\google\typography\font\sfntly\table\Table.class * Java compiler version: 6 (50.0) * JD-Core Version: 0.7.1 */