{{~if __namespace != ''~}} package {{__namespace}}; {{~end~}} import luban.*; {{~ func get_table_inner_name ret '_' + ($0 | string.downcase) end ~}} public final class {{__name}} { public static interface IByteBufLoader { ByteBuf load(String file) throws java.io.IOException; } {{~for table in __tables inner_name = get_table_inner_name table.name ~}} {{~if table.comment != '' ~}} /** * {{escape_comment table.comment}} */ {{~end~}} private final {{table.full_name_with_top_module}} {{inner_name}}; public {{table.full_name_with_top_module}} get{{table.name}}() { return {{inner_name}}; } {{~end~}} public {{__name}}(IByteBufLoader loader) throws java.io.IOException { {{~for table in __tables inner_name = get_table_inner_name table.name ~}} {{inner_name}} = new {{table.full_name_with_top_module}}(loader.load("{{table.output_data_file}}")); {{~end~}} } }