106 lines
3.5 KiB
Smarty
106 lines
3.5 KiB
Smarty
package {{x.namespace_with_top_module}};
|
|
|
|
import bright.serialization.*;
|
|
|
|
{{
|
|
name = x.name
|
|
parent_def_type = x.parent_def_type
|
|
export_fields = x.export_fields
|
|
hierarchy_export_fields = x.hierarchy_export_fields
|
|
}}
|
|
|
|
{{~if x.comment != '' ~}}
|
|
/**
|
|
* {{x.escape_comment}}
|
|
*/
|
|
{{~end~}}
|
|
public {{x.java_class_modifier}} class {{name}}{{if parent_def_type}} extends {{x.parent_def_type.full_name_with_top_module}}{{end}} {
|
|
public {{name}}(ByteBuf _buf) {
|
|
{{~if parent_def_type~}}
|
|
super(_buf);
|
|
{{~end~}}
|
|
{{~ for field in export_fields ~}}
|
|
{{java_deserialize '_buf' field.convention_name field.ctype}}
|
|
{{~if field.index_field~}}
|
|
for({{java_box_define_type field.ctype.element_type}} _v : {{field.convention_name}}) {
|
|
{{field.convention_name}}_Index.put(_v.{{field.index_field.convention_name}}, _v);
|
|
}
|
|
{{~end~}}
|
|
{{~end~}}
|
|
}
|
|
|
|
public {{name}}({{- for field in hierarchy_export_fields }}{{java_define_type field.ctype}} {{field.name}}{{if !for.last}},{{end}} {{end}}) {
|
|
{{~if parent_def_type~}}
|
|
super({{ for field in parent_def_type.hierarchy_export_fields }}{{field.name}}{{if !for.last}}, {{end}}{{end}});
|
|
{{~end~}}
|
|
{{~ for field in export_fields ~}}
|
|
this.{{field.convention_name}} = {{field.name}};
|
|
{{~if field.index_field~}}
|
|
for({{java_box_define_type field.ctype.element_type}} _v : {{field.convention_name}}) {
|
|
{{field.convention_name}}_Index.put(_v.{{field.index_field.convention_name}}, _v);
|
|
}
|
|
{{~end~}}
|
|
{{~end~}}
|
|
}
|
|
|
|
{{~if x.is_abstract_type~}}
|
|
public static {{name}} deserialize{{name}}(ByteBuf _buf) {
|
|
switch (_buf.readInt()) {
|
|
{{~for child in x.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();
|
|
}
|
|
}
|
|
{{~end~}}
|
|
|
|
{{~ for field in export_fields ~}}
|
|
{{~if field.comment != '' ~}}
|
|
/**
|
|
* {{field.escape_comment}}
|
|
*/
|
|
{{~end~}}
|
|
public final {{java_define_type field.ctype}} {{field.convention_name}};
|
|
{{~if field.index_field~}}
|
|
public final java.util.HashMap<{{java_box_define_type field.index_field.ctype}}, {{java_box_define_type field.ctype.element_type}}> {{field.convention_name}}_Index = new java.util.HashMap<>();
|
|
{{~end~}}
|
|
{{~if field.gen_ref~}}
|
|
public {{field.java_ref_validator_define}}
|
|
{{~end~}}
|
|
{{~end~}}
|
|
|
|
{{~if !x.is_abstract_type && x.parent_def_type~}}
|
|
public static final int __ID__ = {{x.id}};
|
|
|
|
@Override
|
|
public int getTypeId() { return __ID__; }
|
|
{{~else if x.is_abstract_type && !x.parent_def_type~}}
|
|
public abstract int getTypeId();
|
|
{{~end~}}
|
|
|
|
{{~if parent_def_type~}}
|
|
@Override
|
|
{{~end~}}
|
|
public void resolve(java.util.HashMap<String, Object> _tables) {
|
|
{{~if parent_def_type~}}
|
|
super.resolve(_tables);
|
|
{{~end~}}
|
|
{{~ for field in export_fields ~}}
|
|
{{~if field.gen_ref~}}
|
|
{{java_ref_validator_resolve field}}
|
|
{{~else if field.has_recursive_ref~}}
|
|
{{java_recursive_resolve field '_tables'}}
|
|
{{~end~}}
|
|
{{~end~}}
|
|
}
|
|
|
|
@Override
|
|
public String toString() {
|
|
return "{{full_name}}{ "
|
|
{{~for field in hierarchy_export_fields ~}}
|
|
+ "{{field.convention_name}}:" + {{java_to_string field.convention_name field.ctype}} + ","
|
|
{{~end~}}
|
|
+ "}";
|
|
}
|
|
}
|