theClass, filteredConf);
theClass, filteredConf, defaultValue);
    public Object getPropertyWithFilter(String key, Filter filter, Class theClass, Object defaultValue) {        CompositeConfiguration filteredConf = properties;        Object value = null;        for (int i = filter.numOfSelectors(); (i >= 0) && (value == null); i--) {            MapConfiguration varsConf = null;            if (filter.hasVariables()) {                varsConf = new MapConfiguration(filter.getVariables());                filteredConf = new CompositeConfiguration();                filteredConf.addConfiguration(properties);                filteredConf.addConfiguration(varsConf);            }            value = getTypedPropertyWithDefault(key + filter.getFilterSuffix(i),                     theClass, filteredConf);            if (varsConf != null) {                properties.removeConfiguration(varsConf);            }            log.debug("Value for "+key + filter.getFilterSuffix(i) + "=" + value);        }        return value;    }