} else {
JField[] jFields = serializableFields;
int fieldCount = jFields.length;
for (int fieldIndex = 0; fieldIndex < fieldCount; ++fieldIndex) {
JField serializableField = jFields[fieldIndex];
JType fieldType = serializableField.getType();
boolean needsAccessor = needsAccessorMethods(serializableField);
String readMethodName = "read" + Shared.getCallSuffix(fieldType);
String streamReadExpression = "streamReader." + readMethodName + "()";
if (Shared.typeNeedsCast(fieldType)) {
streamReadExpression = "(" + fieldType.getQualifiedSourceName()
+ ") " + streamReadExpression;
}
if (needsAccessor) {
sourceWriter.print("set");
sourceWriter.print(Shared.capitalize(serializableField.getName()));
sourceWriter.print("(instance, ");
sourceWriter.print(streamReadExpression);
sourceWriter.println(");");
} else {
sourceWriter.print("instance.");
sourceWriter.print(serializableField.getName());
sourceWriter.print(" = ");
sourceWriter.print(streamReadExpression);
sourceWriter.println(";");
}
}