1 package org.nanocontainer.webcontainer.groovy.adapters; 2 3 import org.nanocontainer.webcontainer.PicoContextHandler; 4 import org.nanocontainer.NanoContainer; 5 import org.nanocontainer.DefaultNanoContainer; 6 import org.picocontainer.MutablePicoContainer; 7 8 import java.util.Map ; 9 10 import groovy.util.NodeBuilder; 11 12 public class WaffleAdapter { 13 private final PicoContextHandler context; 14 private final MutablePicoContainer parentContainer; 15 16 public WaffleAdapter(PicoContextHandler context, MutablePicoContainer parentContainer, Map attributes) { 17 this.context = context; 18 this.parentContainer = parentContainer; 19 } 20 public NodeBuilder getNodeBuilder() { 21 String className = "com.thoughtworks.waffle.groovy.WaffleBuilder"; 22 NanoContainer factory = new DefaultNanoContainer(); 23 factory.getPico().registerComponentInstance(PicoContextHandler.class, context); 24 factory.getPico().registerComponentInstance(MutablePicoContainer.class, parentContainer); 25 try { 26 factory.registerComponentImplementation("wb", className); 27 return (NodeBuilder) factory.getPico().getComponentInstance("wb"); 28 } catch (ClassNotFoundException e) { 29 throw new org.nanocontainer.script.BuilderClassNotFoundException(className + " class name not found", e); 30 } 31 32 } 33 34 } 35 | Popular Tags |