use crate::TemplateMode;
use crate::engine::TemplateHandlerClass;
use crate::util::{Validate, ValidateError};
use super::IPostProcessor;
pub struct PostProcessor {
template_mode: TemplateMode,
handler_class: TemplateHandlerClass,
precedence: i32,
}
impl PostProcessor {
pub fn new(
template_mode: Option<TemplateMode>,
handler_class: Option<TemplateHandlerClass>,
precedence: i32,
) -> Result<Self, ValidateError> {
Validate::not_null(template_mode.as_ref(), Some("Template mode cannot be null"))?;
Validate::not_null(handler_class.as_ref(), Some("Handler class cannot be null"))?;
Ok(Self {
template_mode: template_mode.expect("validated template mode"),
handler_class: handler_class.expect("validated handler class"),
precedence,
})
}
#[must_use]
pub const fn get_template_mode(&self) -> TemplateMode {
self.template_mode
}
#[must_use]
pub const fn get_precedence(&self) -> i32 {
self.precedence
}
#[must_use]
pub const fn get_handler_class(&self) -> &TemplateHandlerClass {
&self.handler_class
}
}
impl IPostProcessor for PostProcessor {
fn get_template_mode(&self) -> Option<TemplateMode> {
Some(PostProcessor::get_template_mode(self))
}
fn get_precedence(&self) -> i32 {
PostProcessor::get_precedence(self)
}
fn get_handler_class(&self) -> Option<&TemplateHandlerClass> {
Some(PostProcessor::get_handler_class(self))
}
fn class_name(&self) -> &'static str {
"org.thymeleaf.postprocessor.PostProcessor"
}
}