[fix] config enum的java代码生成普通的int,而不是java枚举类。修复flags=1的枚举项反序列化的异常。
parent
4255ae25bf
commit
c0ddce497c
|
|
@ -45,7 +45,7 @@ namespace Luban.Job.Cfg.Generate
|
|||
|
||||
foreach (var subTitle in title.SubTitleList)
|
||||
{
|
||||
string titleAndTags = subTitle.Tags.Count == 0 ? subTitle.Name : subTitle.Name + "&" + string.Join('&', subTitle.Tags.Select(e => $"{e.Key}={e.Value}"));
|
||||
string titleAndTags = subTitle.Tags.Count == 0 ? subTitle.Name : subTitle.Name + "#" + string.Join('#', subTitle.Tags.Select(e => $"{e.Key}={e.Value}"));
|
||||
titleRow[subTitle.FromIndex] = titleAndTags;
|
||||
}
|
||||
dataRangeArray.Add(titleRow);
|
||||
|
|
@ -58,7 +58,7 @@ namespace Luban.Job.Cfg.Generate
|
|||
foreach (var subTitle in title.SubTitleList)
|
||||
{
|
||||
string typeAndTags = valueType.Bean.TryGetField(subTitle.Name, out var f, out _) ?
|
||||
(f.CType.Tags.Count == 0 ? f.CType.Apply(CsDefineTypeName.Ins) : f.CType.Apply(CsDefineTypeName.Ins) + "&" + string.Join('&', f.CType.Tags.Select(e => $"{e.Key}={e.Value}")))
|
||||
(f.CType.Tags.Count == 0 ? f.CType.Apply(CsDefineTypeName.Ins) : f.CType.Apply(CsDefineTypeName.Ins) + "#" + string.Join('#', f.CType.Tags.Select(e => $"({e.Key}={e.Value})")))
|
||||
: "";
|
||||
typeRow[subTitle.FromIndex] = typeAndTags;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -61,7 +61,7 @@ namespace Luban.Job.Cfg.TypeVisitors
|
|||
|
||||
public string Accept(TEnum type, string json, string x)
|
||||
{
|
||||
return $"{x} = {type.DefineEnum.FullNameWithTopModule}.valueOf({json}.getAsInt());";
|
||||
return $"{x} = {json}.getAsInt();";
|
||||
}
|
||||
|
||||
public string Accept(TString type, string json, string x)
|
||||
|
|
|
|||
|
|
@ -59,7 +59,7 @@ namespace Luban.Job.Cfg.TypeVisitors
|
|||
|
||||
public string Accept(TEnum type, string bufName, string fieldName)
|
||||
{
|
||||
return $"{fieldName} = {type.DefineEnum.FullNameWithTopModule}.valueOf({bufName}.readInt());";
|
||||
return $"{fieldName} = {bufName}.readInt();";
|
||||
}
|
||||
|
||||
public string Accept(TString type, string bufName, string fieldName)
|
||||
|
|
|
|||
|
|
@ -60,5 +60,11 @@ namespace Luban.Job.Common.TypeVisitors
|
|||
{
|
||||
return "Integer";
|
||||
}
|
||||
|
||||
public override string Accept(TEnum type)
|
||||
{
|
||||
//return type.DefineEnum.FullNameWithTopModule;
|
||||
return "Integer";
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -56,9 +56,10 @@ namespace Luban.Job.Common.TypeVisitors
|
|||
return type.IsNullable ? "Double" : "double";
|
||||
}
|
||||
|
||||
public string Accept(TEnum type)
|
||||
public virtual string Accept(TEnum type)
|
||||
{
|
||||
return type.DefineEnum.FullNameWithTopModule;
|
||||
//return type.DefineEnum.FullNameWithTopModule;
|
||||
return type.IsNullable ? "Integer" : "int";
|
||||
}
|
||||
|
||||
public string Accept(TString type)
|
||||
|
|
|
|||
|
|
@ -11,31 +11,13 @@ package {{namespace_with_top_module}};
|
|||
* {{comment | html.escape}}
|
||||
*/
|
||||
{{~end~}}
|
||||
public enum {{name}} {
|
||||
public final class {{name}} {
|
||||
{{~ for item in items ~}}
|
||||
{{~if item.comment != '' ~}}
|
||||
/**
|
||||
* {{item.escape_comment}}
|
||||
*/
|
||||
{{~end~}}
|
||||
{{item.name}}({{item.int_value}}),
|
||||
public static final int {{item.name}} = {{item.int_value}};
|
||||
{{~end~}}
|
||||
;
|
||||
|
||||
private final int value;
|
||||
|
||||
public int getValue() {
|
||||
return value;
|
||||
}
|
||||
|
||||
{{name}}(int value) {
|
||||
this.value = value;
|
||||
}
|
||||
|
||||
public static {{name}} valueOf(int value) {
|
||||
{{~ for item in items ~}}
|
||||
if (value == {{item.int_value}}) return {{item.name}};
|
||||
{{~end~}}
|
||||
throw new IllegalArgumentException("");
|
||||
}
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in New Issue