.class final Lcom/google/common/util/concurrent/AbstractScheduledService$CustomScheduler$SupplantableFuture; .super Ljava/lang/Object; .source "AbstractScheduledService.java" # interfaces .implements Lcom/google/common/util/concurrent/AbstractScheduledService$Cancellable; # annotations .annotation system Ldalvik/annotation/EnclosingClass; value = Lcom/google/common/util/concurrent/AbstractScheduledService$CustomScheduler; .end annotation .annotation system Ldalvik/annotation/InnerClass; accessFlags = 0x19 name = "SupplantableFuture" .end annotation # instance fields .field private currentFuture:Ljava/util/concurrent/Future; .annotation build Lcom/google/errorprone/annotations/concurrent/GuardedBy; value = "lock" .end annotation .annotation system Ldalvik/annotation/Signature; value = { "Ljava/util/concurrent/Future<", "Ljava/lang/Void;", ">;" } .end annotation .end field .field private final lock:Ljava/util/concurrent/locks/ReentrantLock; # direct methods .method public constructor (Ljava/util/concurrent/locks/ReentrantLock;Ljava/util/concurrent/Future;)V .locals 0 .annotation system Ldalvik/annotation/Signature; value = { "(", "Ljava/util/concurrent/locks/ReentrantLock;", "Ljava/util/concurrent/Future<", "Ljava/lang/Void;", ">;)V" } .end annotation .line 1 invoke-direct {p0}, Ljava/lang/Object;->()V .line 2 iput-object p1, p0, Lcom/google/common/util/concurrent/AbstractScheduledService$CustomScheduler$SupplantableFuture;->lock:Ljava/util/concurrent/locks/ReentrantLock; .line 3 iput-object p2, p0, Lcom/google/common/util/concurrent/AbstractScheduledService$CustomScheduler$SupplantableFuture;->currentFuture:Ljava/util/concurrent/Future; return-void .end method .method public static synthetic access$800(Lcom/google/common/util/concurrent/AbstractScheduledService$CustomScheduler$SupplantableFuture;)Ljava/util/concurrent/Future; .locals 0 .line 1 iget-object p0, p0, Lcom/google/common/util/concurrent/AbstractScheduledService$CustomScheduler$SupplantableFuture;->currentFuture:Ljava/util/concurrent/Future; return-object p0 .end method .method public static synthetic access$802(Lcom/google/common/util/concurrent/AbstractScheduledService$CustomScheduler$SupplantableFuture;Ljava/util/concurrent/Future;)Ljava/util/concurrent/Future; .locals 0 .line 1 iput-object p1, p0, Lcom/google/common/util/concurrent/AbstractScheduledService$CustomScheduler$SupplantableFuture;->currentFuture:Ljava/util/concurrent/Future; return-object p1 .end method # virtual methods .method public cancel(Z)V .locals 1 .line 1 iget-object v0, p0, Lcom/google/common/util/concurrent/AbstractScheduledService$CustomScheduler$SupplantableFuture;->lock:Ljava/util/concurrent/locks/ReentrantLock; invoke-virtual {v0}, Ljava/util/concurrent/locks/ReentrantLock;->lock()V .line 2 :try_start_0 iget-object v0, p0, Lcom/google/common/util/concurrent/AbstractScheduledService$CustomScheduler$SupplantableFuture;->currentFuture:Ljava/util/concurrent/Future; invoke-interface {v0, p1}, Ljava/util/concurrent/Future;->cancel(Z)Z :try_end_0 .catchall {:try_start_0 .. :try_end_0} :catchall_0 .line 3 iget-object p1, p0, Lcom/google/common/util/concurrent/AbstractScheduledService$CustomScheduler$SupplantableFuture;->lock:Ljava/util/concurrent/locks/ReentrantLock; invoke-virtual {p1}, Ljava/util/concurrent/locks/ReentrantLock;->unlock()V return-void :catchall_0 move-exception p1 iget-object v0, p0, Lcom/google/common/util/concurrent/AbstractScheduledService$CustomScheduler$SupplantableFuture;->lock:Ljava/util/concurrent/locks/ReentrantLock; invoke-virtual {v0}, Ljava/util/concurrent/locks/ReentrantLock;->unlock()V .line 4 throw p1 .end method .method public isCancelled()Z .locals 2 .line 1 iget-object v0, p0, Lcom/google/common/util/concurrent/AbstractScheduledService$CustomScheduler$SupplantableFuture;->lock:Ljava/util/concurrent/locks/ReentrantLock; invoke-virtual {v0}, Ljava/util/concurrent/locks/ReentrantLock;->lock()V .line 2 :try_start_0 iget-object v0, p0, Lcom/google/common/util/concurrent/AbstractScheduledService$CustomScheduler$SupplantableFuture;->currentFuture:Ljava/util/concurrent/Future; invoke-interface {v0}, Ljava/util/concurrent/Future;->isCancelled()Z move-result v0 :try_end_0 .catchall {:try_start_0 .. :try_end_0} :catchall_0 .line 3 iget-object v1, p0, Lcom/google/common/util/concurrent/AbstractScheduledService$CustomScheduler$SupplantableFuture;->lock:Ljava/util/concurrent/locks/ReentrantLock; invoke-virtual {v1}, Ljava/util/concurrent/locks/ReentrantLock;->unlock()V return v0 :catchall_0 move-exception v0 iget-object v1, p0, Lcom/google/common/util/concurrent/AbstractScheduledService$CustomScheduler$SupplantableFuture;->lock:Ljava/util/concurrent/locks/ReentrantLock; invoke-virtual {v1}, Ljava/util/concurrent/locks/ReentrantLock;->unlock()V .line 4 throw v0 .end method