package com.astamuse.asta4d.web.dispatch.mapping.handy.rest;
import java.util.List;
import com.astamuse.asta4d.web.dispatch.mapping.UrlMappingRuleSetHelper;
import com.astamuse.asta4d.web.dispatch.mapping.handy.base.HandyRuleConfigurable;
import com.astamuse.asta4d.web.dispatch.request.ResultTransformer;
public interface XmlSupportRule extends HandyRuleConfigurable {
public static final String JSON_RESULT_TRANSFORMER = XmlSupportRule.class.getName() + "#JSON_RESULT_TRANSFORMER";
default void xml() {
this.configureRule(rule -> {
List<ResultTransformer> transformerList = rule.getResultTransformerList();
if (!transformerList.isEmpty()) {
throw new RuntimeException(
"Cannot declare json transforming on a rule in which there has been forward/redirect declaration.");
}
if (XmlSupportRuleHelper.registeredTransformer != null) {
transformerList.add(XmlSupportRuleHelper.registeredTransformer);
}
transformerList.add(XmlSupportRuleHelper.ExceptionTransformer);
transformerList.add(XmlSupportRuleHelper.FallbackXmlTransformer);
UrlMappingRuleSetHelper.setRuleType(rule, "xml");
});
}
}