Start line:  
End line:  

Snippet Preview

Snippet HTML Code

Stack Overflow Questions
 /*
  * Copyright 2012-2015 Amazon Technologies, Inc.
  *
  * 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://aws.amazon.com/apache2.0
  *
 * This file 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.amazonaws.services.s3.transfer.internal;
public class MultipleFileTransferMonitor implements TransferMonitor {
    private final Collection<? extends AbstractTransfersubTransfers;
    private final AbstractTransfer transfer;
    private final Future<?> future;
    public MultipleFileTransferMonitor(AbstractTransfer transferCollection<? extends AbstractTransfersubTransfers) {
        this. = subTransfers;
        this. = transfer;
        /*
         * The future object is not publicly exposed, so we only need to worry
         * about implementing get(). The other methods are implemented badly,
         * just to meet the interface contract.
         */
        this. = new Future<Object>() {
            @Override
            public boolean cancel(boolean mayInterruptIfRunning) {
                return true;
            }
            @Override
            public Object get() throws InterruptedExceptionExecutionException {
                Object result = null;
                for ( AbstractTransfer download : MultipleFileTransferMonitor.this. ) {
                    result = download.getMonitor().getFuture().get();
                }
                return result;
            }
            @Override
            public Object get(long timeoutTimeUnit unitthrows InterruptedExceptionExecutionException,
                    TimeoutException {
                Object result = null;
                for ( AbstractTransfer subTransfer : MultipleFileTransferMonitor.this. ) {
                    result = subTransfer.getMonitor().getFuture().get(timeoutunit);
                }
                return result;
            }
            @Override
            public boolean isCancelled() {
                return MultipleFileTransferMonitor.this..getState() == ..;
            }
            @Override
            public boolean isDone() {
                return MultipleFileTransferMonitor.this.isDone();
            }            
        };
    }
    @Override
    public Future<?> getFuture() {
        return ;
    }
    @Override
    public synchronized boolean isDone() {
        for ( Transfer subTransfer :  ) {
            if ( !subTransfer.isDone() )
                return false;
        }
        return true;
    }
    
New to GrepCode? Check out our FAQ X