Package de.umass.lastfm
Class Caller
- java.lang.Object
-
- de.umass.lastfm.Caller
-
public class Caller extends java.lang.Object
TheCaller
class handles the low-level communication between the client and last.fm.
Direct usage of this class should be unnecessary since all method calls are available via the methods in theArtist
,Album
,User
, etc. classes. If specialized calls which are not covered by the Java API are necessary this class may be used directly.
Supports the setting of a customProxy
and a customUser-Agent
HTTP header.- Author:
- Janni Kovacs
-
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description Result
call(java.lang.String method, Session session, java.lang.String... params)
Result
call(java.lang.String method, Session session, java.util.Map<java.lang.String,java.lang.String> params)
Result
call(java.lang.String method, java.lang.String apiKey, java.lang.String... params)
Result
call(java.lang.String method, java.lang.String apiKey, java.util.Map<java.lang.String,java.lang.String> params)
Cache
getCache()
Returns the currentCache
.static Caller
getInstance()
Returns the single instance of theCaller
class.Result
getLastResult()
Returns theResult
of the last operation, ornull
if no call operation has been performed yet.java.net.Proxy
getProxy()
java.lang.String
getUserAgent()
boolean
isDebugMode()
java.net.HttpURLConnection
openConnection(java.lang.String url)
Creates a newHttpURLConnection
, sets the proxy, if available, and sets the User-Agent property.void
setApiRootUrl(java.lang.String apiRootUrl)
Set api root url.void
setCache(Cache cache)
Sets the activeCache
.void
setDebugMode(boolean debugMode)
Sets thedebugMode
property.void
setProxy(java.net.Proxy proxy)
Sets aProxy
instance this Caller will use for all upcoming HTTP requests.void
setUserAgent(java.lang.String userAgent)
Sets a User Agent this Caller will use for all upcoming HTTP requests.
-
-
-
Method Detail
-
getInstance
public static Caller getInstance()
Returns the single instance of theCaller
class.- Returns:
- a
Caller
-
setApiRootUrl
public void setApiRootUrl(java.lang.String apiRootUrl)
Set api root url.- Parameters:
apiRootUrl
- new api root url
-
setProxy
public void setProxy(java.net.Proxy proxy)
Sets aProxy
instance this Caller will use for all upcoming HTTP requests. May benull
.- Parameters:
proxy
- AProxy
ornull
.
-
setUserAgent
public void setUserAgent(java.lang.String userAgent)
Sets a User Agent this Caller will use for all upcoming HTTP requests. For testing purposes use "tst". If you distribute your application use an identifiable User-Agent.- Parameters:
userAgent
- a User-Agent string
-
setDebugMode
public void setDebugMode(boolean debugMode)
Sets thedebugMode
property. IfdebugMode
istrue
all call() methods will print debug information and error messages on failure to stdout and stderr respectively.
Default isfalse
. Set this totrue
while in development and for troubleshooting.- Parameters:
debugMode
-true
to enable debug mode
-
setCache
public void setCache(Cache cache)
Sets the activeCache
. May benull
to disable caching.- Parameters:
cache
- the new Cache ornull
-
call
public Result call(java.lang.String method, java.lang.String apiKey, java.lang.String... params) throws CallException
- Throws:
CallException
-
call
public Result call(java.lang.String method, java.lang.String apiKey, java.util.Map<java.lang.String,java.lang.String> params) throws CallException
- Throws:
CallException
-
call
public Result call(java.lang.String method, Session session, java.util.Map<java.lang.String,java.lang.String> params)
-
getLastResult
public Result getLastResult()
Returns theResult
of the last operation, ornull
if no call operation has been performed yet.- Returns:
- the last Result object
-
openConnection
public java.net.HttpURLConnection openConnection(java.lang.String url) throws java.io.IOException
Creates a newHttpURLConnection
, sets the proxy, if available, and sets the User-Agent property.- Parameters:
url
- URL to connect to- Returns:
- a new connection.
- Throws:
java.io.IOException
- if an I/O exception occurs.
-
getProxy
public java.net.Proxy getProxy()
-
getUserAgent
public java.lang.String getUserAgent()
-
isDebugMode
public boolean isDebugMode()
-
-