// Path: src/main/java/com/tngtech/propertyloader/impl/interfaces/PropertyFilterContainer.java
// public interface PropertyFilterContainer<T> {
// 
//     T withDefaultFilters();
// 
//     T withVariableResolvingFilter();
// 
//     T withEnvironmentResolvingFilter();
// 
//     T withWarnIfPropertyHasToBeDefined();
// 
//     T withWarnOnSurroundingWhitespace();
// }
// 
// Path: src/main/java/com/tngtech/propertyloader/impl/interfaces/PropertyLoaderFilter.java
// public interface PropertyLoaderFilter {
// 
//     void filter(Properties properties);
// }


import com.tngtech.propertyloader.impl.interfaces.PropertyFilterContainer;
import com.tngtech.propertyloader.impl.interfaces.PropertyLoaderFilter;
import java.util.ArrayList;
import java.util.List;
package com.tngtech.propertyloader.impl;



public class DefaultPropertyFilterContainer implements PropertyFilterContainer<DefaultPropertyFilterContainer> {

    private final PropertyLoaderFactory propertyLoaderFactory;

// Path: src/main/java/com/tngtech/propertyloader/impl/interfaces/PropertyFilterContainer.java
// public interface PropertyFilterContainer<T> {
// 
//     T withDefaultFilters();
// 
//     T withVariableResolvingFilter();
// 
//     T withEnvironmentResolvingFilter();
// 
//     T withWarnIfPropertyHasToBeDefined();
// 
//     T withWarnOnSurroundingWhitespace();
// }
// 
// Path: src/main/java/com/tngtech/propertyloader/impl/interfaces/PropertyLoaderFilter.java
// public interface PropertyLoaderFilter {
// 
//     void filter(Properties properties);
// }


// Path: src/main/java/com/tngtech/propertyloader/impl/DefaultPropertyFilterContainer.java
import com.tngtech.propertyloader.impl.interfaces.PropertyFilterContainer;
import com.tngtech.propertyloader.impl.interfaces.PropertyLoaderFilter;
import java.util.ArrayList;
import java.util.List;

package com.tngtech.propertyloader.impl;



public class DefaultPropertyFilterContainer implements PropertyFilterContainer<DefaultPropertyFilterContainer> {

    private final PropertyLoaderFactory propertyLoaderFactory;

    private final List<PropertyLoaderFilter> filters = new ArrayList<>();