private int GetWriteSize()
{
int size = 0;
if (itsSourceFileNameIndex != 0)
{
itsConstantPool.AddUtf8("SourceFile");
}
size += 8;
//writeLong(FileHeaderConstant);
size += itsConstantPool.GetWriteSize();
size += 2;
//writeShort(itsFlags);
size += 2;
//writeShort(itsThisClassIndex);
size += 2;
//writeShort(itsSuperClassIndex);
size += 2;
//writeShort(itsInterfaces.size());
size += 2 * itsInterfaces.Size();
size += 2;
//writeShort(itsFields.size());
for (int i = 0; i < itsFields.Size(); i++)
{
size += ((ClassFileField)(itsFields.Get(i))).GetWriteSize();
}
size += 2;
//writeShort(itsMethods.size());
for (int i_1 = 0; i_1 < itsMethods.Size(); i_1++)
{
size += ((ClassFileMethod)(itsMethods.Get(i_1))).GetWriteSize();
}
if (itsSourceFileNameIndex != 0)
{
size += 2;
//writeShort(1); attributes count
size += 2;
//writeShort(sourceFileAttributeNameIndex);
size += 4;
//writeInt(2);
size += 2;
}
else
{
//writeShort(itsSourceFileNameIndex);
size += 2;
}
//out.writeShort(0); no attributes
return size;
}