FailoverLoader.java 2.19 KB
package dagger.internal;

import dagger.internal.loaders.ReflectiveAtInjectBinding;
import dagger.internal.loaders.ReflectiveStaticInjection;

public final class FailoverLoader
  extends Loader
{
  private final Memoizer<Class<?>, ModuleAdapter<?>> loadedAdapters = new Memoizer()
  {
    protected ModuleAdapter<?> create(Class<?> paramAnonymousClass)
    {
      ModuleAdapter localModuleAdapter = (ModuleAdapter)FailoverLoader.this.instantiate(paramAnonymousClass.getName().concat("$$ModuleAdapter"), paramAnonymousClass.getClassLoader());
      if (localModuleAdapter == null) {
        throw new IllegalStateException("Module adapter for " + paramAnonymousClass + " could not be loaded. Please ensure that code generation was run for this module.");
      }
      return localModuleAdapter;
    }
  };
  
  public final Binding<?> getAtInjectBinding(String paramString1, String paramString2, ClassLoader paramClassLoader, boolean paramBoolean)
  {
    Binding localBinding = (Binding)instantiate(paramString2.concat("$$InjectAdapter"), paramClassLoader);
    if (localBinding != null) {
      return localBinding;
    }
    paramClassLoader = loadClass(paramClassLoader, paramString2);
    if (paramClassLoader.equals(Void.class)) {
      throw new IllegalStateException(String.format("Could not load class %s needed for binding %s", new Object[] { paramString2, paramString1 }));
    }
    if (paramClassLoader.isInterface()) {
      return null;
    }
    return ReflectiveAtInjectBinding.create(paramClassLoader, paramBoolean);
  }
  
  public final <T> ModuleAdapter<T> getModuleAdapter(Class<T> paramClass)
  {
    return (ModuleAdapter)this.loadedAdapters.get(paramClass);
  }
  
  public final StaticInjection getStaticInjection(Class<?> paramClass)
  {
    StaticInjection localStaticInjection = (StaticInjection)instantiate(paramClass.getName().concat("$$StaticInjection"), paramClass.getClassLoader());
    if (localStaticInjection != null) {
      return localStaticInjection;
    }
    return ReflectiveStaticInjection.create(paramClass);
  }
}


/* Location:              /home/merong/decompile/hackery-dex2jar.jar!/dagger/internal/FailoverLoader.class
 * Java compiler version: 6 (50.0)
 * JD-Core Version:       0.7.1
 */