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    }