Start line:  
End line:  

Snippet Preview

Snippet HTML Code

Stack Overflow Questions
  /*
   * Copyright (C) 2009 The Guava Authors
   *
   * Licensed under the Apache License, Version 2.0 (the "License");
   * you may not use this file except in compliance with the License.
   * You may obtain a copy of the License at
   *
   * http://www.apache.org/licenses/LICENSE-2.0
   *
  * Unless required by applicable law or agreed to in writing, software
  * distributed under the License is distributed on an "AS IS" BASIS,
  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
 
 package com.google.common.util.concurrent.testing;
 
 
 import java.util.List;
A ScheduledExecutorService that executes all scheduled actions immediately in the calling thread. See TestingExecutors.sameThreadScheduledExecutor() for a full list of constraints.

Author(s):
John Sirois
Zach van Schouwen
 
     implements ListeningScheduledExecutorService {
 
   private final ListeningExecutorService delegate =
       MoreExecutors.sameThreadExecutor();
 
   @Override
   public void shutdown() {
     .shutdown();
   }
 
   @Override
   public List<RunnableshutdownNow() {
     return .shutdownNow();
   }
 
   @Override
   public boolean isShutdown() {
     return .isShutdown();
   }
 
   @Override
   public boolean isTerminated() {
     return .isTerminated();
   }
 
   @Override
   public boolean awaitTermination(long timeoutTimeUnit unit)
       throws InterruptedException {
     Preconditions.checkNotNull(unit"unit must not be null!");
     return .awaitTermination(timeoutunit);
   }
 
   @Override
   public <T> ListenableFuture<T> submit(Callable<T> task) {
     Preconditions.checkNotNull(task"task must not be null!");
     return .submit(task);
   }
 
   @Override
   public <T> ListenableFuture<T> submit(Runnable task, T result) {
     Preconditions.checkNotNull(task"task must not be null!");
     Preconditions.checkNotNull(result"result must not be null!");
     return .submit(taskresult);
   }
 
   @Override
   public ListenableFuture<?> submit(Runnable task) {
     Preconditions.checkNotNull(task"task must not be null!");
     return .submit(task);
   }
 
   @Override
  public <T> List<Future<T>> invokeAll(
      Collection<? extends Callable<T>> tasksthrows InterruptedException {
    Preconditions.checkNotNull(tasks"tasks must not be null!");
    return .invokeAll(tasks);
  }
  public <T> List<Future<T>> invokeAll(
      Collection<? extends Callable<T>> taskslong timeoutTimeUnit unit)
      throws InterruptedException {
    Preconditions.checkNotNull(tasks"tasks must not be null!");
    Preconditions.checkNotNull(unit"unit must not be null!");
    return .invokeAll(taskstimeoutunit);
  }
  public <T> T invokeAny(Collection<? extends Callable<T>> tasks)
    Preconditions.checkNotNull(tasks"tasks must not be null!");
    return .invokeAny(tasks);
  }
  public <T> T invokeAny(Collection<? extends Callable<T>> tasks,
      long timeoutTimeUnit unit)
    Preconditions.checkNotNull(tasks"tasks must not be null!");
    Preconditions.checkNotNull(unit"unit must not be null!");
    return .invokeAny(taskstimeoutunit);
  }
  public void execute(Runnable command) {
    Preconditions.checkNotNull(command"command must not be null!");
    .execute(command);
  }
  public ListenableScheduledFuture<?> schedule(Runnable commandlong delay,
      TimeUnit unit) {
    Preconditions.checkNotNull(command"command must not be null");
    Preconditions.checkNotNull(unit"unit must not be null!");
    return schedule(java.util.concurrent.Executors.callable(command),
        delayunit);
  }
  private static class ImmediateScheduledFuture<V>
      extends SimpleForwardingListenableFuture<V>
      implements ListenableScheduledFuture<V> {
    private ExecutionException exception;
    protected ImmediateScheduledFuture(ListenableFuture<V> future) {
      super(future);
    }
    @Override
    public V get(long timeoutTimeUnit unit)
      Preconditions.checkNotNull(unit"unit must not be null!");
      return get();
    }
    @Override
    public long getDelay(TimeUnit unit) {
      Preconditions.checkNotNull(unit"unit must not be null!");
      return 0;
    }
    @Override
    public int compareTo(Delayed other) {
      Preconditions.checkNotNull(other"other must not be null!");
      return 0;
    }
  }
  public <V> ListenableScheduledFuture<V> schedule(final Callable<V> callable,
      long delayTimeUnit unit) {
    Preconditions.checkNotNull(callable"callable must not be null!");
    Preconditions.checkNotNull(unit"unit must not be null!");
    ListenableFuture<V> delegateFuture = submit(callable);
    return new ImmediateScheduledFuture<V>(delegateFuture);
  }
      long initialDelaylong periodTimeUnit unit) {
        "scheduleAtFixedRate is not supported.");
  }
      long initialDelaylong delayTimeUnit unit) {
        "scheduleWithFixedDelay is not supported.");
  }
New to GrepCode? Check out our FAQ X