001 package railo.runtime.engine; 002 003 import java.util.Iterator; 004 import java.util.Map; 005 import java.util.Map.Entry; 006 007 import railo.runtime.PageContext; 008 import railo.runtime.type.Struct; 009 import railo.runtime.type.StructImpl; 010 011 public class ExecutionLogFactory { 012 013 private Class clazz; 014 private Map<String, String> arguments; 015 //private ExecutionLog executionLog; 016 017 public ExecutionLogFactory(Class clazz, Map<String, String> arguments){ 018 this.clazz=clazz; 019 this.arguments=arguments; 020 } 021 022 public ExecutionLog getInstance(PageContext pc){ 023 ExecutionLog el; 024 try { 025 el=(ExecutionLog) clazz.newInstance(); 026 } catch (Exception e) { 027 el= new ConsoleExecutionLog(); 028 } 029 el.init(pc, arguments); 030 return el; 031 } 032 033 public String toString(){ 034 return super.toString()+":"+clazz.getName(); 035 } 036 037 public Class getClazz(){ 038 return clazz; 039 } 040 041 public Struct getArgumentsAsStruct(){ 042 StructImpl sct=new StructImpl(); 043 if(arguments!=null) { 044 Iterator<Entry<String, String>> it = arguments.entrySet().iterator(); 045 Entry<String, String> e; 046 while(it.hasNext()){ 047 e = it.next(); 048 sct.setEL(e.getKey(), e.getValue()); 049 } 050 } 051 return sct; 052 } 053 }