64 lines
1.9 KiB
C#
64 lines
1.9 KiB
C#
using Luban.Job.Common.Defs;
|
|
using Luban.Job.Common.Generate;
|
|
using Luban.Job.Common.Utils;
|
|
using Luban.Job.Proto.Defs;
|
|
using System;
|
|
using System.Collections.Generic;
|
|
using System.Linq;
|
|
using System.Text;
|
|
using System.Threading.Tasks;
|
|
|
|
namespace Luban.Job.Proto.Generate
|
|
{
|
|
abstract class TemplateRenderBase : RenderBase
|
|
{
|
|
protected string RenderTemplateDir => (this.GetType().GetCustomAttributes(typeof(RenderAttribute), false)[0] as RenderAttribute).Name;
|
|
|
|
protected override string Render(DefEnum e)
|
|
{
|
|
var template = StringTemplateUtil.GetTemplate($"common/{RenderTemplateDir}/enum");
|
|
var result = template.Render(e);
|
|
|
|
return result;
|
|
}
|
|
|
|
protected override string Render(DefBean b)
|
|
{
|
|
var template = StringTemplateUtil.GetTemplate($"proto/{RenderTemplateDir}/bean");
|
|
var result = template.RenderCode(b);
|
|
|
|
return result;
|
|
}
|
|
|
|
protected override string Render(DefProto p)
|
|
{
|
|
var template = StringTemplateUtil.GetTemplate($"proto/{RenderTemplateDir}/proto");
|
|
var result = template.RenderCode(p);
|
|
|
|
return result;
|
|
}
|
|
|
|
protected override string Render(DefRpc r)
|
|
{
|
|
var template = StringTemplateUtil.GetTemplate($"proto/{RenderTemplateDir}/rpc");
|
|
var result = template.RenderCode(r);
|
|
|
|
return result;
|
|
}
|
|
|
|
public override string RenderStubs(string name, string module, List<DefProto> protos, List<DefRpc> rpcs)
|
|
{
|
|
var template = StringTemplateUtil.GetTemplate($"proto/{RenderTemplateDir}/stub");
|
|
var result = template.Render(new
|
|
{
|
|
Name = name,
|
|
Namespace = module,
|
|
Protos = protos,
|
|
Rpcs = rpcs,
|
|
});
|
|
|
|
return result;
|
|
}
|
|
}
|
|
}
|