package com.astamuse.asta4d.web.dispatch.mapping.handy.template;
import com.astamuse.asta4d.web.dispatch.mapping.handy.base.HandyRuleConfigurable;
public interface TemplateRuleWithForward<T extends TemplateRuleWithForward<?>> extends HandyRuleConfigurable {
@SuppressWarnings("unchecked")
default T forward(Object result, String targetPath) {
configureRule(rule -> {
rule.getResultTransformerList().add(TemplateRuleHelper.forwardTransformer(result, targetPath));
});
return (T) this;
}
@SuppressWarnings("unchecked")
default T forward(Object result, String targetPath, int status) {
configureRule(rule -> {
rule.getResultTransformerList().add(TemplateRuleHelper.forwardTransformer(result, targetPath, status));
});
return (T) this;
}
default void forward(String targetPath) {
this.forward(null, targetPath);
}
default void forward(String targetPath, int status) {
this.forward(null, targetPath, status);
}
default void redirect(String targetUrl) {
this.redirect(null, targetUrl);
}
@SuppressWarnings("unchecked")
default T redirect(Object result, String targetUrl) {
configureRule(rule -> {
rule.getResultTransformerList().add(TemplateRuleHelper.redirectTransformer(result, targetUrl));
});
return (T) this;
}
}