public class CacheAbleRequest<T> extends RequestBase<T> implements ICacheAbleRequest<T>
| Modifier and Type | Class and Description |
|---|---|
static class |
CacheAbleRequest.ResultType |
| Modifier and Type | Field and Description |
|---|---|
protected static boolean |
DEBUG |
protected static java.lang.String |
LOG_TAG |
protected boolean |
mForceQueryFromServer |
| Constructor and Description |
|---|
CacheAbleRequest() |
CacheAbleRequest(CacheAbleRequestHandler<T> handler) |
| Modifier and Type | Method and Description |
|---|---|
boolean |
cacheIsDisabled()
check if cache is disabled
|
protected boolean |
cacheRequestResult() |
protected void |
doQueryFromServer() |
protected T |
doRequestSync()
Timeout will not be considerate
|
void |
doSendRequest()
implement this method to process request data
|
void |
forceQueryFromServer(boolean force) |
java.lang.String |
getAssertInitDataPath() |
java.lang.String |
getCacheKey() |
long |
getCacheTime()
In seconds
|
void |
onCacheData(CacheResultType cacheResultType,
T data,
boolean outOfDate)
when data loaded from cache
|
T |
onDataFromServer(java.lang.String data) |
void |
onNoCacheData(CacheManager cacheManager)
When there is no cache data is available, this method will be called.
|
void |
onRequestFail(FailData failData) |
void |
onRequestSuccess(T data) |
protected void |
prepareRequest()
prepare request
|
T |
processOriginDataFromServer(JsonData rawData)
filter the origin data or convert its structure.
|
T |
processRawDataFromCache(JsonData rawData)
We need to process the data from data source, do some filter of convert the structure.
|
CacheAbleRequest<T> |
setAssertInitDataPath(java.lang.String path) |
void |
setCacheAbleRequestHandler(CacheAbleRequestHandler<T> handler) |
CacheAbleRequest<T> |
setCacheKey(java.lang.String cacheKey) |
CacheAbleRequest<T> |
setCacheTime(long time)
set cache time, in seconds
|
CacheAbleRequest<T> |
setDisableCache(boolean disable)
temporarily disable cache.
|
void |
setTimeout(int timeOut)
set a timeout, when request time over this value, cache data will be used.
|
CacheAbleRequest<T> |
setUseCacheAnyway(boolean use)
Using cache data if existent, ignore whether it is expired or not.
|
boolean |
useCacheAnyway()
check if use cache anyway
|
cancelRequest, getFailData, getRequestData, hasBeenCanceled, onCancel, requestSync, send, setFailDataclone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitcancelRequest, getFailData, getRequestData, requestSync, send, setFailDataprotected static final boolean DEBUG
protected static final java.lang.String LOG_TAG
protected boolean mForceQueryFromServer
public CacheAbleRequest()
public CacheAbleRequest(CacheAbleRequestHandler<T> handler)
public void setCacheAbleRequestHandler(CacheAbleRequestHandler<T> handler)
public void forceQueryFromServer(boolean force)
public void doSendRequest()
RequestBasedoSendRequest in class RequestBase<T>protected T doRequestSync()
doRequestSync in class RequestBase<T>protected void prepareRequest()
prepareRequest in class RequestBase<T>public void setTimeout(int timeOut)
ICacheAbleRequestsetTimeout in interface ICacheAbleRequest<T>public CacheAbleRequest<T> setUseCacheAnyway(boolean use)
ICacheAblesetUseCacheAnyway in interface ICacheAble<T>public boolean useCacheAnyway()
ICacheAbleuseCacheAnyway in interface ICacheAble<T>public void onRequestSuccess(T data)
onRequestSuccess in interface IRequest<T>public void onRequestFail(FailData failData)
onRequestFail in interface IRequest<T>public void onNoCacheData(CacheManager cacheManager)
ICacheAbleonNoCacheData in interface ICacheAble<T>protected void doQueryFromServer()
protected boolean cacheRequestResult()
public boolean cacheIsDisabled()
ICacheAblecacheIsDisabled in interface ICacheAble<T>public void onCacheData(CacheResultType cacheResultType, T data, boolean outOfDate)
ICacheAbleonCacheData in interface ICacheAble<T>public long getCacheTime()
ICacheAblegetCacheTime in interface ICacheAble<T>public java.lang.String getCacheKey()
getCacheKey in interface ICacheAble<T>public java.lang.String getAssertInitDataPath()
getAssertInitDataPath in interface ICacheAble<T>public T onDataFromServer(java.lang.String data)
onDataFromServer in interface IRequest<T>onDataFromServer in class RequestBase<T>public T processOriginDataFromServer(JsonData rawData)
IRequestprocessOriginDataFromServer in interface IRequest<T>public T processRawDataFromCache(JsonData rawData)
ICacheAbleprocessRawDataFromCache in interface ICacheAble<T>public CacheAbleRequest<T> setCacheKey(java.lang.String cacheKey)
setCacheKey in interface ICacheAble<T>public CacheAbleRequest<T> setDisableCache(boolean disable)
ICacheAblesetDisableCache in interface ICacheAble<T>public CacheAbleRequest<T> setAssertInitDataPath(java.lang.String path)
setAssertInitDataPath in interface ICacheAble<T>path - file path under /res, For example: "/cache_init/test.json";public CacheAbleRequest<T> setCacheTime(long time)
ICacheAblesetCacheTime in interface ICacheAble<T>