package com.twidgie.twitter.oauth;
import oauth.signpost.OAuthProvider;
import oauth.signpost.basic.DefaultOAuthProvider;
import oauth.signpost.exception.OAuthCommunicationException;
import oauth.signpost.exception.OAuthExpectationFailedException;
import oauth.signpost.exception.OAuthMessageSignerException;
import oauth.signpost.exception.OAuthNotAuthorizedException;
public class ProviderFacade implements Provider {
private OAuthProvider provider;
public ProviderFacade(Consumer consumer, String requestTokenUrl, String requestAccessUrl, String authorizeUrl) {
this.provider = new DefaultOAuthProvider(consumer.getConsumer(), requestTokenUrl, requestAccessUrl,
authorizeUrl);
}
public void retrieveAccessToken(String pin) {
redeemAccessToken(pin);
}
public String retrieveRequestToken() {
return redeemRequestToken();
}
private void redeemAccessToken(String pin) {
try {
provider.retrieveAccessToken(pin);
} catch (OAuthMessageSignerException e) {
throw new OAuthException(e);
} catch (OAuthNotAuthorizedException e) {
throw new OAuthException(e);
} catch (OAuthExpectationFailedException e) {
throw new OAuthException(e);
} catch (OAuthCommunicationException e) {
throw new OAuthException(e);
}
}
private String redeemRequestToken() {
try {
return provider.retrieveRequestToken(oauth.signpost.OAuth.OUT_OF_BAND);
} catch (OAuthMessageSignerException e) {
throw new OAuthException(e);
} catch (OAuthNotAuthorizedException e) {
throw new OAuthException(e);
} catch (OAuthExpectationFailedException e) {
throw new OAuthException(e);
} catch (OAuthCommunicationException e) {
throw new OAuthException(e);
}
}
}
|