1#ifndef TEMPLATE_MANAGER_H
2#define TEMPLATE_MANAGER_H
50 void generateTemplate(
const std::string& templateName,
const std::string& outputPath) {
148 void generateTemplateImpl(
const std::string& templateName,
const std::string& outputPath)
override;
171 void generateTemplateImpl(
const std::string& templateName,
const std::string& outputPath)
override;
Declares the helper used to prepare numeric MARTY models and parameter files.
Declares the base interface for source-level model transformations.
Template manager for non-numeric model templates.
NonNumericTemplateManager(const std::string &templatesDir)
Constructs a non-numeric template manager.
Template manager for numeric examples.
NumericTemplateManager(const std::string &templatesDir)
Constructs a numeric template manager.
Base class for managing template generation.
void setNumModelModifier(std::unique_ptr< GeneralNumModelModifier > modifier)
Injects a numeric model modifier.
virtual ~TemplateManagerBase()=default
std::string wilson
Wilson basis name.
std::string templatesDir
Directory containing the template sources.
void generateTemplate(const std::string &templateName, const std::string &outputPath)
Public entry point for template generation.
std::unique_ptr< GeneralNumModelModifier > numModifier
Optional modifier for numeric templates.
bool already_generated(const std::string &path)
Checks whether a file was already generated by this system.
std::unordered_set< InterpretedParam > get_dependencies()
Returns the set of interpreted parameters used by the numeric modifier.
std::unique_ptr< ModelModifier > modelModifier
Optional modifier for non-numeric templates.
std::string model
Model name.
TemplateManagerBase(const std::string &templatesDir)
Constructs a manager with a given templates directory.
void setModelAndWilson(std::string model, std::string wilson)
Sets both model and Wilson names used during generation.
virtual void generateTemplateImpl(const std::string &templateName, const std::string &outputPath)=0
Actual implementation for generating a specific template.
void setModelModifier(std::unique_ptr< ModelModifier > modifier)
Injects a custom model modifier.