001 package org.nanocontainer.webcontainer.groovy.adapters;
002
003 import org.nanocontainer.webcontainer.PicoContext;
004 import org.nanocontainer.NanoContainer;
005 import org.nanocontainer.DefaultNanoContainer;
006 import org.picocontainer.MutablePicoContainer;
007 import org.picocontainer.PicoContainer;
008
009 import java.util.Map;
010
011 import groovy.util.NodeBuilder;
012
013 /**
014 *
015 * @author Paul Hammant
016 * @author Mauro Talevi
017 * @deprecated Use NodeBuilderAdapter
018 */
019 public class WaffleAdapter {
020
021 private static final String WAFFLE_NODE_BUILDER = "org.codehaus.waffle.groovy.WaffleNodeBuilder";
022
023 private final PicoContext context;
024 private final MutablePicoContainer parentContainer;
025 private final Map attributes;
026
027 public WaffleAdapter(PicoContext context, MutablePicoContainer parentContainer, Map attributes) {
028 this.context = context;
029 this.parentContainer = parentContainer;
030 this.attributes = attributes;
031 }
032
033 public NodeBuilder getNodeBuilder() {
034 NanoContainer factory = new DefaultNanoContainer();
035 factory.getPico().registerComponentInstance(PicoContext.class, context);
036 factory.getPico().registerComponentInstance(PicoContainer.class, parentContainer);
037 factory.getPico().registerComponentInstance(Map.class, attributes);
038 try {
039 factory.registerComponentImplementation("waffleNodeBuilder", WAFFLE_NODE_BUILDER);
040 return (NodeBuilder) factory.getPico().getComponentInstance("waffleNodeBuilder");
041 } catch (ClassNotFoundException e) {
042 throw new org.nanocontainer.script.BuilderClassNotFoundException(WAFFLE_NODE_BUILDER + " class name not found", e);
043 }
044 }
045
046 }