public Template(ITemplateRenderer renderer, ITemplatePreprocessor preprocessor) { if (renderer == null && preprocessor == null) { throw new ArgumentNullException("Both renderer and preprocessor are null"); } Renderer = renderer; Preprocessor = preprocessor; Name = renderer?.Name ?? preprocessor?.Name; ScriptName = preprocessor?.Path; var templateInfo = GetTemplateInfo(Name); Extension = templateInfo.Extension; Type = templateInfo.DocumentType; TemplateType = templateInfo.TemplateType; ContainsGetOptions = Preprocessor?.ContainsGetOptions == true; ContainsModelTransformation = Preprocessor?.ContainsModelTransformation == true; Resources = ExtractDependentResources(Name); if (Renderer == null && !ContainsGetOptions && !ContainsModelTransformation) { Logger.LogWarning($"Template {Name} contains neither preprocessor to process model nor template to render model. Please check if the template is correctly defined. Allowed preprocessor functions are [exports.getOptions] and [exports.transform]."); } }
public XmlTemplate( [NotNull] XmlDeclarationParser xmlDeclarationParser, [NotNull] ITemplateLoader templateLoader, [NotNull] ITemplatePreprocessor templatePreprocessor, [NotNull] ITokenReplacer tokenReplacer, [NotNull] TemplatePreferencesLoader templatePreferencesLoader) { if (xmlDeclarationParser == null) { throw new ArgumentNullException(nameof(xmlDeclarationParser)); } if (templateLoader == null) { throw new ArgumentNullException(nameof(templateLoader)); } if (templatePreprocessor == null) { throw new ArgumentNullException(nameof(templatePreprocessor)); } if (tokenReplacer == null) { throw new ArgumentNullException(nameof(tokenReplacer)); } if (templatePreferencesLoader == null) { throw new ArgumentNullException(nameof(templatePreferencesLoader)); } _xmlDeclarationParser = xmlDeclarationParser; _templateLoader = templateLoader; _templatePreprocessor = templatePreprocessor; _tokenReplacer = tokenReplacer; _templatePreferencesLoader = templatePreferencesLoader; }