//------------------------------------------------------------------------------
// Copyright (c) 2012 Microsoft Corporation. All rights reserved.
//
// Description: See the class level JavaDoc comments.
//------------------------------------------------------------------------------
package com.microsoft.live;
import java.util.ArrayList;
import java.util.List;
/**
* Default implementation of an ObserverableOAuthRequest.
* Other classes that need to be observed can compose themselves out of this class.
*/
class DefaultObservableOAuthRequest implements ObservableOAuthRequest {
private final List<OAuthRequestObserver> observers;
public DefaultObservableOAuthRequest() {
this.observers = new ArrayList<OAuthRequestObserver>();
}
@Override
public void addObserver(OAuthRequestObserver observer) {
this.observers.add(observer);
}
/**
* Calls all the Observerable's observer's onException.
*
* @param exception to give to the observers
*/
public void notifyObservers(LiveAuthException exception) {
for (final OAuthRequestObserver observer : this.observers) {
observer.onException(exception);
}
}
/**
* Calls all this Observable's observer's onResponse.
*
* @param response to give to the observers
*/
public void notifyObservers(OAuthResponse response) {
for (final OAuthRequestObserver observer : this.observers) {
observer.onResponse(response);
}
}
@Override
public boolean removeObserver(OAuthRequestObserver observer) {
return this.observers.remove(observer);
}
}