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", ""); }
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)); }