_dataBuffer.reset(DATA_BUFFER_SIZE);
_poolBuffer.reset(POOL_BUFFER_SIZE);
_signatureBuffer.reset();
final Type<?> baseType = t.getBaseType();
final TypeList interfaceTypes = t.getInterfaces();
int flags = t.getModifiers();
if ((flags & PROTECTED) != 0) {
flags |= PUBLIC;
}
flags = flags & ClassFlags & ~STRICTFP;
if ((flags & INTERFACE) == 0) {
flags |= ACC_SUPER;
}
if (t.isNested() && StringUtilities.isNullOrEmpty(t.getName())) {
flags &= ~FINAL;
}
_dataBuffer.putShort(flags);
_dataBuffer.putShort(t.getTypeToken(t));
if (baseType != null && baseType.isClass()) {
_dataBuffer.putShort(t.getTypeToken(baseType));
}
else {
_dataBuffer.putShort(t.getTypeToken(Types.Object));
}
_dataBuffer.putShort(interfaceTypes.size());
for (final Type interfaceType : interfaceTypes) {
_dataBuffer.putShort(t.getTypeToken(interfaceType));
}