mm$k.java 2.89 KB
import com.google.common.base.Function;
import com.google.common.base.Stopwatch;
import com.google.common.cache.CacheLoader;
import com.google.common.util.concurrent.Futures;
import com.google.common.util.concurrent.ListenableFuture;
import com.google.common.util.concurrent.SettableFuture;
import com.google.common.util.concurrent.Uninterruptibles;
import java.lang.ref.ReferenceQueue;
import java.util.concurrent.ExecutionException;
import java.util.concurrent.TimeUnit;
import javax.annotation.Nullable;

final class mm$k<K, V>
  implements mm.z<K, V>
{
  volatile mm.z<K, V> a;
  final SettableFuture<V> b = SettableFuture.create();
  final Stopwatch c = Stopwatch.createUnstarted();
  
  public mm$k()
  {
    this(mm.j());
  }
  
  public mm$k(mm.z<K, V> paramz)
  {
    this.a = paramz;
  }
  
  public final int a()
  {
    return this.a.a();
  }
  
  public final ListenableFuture<V> a(K paramK, CacheLoader<? super K, V> paramCacheLoader)
  {
    this.c.start();
    Object localObject = this.a.get();
    if (localObject == null) {}
    try
    {
      paramK = paramCacheLoader.load(paramK);
      if (b(paramK)) {
        return this.b;
      }
      return Futures.immediateFuture(paramK);
    }
    catch (Throwable paramK)
    {
      if (!(paramK instanceof InterruptedException)) {
        break label91;
      }
      Thread.currentThread().interrupt();
      if (!a(paramK)) {
        break label104;
      }
      return this.b;
    }
    paramK = paramCacheLoader.reload(paramK, localObject);
    if (paramK == null) {
      return Futures.immediateFuture(null);
    }
    paramK = Futures.transform(paramK, new Function()
    {
      public final V apply(V paramAnonymousV)
      {
        mm.k.this.b(paramAnonymousV);
        return paramAnonymousV;
      }
    });
    return paramK;
    label91:
    label104:
    return Futures.immediateFailedFuture(paramK);
  }
  
  public final mm.z<K, V> a(ReferenceQueue<V> paramReferenceQueue, @Nullable V paramV, mm.p<K, V> paramp)
  {
    return this;
  }
  
  public final void a(@Nullable V paramV)
  {
    if (paramV != null)
    {
      b(paramV);
      return;
    }
    this.a = mm.j();
  }
  
  public final boolean a(Throwable paramThrowable)
  {
    return this.b.setException(paramThrowable);
  }
  
  public final mm.p<K, V> b()
  {
    return null;
  }
  
  public final boolean b(@Nullable V paramV)
  {
    return this.b.set(paramV);
  }
  
  public final boolean c()
  {
    return true;
  }
  
  public final boolean d()
  {
    return this.a.d();
  }
  
  public final V e()
    throws ExecutionException
  {
    return (V)Uninterruptibles.getUninterruptibly(this.b);
  }
  
  public final long f()
  {
    return this.c.elapsed(TimeUnit.NANOSECONDS);
  }
  
  public final V get()
  {
    return (V)this.a.get();
  }
}


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