001    /*******************************************************************************
002     * Copyright (C) PicoContainer Organization. All rights reserved.
003     * ---------------------------------------------------------------------------
004     * The software in this package is published under the terms of the BSD style
005     * license a copy of which has been included with this distribution in the
006     * LICENSE.txt file.
007     ******************************************************************************/
008    package org.picocontainer.script.util;
009    
010    import org.picocontainer.ComponentFactory;
011    import org.picocontainer.DefaultPicoContainer;
012    import org.picocontainer.PicoContainer;
013    import org.picocontainer.classname.ClassLoadingPicoContainer;
014    import org.picocontainer.classname.DefaultClassLoadingPicoContainer;
015    import org.picocontainer.containers.EmptyPicoContainer;
016    import org.picocontainer.behaviors.Caching;
017    
018    import java.util.Set;
019    import java.util.List;
020    import java.util.Map;
021    
022    /**
023     * Helper for ScriptedPicoContainer
024     * 
025     * @author Paul Hammant
026     */
027    public class ContainerElementHelper {
028    
029        public static ClassLoadingPicoContainer makeScriptedPicoContainer(ComponentFactory componentFactory,
030                PicoContainer parent, ClassLoader classLoader) {
031            if (parent == null) {
032                parent = new EmptyPicoContainer();
033            }
034            if (componentFactory == null) {
035                componentFactory = new Caching();
036            }
037            return new DefaultClassLoadingPicoContainer(classLoader, new DefaultPicoContainer(componentFactory, parent));
038    
039        }
040    
041        public static void debug(List<?> arg0, Map<?,?> arg1) {
042            System.out.println("-->debug " + arg0.size() + " " + arg1.size());
043            for (int i = 0; i < arg0.size(); i++) {
044                Object o = arg0.get(i);
045                System.out.println("--> arg0[" + i + "] " + o);
046    
047            }
048            Set<?> keys = arg1.keySet();
049            int i = 0;
050            for (Object o : keys) {
051                System.out.println("--> arg1[" + i++ + "] " + o + ", " + arg1.get(o));
052    
053            }
054        }
055    
056    }