/* * Copyright (c) 2005 Aetrion LLC. */ package com.flickr4java.flickr; import com.flickr4java.flickr.auth.Auth; import java.util.ArrayList; import java.util.List; /** * 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 String sharedSecret; private List<String> extras; /** * Get the RequestContext instance for the current Thread. * * @return The RequestContext */ public static RequestContext getRequestContext() { return threadLocal.get(); } public Auth getAuth() { return auth; } public void setAuth(Auth auth) { this.auth = auth; } /** * Get a shared secret which is used for any calls which require signing. * * @deprecated Get the secret from {@link Flickr#getSharedSecret()}. * @return The shared secret */ @Deprecated public String getSharedSecret() { return sharedSecret; } /** * Set the shared secret which is used for any calls which require signing. * * @deprecated Set the secret in {@link Flickr#setSharedSecret(String)}. * @param sharedSecret * The shared secret */ @Deprecated public void setSharedSecret(String sharedSecret) { this.sharedSecret = sharedSecret; } /** * 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> { @Override protected RequestContext initialValue() { return new RequestContext(); } } }