package org.robobinding.binder; import org.robobinding.BinderProvider; import org.robobinding.BindingContextFactory; import org.robobinding.ItemBinder; import org.robobinding.NonBindingViewInflater; import org.robobinding.SubViewBinder; /** * * @since 1.0 * @version $Revision: 1.0 $ * @author Cheng Wei */ class BinderProviderImpl implements BinderProvider { private final BindingViewInflater bindingViewInflater; private final ViewBindingLifecycle viewBindingLifecycle; private final NonBindingViewInflater nonBindingViewInflater; private final ViewBinderImpl viewBinder; private final BindingContextFactoryAdapters bindingContextFactoryAdapters; public BinderProviderImpl(BindingViewInflater bindingViewInflater, ViewBindingLifecycle viewBindingLifecycle, NonBindingViewInflater nonBindingViewInflater, ViewBinderImpl viewBinder, BindingContextFactoryAdapters bindingContextFactoryAdapters) { this.bindingViewInflater = bindingViewInflater; this.viewBindingLifecycle = viewBindingLifecycle; this.nonBindingViewInflater = nonBindingViewInflater; this.viewBinder = viewBinder; this.bindingContextFactoryAdapters = bindingContextFactoryAdapters; } @Override public ItemBinder createItemBinder(BindingContextFactory factory) { return new ItemBinder(bindingViewInflater, viewBindingLifecycle, bindingContextFactoryAdapters.adaptA(factory)); } @Override public SubViewBinder createSubViewBinder(BindingContextFactory factory) { return new SubViewBinder(nonBindingViewInflater, viewBinder.with(bindingContextFactoryAdapters.adaptB(factory))); } }