package glaze.examples.twitter.client;
import oauth.signpost.OAuthConsumer;
import glaze.Glaze;
import glaze.client.async.DefaultAsyncClient;
import glaze.oauth.OAuthClosure;
import glaze.oauth.creds.ConfigCredentialsProvider;
import glaze.oauth.creds.ConsumerCredentialsProvider;
import glaze.oauth.spi.OAuthConfig;
import glaze.oauth.spi.OAuthCredentialsProvider;
public class DefaultTwitterClient extends DefaultAsyncClient implements TwitterClient
{
private OAuthCredentialsProvider provider;
public DefaultTwitterClient()
{
this(new TwitterConfig());
}
public DefaultTwitterClient(OAuthConfig config)
{
this(new ConfigCredentialsProvider(config));
}
public DefaultTwitterClient(final OAuthConsumer consumer)
{
this(new ConsumerCredentialsProvider(consumer));
}
public DefaultTwitterClient(OAuthCredentialsProvider provider)
{
this.provider = provider;
}
@Override
public boolean isPreemptive()
{
return false;
}
@Override
public void setTokens(OAuthConsumer consumer)
{
this.provider = new ConsumerCredentialsProvider(consumer);
}
@Override
public Glaze signed(Glaze m, Object context)
{
return OAuthClosure.Signed(m, provider, context);
}
protected OAuthCredentialsProvider getProvider()
{
return provider;
}
protected void setProvider(OAuthCredentialsProvider provider)
{
this.provider = provider;
}
@Override
public String getKey()
{
return provider.getKey();
}
@Override
public String getSecret()
{
return provider.getSecret();
}
}