#-*- coding: utf-8 -*-
'''
  <auto-generated>
    This code was generated by a tool.
    Changes to this file may cause incorrect behavior and will be lost if
    the code is regenerated.
  </auto-generated>
'''

from enum import Enum

class aiEExecutor(Enum):
    CLIENT = 0
    SERVER = 1

class aiEKeyType(Enum):
    BOOL = 1
    INT = 2
    FLOAT = 3
    STRING = 4
    VECTOR = 5
    ROTATOR = 6
    NAME = 7
    CLASS = 8
    ENUM = 9
    OBJECT = 10

class aiEFlowAbortMode(Enum):
    NONE = 0
    LOWER_PRIORITY = 1
    SELF = 2
    BOTH = 3

class aiEFinishMode(Enum):
    IMMEDIATE = 0
    DELAYED = 1

class aiENotifyObserverMode(Enum):
    ON_VALUE_CHANGE = 0
    ON_RESULT_CHANGE = 1

class aiEOperator(Enum):
    IS_EQUAL_TO = 0
    IS_NOT_EQUAL_TO = 1
    IS_LESS_THAN = 2
    IS_LESS_THAN_OR_EQUAL_TO = 3
    IS_GREAT_THAN = 4
    IS_GREAT_THAN_OR_EQUAL_TO = 5
    CONTAINS = 6
    NOT_CONTAINS = 7

class AudioType(Enum):
    UNKNOWN = 0
    ACC = 1
    AIFF = 2

class commonEBoolOperator(Enum):
    AND = 0
    OR = 1

'''
道具品质
'''
class itemEItemQuality(Enum):
    '''
    白
    '''
    WHITE = 0
    '''
    绿
    '''
    GREEN = 1
    '''
    蓝
    '''
    BLUE = 2
    '''
    紫
    '''
    PURPLE = 3
    '''
    金
    '''
    GOLDEN = 4

class itemECurrencyType(Enum):
    '''
    钻石
    '''
    DIAMOND = 1
    '''
    金币
    '''
    GOLD = 2
    '''
    银币
    '''
    SILVER = 3
    '''
    经验
    '''
    EXP = 4
    '''
    能量点
    '''
    POWER_POINT = 5

class itemEMajorType(Enum):
    '''
    货币
    '''
    CURRENCY = 1
    '''
    服装
    '''
    CLOTH = 2
    '''
    任务
    '''
    QUEST = 3
    '''
    消耗品
    '''
    CONSUMABLES = 4
    '''
    宝箱
    '''
    TREASURE_BOX = 5
    '''
    成就和称谓
    '''
    ACHIEVEMENT_AND_TITLE = 6
    '''
    头像框
    '''
    HEAD_FRAME = 7
    '''
    语音
    '''
    VOICE = 8
    '''
    动作
    '''
    ACTION = 9
    '''
    扩容道具
    '''
    EXPANSION = 10
    '''
    制作材料
    '''
    MATERIAL = 11

class itemEMinorType(Enum):
    '''
    钻石
    '''
    DIAMOND = 101
    '''
    金币
    '''
    GOLD = 102
    '''
    银币
    '''
    SILVER = 103
    '''
    经验
    '''
    EXP = 104
    '''
    能量点
    '''
    POWER_POINT = 105
    '''
    发型
    '''
    HAIR_STYLE = 210
    '''
    外套
    '''
    COAT = 220
    '''
    上衣
    '''
    UPPER_JACKET = 230
    '''
    裤子
    '''
    TROUSERS = 241
    '''
    裙子
    '''
    SKIRT = 242
    '''
    袜子
    '''
    SOCKS = 250
    '''
    鞋子
    '''
    SHOES = 260
    '''
    发饰
    '''
    HAIR_ACCESSORY = 271
    '''
    帽子
    '''
    HAT = 272
    '''
    耳饰
    '''
    EARRING = 273
    '''
    颈饰
    '''
    NECKLACE = 274
    '''
    腕饰
    '''
    BRACELET = 275
    '''
    发箍
    '''
    HAIR_CLASP = 276
    '''
    手套
    '''
    GLOVE = 277
    '''
    手持物
    '''
    HANDHELD_OBJECT = 278
    '''
    特殊
    '''
    SPECIAL = 279
    '''
    底妆
    '''
    BASE_COSMETIC = 281
    '''
    眉妆
    '''
    EYEBROW_COSMETIC = 282
    '''
    睫毛
    '''
    EYELASH = 283
    '''
    美瞳
    '''
    COSMETIC_CONTACT_LENSES = 284
    '''
    唇妆
    '''
    LIP_COSMETIC = 285
    '''
    肤色
    '''
    SKIN_COLOR = 286
    '''
    连衣裙
    '''
    ONE_PIECE_DRESS = 290
    '''
    换装场景
    '''
    SWITCH_CLOTHES_SCENE = 291
    '''
    任务道具
    '''
    QUEST = 301
    '''
    投掷物
    '''
    CAST = 401
    '''
    刀剑
    '''
    SWORD = 421
    '''
    弓箭
    '''
    BOW_ARROW = 422
    '''
    法杖
    '''
    WANDS = 423
    '''
    特殊工具
    '''
    SPECIAL_TOOL = 424
    '''
    食物
    '''
    FOOD = 403
    '''
    宝箱
    '''
    TREASURE_BOX = 501
    '''
    钥匙
    '''
    KEY = 502
    '''
    多选一宝箱
    '''
    MULTI_CHOOSE_TREASURE_BOX = 503
    '''
    成就相关
    '''
    ACHIEVEMENT = 601
    '''
    称谓相关
    '''
    TITLE = 602
    '''
    头像框
    '''
    AVATAR_FRAME = 701
    '''
    语音
    '''
    VOICE = 801
    '''
    特殊待机动作
    '''
    IDLE_POSE = 901
    '''
    拍照动作
    '''
    PHOTO_POSE = 902
    '''
    背包
    '''
    BAG = 1001
    '''
    好友数量
    '''
    FRIEND_CAPACITY = 1002
    '''
    制作材料
    '''
    CONSTRUCTION_MATERIAL = 1101
    '''
    设计图纸
    '''
    DESIGN_DRAWING = 1102

class itemEClothersStarQualityType(Enum):
    '''
    一星
    '''
    ONE = 1
    '''
    二星
    '''
    TWO = 2
    '''
    三星
    '''
    THREE = 3
    '''
    四星
    '''
    FOUR = 4
    '''
    五星
    '''
    FIVE = 5
    '''
    六星
    '''
    SIX = 6
    '''
    七星
    '''
    SEVEN = 7
    '''
    八星
    '''
    EIGHT = 8
    '''
    九星
    '''
    NINE = 9
    '''
    十星
    '''
    TEN = 10

class itemEClothersTag(Enum):
    '''
    防晒
    '''
    FANG_SHAI = 1
    '''
    舞者
    '''
    WU_ZHE = 2

class itemEUseType(Enum):
    '''
    手动
    '''
    MANUAL = 0
    '''
    自动
    '''
    AUTO = 1

class itemEClothesHidePartType(Enum):
    '''
    胸部
    '''
    CHEST = 0
    '''
    手
    '''
    HEAD = 1
    '''
    脊柱上
    '''
    SPINE_UPPER = 2
    '''
    脊柱下
    '''
    SPINE_LOWER = 3
    '''
    臀部
    '''
    HIP = 4
    '''
    腿上
    '''
    LEG_UPPER = 5
    '''
    腿中
    '''
    LEG_MIDDLE = 6
    '''
    腿下
    '''
    LEG_LOWER = 7

class itemEClothesPropertyType(Enum):
    '''
    简约
    '''
    JIAN_YUE = 1
    '''
    华丽
    '''
    HUA_LI = 2
    '''
    可爱
    '''
    KE_AI = 3
    '''
    成熟
    '''
    CHENG_SHU = 4
    '''
    活泼
    '''
    HUO_PO = 5
    '''
    优雅
    '''
    YOU_YA = 6
    '''
    清纯
    '''
    QING_CHUN = 7
    '''
    性感
    '''
    XING_GAN = 8
    '''
    清凉
    '''
    QING_LIANG = 9
    '''
    保暖
    '''
    BAO_NUAN = 10

class testDemoEnum(Enum):
    NONE = 0
    '''
    aa
    '''
    A = 1
    '''
    bb
    '''
    B = 2
    '''
    cc
    '''
    C = 4
    '''
    dd
    '''
    D = 5

class testDemoFlag(Enum):
    A = 1
    B = 2
    C = 4
    D = 8

class testETestUeType(Enum):
    '''
    白
    '''
    WHITE = 0
    BLACK = 1

class testETestEmptyEnum(Enum):
    pass

class testETestEmptyEnum2(Enum):
    SMALL_THAN_256 = 255
    X_256 = 256
    X_257 = 257

class testETestQuality(Enum):
    '''
    最高品质
    '''
    A = 1
    '''
    黑色的
    '''
    B = 2
    '''
    蓝色的
    '''
    C = 3
    '''
    最差品质
    '''
    D = 4

class testAccessFlag(Enum):
    WRITE = 1
    READ = 2
    TRUNCATE = 4
    NEW = 8
    READ_WRITE = WRITE|READ


class aiBlackboard :
    def __init__(self, _json_):
        self.name = _json_['name']
        self.desc = _json_['desc']
        self.parent_name = _json_['parent_name']
        self.keys = []
        for _ele in _json_['keys']: _e = aiBlackboardKey(_ele); self.keys.append(_e)

class aiBlackboardKey :
    def __init__(self, _json_):
        self.name = _json_['name']
        self.desc = _json_['desc']
        self.is_static = _json_['is_static']
        self.type = _json_['type']
        self.type_class_name = _json_['type_class_name']

class aiBehaviorTree :
    def __init__(self, _json_):
        self.id = _json_['id']
        self.name = _json_['name']
        self.desc = _json_['desc']
        self.blackboard_id = _json_['blackboard_id']
        self.root = aiComposeNode.fromJson(_json_['root'])

class aiNode :
    _childrenTypes = None
    @staticmethod
    def fromJson(_json_):
        childrenTypes = aiNode._childrenTypes
        if not childrenTypes:
            childrenTypes = aiNode._childrenTypes = {
            'UeSetDefaultFocus': aiNode,
            'ExecuteTimeStatistic': aiNode,
            'ChooseTarget': aiNode,
            'KeepFaceTarget': aiNode,
            'GetOwnerPlayer': aiNode,
            'UpdateDailyBehaviorProps': aiNode,
            'UeLoop': aiNode,
            'UeCooldown': aiNode,
            'UeTimeLimit': aiNode,
            'UeBlackboard': aiNode,
            'UeForceSuccess': aiNode,
            'IsAtLocation': aiNode,
            'DistanceLessThan': aiNode,
            'Sequence': aiNode,
            'Selector': aiNode,
            'SimpleParallel': aiNode,
            'UeWait': aiNode,
            'UeWaitBlackboardTime': aiNode,
            'MoveToTarget': aiNode,
            'ChooseSkill': aiNode,
            'MoveToRandomLocation': aiNode,
            'MoveToLocation': aiNode,
            'DebugPrint': aiNode,
    }
        type = _json_['$type']
        child = aiNode._childrenTypes.get(type)
        if child != None:
            return  child(_json_)
        else:
            raise Exception()
    def __init__(self, _json_):
        self.id = _json_['id']
        self.node_name = _json_['node_name']

class aiService (aiNode):
    _childrenTypes = None
    @staticmethod
    def fromJson(_json_):
        childrenTypes = aiService._childrenTypes
        if not childrenTypes:
            childrenTypes = aiService._childrenTypes = {
            'UeSetDefaultFocus': aiService,
            'ExecuteTimeStatistic': aiService,
            'ChooseTarget': aiService,
            'KeepFaceTarget': aiService,
            'GetOwnerPlayer': aiService,
            'UpdateDailyBehaviorProps': aiService,
    }
        type = _json_['$type']
        child = aiService._childrenTypes.get(type)
        if child != None:
            return  child(_json_)
        else:
            raise Exception()
    def __init__(self, _json_):
        aiNode.__init__(self, _json_)

        pass

class aiUeSetDefaultFocus (aiService):
    def __init__(self, _json_):
        aiService.__init__(self, _json_)
        self.keyboard_key = _json_['keyboard_key']

class aiExecuteTimeStatistic (aiService):
    def __init__(self, _json_):
        aiService.__init__(self, _json_)

        pass

class aiChooseTarget (aiService):
    def __init__(self, _json_):
        aiService.__init__(self, _json_)
        self.result_target_key = _json_['result_target_key']

class aiKeepFaceTarget (aiService):
    def __init__(self, _json_):
        aiService.__init__(self, _json_)
        self.target_actor_key = _json_['target_actor_key']

class aiGetOwnerPlayer (aiService):
    def __init__(self, _json_):
        aiService.__init__(self, _json_)
        self.player_actor_key = _json_['player_actor_key']

class aiUpdateDailyBehaviorProps (aiService):
    def __init__(self, _json_):
        aiService.__init__(self, _json_)
        self.satiety_key = _json_['satiety_key']
        self.energy_key = _json_['energy_key']
        self.mood_key = _json_['mood_key']
        self.satiety_lower_threshold_key = _json_['satiety_lower_threshold_key']
        self.satiety_upper_threshold_key = _json_['satiety_upper_threshold_key']
        self.energy_lower_threshold_key = _json_['energy_lower_threshold_key']
        self.energy_upper_threshold_key = _json_['energy_upper_threshold_key']
        self.mood_lower_threshold_key = _json_['mood_lower_threshold_key']
        self.mood_upper_threshold_key = _json_['mood_upper_threshold_key']

class aiDecorator (aiNode):
    _childrenTypes = None
    @staticmethod
    def fromJson(_json_):
        childrenTypes = aiDecorator._childrenTypes
        if not childrenTypes:
            childrenTypes = aiDecorator._childrenTypes = {
            'UeLoop': aiDecorator,
            'UeCooldown': aiDecorator,
            'UeTimeLimit': aiDecorator,
            'UeBlackboard': aiDecorator,
            'UeForceSuccess': aiDecorator,
            'IsAtLocation': aiDecorator,
            'DistanceLessThan': aiDecorator,
    }
        type = _json_['$type']
        child = aiDecorator._childrenTypes.get(type)
        if child != None:
            return  child(_json_)
        else:
            raise Exception()
    def __init__(self, _json_):
        aiNode.__init__(self, _json_)
        self.flow_abort_mode = _json_['flow_abort_mode']

class aiUeLoop (aiDecorator):
    def __init__(self, _json_):
        aiDecorator.__init__(self, _json_)
        self.num_loops = _json_['num_loops']
        self.infinite_loop = _json_['infinite_loop']
        self.infinite_loop_timeout_time = _json_['infinite_loop_timeout_time']

class aiUeCooldown (aiDecorator):
    def __init__(self, _json_):
        aiDecorator.__init__(self, _json_)
        self.cooldown_time = _json_['cooldown_time']

class aiUeTimeLimit (aiDecorator):
    def __init__(self, _json_):
        aiDecorator.__init__(self, _json_)
        self.limit_time = _json_['limit_time']

class aiUeBlackboard (aiDecorator):
    def __init__(self, _json_):
        aiDecorator.__init__(self, _json_)
        self.notify_observer = _json_['notify_observer']
        self.blackboard_key = _json_['blackboard_key']
        self.key_query = aiKeyQueryOperator.fromJson(_json_['key_query'])

class aiKeyQueryOperator :
    _childrenTypes = None
    @staticmethod
    def fromJson(_json_):
        childrenTypes = aiKeyQueryOperator._childrenTypes
        if not childrenTypes:
            childrenTypes = aiKeyQueryOperator._childrenTypes = {
            'IsSet': aiKeyQueryOperator,
            'IsNotSet': aiKeyQueryOperator,
            'BinaryOperator': aiKeyQueryOperator,
    }
        type = _json_['$type']
        child = aiKeyQueryOperator._childrenTypes.get(type)
        if child != None:
            return  child(_json_)
        else:
            raise Exception()
    def __init__(self, _json_):

        pass

class aiIsSet (aiKeyQueryOperator):
    def __init__(self, _json_):
        aiKeyQueryOperator.__init__(self, _json_)

        pass

class aiIsNotSet (aiKeyQueryOperator):
    def __init__(self, _json_):
        aiKeyQueryOperator.__init__(self, _json_)

        pass

class aiBinaryOperator (aiKeyQueryOperator):
    def __init__(self, _json_):
        aiKeyQueryOperator.__init__(self, _json_)
        self.oper = _json_['oper']
        self.data = aiKeyData.fromJson(_json_['data'])

class aiKeyData :
    _childrenTypes = None
    @staticmethod
    def fromJson(_json_):
        childrenTypes = aiKeyData._childrenTypes
        if not childrenTypes:
            childrenTypes = aiKeyData._childrenTypes = {
            'FloatKeyData': aiKeyData,
            'IntKeyData': aiKeyData,
            'StringKeyData': aiKeyData,
            'BlackboardKeyData': aiKeyData,
    }
        type = _json_['$type']
        child = aiKeyData._childrenTypes.get(type)
        if child != None:
            return  child(_json_)
        else:
            raise Exception()
    def __init__(self, _json_):

        pass

class aiFloatKeyData (aiKeyData):
    def __init__(self, _json_):
        aiKeyData.__init__(self, _json_)
        self.value = _json_['value']

class aiIntKeyData (aiKeyData):
    def __init__(self, _json_):
        aiKeyData.__init__(self, _json_)
        self.value = _json_['value']

class aiStringKeyData (aiKeyData):
    def __init__(self, _json_):
        aiKeyData.__init__(self, _json_)
        self.value = _json_['value']

class aiBlackboardKeyData (aiKeyData):
    def __init__(self, _json_):
        aiKeyData.__init__(self, _json_)
        self.value = _json_['value']

class aiUeForceSuccess (aiDecorator):
    def __init__(self, _json_):
        aiDecorator.__init__(self, _json_)

        pass

class aiIsAtLocation (aiDecorator):
    def __init__(self, _json_):
        aiDecorator.__init__(self, _json_)
        self.acceptable_radius = _json_['acceptable_radius']
        self.keyboard_key = _json_['keyboard_key']
        self.inverse_condition = _json_['inverse_condition']

class aiDistanceLessThan (aiDecorator):
    def __init__(self, _json_):
        aiDecorator.__init__(self, _json_)
        self.actor1_key = _json_['actor1_key']
        self.actor2_key = _json_['actor2_key']
        self.distance = _json_['distance']
        self.reverse_result = _json_['reverse_result']

class aiFlowNode (aiNode):
    _childrenTypes = None
    @staticmethod
    def fromJson(_json_):
        childrenTypes = aiFlowNode._childrenTypes
        if not childrenTypes:
            childrenTypes = aiFlowNode._childrenTypes = {
            'Sequence': aiFlowNode,
            'Selector': aiFlowNode,
            'SimpleParallel': aiFlowNode,
            'UeWait': aiFlowNode,
            'UeWaitBlackboardTime': aiFlowNode,
            'MoveToTarget': aiFlowNode,
            'ChooseSkill': aiFlowNode,
            'MoveToRandomLocation': aiFlowNode,
            'MoveToLocation': aiFlowNode,
            'DebugPrint': aiFlowNode,
    }
        type = _json_['$type']
        child = aiFlowNode._childrenTypes.get(type)
        if child != None:
            return  child(_json_)
        else:
            raise Exception()
    def __init__(self, _json_):
        aiNode.__init__(self, _json_)
        self.decorators = []
        for _ele in _json_['decorators']: _e = aiDecorator.fromJson(_ele); self.decorators.append(_e)
        self.services = []
        for _ele in _json_['services']: _e = aiService.fromJson(_ele); self.services.append(_e)

class aiComposeNode (aiFlowNode):
    _childrenTypes = None
    @staticmethod
    def fromJson(_json_):
        childrenTypes = aiComposeNode._childrenTypes
        if not childrenTypes:
            childrenTypes = aiComposeNode._childrenTypes = {
            'Sequence': aiComposeNode,
            'Selector': aiComposeNode,
            'SimpleParallel': aiComposeNode,
    }
        type = _json_['$type']
        child = aiComposeNode._childrenTypes.get(type)
        if child != None:
            return  child(_json_)
        else:
            raise Exception()
    def __init__(self, _json_):
        aiFlowNode.__init__(self, _json_)

        pass

class aiSequence (aiComposeNode):
    def __init__(self, _json_):
        aiComposeNode.__init__(self, _json_)
        self.children = []
        for _ele in _json_['children']: _e = aiFlowNode.fromJson(_ele); self.children.append(_e)

class aiSelector (aiComposeNode):
    def __init__(self, _json_):
        aiComposeNode.__init__(self, _json_)
        self.children = []
        for _ele in _json_['children']: _e = aiFlowNode.fromJson(_ele); self.children.append(_e)

class aiSimpleParallel (aiComposeNode):
    def __init__(self, _json_):
        aiComposeNode.__init__(self, _json_)
        self.finish_mode = _json_['finish_mode']
        self.main_task = aiTask.fromJson(_json_['main_task'])
        self.background_node = aiFlowNode.fromJson(_json_['background_node'])

class aiTask (aiFlowNode):
    _childrenTypes = None
    @staticmethod
    def fromJson(_json_):
        childrenTypes = aiTask._childrenTypes
        if not childrenTypes:
            childrenTypes = aiTask._childrenTypes = {
            'UeWait': aiTask,
            'UeWaitBlackboardTime': aiTask,
            'MoveToTarget': aiTask,
            'ChooseSkill': aiTask,
            'MoveToRandomLocation': aiTask,
            'MoveToLocation': aiTask,
            'DebugPrint': aiTask,
    }
        type = _json_['$type']
        child = aiTask._childrenTypes.get(type)
        if child != None:
            return  child(_json_)
        else:
            raise Exception()
    def __init__(self, _json_):
        aiFlowNode.__init__(self, _json_)
        self.ignore_restart_self = _json_['ignore_restart_self']

class aiUeWait (aiTask):
    def __init__(self, _json_):
        aiTask.__init__(self, _json_)
        self.wait_time = _json_['wait_time']
        self.random_deviation = _json_['random_deviation']

class aiUeWaitBlackboardTime (aiTask):
    def __init__(self, _json_):
        aiTask.__init__(self, _json_)
        self.blackboard_key = _json_['blackboard_key']

class aiMoveToTarget (aiTask):
    def __init__(self, _json_):
        aiTask.__init__(self, _json_)
        self.target_actor_key = _json_['target_actor_key']
        self.acceptable_radius = _json_['acceptable_radius']

class aiChooseSkill (aiTask):
    def __init__(self, _json_):
        aiTask.__init__(self, _json_)
        self.target_actor_key = _json_['target_actor_key']
        self.result_skill_id_key = _json_['result_skill_id_key']

class aiMoveToRandomLocation (aiTask):
    def __init__(self, _json_):
        aiTask.__init__(self, _json_)
        self.origin_position_key = _json_['origin_position_key']
        self.radius = _json_['radius']

class aiMoveToLocation (aiTask):
    def __init__(self, _json_):
        aiTask.__init__(self, _json_)
        self.acceptable_radius = _json_['acceptable_radius']

class aiDebugPrint (aiTask):
    def __init__(self, _json_):
        aiTask.__init__(self, _json_)
        self.text = _json_['text']

class commonGlobalConfig :
    def __init__(self, _json_):
        self.x1 = _json_['x1']
        self.x2 = _json_['x2']
        self.x3 = _json_['x3']
        self.x4 = _json_['x4']
        self.x5 = _json_['x5']
        self.x6 = _json_['x6']
        self.x7 = []
        for _ele in _json_['x7']: _e = _ele; self.x7.append(_e)

class itemItem :
    def __init__(self, _json_):
        self.id = _json_['id']
        self.name = _json_['name']
        self.minor_type = _json_['minor_type']
        self.quality = _json_['quality']
        self.icon_backgroud = _json_['icon_backgroud']
        self.icon_mask = _json_['icon_mask']
        self.desc = _json_['desc']
        self.show_order = _json_['show_order']

class l10nL10NDemo :
    def __init__(self, _json_):
        self.id = _json_['id']
        self.text = _json_['text']

class l10nPatchDemo :
    def __init__(self, _json_):
        self.id = _json_['id']
        self.value = _json_['value']

class tagTestTag :
    def __init__(self, _json_):
        self.id = _json_['id']
        self.value = _json_['value']

class testDemoType2 :
    def __init__(self, _json_):
        self.x4 = _json_['x4']
        self.x1 = _json_['x1']
        self.x2 = _json_['x2']
        self.x3 = _json_['x3']
        self.x5 = _json_['x5']
        self.x6 = _json_['x6']
        self.x7 = _json_['x7']
        self.x8_0 = _json_['x8_0']
        self.x8 = _json_['x8']
        self.x9 = _json_['x9']
        self.x10 = _json_['x10']
        self.x12 = testDemoType1(_json_['x12'])
        self.x13 = _json_['x13']
        self.x14 = testDemoDynamic.fromJson(_json_['x14'])
        self.s1 = _json_['s1']
        self.t1 = _json_['t1']
        self.k1 = []
        for _ele in _json_['k1']: _e = _ele; self.k1.append(_e)
        self.k2 = []
        for _ele in _json_['k2']: _e = _ele; self.k2.append(_e)
        self.k5 = []
        for _ele in _json_['k5']: _e = _ele; self.k5.append(_e)
        self.k8 = {}
        for _ek, _ev in _json_['k8']: _k = _ek; _v = _ev; self.k8[_k] =_v
        self.k9 = []
        for _ele in _json_['k9']: _e = testDemoE2(_ele); self.k9.append(_e)
        self.k15 = []
        for _ele in _json_['k15']: _e = testDemoDynamic.fromJson(_ele); self.k15.append(_e)

class testDemoType1 :
    def __init__(self, _json_):
        self.x1 = _json_['x1']

class testDemoDynamic :
    _childrenTypes = None
    @staticmethod
    def fromJson(_json_):
        childrenTypes = testDemoDynamic._childrenTypes
        if not childrenTypes:
            childrenTypes = testDemoDynamic._childrenTypes = {
            'DemoD2': testDemoDynamic,
            'DemoE1': testDemoDynamic,
            'test.login.RoleInfo': testDemoDynamic,
            'DemoD5': testDemoDynamic,
    }
        type = _json_['$type']
        child = testDemoDynamic._childrenTypes.get(type)
        if child != None:
            return  child(_json_)
        else:
            raise Exception()
    def __init__(self, _json_):
        self.x1 = _json_['x1']

class testDemoD2 (testDemoDynamic):
    def __init__(self, _json_):
        testDemoDynamic.__init__(self, _json_)
        self.x2 = _json_['x2']

class testDemoD3 (testDemoDynamic):
    _childrenTypes = None
    @staticmethod
    def fromJson(_json_):
        childrenTypes = testDemoD3._childrenTypes
        if not childrenTypes:
            childrenTypes = testDemoD3._childrenTypes = {
            'DemoE1': testDemoD3,
            'test.login.RoleInfo': testDemoD3,
    }
        type = _json_['$type']
        child = testDemoD3._childrenTypes.get(type)
        if child != None:
            return  child(_json_)
        else:
            raise Exception()
    def __init__(self, _json_):
        testDemoDynamic.__init__(self, _json_)
        self.x3 = _json_['x3']

class testDemoE1 (testDemoD3):
    def __init__(self, _json_):
        testDemoD3.__init__(self, _json_)
        self.x4 = _json_['x4']

class test_loginRoleInfo (testDemoD3):
    def __init__(self, _json_):
        testDemoD3.__init__(self, _json_)
        self.role_id = _json_['role_id']

class testDemoD5 (testDemoDynamic):
    def __init__(self, _json_):
        testDemoDynamic.__init__(self, _json_)
        self.time = testDateTimeRange(_json_['time'])

class testDateTimeRange :
    def __init__(self, _json_):
        self.start_time = _json_['start_time']
        self.end_time = _json_['end_time']

class testDemoE2 :
    def __init__(self, _json_):
        if _json_.get('y1') != None: self.y1 = _json_['y1']
        self.y2 = _json_['y2']

class testDemoSingletonType :
    def __init__(self, _json_):
        self.id = _json_['id']
        self.name = _json_['name']
        self.date = testDemoDynamic.fromJson(_json_['date'])

class testNotIndexList :
    def __init__(self, _json_):
        self.x = _json_['x']
        self.y = _json_['y']

class testMultiUnionIndexList :
    def __init__(self, _json_):
        self.id1 = _json_['id1']
        self.id2 = _json_['id2']
        self.id3 = _json_['id3']
        self.num = _json_['num']
        self.desc = _json_['desc']

class testMultiIndexList :
    def __init__(self, _json_):
        self.id1 = _json_['id1']
        self.id2 = _json_['id2']
        self.id3 = _json_['id3']
        self.num = _json_['num']
        self.desc = _json_['desc']

class testMultiRowRecord :
    def __init__(self, _json_):
        self.id = _json_['id']
        self.name = _json_['name']
        self.one_rows = []
        for _ele in _json_['one_rows']: _e = testMultiRowType1(_ele); self.one_rows.append(_e)
        self.multi_rows1 = []
        for _ele in _json_['multi_rows1']: _e = testMultiRowType1(_ele); self.multi_rows1.append(_e)
        self.multi_rows2 = []
        for _ele in _json_['multi_rows2']: _e = testMultiRowType1(_ele); self.multi_rows2.append(_e)
        self.multi_rows4 = {}
        for _ek, _ev in _json_['multi_rows4']: _k = _ek; _v = testMultiRowType2(_ev); self.multi_rows4[_k] =_v
        self.multi_rows5 = []
        for _ele in _json_['multi_rows5']: _e = testMultiRowType3(_ele); self.multi_rows5.append(_e)
        self.multi_rows6 = {}
        for _ek, _ev in _json_['multi_rows6']: _k = _ek; _v = testMultiRowType2(_ev); self.multi_rows6[_k] =_v
        self.multi_rows7 = {}
        for _ek, _ev in _json_['multi_rows7']: _k = _ek; _v = _ev; self.multi_rows7[_k] =_v

class testMultiRowType1 :
    def __init__(self, _json_):
        self.id = _json_['id']
        self.x = _json_['x']

class testMultiRowType2 :
    def __init__(self, _json_):
        self.id = _json_['id']
        self.x = _json_['x']
        self.y = _json_['y']

class testMultiRowType3 :
    def __init__(self, _json_):
        self.id = _json_['id']
        self.items = []
        for _ele in _json_['items']: _e = testMultiRowType1(_ele); self.items.append(_e)

class testTestMultiColumn :
    def __init__(self, _json_):
        self.id = _json_['id']
        self.a = testFoo(_json_['a'])
        self.b = testFoo(_json_['b'])
        self.c = testFoo(_json_['c'])

class testFoo :
    def __init__(self, _json_):
        self.y1 = _json_['y1']
        self.y2 = _json_['y2']
        self.y3 = _json_['y3']

class testMultiRowTitle :
    def __init__(self, _json_):
        self.id = _json_['id']
        self.name = _json_['name']
        self.x1 = testH1(_json_['x1'])
        if _json_.get('x2_0') != None: self.x2_0 = testH2(_json_['x2_0'])
        self.x2 = []
        for _ele in _json_['x2']: _e = testH2(_ele); self.x2.append(_e)
        self.x3 = []
        for _ele in _json_['x3']: _e = testH2(_ele); self.x3.append(_e)
        self.x4 = []
        for _ele in _json_['x4']: _e = testH2(_ele); self.x4.append(_e)

class testH1 :
    def __init__(self, _json_):
        self.y2 = testH2(_json_['y2'])
        self.y3 = _json_['y3']

class testH2 :
    def __init__(self, _json_):
        self.z2 = _json_['z2']
        self.z3 = _json_['z3']

class testTestNull :
    def __init__(self, _json_):
        self.id = _json_['id']
        if _json_.get('x1') != None: self.x1 = _json_['x1']
        if _json_.get('x2') != None: self.x2 = _json_['x2']
        if _json_.get('x3') != None: self.x3 = testDemoType1(_json_['x3'])
        if _json_.get('x4') != None: self.x4 = testDemoDynamic.fromJson(_json_['x4'])
        if _json_.get('s1') != None: self.s1 = _json_['s1']
        if _json_.get('s2') != None: self.s2 = _json_['s2']

class testDemoPrimitiveTypesTable :
    def __init__(self, _json_):
        self.x1 = _json_['x1']
        self.x2 = _json_['x2']
        self.x3 = _json_['x3']
        self.x4 = _json_['x4']
        self.x5 = _json_['x5']
        self.x6 = _json_['x6']
        self.x7 = _json_['x7']
        self.s1 = _json_['s1']
        self.s2 = _json_['s2']
        self.v2 = vec2(_json_['v2'])
        self.v3 = vec3(_json_['v3'])
        self.v4 = vec4(_json_['v4'])
        self.t1 = _json_['t1']

class vec2 :
    def __init__(self, _json_):
        self.x = _json_['x']
        self.y = _json_['y']

class vec3 :
    def __init__(self, _json_):
        self.x = _json_['x']
        self.y = _json_['y']
        self.z = _json_['z']

class vec4 :
    def __init__(self, _json_):
        self.x = _json_['x']
        self.y = _json_['y']
        self.z = _json_['z']
        self.w = _json_['w']

class testTestString :
    def __init__(self, _json_):
        self.id = _json_['id']
        self.s1 = _json_['s1']
        self.s2 = _json_['s2']
        self.cs1 = testCompactString(_json_['cs1'])
        self.cs2 = testCompactString(_json_['cs2'])

class testCompactString :
    def __init__(self, _json_):
        self.id = _json_['id']
        self.s2 = _json_['s2']
        self.s3 = _json_['s3']

class testDemoGroup :
    def __init__(self, _json_):
        self.id = _json_['id']
        self.x5 = testInnerGroup(_json_['x5'])

class testInnerGroup :
    def __init__(self, _json_):
        self.y1 = _json_['y1']

class testTestGlobal :
    def __init__(self, _json_):
        self.unlock_equip = _json_['unlock_equip']
        self.unlock_hero = _json_['unlock_hero']

class testTestBeRef :
    def __init__(self, _json_):
        self.id = _json_['id']
        self.count = _json_['count']

class testTestRef :
    def __init__(self, _json_):
        self.id = _json_['id']
        self.x1 = _json_['x1']
        self.x1_2 = _json_['x1_2']
        self.x2 = _json_['x2']
        self.x3 = _json_['x3']
        self.x4 = _json_['x4']
        self.a1 = []
        for _ele in _json_['a1']: _e = _ele; self.a1.append(_e)
        self.a2 = []
        for _ele in _json_['a2']: _e = _ele; self.a2.append(_e)
        self.b1 = []
        for _ele in _json_['b1']: _e = _ele; self.b1.append(_e)
        self.b2 = []
        for _ele in _json_['b2']: _e = _ele; self.b2.append(_e)
        self.c1 = []
        for _ele in _json_['c1']: _e = _ele; self.c1.append(_e)
        self.c2 = []
        for _ele in _json_['c2']: _e = _ele; self.c2.append(_e)
        self.d1 = {}
        for _ek, _ev in _json_['d1']: _k = _ek; _v = _ev; self.d1[_k] =_v
        self.d2 = {}
        for _ek, _ev in _json_['d2']: _k = _ek; _v = _ev; self.d2[_k] =_v
        self.e1 = _json_['e1']
        self.e2 = _json_['e2']
        self.e3 = _json_['e3']
        self.f1 = _json_['f1']
        self.f2 = _json_['f2']
        self.f3 = _json_['f3']
        self.s1 = testRefDynamicBase.fromJson(_json_['s1'])

class testRefDynamicBase :
    _childrenTypes = None
    @staticmethod
    def fromJson(_json_):
        childrenTypes = testRefDynamicBase._childrenTypes
        if not childrenTypes:
            childrenTypes = testRefDynamicBase._childrenTypes = {
            'RefBean': testRefDynamicBase,
    }
        type = _json_['$type']
        child = testRefDynamicBase._childrenTypes.get(type)
        if child != None:
            return  child(_json_)
        else:
            raise Exception()
    def __init__(self, _json_):
        self.x = _json_['x']

class testRefBean (testRefDynamicBase):
    def __init__(self, _json_):
        testRefDynamicBase.__init__(self, _json_)
        self.arr = []
        for _ele in _json_['arr']: _e = _ele; self.arr.append(_e)

class testTestSize :
    def __init__(self, _json_):
        self.id = _json_['id']
        self.x1 = []
        for _ele in _json_['x1']: _e = _ele; self.x1.append(_e)
        self.x2 = []
        for _ele in _json_['x2']: _e = _ele; self.x2.append(_e)
        self.x3 = []
        for _ele in _json_['x3']: _e = _ele; self.x3.append(_e)
        self.x4 = {}
        for _ek, _ev in _json_['x4']: _k = _ek; _v = _ev; self.x4[_k] =_v

class testTestSet :
    def __init__(self, _json_):
        self.id = _json_['id']
        self.x0 = _json_['x0']
        self.x1 = []
        for _ele in _json_['x1']: _e = _ele; self.x1.append(_e)
        self.x2 = []
        for _ele in _json_['x2']: _e = _ele; self.x2.append(_e)
        self.x3 = []
        for _ele in _json_['x3']: _e = _ele; self.x3.append(_e)
        self.x4 = []
        for _ele in _json_['x4']: _e = _ele; self.x4.append(_e)

class testDetectEncoding :
    def __init__(self, _json_):
        self.id = _json_['id']
        self.name = _json_['name']

class testItemBase :
    _childrenTypes = None
    @staticmethod
    def fromJson(_json_):
        childrenTypes = testItemBase._childrenTypes
        if not childrenTypes:
            childrenTypes = testItemBase._childrenTypes = {
            'Item': testItemBase,
            'Equipment': testItemBase,
            'Decorator': testItemBase,
    }
        type = _json_['$type']
        child = testItemBase._childrenTypes.get(type)
        if child != None:
            return  child(_json_)
        else:
            raise Exception()
    def __init__(self, _json_):
        self.id = _json_['id']
        self.name = _json_['name']
        self.desc = _json_['desc']

class testItem (testItemBase):
    def __init__(self, _json_):
        testItemBase.__init__(self, _json_)
        self.num = _json_['num']
        self.price = _json_['price']

class testEquipment (testItemBase):
    def __init__(self, _json_):
        testItemBase.__init__(self, _json_)
        self.attr = _json_['attr']
        self.value = _json_['value']

class testDecorator (testItemBase):
    def __init__(self, _json_):
        testItemBase.__init__(self, _json_)
        self.duration = _json_['duration']

class testTestIndex :
    def __init__(self, _json_):
        self.id = _json_['id']
        self.eles = []
        for _ele in _json_['eles']: _e = testDemoType1(_ele); self.eles.append(_e)

class testTestMap :
    def __init__(self, _json_):
        self.id = _json_['id']
        self.x1 = {}
        for _ek, _ev in _json_['x1']: _k = _ek; _v = _ev; self.x1[_k] =_v
        self.x2 = {}
        for _ek, _ev in _json_['x2']: _k = _ek; _v = _ev; self.x2[_k] =_v
        self.x3 = {}
        for _ek, _ev in _json_['x3']: _k = _ek; _v = _ev; self.x3[_k] =_v
        self.x4 = {}
        for _ek, _ev in _json_['x4']: _k = _ek; _v = _ev; self.x4[_k] =_v

class testExcelFromJson :
    def __init__(self, _json_):
        self.x4 = _json_['x4']
        self.x1 = _json_['x1']
        self.x5 = _json_['x5']
        self.x6 = _json_['x6']
        self.s1 = _json_['s1']
        self.s2 = _json_['s2']
        self.t1 = _json_['t1']
        self.x12 = testDemoType1(_json_['x12'])
        self.x13 = _json_['x13']
        self.x14 = testDemoDynamic.fromJson(_json_['x14'])
        self.k1 = []
        for _ele in _json_['k1']: _e = _ele; self.k1.append(_e)
        self.k8 = {}
        for _ek, _ev in _json_['k8']: _k = _ek; _v = _ev; self.k8[_k] =_v
        self.k9 = []
        for _ele in _json_['k9']: _e = testDemoE2(_ele); self.k9.append(_e)
        self.k15 = []
        for _ele in _json_['k15']: _e = testDemoDynamic.fromJson(_ele); self.k15.append(_e)

class testCompositeJsonTable1 :
    def __init__(self, _json_):
        self.id = _json_['id']
        self.x = _json_['x']

class testCompositeJsonTable2 :
    def __init__(self, _json_):
        self.id = _json_['id']
        self.y = _json_['y']

class testCompositeJsonTable3 :
    def __init__(self, _json_):
        self.a = _json_['a']
        self.b = _json_['b']

class testExcelFromJsonMultiRow :
    def __init__(self, _json_):
        self.id = _json_['id']
        self.x = _json_['x']
        self.items = []
        for _ele in _json_['items']: _e = testTestRow(_ele); self.items.append(_e)

class testTestRow :
    def __init__(self, _json_):
        self.x = _json_['x']
        self.y = _json_['y']
        self.z = _json_['z']
        self.a = testTest3(_json_['a'])
        self.b = []
        for _ele in _json_['b']: _e = _ele; self.b.append(_e)

class testTest3 :
    def __init__(self, _json_):
        self.x = _json_['x']
        self.y = _json_['y']

class testTestScriptableObject :
    def __init__(self, _json_):
        self.id = _json_['id']
        self.desc = _json_['desc']
        self.rate = _json_['rate']
        self.num = _json_['num']
        self.v2 = vec2(_json_['v2'])
        self.v3 = vec3(_json_['v3'])
        self.v4 = vec4(_json_['v4'])

class testTestMapper :
    def __init__(self, _json_):
        self.id = _json_['id']
        self.audio_type = _json_['audio_type']
        self.v2 = vec2(_json_['v2'])

class DefineFromExcel2 :
    def __init__(self, _json_):
        self.id = _json_['id']
        self.x1 = _json_['x1']
        self.x5 = _json_['x5']
        self.x6 = _json_['x6']
        self.x8 = _json_['x8']
        self.x10 = _json_['x10']
        self.x13 = _json_['x13']
        self.x13_2 = _json_['x13_2']
        self.x14 = testDemoDynamic.fromJson(_json_['x14'])
        self.x15 = testShape.fromJson(_json_['x15'])
        self.v2 = vec2(_json_['v2'])
        self.t1 = _json_['t1']
        self.k1 = []
        for _ele in _json_['k1']: _e = _ele; self.k1.append(_e)
        self.k2 = []
        for _ele in _json_['k2']: _e = _ele; self.k2.append(_e)
        self.k8 = {}
        for _ek, _ev in _json_['k8']: _k = _ek; _v = _ev; self.k8[_k] =_v
        self.k9 = []
        for _ele in _json_['k9']: _e = testDemoE2(_ele); self.k9.append(_e)
        self.k10 = []
        for _ele in _json_['k10']: _e = vec3(_ele); self.k10.append(_e)
        self.k11 = []
        for _ele in _json_['k11']: _e = vec4(_ele); self.k11.append(_e)

class testShape :
    _childrenTypes = None
    @staticmethod
    def fromJson(_json_):
        childrenTypes = testShape._childrenTypes
        if not childrenTypes:
            childrenTypes = testShape._childrenTypes = {
            'Circle': testShape,
            'test2.Rectangle': testShape,
    }
        type = _json_['$type']
        child = testShape._childrenTypes.get(type)
        if child != None:
            return  child(_json_)
        else:
            raise Exception()
    def __init__(self, _json_):

        pass

class testCircle (testShape):
    def __init__(self, _json_):
        testShape.__init__(self, _json_)
        self.radius = _json_['radius']

class test2Rectangle (testShape):
    def __init__(self, _json_):
        testShape.__init__(self, _json_)
        self.width = _json_['width']
        self.height = _json_['height']


class aiTbBlackboard:

    def __init__(self, _json_ ):
        self._dataMap = {}
        self._dataList = []
        
        for _json2_ in _json_:
            _v = aiBlackboard(_json2_)
            self._dataList.append(_v)
            self._dataMap[_v.name] = _v

    def getDataMap(self) : return self._dataMap
    def getDataList(self) : return self._dataList

    def get(self, key) : return self._dataMap.get(key)

class aiTbBehaviorTree:

    def __init__(self, _json_ ):
        self._dataMap = {}
        self._dataList = []
        
        for _json2_ in _json_:
            _v = aiBehaviorTree(_json2_)
            self._dataList.append(_v)
            self._dataMap[_v.id] = _v

    def getDataMap(self) : return self._dataMap
    def getDataList(self) : return self._dataList

    def get(self, key) : return self._dataMap.get(key)

class commonTbGlobalConfig:

    def __init__(self, _json_):
        if (len(_json_) != 1): raise Exception('table mode=one, but size != 1')
        self._data = commonGlobalConfig(_json_[0])

    def getData(self) : return self._data

    '''
    背包容量
    '''
    def x1(self) : return self._data.x1
    def x1(self) : return self._data.x1
    def x1(self) : return self._data.x1
    def x1(self) : return self._data.x1
    def x1(self) : return self._data.x1
    def x1(self) : return self._data.x1
    def x1(self) : return self._data.x1

class itemTbItem:

    def __init__(self, _json_ ):
        self._dataMap = {}
        self._dataList = []
        
        for _json2_ in _json_:
            _v = itemItem(_json2_)
            self._dataList.append(_v)
            self._dataMap[_v.id] = _v

    def getDataMap(self) : return self._dataMap
    def getDataList(self) : return self._dataList

    def get(self, key) : return self._dataMap.get(key)

class l10nTbL10NDemo:

    def __init__(self, _json_ ):
        self._dataMap = {}
        self._dataList = []
        
        for _json2_ in _json_:
            _v = l10nL10NDemo(_json2_)
            self._dataList.append(_v)
            self._dataMap[_v.id] = _v

    def getDataMap(self) : return self._dataMap
    def getDataList(self) : return self._dataList

    def get(self, key) : return self._dataMap.get(key)

class l10nTbPatchDemo:

    def __init__(self, _json_ ):
        self._dataMap = {}
        self._dataList = []
        
        for _json2_ in _json_:
            _v = l10nPatchDemo(_json2_)
            self._dataList.append(_v)
            self._dataMap[_v.id] = _v

    def getDataMap(self) : return self._dataMap
    def getDataList(self) : return self._dataList

    def get(self, key) : return self._dataMap.get(key)

class tagTbTestTag:

    def __init__(self, _json_ ):
        self._dataMap = {}
        self._dataList = []
        
        for _json2_ in _json_:
            _v = tagTestTag(_json2_)
            self._dataList.append(_v)
            self._dataMap[_v.id] = _v

    def getDataMap(self) : return self._dataMap
    def getDataList(self) : return self._dataList

    def get(self, key) : return self._dataMap.get(key)

class testTbFullTypes:

    def __init__(self, _json_ ):
        self._dataMap = {}
        self._dataList = []
        
        for _json2_ in _json_:
            _v = testDemoType2(_json2_)
            self._dataList.append(_v)
            self._dataMap[_v.x4] = _v

    def getDataMap(self) : return self._dataMap
    def getDataList(self) : return self._dataList

    def get(self, key) : return self._dataMap.get(key)

class testTbSingleton:

    def __init__(self, _json_):
        if (len(_json_) != 1): raise Exception('table mode=one, but size != 1')
        self._data = testDemoSingletonType(_json_[0])

    def getData(self) : return self._data

    def x1(self) : return self._data.x1
    def x1(self) : return self._data.x1
    def x1(self) : return self._data.x1

class testTbNotIndexList:

    def __init__(self, _json_ ):
        self._dataList = []
        
        for _json2_ in _json_:
            _v = testNotIndexList(_json2_)
            self._dataList.append(_v)

    def getDataList(self) : return self._dataList

    def get(self, index) : return self._dataList[index]


class testTbMultiUnionIndexList:

    def __init__(self, _json_ ):
        self._dataList = []
        
        for _json2_ in _json_:
            _v = testMultiUnionIndexList(_json2_)
            self._dataList.append(_v)

    def getDataList(self) : return self._dataList

    def get(self, index) : return self._dataList[index]


class testTbMultiIndexList:

    def __init__(self, _json_ ):
        self._dataList = []
        
        for _json2_ in _json_:
            _v = testMultiIndexList(_json2_)
            self._dataList.append(_v)

    def getDataList(self) : return self._dataList

    def get(self, index) : return self._dataList[index]


class testTbDataFromMisc:

    def __init__(self, _json_ ):
        self._dataMap = {}
        self._dataList = []
        
        for _json2_ in _json_:
            _v = testDemoType2(_json2_)
            self._dataList.append(_v)
            self._dataMap[_v.x4] = _v

    def getDataMap(self) : return self._dataMap
    def getDataList(self) : return self._dataList

    def get(self, key) : return self._dataMap.get(key)

class testTbMultiRowRecord:

    def __init__(self, _json_ ):
        self._dataMap = {}
        self._dataList = []
        
        for _json2_ in _json_:
            _v = testMultiRowRecord(_json2_)
            self._dataList.append(_v)
            self._dataMap[_v.id] = _v

    def getDataMap(self) : return self._dataMap
    def getDataList(self) : return self._dataList

    def get(self, key) : return self._dataMap.get(key)

class testTbTestMultiColumn:

    def __init__(self, _json_ ):
        self._dataMap = {}
        self._dataList = []
        
        for _json2_ in _json_:
            _v = testTestMultiColumn(_json2_)
            self._dataList.append(_v)
            self._dataMap[_v.id] = _v

    def getDataMap(self) : return self._dataMap
    def getDataList(self) : return self._dataList

    def get(self, key) : return self._dataMap.get(key)

class testTbMultiRowTitle:

    def __init__(self, _json_ ):
        self._dataMap = {}
        self._dataList = []
        
        for _json2_ in _json_:
            _v = testMultiRowTitle(_json2_)
            self._dataList.append(_v)
            self._dataMap[_v.id] = _v

    def getDataMap(self) : return self._dataMap
    def getDataList(self) : return self._dataList

    def get(self, key) : return self._dataMap.get(key)

class testTbTestNull:

    def __init__(self, _json_ ):
        self._dataMap = {}
        self._dataList = []
        
        for _json2_ in _json_:
            _v = testTestNull(_json2_)
            self._dataList.append(_v)
            self._dataMap[_v.id] = _v

    def getDataMap(self) : return self._dataMap
    def getDataList(self) : return self._dataList

    def get(self, key) : return self._dataMap.get(key)

class testTbDemoPrimitive:

    def __init__(self, _json_ ):
        self._dataMap = {}
        self._dataList = []
        
        for _json2_ in _json_:
            _v = testDemoPrimitiveTypesTable(_json2_)
            self._dataList.append(_v)
            self._dataMap[_v.x4] = _v

    def getDataMap(self) : return self._dataMap
    def getDataList(self) : return self._dataList

    def get(self, key) : return self._dataMap.get(key)

class testTbTestString:

    def __init__(self, _json_ ):
        self._dataMap = {}
        self._dataList = []
        
        for _json2_ in _json_:
            _v = testTestString(_json2_)
            self._dataList.append(_v)
            self._dataMap[_v.id] = _v

    def getDataMap(self) : return self._dataMap
    def getDataList(self) : return self._dataList

    def get(self, key) : return self._dataMap.get(key)

class testTbDemoGroup:

    def __init__(self, _json_ ):
        self._dataMap = {}
        self._dataList = []
        
        for _json2_ in _json_:
            _v = testDemoGroup(_json2_)
            self._dataList.append(_v)
            self._dataMap[_v.id] = _v

    def getDataMap(self) : return self._dataMap
    def getDataList(self) : return self._dataList

    def get(self, key) : return self._dataMap.get(key)

class testTbTestGlobal:

    def __init__(self, _json_):
        if (len(_json_) != 1): raise Exception('table mode=one, but size != 1')
        self._data = testTestGlobal(_json_[0])

    def getData(self) : return self._data

    def x1(self) : return self._data.x1
    def x1(self) : return self._data.x1

class testTbTestBeRef:

    def __init__(self, _json_ ):
        self._dataMap = {}
        self._dataList = []
        
        for _json2_ in _json_:
            _v = testTestBeRef(_json2_)
            self._dataList.append(_v)
            self._dataMap[_v.id] = _v

    def getDataMap(self) : return self._dataMap
    def getDataList(self) : return self._dataList

    def get(self, key) : return self._dataMap.get(key)

class testTbTestBeRef2:

    def __init__(self, _json_ ):
        self._dataMap = {}
        self._dataList = []
        
        for _json2_ in _json_:
            _v = testTestBeRef(_json2_)
            self._dataList.append(_v)
            self._dataMap[_v.id] = _v

    def getDataMap(self) : return self._dataMap
    def getDataList(self) : return self._dataList

    def get(self, key) : return self._dataMap.get(key)

class testTbTestRef:

    def __init__(self, _json_ ):
        self._dataMap = {}
        self._dataList = []
        
        for _json2_ in _json_:
            _v = testTestRef(_json2_)
            self._dataList.append(_v)
            self._dataMap[_v.id] = _v

    def getDataMap(self) : return self._dataMap
    def getDataList(self) : return self._dataList

    def get(self, key) : return self._dataMap.get(key)

class testTbTestSize:

    def __init__(self, _json_ ):
        self._dataMap = {}
        self._dataList = []
        
        for _json2_ in _json_:
            _v = testTestSize(_json2_)
            self._dataList.append(_v)
            self._dataMap[_v.id] = _v

    def getDataMap(self) : return self._dataMap
    def getDataList(self) : return self._dataList

    def get(self, key) : return self._dataMap.get(key)

class testTbTestSet:

    def __init__(self, _json_ ):
        self._dataMap = {}
        self._dataList = []
        
        for _json2_ in _json_:
            _v = testTestSet(_json2_)
            self._dataList.append(_v)
            self._dataMap[_v.id] = _v

    def getDataMap(self) : return self._dataMap
    def getDataList(self) : return self._dataList

    def get(self, key) : return self._dataMap.get(key)

class testTbDetectCsvEncoding:

    def __init__(self, _json_ ):
        self._dataMap = {}
        self._dataList = []
        
        for _json2_ in _json_:
            _v = testDetectEncoding(_json2_)
            self._dataList.append(_v)
            self._dataMap[_v.id] = _v

    def getDataMap(self) : return self._dataMap
    def getDataList(self) : return self._dataList

    def get(self, key) : return self._dataMap.get(key)

class testTbItem2:

    def __init__(self, _json_ ):
        self._dataMap = {}
        self._dataList = []
        
        for _json2_ in _json_:
            _v = testItemBase.fromJson(_json2_)
            self._dataList.append(_v)
            self._dataMap[_v.id] = _v

    def getDataMap(self) : return self._dataMap
    def getDataList(self) : return self._dataList

    def get(self, key) : return self._dataMap.get(key)

class testTbTestIndex:

    def __init__(self, _json_ ):
        self._dataMap = {}
        self._dataList = []
        
        for _json2_ in _json_:
            _v = testTestIndex(_json2_)
            self._dataList.append(_v)
            self._dataMap[_v.id] = _v

    def getDataMap(self) : return self._dataMap
    def getDataList(self) : return self._dataList

    def get(self, key) : return self._dataMap.get(key)

class testTbTestMap:

    def __init__(self, _json_ ):
        self._dataMap = {}
        self._dataList = []
        
        for _json2_ in _json_:
            _v = testTestMap(_json2_)
            self._dataList.append(_v)
            self._dataMap[_v.id] = _v

    def getDataMap(self) : return self._dataMap
    def getDataList(self) : return self._dataList

    def get(self, key) : return self._dataMap.get(key)

class testTbExcelFromJson:

    def __init__(self, _json_ ):
        self._dataMap = {}
        self._dataList = []
        
        for _json2_ in _json_:
            _v = testExcelFromJson(_json2_)
            self._dataList.append(_v)
            self._dataMap[_v.x4] = _v

    def getDataMap(self) : return self._dataMap
    def getDataList(self) : return self._dataList

    def get(self, key) : return self._dataMap.get(key)

class testTbCompositeJsonTable1:

    def __init__(self, _json_ ):
        self._dataMap = {}
        self._dataList = []
        
        for _json2_ in _json_:
            _v = testCompositeJsonTable1(_json2_)
            self._dataList.append(_v)
            self._dataMap[_v.id] = _v

    def getDataMap(self) : return self._dataMap
    def getDataList(self) : return self._dataList

    def get(self, key) : return self._dataMap.get(key)

class testTbCompositeJsonTable2:

    def __init__(self, _json_ ):
        self._dataMap = {}
        self._dataList = []
        
        for _json2_ in _json_:
            _v = testCompositeJsonTable2(_json2_)
            self._dataList.append(_v)
            self._dataMap[_v.id] = _v

    def getDataMap(self) : return self._dataMap
    def getDataList(self) : return self._dataList

    def get(self, key) : return self._dataMap.get(key)

class testTbCompositeJsonTable3:

    def __init__(self, _json_):
        if (len(_json_) != 1): raise Exception('table mode=one, but size != 1')
        self._data = testCompositeJsonTable3(_json_[0])

    def getData(self) : return self._data

    def x1(self) : return self._data.x1
    def x1(self) : return self._data.x1

class testTbExcelFromJsonMultiRow:

    def __init__(self, _json_ ):
        self._dataMap = {}
        self._dataList = []
        
        for _json2_ in _json_:
            _v = testExcelFromJsonMultiRow(_json2_)
            self._dataList.append(_v)
            self._dataMap[_v.id] = _v

    def getDataMap(self) : return self._dataMap
    def getDataList(self) : return self._dataList

    def get(self, key) : return self._dataMap.get(key)

class testTbTestScriptableObject:

    def __init__(self, _json_ ):
        self._dataMap = {}
        self._dataList = []
        
        for _json2_ in _json_:
            _v = testTestScriptableObject(_json2_)
            self._dataList.append(_v)
            self._dataMap[_v.id] = _v

    def getDataMap(self) : return self._dataMap
    def getDataList(self) : return self._dataList

    def get(self, key) : return self._dataMap.get(key)

class testTbTestMapper:

    def __init__(self, _json_ ):
        self._dataMap = {}
        self._dataList = []
        
        for _json2_ in _json_:
            _v = testTestMapper(_json2_)
            self._dataList.append(_v)
            self._dataMap[_v.id] = _v

    def getDataMap(self) : return self._dataMap
    def getDataList(self) : return self._dataList

    def get(self, key) : return self._dataMap.get(key)

class testTbDefineFromExcel2:

    def __init__(self, _json_ ):
        self._dataMap = {}
        self._dataList = []
        
        for _json2_ in _json_:
            _v = DefineFromExcel2(_json2_)
            self._dataList.append(_v)
            self._dataMap[_v.id] = _v

    def getDataMap(self) : return self._dataMap
    def getDataList(self) : return self._dataList

    def get(self, key) : return self._dataMap.get(key)



class cfg_Tables:
    def __init__(self, loader):
        self.TbBlackboard = aiTbBlackboard(loader('ai_tbblackboard')); 
        self.TbBehaviorTree = aiTbBehaviorTree(loader('ai_tbbehaviortree')); 
        self.TbGlobalConfig = commonTbGlobalConfig(loader('common_tbglobalconfig')); 
        self.TbItem = itemTbItem(loader('item_tbitem')); 
        self.TbL10NDemo = l10nTbL10NDemo(loader('l10n_tbl10ndemo')); 
        self.TbPatchDemo = l10nTbPatchDemo(loader('l10n_tbpatchdemo')); 
        self.TbTestTag = tagTbTestTag(loader('tag_tbtesttag')); 
        self.TbFullTypes = testTbFullTypes(loader('test_tbfulltypes')); 
        self.TbSingleton = testTbSingleton(loader('test_tbsingleton')); 
        self.TbNotIndexList = testTbNotIndexList(loader('test_tbnotindexlist')); 
        self.TbMultiUnionIndexList = testTbMultiUnionIndexList(loader('test_tbmultiunionindexlist')); 
        self.TbMultiIndexList = testTbMultiIndexList(loader('test_tbmultiindexlist')); 
        self.TbDataFromMisc = testTbDataFromMisc(loader('test_tbdatafrommisc')); 
        self.TbMultiRowRecord = testTbMultiRowRecord(loader('test_tbmultirowrecord')); 
        self.TbTestMultiColumn = testTbTestMultiColumn(loader('test_tbtestmulticolumn')); 
        self.TbMultiRowTitle = testTbMultiRowTitle(loader('test_tbmultirowtitle')); 
        self.TbTestNull = testTbTestNull(loader('test_tbtestnull')); 
        self.TbDemoPrimitive = testTbDemoPrimitive(loader('test_tbdemoprimitive')); 
        self.TbTestString = testTbTestString(loader('test_tbteststring')); 
        self.TbDemoGroup = testTbDemoGroup(loader('test_tbdemogroup')); 
        self.TbTestGlobal = testTbTestGlobal(loader('test_tbtestglobal')); 
        self.TbTestBeRef = testTbTestBeRef(loader('test_tbtestberef')); 
        self.TbTestBeRef2 = testTbTestBeRef2(loader('test_tbtestberef2')); 
        self.TbTestRef = testTbTestRef(loader('test_tbtestref')); 
        self.TbTestSize = testTbTestSize(loader('test_tbtestsize')); 
        self.TbTestSet = testTbTestSet(loader('test_tbtestset')); 
        self.TbDetectCsvEncoding = testTbDetectCsvEncoding(loader('test_tbdetectcsvencoding')); 
        self.TbItem2 = testTbItem2(loader('test_tbitem2')); 
        self.TbTestIndex = testTbTestIndex(loader('test_tbtestindex')); 
        self.TbTestMap = testTbTestMap(loader('test_tbtestmap')); 
        self.TbExcelFromJson = testTbExcelFromJson(loader('test_tbexcelfromjson')); 
        self.TbCompositeJsonTable1 = testTbCompositeJsonTable1(loader('test_tbcompositejsontable1')); 
        self.TbCompositeJsonTable2 = testTbCompositeJsonTable2(loader('test_tbcompositejsontable2')); 
        self.TbCompositeJsonTable3 = testTbCompositeJsonTable3(loader('test_tbcompositejsontable3')); 
        self.TbExcelFromJsonMultiRow = testTbExcelFromJsonMultiRow(loader('test_tbexcelfromjsonmultirow')); 
        self.TbTestScriptableObject = testTbTestScriptableObject(loader('test_tbtestscriptableobject')); 
        self.TbTestMapper = testTbTestMapper(loader('test_tbtestmapper')); 
        self.TbDefineFromExcel2 = testTbDefineFromExcel2(loader('test_tbdefinefromexcel2'));