package com.google.typography.font.sfntly.table.core;
import com.google.typography.font.sfntly.data.ReadableFontData;
import com.google.typography.font.sfntly.data.WritableFontData;
import com.google.typography.font.sfntly.table.Header;
import com.google.typography.font.sfntly.table.Table;
import com.google.typography.font.sfntly.table.TableBasedTableBuilder;
import java.util.EnumSet;
import java.util.Iterator;
public final class FontHeaderTable
extends Table
{
public static final long CHECKSUM_ADJUSTMENT_BASE = 2981146554L;
public static final long MAGIC_NUMBER = 1594834165L;
private static final int[] CHECKSUM_RANGES = { 0, Offset.checkSumAdjustment.offset, Offset.magicNumber.offset };
private FontHeaderTable(Header paramHeader, ReadableFontData paramReadableFontData)
{
super(paramHeader, paramReadableFontData);
paramReadableFontData.setCheckSumRanges(new int[] { 0, Offset.checkSumAdjustment.offset, Offset.magicNumber.offset });
}
public int tableVersion()
{
return this.data.readFixed(Offset.tableVersion.offset);
}
public int fontRevision()
{
return this.data.readFixed(Offset.fontRevision.offset);
}
public long checkSumAdjustment()
{
return this.data.readULong(Offset.checkSumAdjustment.offset);
}
public long magicNumber()
{
return this.data.readULong(Offset.magicNumber.offset);
}
public int flagsAsInt()
{
return this.data.readUShort(Offset.flags.offset);
}
public EnumSet<Flags> flags()
{
return Flags.asSet(flagsAsInt());
}
public int unitsPerEm()
{
return this.data.readUShort(Offset.unitsPerEm.offset);
}
public long created()
{
return this.data.readDateTimeAsLong(Offset.created.offset);
}
public long modified()
{
return this.data.readDateTimeAsLong(Offset.modified.offset);
}
public int xMin()
{
return this.data.readShort(Offset.xMin.offset);
}
public int yMin()
{
return this.data.readShort(Offset.yMin.offset);
}
public int xMax()
{
return this.data.readShort(Offset.xMax.offset);
}
public int yMax()
{
return this.data.readShort(Offset.yMax.offset);
}
public int macStyleAsInt()
{
return this.data.readUShort(Offset.macStyle.offset);
}
public EnumSet<MacStyle> macStyle()
{
return MacStyle.asSet(macStyleAsInt());
}
public int lowestRecPPEM()
{
return this.data.readUShort(Offset.lowestRecPPEM.offset);
}
public int fontDirectionHintAsInt()
{
return this.data.readShort(Offset.fontDirectionHint.offset);
}
public FontDirectionHint fontDirectionHint()
{
return FontDirectionHint.valueOf(fontDirectionHintAsInt());
}
public int indexToLocFormatAsInt()
{
return this.data.readShort(Offset.indexToLocFormat.offset);
}
public IndexToLocFormat indexToLocFormat()
{
return IndexToLocFormat.valueOf(indexToLocFormatAsInt());
}
public int glyphdataFormat()
{
return this.data.readShort(Offset.glyphDataFormat.offset);
}
public static class Builder
extends TableBasedTableBuilder<FontHeaderTable>
{
private boolean fontChecksumSet = false;
private long fontChecksum = 0L;
public static Builder createBuilder(Header paramHeader, WritableFontData paramWritableFontData)
{
return new Builder(paramHeader, paramWritableFontData);
}
protected Builder(Header paramHeader, WritableFontData paramWritableFontData)
{
super(paramWritableFontData);
paramWritableFontData.setCheckSumRanges(new int[] { 0, FontHeaderTable.Offset.access$000(FontHeaderTable.Offset.checkSumAdjustment), FontHeaderTable.Offset.access$000(FontHeaderTable.Offset.magicNumber) });
}
protected Builder(Header paramHeader, ReadableFontData paramReadableFontData)
{
super(paramReadableFontData);
paramReadableFontData.setCheckSumRanges(FontHeaderTable.CHECKSUM_RANGES);
}
protected boolean subReadyToSerialize()
{
ReadableFontData localReadableFontData;
if (dataChanged())
{
localReadableFontData = internalReadData();
localReadableFontData.setCheckSumRanges(FontHeaderTable.CHECKSUM_RANGES);
}
if (this.fontChecksumSet)
{
localReadableFontData = internalReadData();
localReadableFontData.setCheckSumRanges(FontHeaderTable.CHECKSUM_RANGES);
long l = 2981146554L - (this.fontChecksum + localReadableFontData.checksum());
setCheckSumAdjustment(l);
}
return super.subReadyToSerialize();
}
protected FontHeaderTable subBuildTable(ReadableFontData paramReadableFontData)
{
return new FontHeaderTable(header(), paramReadableFontData, null);
}
public void setFontChecksum(long paramLong)
{
if (this.fontChecksumSet) {
return;
}
this.fontChecksumSet = true;
this.fontChecksum = paramLong;
}
public void clearFontChecksum()
{
this.fontChecksumSet = false;
}
public int tableVersion()
{
return ((FontHeaderTable)table()).tableVersion();
}
public void setTableVersion(int paramInt)
{
internalWriteData().writeFixed(FontHeaderTable.Offset.access$000(FontHeaderTable.Offset.tableVersion), paramInt);
}
public int fontRevision()
{
return ((FontHeaderTable)table()).fontRevision();
}
public void setFontRevision(int paramInt)
{
internalWriteData().writeFixed(FontHeaderTable.Offset.access$000(FontHeaderTable.Offset.fontRevision), paramInt);
}
public long checkSumAdjustment()
{
return ((FontHeaderTable)table()).checkSumAdjustment();
}
public void setCheckSumAdjustment(long paramLong)
{
internalWriteData().writeULong(FontHeaderTable.Offset.access$000(FontHeaderTable.Offset.checkSumAdjustment), paramLong);
}
public long magicNumber()
{
return ((FontHeaderTable)table()).magicNumber();
}
public void setMagicNumber(long paramLong)
{
internalWriteData().writeULong(FontHeaderTable.Offset.access$000(FontHeaderTable.Offset.magicNumber), paramLong);
}
public int flagsAsInt()
{
return ((FontHeaderTable)table()).flagsAsInt();
}
public EnumSet<FontHeaderTable.Flags> flags()
{
return ((FontHeaderTable)table()).flags();
}
public void setFlagsAsInt(int paramInt)
{
internalWriteData().writeUShort(FontHeaderTable.Offset.access$000(FontHeaderTable.Offset.flags), paramInt);
}
public void setFlags(EnumSet<FontHeaderTable.Flags> paramEnumSet)
{
setFlagsAsInt(FontHeaderTable.Flags.cleanValue(paramEnumSet));
}
public int unitsPerEm()
{
return ((FontHeaderTable)table()).unitsPerEm();
}
public void setUnitsPerEm(int paramInt)
{
internalWriteData().writeUShort(FontHeaderTable.Offset.access$000(FontHeaderTable.Offset.unitsPerEm), paramInt);
}
public long created()
{
return ((FontHeaderTable)table()).created();
}
public void setCreated(long paramLong)
{
internalWriteData().writeDateTime(FontHeaderTable.Offset.access$000(FontHeaderTable.Offset.created), paramLong);
}
public long modified()
{
return ((FontHeaderTable)table()).modified();
}
public void setModified(long paramLong)
{
internalWriteData().writeDateTime(FontHeaderTable.Offset.access$000(FontHeaderTable.Offset.modified), paramLong);
}
public int xMin()
{
return ((FontHeaderTable)table()).xMin();
}
public void setXMin(int paramInt)
{
internalWriteData().writeShort(FontHeaderTable.Offset.access$000(FontHeaderTable.Offset.xMin), paramInt);
}
public int yMin()
{
return ((FontHeaderTable)table()).yMin();
}
public void setYMin(int paramInt)
{
internalWriteData().writeShort(FontHeaderTable.Offset.access$000(FontHeaderTable.Offset.yMin), paramInt);
}
public int xMax()
{
return ((FontHeaderTable)table()).xMax();
}
public void setXMax(int paramInt)
{
internalWriteData().writeShort(FontHeaderTable.Offset.access$000(FontHeaderTable.Offset.xMax), paramInt);
}
public int yMax()
{
return ((FontHeaderTable)table()).yMax();
}
public void setYMax(int paramInt)
{
internalWriteData().writeShort(FontHeaderTable.Offset.access$000(FontHeaderTable.Offset.yMax), paramInt);
}
public int macStyleAsInt()
{
return ((FontHeaderTable)table()).macStyleAsInt();
}
public void setMacStyleAsInt(int paramInt)
{
internalWriteData().writeUShort(FontHeaderTable.Offset.access$000(FontHeaderTable.Offset.macStyle), paramInt);
}
public EnumSet<FontHeaderTable.MacStyle> macStyle()
{
return ((FontHeaderTable)table()).macStyle();
}
public void macStyle(EnumSet<FontHeaderTable.MacStyle> paramEnumSet)
{
setMacStyleAsInt(FontHeaderTable.MacStyle.cleanValue(paramEnumSet));
}
public int lowestRecPPEM()
{
return ((FontHeaderTable)table()).lowestRecPPEM();
}
public void setLowestRecPPEM(int paramInt)
{
internalWriteData().writeUShort(FontHeaderTable.Offset.access$000(FontHeaderTable.Offset.lowestRecPPEM), paramInt);
}
public int fontDirectionHintAsInt()
{
return ((FontHeaderTable)table()).fontDirectionHintAsInt();
}
public void setFontDirectionHintAsInt(int paramInt)
{
internalWriteData().writeShort(FontHeaderTable.Offset.access$000(FontHeaderTable.Offset.fontDirectionHint), paramInt);
}
public FontHeaderTable.FontDirectionHint fontDirectionHint()
{
return ((FontHeaderTable)table()).fontDirectionHint();
}
public void setFontDirectionHint(FontHeaderTable.FontDirectionHint paramFontDirectionHint)
{
setFontDirectionHintAsInt(paramFontDirectionHint.value());
}
public int indexToLocFormatAsInt()
{
return ((FontHeaderTable)table()).indexToLocFormatAsInt();
}
public void setIndexToLocFormatAsInt(int paramInt)
{
internalWriteData().writeShort(FontHeaderTable.Offset.access$000(FontHeaderTable.Offset.indexToLocFormat), paramInt);
}
public FontHeaderTable.IndexToLocFormat indexToLocFormat()
{
return ((FontHeaderTable)table()).indexToLocFormat();
}
public void setIndexToLocFormat(FontHeaderTable.IndexToLocFormat paramIndexToLocFormat)
{
setIndexToLocFormatAsInt(paramIndexToLocFormat.value());
}
public int glyphdataFormat()
{
return ((FontHeaderTable)table()).glyphdataFormat();
}
public void setGlyphdataFormat(int paramInt)
{
internalWriteData().writeShort(FontHeaderTable.Offset.access$000(FontHeaderTable.Offset.glyphDataFormat), paramInt);
}
}
public static enum IndexToLocFormat
{
shortOffset(0), longOffset(1);
private final int value;
private IndexToLocFormat(int paramInt)
{
this.value = paramInt;
}
public int value()
{
return this.value;
}
public boolean equals(int paramInt)
{
return paramInt == this.value;
}
public static IndexToLocFormat valueOf(int paramInt)
{
for (IndexToLocFormat localIndexToLocFormat : ) {
if (localIndexToLocFormat.equals(paramInt)) {
return localIndexToLocFormat;
}
}
return null;
}
}
public static enum FontDirectionHint
{
FullyMixed(0), OnlyStrongLTR(1), StrongLTRAndNeutral(2), OnlyStrongRTL(-1), StrongRTLAndNeutral(-2);
private final int value;
private FontDirectionHint(int paramInt)
{
this.value = paramInt;
}
public int value()
{
return this.value;
}
public boolean equals(int paramInt)
{
return paramInt == this.value;
}
public static FontDirectionHint valueOf(int paramInt)
{
for (FontDirectionHint localFontDirectionHint : ) {
if (localFontDirectionHint.equals(paramInt)) {
return localFontDirectionHint;
}
}
return null;
}
}
public static enum MacStyle
{
Bold, Italic, Underline, Outline, Shadow, Condensed, Extended, Reserved7, Reserved8, Reserved9, Reserved10, Reserved11, Reserved12, Reserved13, Reserved14, Reserved15;
private static final EnumSet<MacStyle> reserved = EnumSet.range(Reserved7, Reserved15);
private MacStyle() {}
public int mask()
{
return 1 << ordinal();
}
public static EnumSet<MacStyle> asSet(int paramInt)
{
EnumSet localEnumSet = EnumSet.noneOf(MacStyle.class);
for (MacStyle localMacStyle : values()) {
if ((paramInt & localMacStyle.mask()) == localMacStyle.mask()) {
localEnumSet.add(localMacStyle);
}
}
return localEnumSet;
}
public static int value(EnumSet<MacStyle> paramEnumSet)
{
int i = 0;
Iterator localIterator = paramEnumSet.iterator();
while (localIterator.hasNext())
{
MacStyle localMacStyle = (MacStyle)localIterator.next();
i |= localMacStyle.mask();
}
return i;
}
public static int cleanValue(EnumSet<MacStyle> paramEnumSet)
{
EnumSet localEnumSet = EnumSet.copyOf(paramEnumSet);
localEnumSet.removeAll(reserved);
return value(localEnumSet);
}
}
public static enum Flags
{
BaselineAtY0, LeftSidebearingAtX0, InstructionsDependOnPointSize, ForcePPEMToInteger, InstructionsAlterAdvanceWidth, Apple_Vertical, Apple_Zero, Apple_RequiresLayout, Apple_GXMetamorphosis, Apple_StrongRTL, Apple_IndicRearrangement, FontDataLossless, FontConverted, OptimizedForClearType, Reserved14, Reserved15;
private Flags() {}
public int mask()
{
return 1 << ordinal();
}
public static EnumSet<Flags> asSet(int paramInt)
{
EnumSet localEnumSet = EnumSet.noneOf(Flags.class);
for (Flags localFlags : values()) {
if ((paramInt & localFlags.mask()) == localFlags.mask()) {
localEnumSet.add(localFlags);
}
}
return localEnumSet;
}
public static int value(EnumSet<Flags> paramEnumSet)
{
int i = 0;
Iterator localIterator = paramEnumSet.iterator();
while (localIterator.hasNext())
{
Flags localFlags = (Flags)localIterator.next();
i |= localFlags.mask();
}
return i;
}
public static int cleanValue(EnumSet<Flags> paramEnumSet)
{
EnumSet localEnumSet = EnumSet.copyOf(paramEnumSet);
localEnumSet.remove(Reserved14);
localEnumSet.remove(Reserved15);
return value(localEnumSet);
}
}
private static enum Offset
{
tableVersion(0), fontRevision(4), checkSumAdjustment(8), magicNumber(12), flags(16), unitsPerEm(18), created(20), modified(28), xMin(36), yMin(38), xMax(40), yMax(42), macStyle(44), lowestRecPPEM(46), fontDirectionHint(48), indexToLocFormat(50), glyphDataFormat(52);
private final int offset;
private Offset(int paramInt)
{
this.offset = paramInt;
}
}
}
/* Location: C:\Users\Ethan\Desktop\FontZip\FontTool\sfnttool.jar!\com\google\typography\font\sfntly\table\core\FontHeaderTable.class
* Java compiler version: 6 (50.0)
* JD-Core Version: 0.7.1
*/