package com.microsoft.live.test.util;
import java.io.File;
import java.util.concurrent.BlockingQueue;
import com.microsoft.live.LiveConnectClient;
import com.microsoft.live.LiveDownloadOperation;
import com.microsoft.live.LiveDownloadOperationListener;
public class DownloadAsyncRunnable extends AsyncRunnable<LiveDownloadOperation,
LiveDownloadOperationListener> {
private final File file;
public DownloadAsyncRunnable(BlockingQueue<LiveDownloadOperation> queue,
LiveConnectClient connectClient,
String path,
LiveDownloadOperationListener listener) {
super(queue, connectClient, path, listener);
this.file = null;
}
public DownloadAsyncRunnable(BlockingQueue<LiveDownloadOperation> queue,
LiveConnectClient connectClient,
String path,
LiveDownloadOperationListener listener,
Object userState) {
super(queue, connectClient, path, listener, userState);
this.file = null;
}
public DownloadAsyncRunnable(BlockingQueue<LiveDownloadOperation> queue,
LiveConnectClient connectClient,
String path,
File file,
LiveDownloadOperationListener listener) {
super(queue, connectClient, path, listener);
this.file = file;
}
public DownloadAsyncRunnable(BlockingQueue<LiveDownloadOperation> queue,
LiveConnectClient connectClient,
String path,
File file,
LiveDownloadOperationListener listener,
Object userState) {
super(queue, connectClient, path, listener, userState);
this.file = file;
}
@Override
protected LiveDownloadOperation calledWithoutUserState() {
if (this.file != null) {
return connectClient.downloadAsync(path, file, listener);
}
return this.connectClient.downloadAsync(this.path, this.listener);
}
@Override
protected LiveDownloadOperation calledWithUserState(Object userState) {
if (this.file != null) {
return connectClient.downloadAsync(path, file, listener, userState);
}
return this.connectClient.downloadAsync(this.path, this.listener, userState);
}
}