AkiraPixelWind/LubanTools/Luban.ClientServer/Templates/config/java_json/tables.tpl
2022-12-29 18:20:40 +08:00

38 lines
1.1 KiB
Smarty

{{~
name = x.name
namespace = x.namespace
tables = x.tables
~}}
package {{namespace}};
import com.google.gson.JsonElement;
public final class {{name}}
{
public interface IJsonLoader {
JsonElement load(String file) throws java.io.IOException;
}
{{~for table in tables ~}}
{{~if table.comment != '' ~}}
/**
* {{table.escape_comment}}
*/
{{~end~}}
private final {{table.full_name_with_top_module}} {{table.inner_name}};
public {{table.full_name_with_top_module}} get{{table.name}}() { return {{table.inner_name}}; }
{{~end~}}
public {{name}}(IJsonLoader loader) throws java.io.IOException {
java.util.HashMap<String, Object> tables = new java.util.HashMap<>();
{{~for table in tables ~}}
{{table.inner_name}} = new {{table.full_name_with_top_module}}(loader.load("{{table.output_data_file}}"));
tables.put("{{table.full_name}}", {{table.inner_name}});
{{~end~}}
{{~ for table in tables ~}}
{{table.inner_name}}.resolve(tables);
{{~end~}}
}
}