@Override
    public List getList(String key, List defaultValue)
    {
        List<Object> list = new ArrayList<Object>();

        // add all elements from the first configuration containing the requested key
        Iterator<AbstractConfiguration> it = configList.iterator();
        if (overrideProperties.containsKey(key)) {
            appendListProperty(list, overrideProperties, key);
        }
        while (it.hasNext() && list.isEmpty())
        {
            Configuration config = it.next();
            if ((config != containerConfiguration || containerConfigurationChanged) 
                    && config.containsKey(key))
            {
                appendListProperty(list, config, key);
            }
        }

        // add all elements from the in memory configuration
        if (list.isEmpty()) {
            appendListProperty(list, containerConfiguration, key);
        }

        if (list.isEmpty())
        {
            return defaultValue;
        }

        ListIterator<Object> lit = list.listIterator();
        while (lit.hasNext())
        {
            lit.set(interpolate(lit.next()));
        }

        return list;
    }
@Override
    public List getList(String key, List defaultValue)
    {
        List<Object> list = new ArrayList<Object>();

        
        Iterator<AbstractConfiguration> it = configList.iterator();
        if (overrideProperties.containsKey(key)) {
            appendListProperty(list, overrideProperties, key);
        }
        while (it.hasNext() && list.isEmpty())
        {
            Configuration config = it.next();
            if ((config != containerConfiguration || containerConfigurationChanged) 
                    && config.containsKey(key))
            {
                appendListProperty(list, config, key);
            }
        }

        
        if (list.isEmpty()) {
            appendListProperty(list, containerConfiguration, key);
        }

        if (list.isEmpty())
        {
            return defaultValue;
        }

        ListIterator<Object> lit = list.listIterator();
        while (lit.hasNext())
        {
            lit.set(interpolate(lit.next()));
        }

        return list;
    }
@ Override public List getList ( String key , List defaultValue ) { List < Object > list = new ArrayList < Object > ( ) ; // add all elements from the first configuration containing the requested key Iterator < AbstractConfiguration > it = configList . iterator ( ) ; if ( overrideProperties . containsKey ( key ) ) { appendListProperty ( list , overrideProperties , key ) ; } while ( it . hasNext ( ) && list . isEmpty ( ) ) { Configuration config = it . next ( ) ; if ( ( config != containerConfiguration || containerConfigurationChanged ) && config . containsKey ( key ) ) { appendListProperty ( list , config , key ) ; } } // add all elements from the in memory configuration if ( list . isEmpty ( ) ) { appendListProperty ( list , containerConfiguration , key ) ; } if ( list . isEmpty ( ) ) { return defaultValue ; } ListIterator < Object > lit = list . listIterator ( ) ; while ( lit . hasNext ( ) ) { lit . set ( interpolate ( lit . next ( ) ) ) ; } return list ; }
Get a List of objects associated with the given configuration key.
If the key doesn't map to an existing object, the default value
is returned.

@param key The configuration key.
@param defaultValue The default value.
@return The associated List of value.
Get a List of objects associated with the given configuration key . If the key doesn t map to an existing object the default value is returned .