package com.google.typography.font.sfntly.data;
import java.io.IOException;
import java.io.InputStream;
public final class WritableFontData
extends ReadableFontData
{
public static final WritableFontData createWritableFontData(int paramInt)
{
Object localObject = null;
if (paramInt > 0)
{
localObject = new MemoryByteArray(paramInt);
((ByteArray)localObject).setFilledLength(paramInt);
}
else
{
localObject = new GrowableMemoryByteArray();
}
WritableFontData localWritableFontData = new WritableFontData((ByteArray)localObject);
return localWritableFontData;
}
public static final WritableFontData createWritableFontData(byte[] paramArrayOfByte)
{
MemoryByteArray localMemoryByteArray = new MemoryByteArray(paramArrayOfByte);
WritableFontData localWritableFontData = new WritableFontData(localMemoryByteArray);
return localWritableFontData;
}
public static final WritableFontData createWritableFontData(ReadableFontData paramReadableFontData)
{
Object localObject = null;
if (paramReadableFontData.array.growable()) {
localObject = new GrowableMemoryByteArray();
} else {
localObject = new MemoryByteArray(paramReadableFontData.array.length());
}
paramReadableFontData.array.copyTo((ByteArray)localObject);
WritableFontData localWritableFontData = new WritableFontData((ByteArray)localObject);
localWritableFontData.setCheckSumRanges(paramReadableFontData.checkSumRange());
return localWritableFontData;
}
private WritableFontData(ByteArray<? extends ByteArray<?>> paramByteArray)
{
super(paramByteArray);
}
private WritableFontData(WritableFontData paramWritableFontData, int paramInt)
{
super(paramWritableFontData, paramInt);
}
private WritableFontData(WritableFontData paramWritableFontData, int paramInt1, int paramInt2)
{
super(paramWritableFontData, paramInt1, paramInt2);
}
public WritableFontData slice(int paramInt1, int paramInt2)
{
if ((paramInt1 < 0) || (paramInt1 + paramInt2 > size())) {
throw new IndexOutOfBoundsException("Attempt to bind data outside of its limits.");
}
WritableFontData localWritableFontData = new WritableFontData(this, paramInt1, paramInt2);
return localWritableFontData;
}
public WritableFontData slice(int paramInt)
{
if ((paramInt < 0) || (paramInt > size())) {
throw new IndexOutOfBoundsException("Attempt to bind data outside of its limits.");
}
WritableFontData localWritableFontData = new WritableFontData(this, paramInt);
return localWritableFontData;
}
public int writeByte(int paramInt, byte paramByte)
{
this.array.put(boundOffset(paramInt), paramByte);
return 1;
}
public int writeBytes(int paramInt1, byte[] paramArrayOfByte, int paramInt2, int paramInt3)
{
return this.array.put(boundOffset(paramInt1), paramArrayOfByte, paramInt2, boundLength(paramInt1, paramInt3));
}
public int writeBytesPad(int paramInt1, byte[] paramArrayOfByte, int paramInt2, int paramInt3, byte paramByte)
{
int i = this.array.put(boundOffset(paramInt1), paramArrayOfByte, paramInt2, boundLength(paramInt1, Math.min(paramInt3, paramArrayOfByte.length - paramInt2)));
i += writePadding(i + paramInt1, paramInt3 - i, paramByte);
return i;
}
public int writePadding(int paramInt1, int paramInt2)
{
return writePadding(paramInt1, paramInt2, (byte)0);
}
public int writePadding(int paramInt1, int paramInt2, byte paramByte)
{
for (int i = 0; i < paramInt2; i++) {
this.array.put(paramInt1 + i, paramByte);
}
return paramInt2;
}
public int writeBytes(int paramInt, byte[] paramArrayOfByte)
{
return writeBytes(paramInt, paramArrayOfByte, 0, paramArrayOfByte.length);
}
public int writeChar(int paramInt, byte paramByte)
{
return writeByte(paramInt, paramByte);
}
public int writeUShort(int paramInt1, int paramInt2)
{
writeByte(paramInt1, (byte)(paramInt2 >> 8 & 0xFF));
writeByte(paramInt1 + 1, (byte)(paramInt2 & 0xFF));
return 2;
}
public int writeUShortLE(int paramInt1, int paramInt2)
{
this.array.put(paramInt1, (byte)(paramInt2 & 0xFF));
this.array.put(paramInt1 + 1, (byte)(paramInt2 >> 8 & 0xFF));
return 2;
}
public int writeShort(int paramInt1, int paramInt2)
{
return writeUShort(paramInt1, paramInt2);
}
public int writeUInt24(int paramInt1, int paramInt2)
{
writeByte(paramInt1, (byte)(paramInt2 >> 16 & 0xFF));
writeByte(paramInt1 + 1, (byte)(paramInt2 >> 8 & 0xFF));
writeByte(paramInt1 + 2, (byte)(paramInt2 & 0xFF));
return 3;
}
public int writeULong(int paramInt, long paramLong)
{
writeByte(paramInt, (byte)(int)(paramLong >> 24 & 0xFF));
writeByte(paramInt + 1, (byte)(int)(paramLong >> 16 & 0xFF));
writeByte(paramInt + 2, (byte)(int)(paramLong >> 8 & 0xFF));
writeByte(paramInt + 3, (byte)(int)(paramLong & 0xFF));
return 4;
}
public int writeULongLE(int paramInt, long paramLong)
{
this.array.put(paramInt, (byte)(int)(paramLong & 0xFF));
this.array.put(paramInt + 1, (byte)(int)(paramLong >> 8 & 0xFF));
this.array.put(paramInt + 2, (byte)(int)(paramLong >> 16 & 0xFF));
this.array.put(paramInt + 3, (byte)(int)(paramLong >> 24 & 0xFF));
return 4;
}
public int writeLong(int paramInt, long paramLong)
{
return writeULong(paramInt, paramLong);
}
public int writeFixed(int paramInt1, int paramInt2)
{
return writeLong(paramInt1, paramInt2);
}
public int writeDateTime(int paramInt, long paramLong)
{
writeULong(paramInt, paramLong >> 32 & 0xFFFFFFFFFFFFFFFF);
writeULong(paramInt + 4, paramLong & 0xFFFFFFFFFFFFFFFF);
return 8;
}
public void copyFrom(InputStream paramInputStream, int paramInt)
throws IOException
{
this.array.copyFrom(paramInputStream, paramInt);
}
public void copyFrom(InputStream paramInputStream)
throws IOException
{
this.array.copyFrom(paramInputStream);
}
}
/* Location: C:\Users\Ethan\Desktop\FontZip\FontTool\sfnttool.jar!\com\google\typography\font\sfntly\data\WritableFontData.class
* Java compiler version: 6 (50.0)
* JD-Core Version: 0.7.1
*/