示例#1
0
        public StatementDefinition(
            Type type,
            Func <ILanguage, String> statementNameGetter,
            Func <IStatement, Xml.Statement> statementXmlGetter,
            Type xmlType,
            StatementConsistencyCheckerDelegate consistencyChecker)
        {
            if (type == null)
            {
                throw new ArgumentNullException(nameof(type));
            }
            if (statementNameGetter == null)
            {
                throw new ArgumentNullException(nameof(statementNameGetter));
            }
            if (statementXmlGetter == null)
            {
                throw new ArgumentNullException(nameof(statementXmlGetter));
            }
            if (xmlType == null)
            {
                throw new ArgumentNullException(nameof(xmlType));
            }
            if (consistencyChecker == null)
            {
                throw new ArgumentNullException(nameof(consistencyChecker));
            }

            Type = type;
            _statementNameGetter = statementNameGetter;
            _statementXmlGetter  = statementXmlGetter;
            _consistencyChecker  = consistencyChecker;
            XmlType        = xmlType;
            XmlElementName = XmlType.Name.Replace("Statement", "");
        }
示例#2
0
 public static void RegisterStatement <StatementT>(
     Func <ILanguage, String> statementNameGetter,
     Func <StatementT, Xml.Statement> statementXmlGetter,
     Type xmlType,
     StatementConsistencyCheckerDelegate <StatementT> consistencyChecker)
     where StatementT : IStatement
 {
     Statements.Define(new StatementDefinition <StatementT>(statementNameGetter, statementXmlGetter, xmlType, consistencyChecker));
 }