Package com.netflix.governator.guice.transformer

Source Code of com.netflix.governator.guice.transformer.OverrideAllDuplicateBindings

package com.netflix.governator.guice.transformer;

import java.util.Collection;

import com.google.common.collect.ImmutableList;
import com.google.inject.AbstractModule;
import com.google.inject.Module;
import com.google.inject.util.Modules;
import com.netflix.governator.guice.ModuleTransformer;

/**
* Treat any binding in list order as an override for previous bindings.
*
* @author elandau
*/
public class OverrideAllDuplicateBindings implements ModuleTransformer {
   
    @Override
    public Collection<Module> call(Collection<Module> modules) {
        // Starting point
        Module current = new AbstractModule() {
            @Override
            protected void configure() {
            }
        };

        // Accumulate bindings while allowing for each to override all
        // previous bindings
        for (Module module : modules) {
            current = Modules.override(current).with(module);
        }
        return ImmutableList.of(current);
    }

}
TOP

Related Classes of com.netflix.governator.guice.transformer.OverrideAllDuplicateBindings

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.