posts - 94, comments - 346, trackbacks - 10, articles - 0
  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

CodeBuilder之Template接口

Posted on 2010-01-11 00:07  faib  阅读(...)  评论(... 编辑 收藏

ITemplate接口

代码
using System.Collections.Generic;

namespace FaibClass.TemplatePackage
{
    
/// <summary>
    
/// 模板接口。
    
/// </summary>
    public interface ITemplate : BasePackage.IPackage
    {
        
/// <summary>
        
/// 加载模板文件并构造一个生成器。
        
/// </summary>
        
/// <param name="fileName">模板文件名。</param>
        
/// <returns>生成器对象。</returns>
        IBuilder LoadTemplate(string fileName);
        
/// <summary>
        
/// 获取所有模板文件。
        
/// </summary>
        
/// <returns>数据字典,Key:文件名,Value:文件路径。</returns>
        Dictionary<stringstring> GetTemplateFiles();
    }
}

 

IBuilder接口

代码
using FaibClass.SourcePackage;

namespace FaibClass.TemplatePackage
{
    
/// <summary>
    
/// 代码创建接口。
    
/// </summary>
    public interface IBuilder
    {
        
/// <summary>
        
/// 生成代码。
        
/// </summary>
        
/// <param name="tables">要生成的表集合。</param>
        
/// <param name="enums">要生成的枚举集合。</param>
        
/// <param name="save">是否保存到文件。</param>
        
/// <param name="outputFolder">输出的路径</param>
        
/// <returns>生成结果。</returns>
        BuildResult Build(Collection<ITable> tables, Collection<DbEnum> enums, bool save, string outputFolder);
        
/// <summary>
        
/// 转换数据类型。
        
/// </summary>
        
/// <param name="dbType">源类型。</param>
        
/// <param name="sourceType">源数据类型。</param>
        
/// <returns>代码数据类型。</returns>
        string ConvertDbType(string dbType, string sourceType);
        
/// <summary>
        
/// 生成表代码时触发事件。
        
/// </summary>
        event BuildProgressChangedEventHandler BuildProgressChanged;
        
/// <summary>
        
/// 停止生成进程。
        
/// </summary>
        void Stop();
        
/// <summary>
        
/// 语言类别。
        
/// </summary>
        LanguageType Language { get; }
        
/// <summary>
        
/// 生成器名称。
        
/// </summary>
        string Name { get; }
        
/// <summary>
        
/// 文件名。
        
/// </summary>
        string FileName { get; }
        
/// <summary>
        
/// 对生成器进行修改。
        
/// </summary>
        
/// <returns>是否修改成功。</returns>
        bool Edit();
        
/// <summary>
        
/// 重新加载。
        
/// </summary>
        void Reload();
        
/// <summary>
        
/// 验证内容。
        
/// </summary>
        
/// <param name="content"></param>
        void Validate(string content);
    }
}