// Path: hangout-core/src/main/java/com/ctrip/ops/sysdev/render/FreeMarkerRender.java
// @Log4j2
// public class FreeMarkerRender implements TemplateRender {
//     private Template t;
// 
//     public FreeMarkerRender(String template, String templateName)
//             throws IOException {
//         Configuration cfg = new Configuration(Configuration.VERSION_2_3_22);
//         this.t = new Template(templateName, template, cfg);
//     }
// 
//     public Object render(Map event) {
//         StringWriter sw = new StringWriter();
//         try {
//             t.process(event, sw);
//         } catch (Exception e) {
//             log.error(e.getMessage());
//             log.debug(event);
//             return null;
//         }
//         try {
//             sw.close();
//         } catch (IOException e) {
//             log.error(e.getMessage(),e);
//         }
//         return sw.toString();
//     }
// }
// 
// Path: hangout-core/src/main/java/com/ctrip/ops/sysdev/render/TemplateRender.java
// public interface TemplateRender {
//     Pattern p = Pattern.compile("\\[\\S+\\]+");
// 
//     public Object render(Map event);
// 
//     static public TemplateRender getRender(Object template) throws IOException {
//         if (!String.class.isAssignableFrom(template.getClass())) {
//             return new DirectRender(template);
//         }
//         if (p.matcher((String) template).matches()) {
//             return new FieldRender((String) template);
//         }
// 
//         return new FreeMarkerRender((String) template, (String) template);
// 
//     }
// 
// 
//     static public TemplateRender getRender(String template, boolean ignoreOneLevelRender) throws IOException {
//         if (ignoreOneLevelRender == true) {
//             return getRender(template);
//         }
// 
//         if (!String.class.isAssignableFrom(template.getClass())) {
//             return new DirectRender(template);
//         }
//         if (p.matcher(template).matches()) {
//             return new FieldRender(template);
//         }
//         if (template.contains("$")) {
//             return new FreeMarkerRender(template, template);
//         }
//         return new OneLevelRender(template);
//     }
// 
// 
//     static public TemplateRender getRender(String template, String timezone) throws IOException {
//         Pattern p = Pattern.compile("\\%\\{\\+.*?\\}");
//         if (p.matcher(template).find()) {
//             return new DateFormatter(template, timezone);
//         }
//         return getRender(template);
//     }
// }


import lombok.extern.log4j.Log4j2;
import java.io.IOException;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
import com.ctrip.ops.sysdev.render.FreeMarkerRender;
import com.ctrip.ops.sysdev.render.TemplateRender;
package com.ctrip.ops.sysdev.baseplugin;




@Log4j2
public abstract class BaseOutput extends Base {
    protected Map config;
// Path: hangout-core/src/main/java/com/ctrip/ops/sysdev/render/FreeMarkerRender.java
// @Log4j2
// public class FreeMarkerRender implements TemplateRender {
//     private Template t;
// 
//     public FreeMarkerRender(String template, String templateName)
//             throws IOException {
//         Configuration cfg = new Configuration(Configuration.VERSION_2_3_22);
//         this.t = new Template(templateName, template, cfg);
//     }
// 
//     public Object render(Map event) {
//         StringWriter sw = new StringWriter();
//         try {
//             t.process(event, sw);
//         } catch (Exception e) {
//             log.error(e.getMessage());
//             log.debug(event);
//             return null;
//         }
//         try {
//             sw.close();
//         } catch (IOException e) {
//             log.error(e.getMessage(),e);
//         }
//         return sw.toString();
//     }
// }
// 
// Path: hangout-core/src/main/java/com/ctrip/ops/sysdev/render/TemplateRender.java
// public interface TemplateRender {
//     Pattern p = Pattern.compile("\\[\\S+\\]+");
// 
//     public Object render(Map event);
// 
//     static public TemplateRender getRender(Object template) throws IOException {
//         if (!String.class.isAssignableFrom(template.getClass())) {
//             return new DirectRender(template);
//         }
//         if (p.matcher((String) template).matches()) {
//             return new FieldRender((String) template);
//         }
// 
//         return new FreeMarkerRender((String) template, (String) template);
// 
//     }
// 
// 
//     static public TemplateRender getRender(String template, boolean ignoreOneLevelRender) throws IOException {
//         if (ignoreOneLevelRender == true) {
//             return getRender(template);
//         }
// 
//         if (!String.class.isAssignableFrom(template.getClass())) {
//             return new DirectRender(template);
//         }
//         if (p.matcher(template).matches()) {
//             return new FieldRender(template);
//         }
//         if (template.contains("$")) {
//             return new FreeMarkerRender(template, template);
//         }
//         return new OneLevelRender(template);
//     }
// 
// 
//     static public TemplateRender getRender(String template, String timezone) throws IOException {
//         Pattern p = Pattern.compile("\\%\\{\\+.*?\\}");
//         if (p.matcher(template).find()) {
//             return new DateFormatter(template, timezone);
//         }
//         return getRender(template);
//     }
// }


// Path: hangout-core/src/main/java/com/ctrip/ops/sysdev/baseplugin/BaseOutput.java
import lombok.extern.log4j.Log4j2;
import java.io.IOException;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
import com.ctrip.ops.sysdev.render.FreeMarkerRender;
import com.ctrip.ops.sysdev.render.TemplateRender;

package com.ctrip.ops.sysdev.baseplugin;




@Log4j2
public abstract class BaseOutput extends Base {
    protected Map config;
    protected List<TemplateRender> IF;