IndieGame/config/Table/Tools/Luban/Templates/java-bin/bean.sbn

66 lines
1.9 KiB
Plaintext
Raw Normal View History

2024-10-11 10:12:15 +08:00
{{~if __namespace_with_top_module != ''~}}
package {{__namespace_with_top_module}};
{{~end~}}
import luban.*;
{{~
parent_def_type = __this.parent_def_type
export_fields = __this.export_fields
hierarchy_export_fields = __this.hierarchy_export_fields
~}}
{{~if __this.comment != '' ~}}
/**
* {{escape_comment __this.comment}}
*/
{{~end~}}
public {{class_modifier __this}} class {{__name}} extends {{if parent_def_type}}{{__this.parent_def_type.full_name_with_top_module}}{{else}}AbstractBean{{end}} {
public {{__name}}(ByteBuf _buf) {
{{~if parent_def_type~}}
super(_buf);
{{~end~}}
{{~ for field in export_fields ~}}
{{deserialize '_buf' (format_field_name __code_style field.name) field.ctype}}
{{~end~}}
}
public static {{__name}} deserialize(ByteBuf _buf) {
{{~if __this.is_abstract_type~}}
switch (_buf.readInt()) {
{{~for child in __this.hierarchy_not_abstract_children~}}
case {{child.full_name_with_top_module}}.__ID__: return new {{child.full_name_with_top_module}}(_buf);
{{~end~}}
default: throw new SerializationException();
}
{{~else~}}
return new {{__this.full_name_with_top_module}}(_buf);
{{~end~}}
}
{{~ for field in export_fields ~}}
{{~if field.comment != '' ~}}
/**
* {{escape_comment field.comment}}
*/
{{~end~}}
public final {{declaring_type_name field.ctype}} {{format_field_name __code_style field.name}};
{{~end~}}
{{~if !__this.is_abstract_type~}}
public static final int __ID__ = {{__this.id}};
@Override
public int getTypeId() { return __ID__; }
{{~end~}}
@Override
public String toString() {
return "{{full_name}}{ "
{{~for field in hierarchy_export_fields ~}}
+ "(format_field_name __code_style field.name):" + {{format_field_name __code_style field.name}} + ","
{{~end~}}
+ "}";
}
}