/**
* Copyright (c) 2012-2013 Nokia Corporation. All rights reserved.
* Nokia and Nokia Connecting People are registered trademarks of Nokia Corporation.
* Oracle and Java are trademarks or registered trademarks of Oracle and/or its
* affiliates. Other product and company names mentioned herein may be trademarks
* or trade names of their respective owners.
* See LICENSE.TXT for license information.
*/
package com.nokia.example.rlinks.network.operation;
import com.nokia.example.rlinks.network.HttpOperation;
/**
* An HttpOperation for loading an image.
*/
public final class ImageLoadOperation
extends HttpOperation {
/**
* Listener interface used to signal of images being received.
*/
public interface Listener {
/**
* Called when a image has been loaded.
*
* @param url Url address identifying the image
* @param data Image data
*/
public void imageReceived(String url, byte[] data);
}
private final String url;
private final Listener listener;
/**
* Create a ImageLoadOperation.
*
* @param url URL identifying the image to be loaded
* @param listener Listener to be invoked when loading is done
*/
public ImageLoadOperation(String url, Listener listener) {
this.url = url;
this.listener = listener;
}
/**
* @see NetworkOperation#getUrl()
*/
public final String getUrl() {
return url;
}
/**
* Overridden to signal we're not interested in possible cookies
* received when transferring images.
*/
public boolean isCookiesEnabled() {
return false;
}
/**
* Calls the listener, no parsing needed here.
*/
public final void responseReceived(byte[] data) {
finished = true;
listener.imageReceived(url, data);
}
public String toString() {
return "LoadImageOperation(url=" + url + ")";
}
}