1 16 package org.apache.cocoon.components.language.programming.python; 17 18 import org.apache.avalon.framework.configuration.DefaultConfiguration; 19 import org.apache.avalon.framework.configuration.Configurable; 20 import org.apache.avalon.framework.component.ComponentManager; 21 import org.apache.avalon.framework.context.Context; 22 23 import org.apache.avalon.excalibur.component.ComponentHandler; 24 import org.apache.avalon.excalibur.component.RoleManager; 25 import org.apache.avalon.excalibur.component.LogkitLoggerManager; 26 27 import org.apache.cocoon.components.language.programming.Program; 28 import org.apache.cocoon.components.language.generator.CompiledComponent; 29 30 import java.io.File ; 31 import java.util.Collection ; 32 import java.util.Iterator ; 33 34 40 public class PythonProgram implements Program { 41 42 protected File file; 43 protected Class clazz; 44 protected DefaultConfiguration config; 45 46 public PythonProgram(File file, Class clazz, Collection dependecies) { 47 this.file = file; 48 this.clazz = clazz; 49 50 config = new DefaultConfiguration("", "GeneratorSelector"); 51 DefaultConfiguration child = new DefaultConfiguration("file", ""); 52 child.setValue(file.toString()); 53 config.addChild(child); 54 55 for (Iterator i = dependecies.iterator(); i.hasNext(); ) { 56 child = new DefaultConfiguration("dependency", ""); 57 child.setValue(i.next().toString()); 58 config.addChild(child); 59 } 60 } 61 62 public String getName() { 63 return file.toString(); 64 } 65 66 public ComponentHandler getHandler(ComponentManager manager, 67 Context context, 68 RoleManager roles, 69 LogkitLoggerManager logKitManager) 70 throws Exception { 71 72 return ComponentHandler.getComponentHandler( 73 clazz, config, manager, context, roles, logKitManager, null, "N/A"); 74 } 75 76 public CompiledComponent newInstance() throws Exception { 77 CompiledComponent instance = (CompiledComponent) clazz.newInstance(); 78 if (instance instanceof Configurable) 79 ((Configurable) instance).configure(config); 80 return instance; 81 } 82 } 83 | Popular Tags |