All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.netflix.fabricator.guice.mapping.CompositeNoExistingBinding Maven / Gradle / Ivy

package com.netflix.fabricator.guice.mapping;

import com.google.common.base.Preconditions;
import com.google.inject.Injector;
import com.netflix.fabricator.BindingComponentFactory;
import com.netflix.fabricator.ConfigurationNode;

import java.lang.reflect.Method;

/**
 * Created by hyuan on 1/17/14.
 */
public class CompositeNoExistingBinding implements BindingReslove {
    private final String propertyName;
    private final BindingComponentFactory provider;

    public CompositeNoExistingBinding(String propertyName, BindingComponentFactory provider) {
        Preconditions.checkNotNull(propertyName);
        Preconditions.checkNotNull(provider);
        
        this.propertyName = propertyName;
        this.provider = provider;
    }

    @Override
    public boolean execute(String name, Object obj, ConfigurationNode node, Class argType, Injector injector, Method method) throws Exception {
        if (node != null) {
            Object subObject = provider.get().create(node);
            method.invoke(obj, subObject);
        }
        return true;
    }
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy