diff --git a/CocosConfig.bat b/CocosConfig.bat
new file mode 100644
index 00000000..306ba5ce
--- /dev/null
+++ b/CocosConfig.bat
@@ -0,0 +1,15 @@
+set WORKSPACE=.\luban_examples
+
+set LUBAN_DLL=%WORKSPACE%\Tools\Luban\Luban.dll
+set P_PATH=.\JisolGameCocos
+set CONF_ROOT=.\DataTables
+
+dotnet %LUBAN_DLL% ^
+ -t all ^
+ -c typescript-json ^
+ -d json ^
+ --conf %CONF_ROOT%\luban.conf ^
+ -x outputCodeDir=%P_PATH%\assets\resources\config\data ^
+ -x outputDataDir=%P_PATH%\assets\resources\config\json
+
+pause
\ No newline at end of file
diff --git a/DataTables/Datas/Battle/Role/角色表.xlsx b/DataTables/Datas/Battle/Role/角色表.xlsx
new file mode 100644
index 00000000..04b24ad5
Binary files /dev/null and b/DataTables/Datas/Battle/Role/角色表.xlsx differ
diff --git a/DataTables/Datas/__beans__.xlsx b/DataTables/Datas/__beans__.xlsx
new file mode 100644
index 00000000..7d5a8071
Binary files /dev/null and b/DataTables/Datas/__beans__.xlsx differ
diff --git a/DataTables/Datas/__enums__.xlsx b/DataTables/Datas/__enums__.xlsx
new file mode 100644
index 00000000..fe7998fa
Binary files /dev/null and b/DataTables/Datas/__enums__.xlsx differ
diff --git a/DataTables/Datas/__tables__.xlsx b/DataTables/Datas/__tables__.xlsx
new file mode 100644
index 00000000..e3a97993
Binary files /dev/null and b/DataTables/Datas/__tables__.xlsx differ
diff --git a/DataTables/Datas/item.xlsx b/DataTables/Datas/item.xlsx
new file mode 100644
index 00000000..c463653e
Binary files /dev/null and b/DataTables/Datas/item.xlsx differ
diff --git a/DataTables/Defines/builtin.xml b/DataTables/Defines/builtin.xml
new file mode 100644
index 00000000..e535ff48
--- /dev/null
+++ b/DataTables/Defines/builtin.xml
@@ -0,0 +1,17 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/DataTables/gen.sh b/DataTables/gen.sh
new file mode 100644
index 00000000..5f48c8e8
--- /dev/null
+++ b/DataTables/gen.sh
@@ -0,0 +1,11 @@
+#!/bin/bash
+
+WORKSPACE=..
+LUBAN_DLL=$WORKSPACE/Tools/Luban/Luban.dll
+CONF_ROOT=.
+
+dotnet $LUBAN_DLL \
+ -t all \
+ -d json \
+ --conf $CONF_ROOT/luban.conf \
+ -x outputDataDir=output
\ No newline at end of file
diff --git a/DataTables/luban.conf b/DataTables/luban.conf
new file mode 100644
index 00000000..9bbac950
--- /dev/null
+++ b/DataTables/luban.conf
@@ -0,0 +1,22 @@
+{
+ "groups":
+ [
+ {"names":["c"], "default":true},
+ {"names":["s"], "default":true},
+ {"names":["e"], "default":true}
+ ],
+ "schemaFiles":
+ [
+ {"fileName":"Defines", "type":""},
+ {"fileName":"Datas/__tables__.xlsx", "type":"table"},
+ {"fileName":"Datas/__beans__.xlsx", "type":"bean"},
+ {"fileName":"Datas/__enums__.xlsx", "type":"enum"}
+ ],
+ "dataDir": "Datas",
+ "targets":
+ [
+ {"name":"server", "manager":"Tables", "groups":["s"], "topModule":"cfg"},
+ {"name":"client", "manager":"Tables", "groups":["c"], "topModule":"cfg"},
+ {"name":"all", "manager":"Tables", "groups":["c,s,e"], "topModule":"cfg"}
+ ]
+}
\ No newline at end of file
diff --git a/DataTables/output/item_tbitem.json b/DataTables/output/item_tbitem.json
new file mode 100644
index 00000000..d1b27bfc
--- /dev/null
+++ b/DataTables/output/item_tbitem.json
@@ -0,0 +1,104 @@
+[
+ {
+ "id": 10000,
+ "name": "发型",
+ "price": 100,
+ "upgrade_to_item_id": 10001,
+ "exchange_column": {
+ "id": 10001,
+ "num": 2
+ }
+ },
+ {
+ "id": 10001,
+ "name": "外套",
+ "price": 100,
+ "upgrade_to_item_id": 10002,
+ "exchange_column": {
+ "id": 10001,
+ "num": 3
+ }
+ },
+ {
+ "id": 10002,
+ "name": "上衣",
+ "price": 100,
+ "upgrade_to_item_id": 10003,
+ "exchange_column": {
+ "id": 10001,
+ "num": 4
+ }
+ },
+ {
+ "id": 10003,
+ "name": "裙子",
+ "price": 100,
+ "upgrade_to_item_id": 10004,
+ "exchange_column": {
+ "id": 10001,
+ "num": 5
+ }
+ },
+ {
+ "id": 10004,
+ "name": "袜子",
+ "price": 100,
+ "upgrade_to_item_id": 10005,
+ "exchange_column": {
+ "id": 10001,
+ "num": 6
+ }
+ },
+ {
+ "id": 10005,
+ "name": "鞋子",
+ "price": 100,
+ "upgrade_to_item_id": 10006,
+ "exchange_column": {
+ "id": 10001,
+ "num": 7
+ }
+ },
+ {
+ "id": 10006,
+ "name": "发饰",
+ "price": 100,
+ "upgrade_to_item_id": 10007,
+ "exchange_column": {
+ "id": 10001,
+ "num": 8
+ }
+ },
+ {
+ "id": 10007,
+ "name": "中秋节发饰",
+ "price": 200,
+ "upgrade_to_item_id": 10008,
+ "expire_time": 1633881599,
+ "exchange_column": {
+ "id": 10001,
+ "num": 9
+ }
+ },
+ {
+ "id": 10008,
+ "name": "中秋节鞋子",
+ "price": 300,
+ "upgrade_to_item_id": 10009,
+ "expire_time": 1633967999,
+ "exchange_column": {
+ "id": 10001,
+ "num": 10
+ }
+ },
+ {
+ "id": 10009,
+ "name": "礼包",
+ "price": 100,
+ "upgrade_to_item_id": 10000,
+ "exchange_column": {
+ "id": 10001,
+ "num": 11
+ }
+ }
+]
\ No newline at end of file
diff --git a/JavaConfig.bat b/JavaConfig.bat
new file mode 100644
index 00000000..db0cf9df
--- /dev/null
+++ b/JavaConfig.bat
@@ -0,0 +1,15 @@
+set WORKSPACE=.\luban_examples
+
+set LUBAN_DLL=%WORKSPACE%\Tools\Luban\Luban.dll
+set JAVA_PATH=.\JisolGameServer\Main\src\main
+set CONF_ROOT=.\DataTables
+
+dotnet %LUBAN_DLL% ^
+ -t all ^
+ -c java-json ^
+ -d json ^
+ --conf %CONF_ROOT%\luban.conf ^
+ -x outputCodeDir=%JAVA_PATH%\java\cfg ^
+ -x outputDataDir=%JAVA_PATH%\resources\json
+
+pause
\ No newline at end of file
diff --git a/JisolGameCocos/assets/resources/config/data/schema.ts b/JisolGameCocos/assets/resources/config/data/schema.ts
new file mode 100644
index 00000000..6640820d
--- /dev/null
+++ b/JisolGameCocos/assets/resources/config/data/schema.ts
@@ -0,0 +1,98 @@
+
+//------------------------------------------------------------------------------
+//
+// This code was generated by a tool.
+// Changes to this file may cause incorrect behavior and will be lost if
+// the code is regenerated.
+//
+//------------------------------------------------------------------------------
+
+
+
+
+
+
+export namespace TB {export namespace Battle {export namespace Role {
+export class GRole {
+
+ constructor(_json_: any) {
+ if (_json_.id === undefined) { throw new Error() }
+ this.id = _json_.id
+ if (_json_.name === undefined) { throw new Error() }
+ this.name = _json_.name
+ if (_json_.price === undefined) { throw new Error() }
+ this.price = _json_.price
+ if(_json_.expire_time != undefined) { this.expireTime = _json_.expire_time } else { this.expireTime = undefined }
+ }
+
+ /**
+ * 这是id
+ */
+ readonly id: number
+ /**
+ * 名字
+ */
+ readonly name: string
+ /**
+ * 价格
+ */
+ readonly price: number
+ /**
+ * 过期时间
+ */
+ readonly expireTime: number|undefined
+
+ resolve(tables:Tables)
+ {
+ }
+}
+
+}}}
+
+
+
+
+export class TbGRole{
+ private _dataMap: Map
+ private _dataList: TB.Battle.Role.GRole[]
+ constructor(_json_: any) {
+ this._dataMap = new Map()
+ this._dataList = []
+ for(var _json2_ of _json_) {
+ let _v: TB.Battle.Role.GRole
+ _v = new TB.Battle.Role.GRole(_json2_)
+ this._dataList.push(_v)
+ this._dataMap.set(_v.id, _v)
+ }
+ }
+
+ getDataMap(): Map { return this._dataMap; }
+ getDataList(): TB.Battle.Role.GRole[] { return this._dataList; }
+
+ get(key: number): TB.Battle.Role.GRole | undefined { return this._dataMap.get(key); }
+
+ resolve(tables:Tables)
+ {
+ for(let data of this._dataList)
+ {
+ data.resolve(tables)
+ }
+ }
+
+}
+
+
+
+
+type JsonLoader = (file: string) => any
+
+export class Tables {
+ private _TbGRole: TbGRole
+ get TbGRole(): TbGRole { return this._TbGRole;}
+
+ constructor(loader: JsonLoader) {
+ this._TbGRole = new TbGRole(loader('tbgrole'))
+
+ this._TbGRole.resolve(this)
+ }
+}
diff --git a/JisolGameCocos/assets/resources/config/json/tbgrole.json b/JisolGameCocos/assets/resources/config/json/tbgrole.json
new file mode 100644
index 00000000..8c065409
--- /dev/null
+++ b/JisolGameCocos/assets/resources/config/json/tbgrole.json
@@ -0,0 +1,54 @@
+[
+ {
+ "id": 10000,
+ "name": "发型",
+ "price": 100
+ },
+ {
+ "id": 10001,
+ "name": "外套",
+ "price": 100
+ },
+ {
+ "id": 10002,
+ "name": "上衣",
+ "price": 100
+ },
+ {
+ "id": 10003,
+ "name": "裙子",
+ "price": 100
+ },
+ {
+ "id": 10004,
+ "name": "袜子",
+ "price": 100
+ },
+ {
+ "id": 10005,
+ "name": "鞋子",
+ "price": 100
+ },
+ {
+ "id": 10006,
+ "name": "发饰",
+ "price": 100
+ },
+ {
+ "id": 10007,
+ "name": "中秋节发饰",
+ "price": 200,
+ "expire_time": 1633881599
+ },
+ {
+ "id": 10008,
+ "name": "中秋节鞋子",
+ "price": 300,
+ "expire_time": 1633967999
+ },
+ {
+ "id": 10009,
+ "name": "礼包",
+ "price": 100
+ }
+]
\ No newline at end of file
diff --git a/JisolGameServer/Main/pom.xml b/JisolGameServer/Main/pom.xml
index 1cfaadf0..4975b07c 100644
--- a/JisolGameServer/Main/pom.xml
+++ b/JisolGameServer/Main/pom.xml
@@ -22,6 +22,10 @@
JNGame
2.0-SNAPSHOT
+
+ com.google.code.gson
+ gson
+
diff --git a/JisolGameServer/Main/src/main/java/cfg/TB/Battle/Role/GRole.java b/JisolGameServer/Main/src/main/java/cfg/TB/Battle/Role/GRole.java
new file mode 100644
index 00000000..916091b9
--- /dev/null
+++ b/JisolGameServer/Main/src/main/java/cfg/TB/Battle/Role/GRole.java
@@ -0,0 +1,61 @@
+
+//------------------------------------------------------------------------------
+//
+// This code was generated by a tool.
+// Changes to this file may cause incorrect behavior and will be lost if
+// the code is regenerated.
+//
+//------------------------------------------------------------------------------
+
+package cfg.TB.Battle.Role;
+
+import luban.*;
+import com.google.gson.JsonElement;
+import com.google.gson.JsonObject;
+
+
+public final class GRole extends AbstractBean {
+ public GRole(JsonObject _buf) {
+ id = _buf.get("id").getAsInt();
+ name = _buf.get("name").getAsString();
+ price = _buf.get("price").getAsInt();
+ { if (_buf.has("expire_time") && !_buf.get("expire_time").isJsonNull()) { expireTime = _buf.get("expire_time").getAsLong(); } else { expireTime = null; } }
+ }
+
+ public static GRole deserialize(JsonObject _buf) {
+ return new cfg.TB.Battle.Role.GRole(_buf);
+ }
+
+ /**
+ * 这是id
+ */
+ public final int id;
+ /**
+ * 名字
+ */
+ public final String name;
+ /**
+ * 价格
+ */
+ public final int price;
+ /**
+ * 过期时间
+ */
+ public final Long expireTime;
+
+ public static final int __ID__ = -1539036837;
+
+ @Override
+ public int getTypeId() { return __ID__; }
+
+ @Override
+ public String toString() {
+ return "{ "
+ + "(format_field_name __code_style field.name):" + id + ","
+ + "(format_field_name __code_style field.name):" + name + ","
+ + "(format_field_name __code_style field.name):" + price + ","
+ + "(format_field_name __code_style field.name):" + expireTime + ","
+ + "}";
+ }
+}
+
diff --git a/JisolGameServer/Main/src/main/java/cfg/Tables.java b/JisolGameServer/Main/src/main/java/cfg/Tables.java
new file mode 100644
index 00000000..cc1a4c37
--- /dev/null
+++ b/JisolGameServer/Main/src/main/java/cfg/Tables.java
@@ -0,0 +1,29 @@
+
+//------------------------------------------------------------------------------
+//
+// This code was generated by a tool.
+// Changes to this file may cause incorrect behavior and will be lost if
+// the code is regenerated.
+//
+//------------------------------------------------------------------------------
+
+package cfg;
+
+import luban.*;
+import com.google.gson.JsonElement;
+
+public final class Tables
+{
+
+ public interface IJsonLoader {
+ JsonElement load(String file) throws java.io.IOException;
+ }
+
+ private final cfg.TbGRole _tbgrole;
+ public cfg.TbGRole getTbGRole() { return _tbgrole; }
+
+ public Tables(IJsonLoader loader) throws java.io.IOException {
+ _tbgrole = new cfg.TbGRole(loader.load("tbgrole"));
+ }
+}
+
diff --git a/JisolGameServer/Main/src/main/java/cfg/TbGRole.java b/JisolGameServer/Main/src/main/java/cfg/TbGRole.java
new file mode 100644
index 00000000..29a2177d
--- /dev/null
+++ b/JisolGameServer/Main/src/main/java/cfg/TbGRole.java
@@ -0,0 +1,37 @@
+
+//------------------------------------------------------------------------------
+//
+// This code was generated by a tool.
+// Changes to this file may cause incorrect behavior and will be lost if
+// the code is regenerated.
+//
+//------------------------------------------------------------------------------
+
+package cfg;
+
+import luban.*;
+import com.google.gson.JsonElement;
+
+
+public final class TbGRole {
+ private final java.util.HashMap _dataMap;
+ private final java.util.ArrayList _dataList;
+
+ public TbGRole(JsonElement _buf) {
+ _dataMap = new java.util.HashMap();
+ _dataList = new java.util.ArrayList();
+
+ for (com.google.gson.JsonElement _e_ : _buf.getAsJsonArray()) {
+ cfg.TB.Battle.Role.GRole _v;
+ _v = cfg.TB.Battle.Role.GRole.deserialize(_e_.getAsJsonObject());
+ _dataList.add(_v);
+ _dataMap.put(_v.id, _v);
+ }
+ }
+
+ public java.util.HashMap getDataMap() { return _dataMap; }
+ public java.util.ArrayList getDataList() { return _dataList; }
+
+ public cfg.TB.Battle.Role.GRole get(int key) { return _dataMap.get(key); }
+
+}
diff --git a/JisolGameServer/Main/src/main/java/cn/jisol/game/listener/InitGameListener.java b/JisolGameServer/Main/src/main/java/cn/jisol/game/listener/InitGameListener.java
index 101e9df2..235e674e 100644
--- a/JisolGameServer/Main/src/main/java/cn/jisol/game/listener/InitGameListener.java
+++ b/JisolGameServer/Main/src/main/java/cn/jisol/game/listener/InitGameListener.java
@@ -1,8 +1,14 @@
package cn.jisol.game.listener;
+import cfg.Tables;
+import com.google.gson.JsonParser;
import org.springframework.context.event.ContextRefreshedEvent;
import org.springframework.context.event.EventListener;
import org.springframework.stereotype.Component;
+import org.springframework.util.ResourceUtils;
+
+import java.io.FileReader;
+import java.io.IOException;
@Component
public class InitGameListener {
@@ -10,7 +16,14 @@ public class InitGameListener {
@EventListener(ContextRefreshedEvent.class)
public void onApplicationEvent(ContextRefreshedEvent event) {
-
+ try {
+ Tables tables = new Tables(file -> JsonParser.parseReader(
+ new FileReader(ResourceUtils.getFile("classpath:json/"+file+".json"))
+ ));
+ System.out.println(tables.getTbGame().get(10000).name);
+ } catch (IOException e) {
+ e.printStackTrace();
+ }
}
diff --git a/luban_examples/Projects/java_json/src/corelib/luban/AbstractBean.java b/JisolGameServer/Main/src/main/java/luban/AbstractBean.java
similarity index 100%
rename from luban_examples/Projects/java_json/src/corelib/luban/AbstractBean.java
rename to JisolGameServer/Main/src/main/java/luban/AbstractBean.java
diff --git a/luban_examples/Projects/java_json/src/corelib/luban/ByteBuf.java b/JisolGameServer/Main/src/main/java/luban/ByteBuf.java
similarity index 100%
rename from luban_examples/Projects/java_json/src/corelib/luban/ByteBuf.java
rename to JisolGameServer/Main/src/main/java/luban/ByteBuf.java
diff --git a/luban_examples/Projects/java_json/src/corelib/luban/SerializationException.java b/JisolGameServer/Main/src/main/java/luban/SerializationException.java
similarity index 100%
rename from luban_examples/Projects/java_json/src/corelib/luban/SerializationException.java
rename to JisolGameServer/Main/src/main/java/luban/SerializationException.java
diff --git a/JisolGameServer/Main/src/main/resources/json/GMap.json b/JisolGameServer/Main/src/main/resources/json/GMap.json
deleted file mode 100644
index a0ca9626..00000000
--- a/JisolGameServer/Main/src/main/resources/json/GMap.json
+++ /dev/null
@@ -1 +0,0 @@
-{"60001":{"id":60001,"mapName":"天空城","map1":"map/MAP6/MAP6_1/spriteFrame","map2":"map/MAP6/MAP6_2/spriteFrame","map3":"map/MAP6/MAP6_3/spriteFrame","map1OffsetY":100,"map2OffsetY":400,"map3OffsetY":400}}
\ No newline at end of file
diff --git a/JisolGameServer/Main/src/main/resources/json/GRole.json b/JisolGameServer/Main/src/main/resources/json/GRole.json
deleted file mode 100644
index 5b08c8fd..00000000
--- a/JisolGameServer/Main/src/main/resources/json/GRole.json
+++ /dev/null
@@ -1 +0,0 @@
-{"10001":{"id":10001,"roleName":"小石头","spine":"spine/召唤与合成819个Spine/小石头/guaiA1a/spine/guaiA1a","roleSkillIds":[],"roleAttackRange":100},"10002":{"id":10002,"roleName":"坚强小石","spine":"spine/召唤与合成819个Spine/坚强小石/guaiA1a_1/spine/guaiA1a","roleSkillIds":[],"roleAttackRange":100},"10003":{"id":10003,"roleName":"疯狂松鼠","spine":"spine/召唤与合成819个Spine/疯狂松鼠/guaiA4e_2/spine/guaiA4e","roleSkillIds":[40001],"roleAttackRange":500},"10004":{"id":10004,"roleName":"妙蛙种子","spine":"spine/神奇宝贝/001妙蛙种子/spine/001妙蛙种子","roleSkillIds":[40002],"roleAttackRange":350}}
\ No newline at end of file
diff --git a/JisolGameServer/Main/src/main/resources/json/GRoleAttack.json b/JisolGameServer/Main/src/main/resources/json/GRoleAttack.json
deleted file mode 100644
index 8e7c2bd6..00000000
--- a/JisolGameServer/Main/src/main/resources/json/GRoleAttack.json
+++ /dev/null
@@ -1 +0,0 @@
-{"10001":{"roleId":10001,"attackWay":"Normal","attackArgs":[]},"10002":{"roleId":10002,"attackWay":"Normal","attackArgs":[]},"10003":{"roleId":10003,"attackWay":"ParabolicBangRemote","attackArgs":["20001","30001","timo5 007","0.6","100","100"]},"10004":{"roleId":10004,"attackWay":"Normal","attackArgs":[]}}
\ No newline at end of file
diff --git a/JisolGameServer/Main/src/main/resources/json/GRoleAttackBullet.json b/JisolGameServer/Main/src/main/resources/json/GRoleAttackBullet.json
deleted file mode 100644
index 323febd2..00000000
--- a/JisolGameServer/Main/src/main/resources/json/GRoleAttackBullet.json
+++ /dev/null
@@ -1 +0,0 @@
-{"20001":{"id":20001,"bulletName":"炸弹","bulletSrc":"bullets/疯狂松鼠/attack/spriteFrame"}}
\ No newline at end of file
diff --git a/JisolGameServer/Main/src/main/resources/json/GRoleAttackEffect.json b/JisolGameServer/Main/src/main/resources/json/GRoleAttackEffect.json
deleted file mode 100644
index a9559c27..00000000
--- a/JisolGameServer/Main/src/main/resources/json/GRoleAttackEffect.json
+++ /dev/null
@@ -1 +0,0 @@
-{"30001":{"id":30001,"effectName":"爆炸","spine":"effect/爆炸效果/shouji_01/spine/shouji_01","animation":"animation"}}
\ No newline at end of file
diff --git a/JisolGameServer/Main/src/main/resources/json/GRoleSkill.json b/JisolGameServer/Main/src/main/resources/json/GRoleSkill.json
deleted file mode 100644
index 5bb72942..00000000
--- a/JisolGameServer/Main/src/main/resources/json/GRoleSkill.json
+++ /dev/null
@@ -1 +0,0 @@
-{"40001":{"id":40001,"skillName":"疯狂松鼠","skillController":"GSkillCrazySquirrel","skillArgs":["5","250","250"],"skillText":"疯狂松鼠的技能 丢出巨大炸弹 轰炸全部玩家"},"40002":{"id":40002,"skillName":"妙蛙种子连击","skillController":"GSkillBulbasaurDoubleHit","skillArgs":["8"],"skillText":"妙蛙种子攻击8次 触发一次射叶子技能"}}
\ No newline at end of file
diff --git a/JisolGameServer/Main/src/main/resources/json/GRoleSkillEffect.json b/JisolGameServer/Main/src/main/resources/json/GRoleSkillEffect.json
deleted file mode 100644
index 6f5f8899..00000000
--- a/JisolGameServer/Main/src/main/resources/json/GRoleSkillEffect.json
+++ /dev/null
@@ -1 +0,0 @@
-{"50001":{"id":50001,"text":"疯狂松鼠的技能开始 松鼠向天上丢出炸弹","spine":"spine/召唤与合成819个Spine/疯狂松鼠/guaiA4es_2/spine/guaiA4es"},"50002":{"id":50002,"text":"火球","spine":"effect/子弹效果/base_fly_fire/spine/buff_fire"},"50003":{"id":50003,"text":"火球爆炸","spine":"effect/爆炸效果/zhouyu_skill2_2/spine/zhouyu_skill2_2"}}
\ No newline at end of file
diff --git a/JisolGameServer/Main/src/main/resources/json/tbgrole.json b/JisolGameServer/Main/src/main/resources/json/tbgrole.json
new file mode 100644
index 00000000..8c065409
--- /dev/null
+++ b/JisolGameServer/Main/src/main/resources/json/tbgrole.json
@@ -0,0 +1,54 @@
+[
+ {
+ "id": 10000,
+ "name": "发型",
+ "price": 100
+ },
+ {
+ "id": 10001,
+ "name": "外套",
+ "price": 100
+ },
+ {
+ "id": 10002,
+ "name": "上衣",
+ "price": 100
+ },
+ {
+ "id": 10003,
+ "name": "裙子",
+ "price": 100
+ },
+ {
+ "id": 10004,
+ "name": "袜子",
+ "price": 100
+ },
+ {
+ "id": 10005,
+ "name": "鞋子",
+ "price": 100
+ },
+ {
+ "id": 10006,
+ "name": "发饰",
+ "price": 100
+ },
+ {
+ "id": 10007,
+ "name": "中秋节发饰",
+ "price": 200,
+ "expire_time": 1633881599
+ },
+ {
+ "id": 10008,
+ "name": "中秋节鞋子",
+ "price": 300,
+ "expire_time": 1633967999
+ },
+ {
+ "id": 10009,
+ "name": "礼包",
+ "price": 100
+ }
+]
\ No newline at end of file
diff --git a/luban_examples/Projects/Java_bin/src/main/gen/cfg/Tables.java b/luban_examples/Projects/Java_bin/src/main/gen/cfg/Tables.java
index 5a7eac36..6b13b637 100644
--- a/luban_examples/Projects/Java_bin/src/main/gen/cfg/Tables.java
+++ b/luban_examples/Projects/Java_bin/src/main/gen/cfg/Tables.java
@@ -60,6 +60,12 @@ public final class Tables
public cfg.test.TbTestString getTbTestString() { return _tbteststring; }
private final cfg.test.TbDemoGroup _tbdemogroup;
public cfg.test.TbDemoGroup getTbDemoGroup() { return _tbdemogroup; }
+ private final cfg.test.TbDemoGroup_C _tbdemogroup_c;
+ public cfg.test.TbDemoGroup_C getTbDemoGroup_C() { return _tbdemogroup_c; }
+ private final cfg.test.TbDemoGroup_S _tbdemogroup_s;
+ public cfg.test.TbDemoGroup_S getTbDemoGroup_S() { return _tbdemogroup_s; }
+ private final cfg.test.TbDemoGroup_E _tbdemogroup_e;
+ public cfg.test.TbDemoGroup_E getTbDemoGroup_E() { return _tbdemogroup_e; }
private final cfg.test.TbTestGlobal _tbtestglobal;
public cfg.test.TbTestGlobal getTbTestGlobal() { return _tbtestglobal; }
private final cfg.test.TbTestBeRef _tbtestberef;
@@ -92,6 +98,8 @@ public final class Tables
public cfg.test.TbExcelFromJsonMultiRow getTbExcelFromJsonMultiRow() { return _tbexcelfromjsonmultirow; }
private final cfg.test.TbTestScriptableObject _tbtestscriptableobject;
public cfg.test.TbTestScriptableObject getTbTestScriptableObject() { return _tbtestscriptableobject; }
+ private final cfg.test.TbPath _tbpath;
+ public cfg.test.TbPath getTbPath() { return _tbpath; }
private final cfg.test.TbTestMapper _tbtestmapper;
public cfg.test.TbTestMapper getTbTestMapper() { return _tbtestmapper; }
private final cfg.test.TbDefineFromExcel2 _tbdefinefromexcel2;
@@ -118,6 +126,9 @@ public final class Tables
_tbdemoprimitive = new cfg.test.TbDemoPrimitive(loader.load("test_tbdemoprimitive"));
_tbteststring = new cfg.test.TbTestString(loader.load("test_tbteststring"));
_tbdemogroup = new cfg.test.TbDemoGroup(loader.load("test_tbdemogroup"));
+ _tbdemogroup_c = new cfg.test.TbDemoGroup_C(loader.load("test_tbdemogroup_c"));
+ _tbdemogroup_s = new cfg.test.TbDemoGroup_S(loader.load("test_tbdemogroup_s"));
+ _tbdemogroup_e = new cfg.test.TbDemoGroup_E(loader.load("test_tbdemogroup_e"));
_tbtestglobal = new cfg.test.TbTestGlobal(loader.load("test_tbtestglobal"));
_tbtestberef = new cfg.test.TbTestBeRef(loader.load("test_tbtestberef"));
_tbtestberef2 = new cfg.test.TbTestBeRef2(loader.load("test_tbtestberef2"));
@@ -134,6 +145,7 @@ public final class Tables
_tbcompositejsontable3 = new cfg.test.TbCompositeJsonTable3(loader.load("test_tbcompositejsontable3"));
_tbexcelfromjsonmultirow = new cfg.test.TbExcelFromJsonMultiRow(loader.load("test_tbexcelfromjsonmultirow"));
_tbtestscriptableobject = new cfg.test.TbTestScriptableObject(loader.load("test_tbtestscriptableobject"));
+ _tbpath = new cfg.test.TbPath(loader.load("test_tbpath"));
_tbtestmapper = new cfg.test.TbTestMapper(loader.load("test_tbtestmapper"));
_tbdefinefromexcel2 = new cfg.test.TbDefineFromExcel2(loader.load("test_tbdefinefromexcel2"));
}
diff --git a/luban_examples/Projects/Java_bin/src/main/gen/cfg/item/Item.java b/luban_examples/Projects/Java_bin/src/main/gen/cfg/item/Item.java
index eefea75e..3d7e8708 100644
--- a/luban_examples/Projects/Java_bin/src/main/gen/cfg/item/Item.java
+++ b/luban_examples/Projects/Java_bin/src/main/gen/cfg/item/Item.java
@@ -19,8 +19,11 @@ public final class Item extends AbstractBean {
public Item(ByteBuf _buf) {
id = _buf.readInt();
name = _buf.readString();
+ majorType = _buf.readInt();
minorType = _buf.readInt();
+ maxPileNum = _buf.readInt();
quality = _buf.readInt();
+ icon = _buf.readString();
iconBackgroud = _buf.readString();
iconMask = _buf.readString();
desc = _buf.readString();
@@ -36,8 +39,11 @@ public final class Item extends AbstractBean {
*/
public final int id;
public final String name;
+ public final int majorType;
public final int minorType;
+ public final int maxPileNum;
public final int quality;
+ public final String icon;
public final String iconBackgroud;
public final String iconMask;
public final String desc;
@@ -53,8 +59,11 @@ public final class Item extends AbstractBean {
return "{ "
+ "(format_field_name __code_style field.name):" + id + ","
+ "(format_field_name __code_style field.name):" + name + ","
+ + "(format_field_name __code_style field.name):" + majorType + ","
+ "(format_field_name __code_style field.name):" + minorType + ","
+ + "(format_field_name __code_style field.name):" + maxPileNum + ","
+ "(format_field_name __code_style field.name):" + quality + ","
+ + "(format_field_name __code_style field.name):" + icon + ","
+ "(format_field_name __code_style field.name):" + iconBackgroud + ","
+ "(format_field_name __code_style field.name):" + iconMask + ","
+ "(format_field_name __code_style field.name):" + desc + ","
diff --git a/luban_examples/Projects/Java_bin/src/main/gen/cfg/test/DemoEnum.java b/luban_examples/Projects/Java_bin/src/main/gen/cfg/test/DemoEnum.java
index c8327858..00685a1a 100644
--- a/luban_examples/Projects/Java_bin/src/main/gen/cfg/test/DemoEnum.java
+++ b/luban_examples/Projects/Java_bin/src/main/gen/cfg/test/DemoEnum.java
@@ -27,5 +27,6 @@ public final class DemoEnum {
* dd
*/
public static final int D = 5;
+ public static final int Any = 6;
}
diff --git a/luban_examples/Projects/Java_bin/src/main/gen/cfg/test/DemoGroup.java b/luban_examples/Projects/Java_bin/src/main/gen/cfg/test/DemoGroup.java
index 651fd7f6..44dd4d0a 100644
--- a/luban_examples/Projects/Java_bin/src/main/gen/cfg/test/DemoGroup.java
+++ b/luban_examples/Projects/Java_bin/src/main/gen/cfg/test/DemoGroup.java
@@ -15,6 +15,10 @@ import luban.*;
public final class DemoGroup extends AbstractBean {
public DemoGroup(ByteBuf _buf) {
id = _buf.readInt();
+ x1 = _buf.readInt();
+ x2 = _buf.readInt();
+ x3 = _buf.readInt();
+ x4 = _buf.readInt();
x5 = cfg.test.InnerGroup.deserialize(_buf);
}
@@ -23,6 +27,10 @@ public final class DemoGroup extends AbstractBean {
}
public final int id;
+ public final int x1;
+ public final int x2;
+ public final int x3;
+ public final int x4;
public final cfg.test.InnerGroup x5;
public static final int __ID__ = -379263008;
@@ -34,6 +42,10 @@ public final class DemoGroup extends AbstractBean {
public String toString() {
return "{ "
+ "(format_field_name __code_style field.name):" + id + ","
+ + "(format_field_name __code_style field.name):" + x1 + ","
+ + "(format_field_name __code_style field.name):" + x2 + ","
+ + "(format_field_name __code_style field.name):" + x3 + ","
+ + "(format_field_name __code_style field.name):" + x4 + ","
+ "(format_field_name __code_style field.name):" + x5 + ","
+ "}";
}
diff --git a/luban_examples/Projects/Java_bin/src/main/gen/cfg/test/InnerGroup.java b/luban_examples/Projects/Java_bin/src/main/gen/cfg/test/InnerGroup.java
index 35a6110b..86300a61 100644
--- a/luban_examples/Projects/Java_bin/src/main/gen/cfg/test/InnerGroup.java
+++ b/luban_examples/Projects/Java_bin/src/main/gen/cfg/test/InnerGroup.java
@@ -15,6 +15,9 @@ import luban.*;
public final class InnerGroup extends AbstractBean {
public InnerGroup(ByteBuf _buf) {
y1 = _buf.readInt();
+ y2 = _buf.readInt();
+ y3 = _buf.readInt();
+ y4 = _buf.readInt();
}
public static InnerGroup deserialize(ByteBuf _buf) {
@@ -22,6 +25,9 @@ public final class InnerGroup extends AbstractBean {
}
public final int y1;
+ public final int y2;
+ public final int y3;
+ public final int y4;
public static final int __ID__ = -587873083;
@@ -32,6 +38,9 @@ public final class InnerGroup extends AbstractBean {
public String toString() {
return "{ "
+ "(format_field_name __code_style field.name):" + y1 + ","
+ + "(format_field_name __code_style field.name):" + y2 + ","
+ + "(format_field_name __code_style field.name):" + y3 + ","
+ + "(format_field_name __code_style field.name):" + y4 + ","
+ "}";
}
}
diff --git a/luban_examples/Projects/Java_bin/src/main/gen/cfg/test/Path.java b/luban_examples/Projects/Java_bin/src/main/gen/cfg/test/Path.java
new file mode 100644
index 00000000..159009d7
--- /dev/null
+++ b/luban_examples/Projects/Java_bin/src/main/gen/cfg/test/Path.java
@@ -0,0 +1,41 @@
+
+//------------------------------------------------------------------------------
+//
+// This code was generated by a tool.
+// Changes to this file may cause incorrect behavior and will be lost if
+// the code is regenerated.
+//
+//------------------------------------------------------------------------------
+
+package cfg.test;
+
+import luban.*;
+
+
+public final class Path extends AbstractBean {
+ public Path(ByteBuf _buf) {
+ id = _buf.readInt();
+ res = _buf.readString();
+ }
+
+ public static Path deserialize(ByteBuf _buf) {
+ return new cfg.test.Path(_buf);
+ }
+
+ public final int id;
+ public final String res;
+
+ public static final int __ID__ = -1226450911;
+
+ @Override
+ public int getTypeId() { return __ID__; }
+
+ @Override
+ public String toString() {
+ return "{ "
+ + "(format_field_name __code_style field.name):" + id + ","
+ + "(format_field_name __code_style field.name):" + res + ","
+ + "}";
+ }
+}
+
diff --git a/luban_examples/Projects/Java_bin/src/main/gen/cfg/test/TbDemoGroup_C.java b/luban_examples/Projects/Java_bin/src/main/gen/cfg/test/TbDemoGroup_C.java
new file mode 100644
index 00000000..22586df9
--- /dev/null
+++ b/luban_examples/Projects/Java_bin/src/main/gen/cfg/test/TbDemoGroup_C.java
@@ -0,0 +1,36 @@
+
+//------------------------------------------------------------------------------
+//
+// This code was generated by a tool.
+// Changes to this file may cause incorrect behavior and will be lost if
+// the code is regenerated.
+//
+//------------------------------------------------------------------------------
+
+package cfg.test;
+
+import luban.*;
+
+
+public final class TbDemoGroup_C {
+ private final java.util.HashMap _dataMap;
+ private final java.util.ArrayList _dataList;
+
+ public TbDemoGroup_C(ByteBuf _buf) {
+ _dataMap = new java.util.HashMap();
+ _dataList = new java.util.ArrayList();
+
+ for(int n = _buf.readSize() ; n > 0 ; --n) {
+ cfg.test.DemoGroup _v;
+ _v = cfg.test.DemoGroup.deserialize(_buf);
+ _dataList.add(_v);
+ _dataMap.put(_v.id, _v);
+ }
+ }
+
+ public java.util.HashMap getDataMap() { return _dataMap; }
+ public java.util.ArrayList getDataList() { return _dataList; }
+
+ public cfg.test.DemoGroup get(int key) { return _dataMap.get(key); }
+
+}
diff --git a/luban_examples/Projects/Java_bin/src/main/gen/cfg/test/TbDemoGroup_E.java b/luban_examples/Projects/Java_bin/src/main/gen/cfg/test/TbDemoGroup_E.java
new file mode 100644
index 00000000..59b7c493
--- /dev/null
+++ b/luban_examples/Projects/Java_bin/src/main/gen/cfg/test/TbDemoGroup_E.java
@@ -0,0 +1,36 @@
+
+//------------------------------------------------------------------------------
+//
+// This code was generated by a tool.
+// Changes to this file may cause incorrect behavior and will be lost if
+// the code is regenerated.
+//
+//------------------------------------------------------------------------------
+
+package cfg.test;
+
+import luban.*;
+
+
+public final class TbDemoGroup_E {
+ private final java.util.HashMap _dataMap;
+ private final java.util.ArrayList _dataList;
+
+ public TbDemoGroup_E(ByteBuf _buf) {
+ _dataMap = new java.util.HashMap();
+ _dataList = new java.util.ArrayList();
+
+ for(int n = _buf.readSize() ; n > 0 ; --n) {
+ cfg.test.DemoGroup _v;
+ _v = cfg.test.DemoGroup.deserialize(_buf);
+ _dataList.add(_v);
+ _dataMap.put(_v.id, _v);
+ }
+ }
+
+ public java.util.HashMap getDataMap() { return _dataMap; }
+ public java.util.ArrayList getDataList() { return _dataList; }
+
+ public cfg.test.DemoGroup get(int key) { return _dataMap.get(key); }
+
+}
diff --git a/luban_examples/Projects/Java_bin/src/main/gen/cfg/test/TbDemoGroup_S.java b/luban_examples/Projects/Java_bin/src/main/gen/cfg/test/TbDemoGroup_S.java
new file mode 100644
index 00000000..91bba766
--- /dev/null
+++ b/luban_examples/Projects/Java_bin/src/main/gen/cfg/test/TbDemoGroup_S.java
@@ -0,0 +1,36 @@
+
+//------------------------------------------------------------------------------
+//
+// This code was generated by a tool.
+// Changes to this file may cause incorrect behavior and will be lost if
+// the code is regenerated.
+//
+//------------------------------------------------------------------------------
+
+package cfg.test;
+
+import luban.*;
+
+
+public final class TbDemoGroup_S {
+ private final java.util.HashMap _dataMap;
+ private final java.util.ArrayList _dataList;
+
+ public TbDemoGroup_S(ByteBuf _buf) {
+ _dataMap = new java.util.HashMap();
+ _dataList = new java.util.ArrayList();
+
+ for(int n = _buf.readSize() ; n > 0 ; --n) {
+ cfg.test.DemoGroup _v;
+ _v = cfg.test.DemoGroup.deserialize(_buf);
+ _dataList.add(_v);
+ _dataMap.put(_v.id, _v);
+ }
+ }
+
+ public java.util.HashMap getDataMap() { return _dataMap; }
+ public java.util.ArrayList getDataList() { return _dataList; }
+
+ public cfg.test.DemoGroup get(int key) { return _dataMap.get(key); }
+
+}
diff --git a/luban_examples/Projects/Java_bin/src/main/gen/cfg/test/TbPath.java b/luban_examples/Projects/Java_bin/src/main/gen/cfg/test/TbPath.java
new file mode 100644
index 00000000..b0af02c3
--- /dev/null
+++ b/luban_examples/Projects/Java_bin/src/main/gen/cfg/test/TbPath.java
@@ -0,0 +1,36 @@
+
+//------------------------------------------------------------------------------
+//
+// This code was generated by a tool.
+// Changes to this file may cause incorrect behavior and will be lost if
+// the code is regenerated.
+//
+//------------------------------------------------------------------------------
+
+package cfg.test;
+
+import luban.*;
+
+
+public final class TbPath {
+ private final java.util.HashMap _dataMap;
+ private final java.util.ArrayList _dataList;
+
+ public TbPath(ByteBuf _buf) {
+ _dataMap = new java.util.HashMap();
+ _dataList = new java.util.ArrayList();
+
+ for(int n = _buf.readSize() ; n > 0 ; --n) {
+ cfg.test.Path _v;
+ _v = cfg.test.Path.deserialize(_buf);
+ _dataList.add(_v);
+ _dataMap.put(_v.id, _v);
+ }
+ }
+
+ public java.util.HashMap getDataMap() { return _dataMap; }
+ public java.util.ArrayList getDataList() { return _dataList; }
+
+ public cfg.test.Path get(int key) { return _dataMap.get(key); }
+
+}
diff --git a/luban_examples/Projects/Java_bin/src/main/gen/cfg/test/TestExcelBean1.java b/luban_examples/Projects/Java_bin/src/main/gen/cfg/test/TestExcelBean1.java
new file mode 100644
index 00000000..90621ebd
--- /dev/null
+++ b/luban_examples/Projects/Java_bin/src/main/gen/cfg/test/TestExcelBean1.java
@@ -0,0 +1,62 @@
+
+//------------------------------------------------------------------------------
+//
+// This code was generated by a tool.
+// Changes to this file may cause incorrect behavior and will be lost if
+// the code is regenerated.
+//
+//------------------------------------------------------------------------------
+
+package cfg.test;
+
+import luban.*;
+
+
+/**
+ * 这是个测试excel结构
+ */
+public final class TestExcelBean1 extends AbstractBean {
+ public TestExcelBean1(ByteBuf _buf) {
+ x1 = _buf.readInt();
+ x2 = _buf.readString();
+ x3 = _buf.readInt();
+ x4 = _buf.readFloat();
+ }
+
+ public static TestExcelBean1 deserialize(ByteBuf _buf) {
+ return new cfg.test.TestExcelBean1(_buf);
+ }
+
+ /**
+ * 最高品质
+ */
+ public final int x1;
+ /**
+ * 黑色的
+ */
+ public final String x2;
+ /**
+ * 蓝色的
+ */
+ public final int x3;
+ /**
+ * 最差品质
+ */
+ public final float x4;
+
+ public static final int __ID__ = -1738345160;
+
+ @Override
+ public int getTypeId() { return __ID__; }
+
+ @Override
+ public String toString() {
+ return "{ "
+ + "(format_field_name __code_style field.name):" + x1 + ","
+ + "(format_field_name __code_style field.name):" + x2 + ","
+ + "(format_field_name __code_style field.name):" + x3 + ","
+ + "(format_field_name __code_style field.name):" + x4 + ","
+ + "}";
+ }
+}
+
diff --git a/luban_examples/Projects/java_json/src/gen/cfg/Tables.java b/luban_examples/Projects/java_json/src/gen/cfg/Tables.java
index 9686a9ee..148d314b 100644
--- a/luban_examples/Projects/java_json/src/gen/cfg/Tables.java
+++ b/luban_examples/Projects/java_json/src/gen/cfg/Tables.java
@@ -100,6 +100,8 @@ public final class Tables
public cfg.test.TbExcelFromJsonMultiRow getTbExcelFromJsonMultiRow() { return _tbexcelfromjsonmultirow; }
private final cfg.test.TbTestScriptableObject _tbtestscriptableobject;
public cfg.test.TbTestScriptableObject getTbTestScriptableObject() { return _tbtestscriptableobject; }
+ private final cfg.test.TbPath _tbpath;
+ public cfg.test.TbPath getTbPath() { return _tbpath; }
private final cfg.test.TbTestMapper _tbtestmapper;
public cfg.test.TbTestMapper getTbTestMapper() { return _tbtestmapper; }
private final cfg.test.TbDefineFromExcel2 _tbdefinefromexcel2;
@@ -145,6 +147,7 @@ public final class Tables
_tbcompositejsontable3 = new cfg.test.TbCompositeJsonTable3(loader.load("test_tbcompositejsontable3"));
_tbexcelfromjsonmultirow = new cfg.test.TbExcelFromJsonMultiRow(loader.load("test_tbexcelfromjsonmultirow"));
_tbtestscriptableobject = new cfg.test.TbTestScriptableObject(loader.load("test_tbtestscriptableobject"));
+ _tbpath = new cfg.test.TbPath(loader.load("test_tbpath"));
_tbtestmapper = new cfg.test.TbTestMapper(loader.load("test_tbtestmapper"));
_tbdefinefromexcel2 = new cfg.test.TbDefineFromExcel2(loader.load("test_tbdefinefromexcel2"));
}
diff --git a/luban_examples/Projects/java_json/src/gen/cfg/test/DemoEnum.java b/luban_examples/Projects/java_json/src/gen/cfg/test/DemoEnum.java
index c8327858..00685a1a 100644
--- a/luban_examples/Projects/java_json/src/gen/cfg/test/DemoEnum.java
+++ b/luban_examples/Projects/java_json/src/gen/cfg/test/DemoEnum.java
@@ -27,5 +27,6 @@ public final class DemoEnum {
* dd
*/
public static final int D = 5;
+ public static final int Any = 6;
}
diff --git a/luban_examples/Projects/java_json/src/gen/cfg/test/Path.java b/luban_examples/Projects/java_json/src/gen/cfg/test/Path.java
new file mode 100644
index 00000000..b23994af
--- /dev/null
+++ b/luban_examples/Projects/java_json/src/gen/cfg/test/Path.java
@@ -0,0 +1,43 @@
+
+//------------------------------------------------------------------------------
+//
+// This code was generated by a tool.
+// Changes to this file may cause incorrect behavior and will be lost if
+// the code is regenerated.
+//
+//------------------------------------------------------------------------------
+
+package cfg.test;
+
+import luban.*;
+import com.google.gson.JsonElement;
+import com.google.gson.JsonObject;
+
+
+public final class Path extends AbstractBean {
+ public Path(JsonObject _buf) {
+ id = _buf.get("id").getAsInt();
+ res = _buf.get("res").getAsString();
+ }
+
+ public static Path deserialize(JsonObject _buf) {
+ return new cfg.test.Path(_buf);
+ }
+
+ public final int id;
+ public final String res;
+
+ public static final int __ID__ = -1226450911;
+
+ @Override
+ public int getTypeId() { return __ID__; }
+
+ @Override
+ public String toString() {
+ return "{ "
+ + "(format_field_name __code_style field.name):" + id + ","
+ + "(format_field_name __code_style field.name):" + res + ","
+ + "}";
+ }
+}
+
diff --git a/luban_examples/Projects/java_json/src/gen/cfg/test/TbPath.java b/luban_examples/Projects/java_json/src/gen/cfg/test/TbPath.java
new file mode 100644
index 00000000..88dbcb05
--- /dev/null
+++ b/luban_examples/Projects/java_json/src/gen/cfg/test/TbPath.java
@@ -0,0 +1,37 @@
+
+//------------------------------------------------------------------------------
+//
+// This code was generated by a tool.
+// Changes to this file may cause incorrect behavior and will be lost if
+// the code is regenerated.
+//
+//------------------------------------------------------------------------------
+
+package cfg.test;
+
+import luban.*;
+import com.google.gson.JsonElement;
+
+
+public final class TbPath {
+ private final java.util.HashMap _dataMap;
+ private final java.util.ArrayList _dataList;
+
+ public TbPath(JsonElement _buf) {
+ _dataMap = new java.util.HashMap();
+ _dataList = new java.util.ArrayList();
+
+ for (com.google.gson.JsonElement _e_ : _buf.getAsJsonArray()) {
+ cfg.test.Path _v;
+ _v = cfg.test.Path.deserialize(_e_.getAsJsonObject());
+ _dataList.add(_v);
+ _dataMap.put(_v.id, _v);
+ }
+ }
+
+ public java.util.HashMap getDataMap() { return _dataMap; }
+ public java.util.ArrayList getDataList() { return _dataList; }
+
+ public cfg.test.Path get(int key) { return _dataMap.get(key); }
+
+}