package com.hongqiang.shop.common.template;
import java.io.IOException;
import java.io.StringReader;
import java.io.Writer;
import java.util.HashMap;
import java.util.Map;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
import org.springframework.web.servlet.view.freemarker.FreeMarkerConfigurer;
import com.hongqiang.shop.website.entity.AdPosition;
import com.hongqiang.shop.website.service.AdPositionService;
import freemarker.core.Environment;
import freemarker.template.Template;
import freemarker.template.TemplateDirectiveBody;
import freemarker.template.TemplateException;
import freemarker.template.TemplateModel;
@Component("adPositionDirective")
public class AdPositionDirective extends BaseDirective {
private static final String AP_POSITION = "adPosition";
@Autowired
private FreeMarkerConfigurer freeMarkerConfigurer;
@Autowired
private AdPositionService adPositionService;
@SuppressWarnings({ "rawtypes", "unchecked" })
public void execute(Environment env, Map params, TemplateModel[] loopVars,
TemplateDirectiveBody body) throws TemplateException, IOException {
Long localLong = getFreemarkerLong(params);
boolean bool = setFreemarker(env, params);
String str = getFreemarkerCacheRegion(env, params);
AdPosition localAdPosition;
if (bool)
localAdPosition = this.adPositionService.find(localLong, str);
else
localAdPosition = (AdPosition) this.adPositionService
.find(localLong);
if (body != null)
setFreemarker(AP_POSITION, localAdPosition, env, body);
else if ((localAdPosition != null)
&& (localAdPosition.getTemplate() != null))
try {
HashMap localHashMap = new HashMap();
localHashMap.put(AP_POSITION, localAdPosition);
Writer localWriter = env.getOut();
new Template("adTemplate", new StringReader(
localAdPosition.getTemplate()),
this.freeMarkerConfigurer.getConfiguration()).process(
localHashMap, localWriter);
} catch (Exception localException1) {
localException1.printStackTrace();
}
}
}