/*-------------------------------------------------------------------------
 * 功能描述：IParseElement
 * 作者：xulisong
 * 创建时间： 2019/6/13 15:06:05
 * 版本号：v1.0
 *  -------------------------------------------------------------------------*/

using System.Collections.Generic;
using RevitExport.Export;

namespace RevitExport.Parse
{
    /// <summary>
    /// 解析元素类
    /// </summary>
    public interface IParseElement
    {
        List<string> FastIndex();
        bool Match(ElementWrapper wrapper);
        List<string> Parse(ElementWrapper wrapper, ParseContext context);
        List<ElementWrapper> ArrangeRefElements(ElementWrapper wrapper, ParseContext context);
    }
    /// <summary>
    /// 解析元素类
    /// </summary>
    public interface IParseElement<in C,  Result> where C: ParseContext
    {
        List<string> FastIndex();
        bool Match(ElementWrapper wrapper);
        List<Result> Parse(ElementWrapper wrapper, C context);
        List<ElementWrapper> ArrangeRefElements(ElementWrapper wrapper, C context);
    }
}
