📄 extendedsstrecord.java
字号:
// Decompiled by Jad v1.5.7g. Copyright 2000 Pavel Kouznetsov.
// Jad home page: http://www.geocities.com/SiliconValley/Bridge/8617/jad.html
// Decompiler options: packimports(3) fieldsfirst ansi
// Source File Name: ExtendedSSTRecord.java
package jxl.write.biff;
import jxl.biff.*;
class ExtendedSSTRecord extends WritableRecordData
{
private static final int infoRecordSize = 8;
private int numberOfStrings;
private int absoluteStreamPositions[];
private int relativeStreamPositions[];
private int currentStringIndex;
public ExtendedSSTRecord(int newNumberOfStrings)
{
super(Type.EXTSST);
currentStringIndex = 0;
numberOfStrings = newNumberOfStrings;
int numberOfBuckets = getNumberOfBuckets();
absoluteStreamPositions = new int[numberOfBuckets];
relativeStreamPositions = new int[numberOfBuckets];
currentStringIndex = 0;
}
public int getNumberOfBuckets()
{
int numberOfStringsPerBucket = getNumberOfStringsPerBucket();
return numberOfStringsPerBucket == 0 ? 0 : ((numberOfStrings + numberOfStringsPerBucket) - 1) / numberOfStringsPerBucket;
}
public int getNumberOfStringsPerBucket()
{
int bucketLimit = 128;
return ((numberOfStrings + 128) - 1) / 128;
}
public void addString(int absoluteStreamPosition, int relativeStreamPosition)
{
absoluteStreamPositions[currentStringIndex] = absoluteStreamPosition + relativeStreamPosition;
relativeStreamPositions[currentStringIndex] = relativeStreamPosition;
currentStringIndex++;
}
public byte[] getData()
{
int numberOfBuckets = getNumberOfBuckets();
byte data[] = new byte[2 + 8 * numberOfBuckets];
IntegerHelper.getTwoBytes(getNumberOfStringsPerBucket(), data, 0);
for(int i = 0; i < numberOfBuckets; i++)
{
IntegerHelper.getFourBytes(absoluteStreamPositions[i], data, 2 + i * 8);
IntegerHelper.getTwoBytes(relativeStreamPositions[i], data, 6 + i * 8);
}
return data;
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -