17dfacdb1c820f955cb3cd6032ff5fbc2dd7d9df5Chet Haase/*
27dfacdb1c820f955cb3cd6032ff5fbc2dd7d9df5Chet Haase * Copyright (C) 2011 The Android Open Source Project
37dfacdb1c820f955cb3cd6032ff5fbc2dd7d9df5Chet Haase *
47dfacdb1c820f955cb3cd6032ff5fbc2dd7d9df5Chet Haase * Licensed under the Apache License, Version 2.0 (the "License");
57dfacdb1c820f955cb3cd6032ff5fbc2dd7d9df5Chet Haase * you may not use this file except in compliance with the License.
67dfacdb1c820f955cb3cd6032ff5fbc2dd7d9df5Chet Haase * You may obtain a copy of the License at
77dfacdb1c820f955cb3cd6032ff5fbc2dd7d9df5Chet Haase *
87dfacdb1c820f955cb3cd6032ff5fbc2dd7d9df5Chet Haase *      http://www.apache.org/licenses/LICENSE-2.0
97dfacdb1c820f955cb3cd6032ff5fbc2dd7d9df5Chet Haase *
107dfacdb1c820f955cb3cd6032ff5fbc2dd7d9df5Chet Haase * Unless required by applicable law or agreed to in writing, software
117dfacdb1c820f955cb3cd6032ff5fbc2dd7d9df5Chet Haase * distributed under the License is distributed on an "AS IS" BASIS,
127dfacdb1c820f955cb3cd6032ff5fbc2dd7d9df5Chet Haase * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
137dfacdb1c820f955cb3cd6032ff5fbc2dd7d9df5Chet Haase * See the License for the specific language governing permissions and
147dfacdb1c820f955cb3cd6032ff5fbc2dd7d9df5Chet Haase * limitations under the License.
157dfacdb1c820f955cb3cd6032ff5fbc2dd7d9df5Chet Haase */
167dfacdb1c820f955cb3cd6032ff5fbc2dd7d9df5Chet Haasepackage android.animation;
177dfacdb1c820f955cb3cd6032ff5fbc2dd7d9df5Chet Haase
187dfacdb1c820f955cb3cd6032ff5fbc2dd7d9df5Chet Haaseimport com.google.common.util.concurrent.AbstractFuture;
197dfacdb1c820f955cb3cd6032ff5fbc2dd7d9df5Chet Haase
207dfacdb1c820f955cb3cd6032ff5fbc2dd7d9df5Chet Haase/**
217dfacdb1c820f955cb3cd6032ff5fbc2dd7d9df5Chet Haase * Simple extension of {@link com.google.common.util.concurrent.AbstractFuture} which exposes a new
227dfacdb1c820f955cb3cd6032ff5fbc2dd7d9df5Chet Haase * release() method which calls the protected
237dfacdb1c820f955cb3cd6032ff5fbc2dd7d9df5Chet Haase * {@link com.google.common.util.concurrent.AbstractFuture#set(Object)} method internally. It
247dfacdb1c820f955cb3cd6032ff5fbc2dd7d9df5Chet Haase * also exposes the protected {@link AbstractFuture#setException(Throwable)} method.
257dfacdb1c820f955cb3cd6032ff5fbc2dd7d9df5Chet Haase */
267dfacdb1c820f955cb3cd6032ff5fbc2dd7d9df5Chet Haasepublic class FutureWaiter extends AbstractFuture<Void> {
277dfacdb1c820f955cb3cd6032ff5fbc2dd7d9df5Chet Haase
287dfacdb1c820f955cb3cd6032ff5fbc2dd7d9df5Chet Haase    /**
297dfacdb1c820f955cb3cd6032ff5fbc2dd7d9df5Chet Haase     * Release the Future currently waiting on
307dfacdb1c820f955cb3cd6032ff5fbc2dd7d9df5Chet Haase     * {@link com.google.common.util.concurrent.AbstractFuture#get()}.
317dfacdb1c820f955cb3cd6032ff5fbc2dd7d9df5Chet Haase     */
327dfacdb1c820f955cb3cd6032ff5fbc2dd7d9df5Chet Haase    public void release() {
337dfacdb1c820f955cb3cd6032ff5fbc2dd7d9df5Chet Haase        super.set(null);
347dfacdb1c820f955cb3cd6032ff5fbc2dd7d9df5Chet Haase    }
357dfacdb1c820f955cb3cd6032ff5fbc2dd7d9df5Chet Haase
367dfacdb1c820f955cb3cd6032ff5fbc2dd7d9df5Chet Haase    @Override
377dfacdb1c820f955cb3cd6032ff5fbc2dd7d9df5Chet Haase    public boolean setException(Throwable throwable) {
387dfacdb1c820f955cb3cd6032ff5fbc2dd7d9df5Chet Haase        return super.setException(throwable);
397dfacdb1c820f955cb3cd6032ff5fbc2dd7d9df5Chet Haase    }
407dfacdb1c820f955cb3cd6032ff5fbc2dd7d9df5Chet Haase}
41