/*
* Copyright (c) 2005 Aetrion LLC.
*/
package com.googlecode.flickr2twitter.com.aetrion.flickr;
import java.util.ArrayList;
import java.util.List;
import com.googlecode.flickr2twitter.com.aetrion.flickr.auth.Auth;
/**
* A thread local variable used to hold contextual information used in requests. To get an instance of this class use
* RequestContext.getRequestContext(). The method will return a RequestContext object which is only usable within the
* current thread.
*
* @author Anthony Eden
*/
public class RequestContext {
private static RequestContextThreadLocal threadLocal =
new RequestContextThreadLocal();
private Auth auth;
private List<String> extras;
/**
* Get the RequestContext instance for the current Thread.
*
* @return The RequestContext
*/
public static RequestContext getRequestContext() {
return (RequestContext) threadLocal.get();
}
public Auth getAuth() {
return auth;
}
public void setAuth(Auth auth) {
this.auth = auth;
}
/**
* Get the List of extra return values requested.
*
* @return List of extra return values requested
*/
public List<String> getExtras() {
if (extras == null) extras = new ArrayList<String>();
return extras;
}
public void setExtras(List<String> extras) {
this.extras = extras;
}
private static class RequestContextThreadLocal extends ThreadLocal<RequestContext> {
protected RequestContext initialValue() {
return new RequestContext();
}
}
}