From ccea1359d3d0d5dda5f97e8d5f8c8ce83677851e Mon Sep 17 00:00:00 2001 From: walon Date: Tue, 29 Jun 2021 20:10:34 +0800 Subject: [PATCH] =?UTF-8?q?=E3=80=90=E7=89=B9=E6=80=A7=E3=80=91cfg=20types?= =?UTF-8?q?cript,lua,python,go=E5=9D=87=E6=96=B0=E5=A2=9E=E5=AF=B9?= =?UTF-8?q?=E5=8F=AF=E7=A9=BAbean=E6=94=AF=E6=8C=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/Luban.Job.Cfg/Source/DataVisitors/LuaExportor.cs | 8 +------- src/Luban.Job.Cfg/Source/Generate/GoCodeRender.cs | 1 - src/Luban.Job.Cfg/Source/Generate/LuaRender.cs | 2 +- .../Source/Generate/Python27JsonCodeRender.cs | 11 ++++------- .../Source/Generate/Python3JsonCodeRender.cs | 11 ++++------- .../Source/Generate/TypeScriptBinCodeRender.cs | 6 ++---- .../Source/Generate/TypeScriptJsonCodeRender.cs | 1 - .../Source/TypeVisitors/PyDeserializeVisitor.cs | 5 ----- .../TypeVisitors/TypescriptBinConstructorVisitor.cs | 8 -------- .../TypescriptJsonUnderingConstructorVisitor.cs | 2 +- .../TypescriptBinUnderingDeserializeVisitorBase.cs | 2 +- 11 files changed, 14 insertions(+), 43 deletions(-) diff --git a/src/Luban.Job.Cfg/Source/DataVisitors/LuaExportor.cs b/src/Luban.Job.Cfg/Source/DataVisitors/LuaExportor.cs index bab2c0e..5cce981 100644 --- a/src/Luban.Job.Cfg/Source/DataVisitors/LuaExportor.cs +++ b/src/Luban.Job.Cfg/Source/DataVisitors/LuaExportor.cs @@ -124,13 +124,7 @@ namespace Luban.Job.Cfg.DataVisitors var bean = type.Type; if (bean.IsAbstractType) { - // null 时特殊处理 - if (type.ImplType == null) - { - line.Append("nil"); - return; - } - line.Append($"{{ _name='{type.ImplType.FullName}',"); + line.Append($"{{ _name='{type.ImplType.Name}',"); } else { diff --git a/src/Luban.Job.Cfg/Source/Generate/GoCodeRender.cs b/src/Luban.Job.Cfg/Source/Generate/GoCodeRender.cs index a024d70..62d781b 100644 --- a/src/Luban.Job.Cfg/Source/Generate/GoCodeRender.cs +++ b/src/Luban.Job.Cfg/Source/Generate/GoCodeRender.cs @@ -118,7 +118,6 @@ func NewChild{{go_full_name}}(_buf *serialization.ByteBuf) (_v interface{}, err return } switch id { - case 0 : return nil, nil {{~for child in hierarchy_not_abstract_children~}} case {{child.id}}: return New{{child.go_full_name}}(_buf); {{~end~}} diff --git a/src/Luban.Job.Cfg/Source/Generate/LuaRender.cs b/src/Luban.Job.Cfg/Source/Generate/LuaRender.cs index dc879f9..854422b 100644 --- a/src/Luban.Job.Cfg/Source/Generate/LuaRender.cs +++ b/src/Luban.Job.Cfg/Source/Generate/LuaRender.cs @@ -148,7 +148,7 @@ local function InitTypes(methods) {{~if bean.is_abstract_type~}} class._deserialize = function(bs) local id = readInt(bs) - if id ~= 0 then return beans[id2name[id]]._deserialize(bs) end + return beans[id2name[id]]._deserialize(bs) end {{~else~}} class._deserialize = function(bs) diff --git a/src/Luban.Job.Cfg/Source/Generate/Python27JsonCodeRender.cs b/src/Luban.Job.Cfg/Source/Generate/Python27JsonCodeRender.cs index 7fc7503..6da7500 100644 --- a/src/Luban.Job.Cfg/Source/Generate/Python27JsonCodeRender.cs +++ b/src/Luban.Job.Cfg/Source/Generate/Python27JsonCodeRender.cs @@ -82,14 +82,11 @@ class {{name}} {{if parent_def_type}}({{parent_def_type.py_full_name}}){{end}}: {{~end~}} } type = _json_['__type__'] - if type != None: - child = {{name}}._childrenTypes.get(type) - if child != None: - return child(_json_) - else: - raise Exception() + child = {{name}}._childrenTypes.get(type) + if child != None: + return child(_json_) else: - return None + raise Exception() {{~end~}} def __init__(self, _json_): diff --git a/src/Luban.Job.Cfg/Source/Generate/Python3JsonCodeRender.cs b/src/Luban.Job.Cfg/Source/Generate/Python3JsonCodeRender.cs index 7d9da23..cd780a5 100644 --- a/src/Luban.Job.Cfg/Source/Generate/Python3JsonCodeRender.cs +++ b/src/Luban.Job.Cfg/Source/Generate/Python3JsonCodeRender.cs @@ -82,14 +82,11 @@ class {{name}} {{if parent_def_type}}({{parent_def_type.py_full_name}}){{else if {{~end~}} } type = _json_['__type__'] - if type != None: - child = {{name}}._childrenTypes.get(type) - if child != None: - return child(_json_) - else: - raise Exception() + child = {{name}}._childrenTypes.get(type) + if child != None: + return child(_json_) else: - return None + raise Exception() {{~end~}} def __init__(self, _json_): diff --git a/src/Luban.Job.Cfg/Source/Generate/TypeScriptBinCodeRender.cs b/src/Luban.Job.Cfg/Source/Generate/TypeScriptBinCodeRender.cs index 2d59914..dbce92e 100644 --- a/src/Luban.Job.Cfg/Source/Generate/TypeScriptBinCodeRender.cs +++ b/src/Luban.Job.Cfg/Source/Generate/TypeScriptBinCodeRender.cs @@ -37,9 +37,7 @@ namespace Luban.Job.Cfg.Generate export {{if x.is_abstract_type}} abstract {{end}} class {{name}} {{if parent_def_type}} extends {{x.parent}}{{end}} { {{~if x.is_abstract_type~}} static constructorFrom(_buf_: Bright.Serialization.ByteBuf): {{name}} { - switch (_buf_.ReadInt()) - { - case 0: return null + switch (_buf_.ReadInt()) { {{~ for child in x.hierarchy_not_abstract_children~}} case {{child.id}}: return new {{child.full_name}}(_buf_) {{~end~}} @@ -98,7 +96,7 @@ export {{if x.is_abstract_type}} abstract {{end}} class {{name}} {{if parent_def value_type = x.value_ttype }} {{x.typescript_namespace_begin}} -export class {{name}}{ +export class {{name}} { {{~if x.is_map_table ~}} private _dataMap: Map<{{ts_define_type key_type}}, {{ts_define_type value_type}}> private _dataList: {{ts_define_type value_type}}[] diff --git a/src/Luban.Job.Cfg/Source/Generate/TypeScriptJsonCodeRender.cs b/src/Luban.Job.Cfg/Source/Generate/TypeScriptJsonCodeRender.cs index bb6ee45..1eada37 100644 --- a/src/Luban.Job.Cfg/Source/Generate/TypeScriptJsonCodeRender.cs +++ b/src/Luban.Job.Cfg/Source/Generate/TypeScriptJsonCodeRender.cs @@ -38,7 +38,6 @@ export {{if x.is_abstract_type}} abstract {{end}} class {{name}} {{if parent_def {{~if x.is_abstract_type~}} static constructorFrom(_json_: any): {{name}} { switch (_json_.__type__) { - case null: return null {{~ for child in x.hierarchy_not_abstract_children~}} case '{{child.name}}': return new {{child.full_name}}(_json_) {{~end~}} diff --git a/src/Luban.Job.Cfg/Source/TypeVisitors/PyDeserializeVisitor.cs b/src/Luban.Job.Cfg/Source/TypeVisitors/PyDeserializeVisitor.cs index 6197c4d..808ce43 100644 --- a/src/Luban.Job.Cfg/Source/TypeVisitors/PyDeserializeVisitor.cs +++ b/src/Luban.Job.Cfg/Source/TypeVisitors/PyDeserializeVisitor.cs @@ -32,10 +32,5 @@ namespace Luban.Job.Cfg.TypeVisitors return type.Apply(UnderringVisitor, jsonFieldName, fieldName); } } - - public override string Accept(TBean type, string bufName, string fieldName) - { - return type.Apply(UnderringVisitor, bufName, fieldName); - } } } diff --git a/src/Luban.Job.Cfg/Source/TypeVisitors/TypescriptBinConstructorVisitor.cs b/src/Luban.Job.Cfg/Source/TypeVisitors/TypescriptBinConstructorVisitor.cs index bbb9f01..e12ae01 100644 --- a/src/Luban.Job.Cfg/Source/TypeVisitors/TypescriptBinConstructorVisitor.cs +++ b/src/Luban.Job.Cfg/Source/TypeVisitors/TypescriptBinConstructorVisitor.cs @@ -18,13 +18,5 @@ namespace Luban.Job.Common.TypeVisitors return type.Apply(TypescriptBinUnderingConstructorVisitor.Ins, byteBufName, fieldName); } } - - // TODO Ҫ򻯣ɶ̬beanĿɿֶͲһҪ - // ̬bean˷һֶΣֱtypeid==0ʾ - // ˲ֶͨһҪ ReadBool()ǷΪ - public override string Accept(TBean type, string bufName, string fieldName) - { - return type.Apply(TypescriptBinUnderingConstructorVisitor.Ins, bufName, fieldName); - } } } diff --git a/src/Luban.Job.Cfg/Source/TypeVisitors/TypescriptJsonUnderingConstructorVisitor.cs b/src/Luban.Job.Cfg/Source/TypeVisitors/TypescriptJsonUnderingConstructorVisitor.cs index 5a18ee4..3b8b5f7 100644 --- a/src/Luban.Job.Cfg/Source/TypeVisitors/TypescriptJsonUnderingConstructorVisitor.cs +++ b/src/Luban.Job.Cfg/Source/TypeVisitors/TypescriptJsonUnderingConstructorVisitor.cs @@ -127,7 +127,7 @@ namespace Luban.Job.Cfg.TypeVisitors public string Accept(TMap type, string jsonVarName, string fieldName) { - return $"{fieldName} = new {type.Apply(TypescriptDefineTypeName.Ins)}(); for(var _entry_ of {jsonVarName}) {{ let _k:{type.KeyType.Apply(TypescriptDefineTypeName.Ins)}; {type.KeyType.Apply(this, "_entry_[0]", "_k")} let _v:{type.ValueType.Apply(TypescriptDefineTypeName.Ins)}; {type.ValueType.Apply(this, "_entry_[1]", "_v")}; {fieldName}.set(_k, _v); }}"; + return $"{fieldName} = new {type.Apply(TypescriptDefineTypeName.Ins)}(); for(var _entry_ of {jsonVarName}) {{ let _k:{type.KeyType.Apply(TypescriptDefineTypeName.Ins)}; {type.KeyType.Apply(this, "_entry_[0]", "_k")}; let _v:{type.ValueType.Apply(TypescriptDefineTypeName.Ins)}; {type.ValueType.Apply(this, "_entry_[1]", "_v")}; {fieldName}.set(_k, _v); }}"; } diff --git a/src/Luban.Job.Common/Source/TypeVisitors/TypescriptBinUnderingDeserializeVisitorBase.cs b/src/Luban.Job.Common/Source/TypeVisitors/TypescriptBinUnderingDeserializeVisitorBase.cs index bc37192..dc92fef 100644 --- a/src/Luban.Job.Common/Source/TypeVisitors/TypescriptBinUnderingDeserializeVisitorBase.cs +++ b/src/Luban.Job.Common/Source/TypeVisitors/TypescriptBinUnderingDeserializeVisitorBase.cs @@ -138,7 +138,7 @@ namespace Luban.Job.Common.TypeVisitors public string Accept(TMap type, string bufVarName, string fieldName) { - return $"{{ {fieldName} = new {type.Apply(TypescriptDefineTypeName.Ins)}(); for(let i = 0, n = {bufVarName}.ReadSize() ; i < n ; i++) {{ let _k:{type.KeyType.Apply(TypescriptDefineTypeName.Ins)}; {type.KeyType.Apply(this, bufVarName, "_k")} let _v:{type.ValueType.Apply(TypescriptDefineTypeName.Ins)}; {type.ValueType.Apply(this, bufVarName, "_v")} {fieldName}.set(_k, _v); }} }}"; + return $"{{ {fieldName} = new {type.Apply(TypescriptDefineTypeName.Ins)}(); for(let i = 0, n = {bufVarName}.ReadSize() ; i < n ; i++) {{ let _k:{type.KeyType.Apply(TypescriptDefineTypeName.Ins)}; {type.KeyType.Apply(this, bufVarName, "_k")}; let _v:{type.ValueType.Apply(TypescriptDefineTypeName.Ins)}; {type.ValueType.Apply(this, bufVarName, "_v")} {fieldName}.set(_k, _v); }} }}"; }