Type-safe result listeners. Whee!
git-svn-id: https://samskivert.googlecode.com/svn/trunk@1832 6335cc39-0255-0410-8fd6-9bcaacd3b74c
This commit is contained in:
@@ -16,7 +16,7 @@ package com.samskivert.util;
|
|||||||
* more clearly than the previous paragraph of flowery prose:
|
* more clearly than the previous paragraph of flowery prose:
|
||||||
*
|
*
|
||||||
* <pre>
|
* <pre>
|
||||||
* public void doSomeStuff (ResultListener listener)
|
* public void doSomeStuff (ResultListener<String> listener)
|
||||||
* {
|
* {
|
||||||
* Runnable run = new Runnable () {
|
* Runnable run = new Runnable () {
|
||||||
* public void run () {
|
* public void run () {
|
||||||
@@ -34,26 +34,17 @@ package com.samskivert.util;
|
|||||||
*
|
*
|
||||||
* @see IntResultListener
|
* @see IntResultListener
|
||||||
*/
|
*/
|
||||||
public interface ResultListener
|
public interface ResultListener<T>
|
||||||
{
|
{
|
||||||
/**
|
/**
|
||||||
* Called to communicate that the request succeeded and that the
|
* Called to communicate that the request succeeded and that the
|
||||||
* result is available.
|
* result is available.
|
||||||
*/
|
*/
|
||||||
public void requestCompleted (Object result);
|
public void requestCompleted (T result);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Called to communicate that the request failed and to provide the
|
* Called to communicate that the request failed and to provide the
|
||||||
* reason for failure.
|
* reason for failure.
|
||||||
*/
|
*/
|
||||||
public void requestFailed (Exception cause);
|
public void requestFailed (Exception cause);
|
||||||
|
|
||||||
/** Useful when you want to allow optional result listeners but don't
|
|
||||||
* want to have to check before calling. */
|
|
||||||
public static final ResultListener NOOP = new ResultListener() {
|
|
||||||
public void requestCompleted (Object result) {
|
|
||||||
}
|
|
||||||
public void requestFailed (Exception cause) {
|
|
||||||
}
|
|
||||||
};
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -6,8 +6,8 @@ package com.samskivert.util;
|
|||||||
/**
|
/**
|
||||||
* Multiplexes ResultListener responses to multiple ResultListeners.
|
* Multiplexes ResultListener responses to multiple ResultListeners.
|
||||||
*/
|
*/
|
||||||
public class ResultListenerList extends ObserverList<ResultListener>
|
public class ResultListenerList<T> extends ObserverList<ResultListener<T>>
|
||||||
implements ResultListener
|
implements ResultListener<T>
|
||||||
{
|
{
|
||||||
/**
|
/**
|
||||||
* Create a ResultListenerList with the FAST_UNSAFE_NOTIFY policy.
|
* Create a ResultListenerList with the FAST_UNSAFE_NOTIFY policy.
|
||||||
@@ -29,10 +29,10 @@ public class ResultListenerList extends ObserverList<ResultListener>
|
|||||||
* Multiplex a requestCompleted response to all the ResultListeners in
|
* Multiplex a requestCompleted response to all the ResultListeners in
|
||||||
* this list.
|
* this list.
|
||||||
*/
|
*/
|
||||||
public void requestCompleted (final Object result)
|
public void requestCompleted (final T result)
|
||||||
{
|
{
|
||||||
apply(new ObserverOp<ResultListener>() {
|
apply(new ObserverOp<ResultListener<T>>() {
|
||||||
public boolean apply (ResultListener observer) {
|
public boolean apply (ResultListener<T> observer) {
|
||||||
observer.requestCompleted(result);
|
observer.requestCompleted(result);
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
@@ -45,8 +45,8 @@ public class ResultListenerList extends ObserverList<ResultListener>
|
|||||||
*/
|
*/
|
||||||
public void requestFailed (final Exception cause)
|
public void requestFailed (final Exception cause)
|
||||||
{
|
{
|
||||||
apply(new ObserverOp<ResultListener>() {
|
apply(new ObserverOp<ResultListener<T>>() {
|
||||||
public boolean apply (ResultListener observer) {
|
public boolean apply (ResultListener<T> observer) {
|
||||||
observer.requestFailed(cause);
|
observer.requestFailed(cause);
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user