com.supermap.services.providers
Class RestProviderBase
- java.lang.Object
-
- com.supermap.services.providers.RestProviderBase
-
- All Implemented Interfaces:
- Disposable
- Direct Known Subclasses:
- RestAddressMatchProvider, RestDataProvider, RestMapProvider, RestRealspaceProvider, RestSpatialAnalystProvider, RestTrafficTransferAnalystProvider, RestTransportationAnalystProvider
public abstract class RestProviderBase extends java.lang.Object implements Disposable
A provider base class based on the iServer Rest service
-
-
Nested Class Summary
Nested Classes Modifier and Type Class and Description static classRestProviderBase.CacheModelThe cache mode.protected static classRestProviderBase.RestRequestException
-
Field Summary
Fields Modifier and Type Field and Description protected static java.lang.StringJAVA_POSTFIXprotected static JavaStreamConverterjavaConverterprotected static java.lang.StringJSON_POSTFIXprotected JsonConverterjsonConverterprotected static JsonDecoderjsonDecoderstatic java.util.concurrent.locks.ReentrantLocklockprotected static LocLoggerloggerprotected static ResourceManagermessage
-
Constructor Summary
Constructors Constructor and Description RestProviderBase()The Constructor.
-
Method Summary
Methods Modifier and Type Method and Description voidclearCache()Clear the cache.voiddispose()Release the resource object.protected <T> TexecuteRequest(Request request, java.lang.Class<T> clz)Execute the request and return the object.protected <T> TexecuteRequest(Request request, java.lang.Class<T> clz, boolean useCache)Execute the request and return the object.protected <T> TexecuteRequest(Request request, java.lang.Class<T> clz, RestProviderBase.CacheModel cacheModel)Execute the request and return the object.protected byte[]executeRequestForByteArray(Request request)Execute the request and return the byte array.protected byte[]executeRequestForByteArray(Request request, boolean useCache)Execute the request and return the byte array.protected byte[]executeRequestForByteArray(Request request, RestProviderBase.CacheModel cacheModel)Execute the request and return the byte array.protected byte[]executeRequestForByteArray(Request request, RestProviderBase.CacheModel cacheModel, Client restMapClient)protected <T> java.util.List<T>executeRequestForList(Request request, java.lang.Class<T> clz)Execute the request to return the array.protected <T> java.util.List<T>executeRequestForList(Request request, java.lang.Class<T> clz, boolean useCache)Execute the request to return the array.protected <T> java.util.List<T>executeRequestForList(Request request, java.lang.Class<T> clz, RestProviderBase.CacheModel cacheModel)Execute the request to return the array.protected <T> java.util.List<T>executeRequestForList(Request request, java.lang.Class<T> clz, RestProviderBase.CacheModel cacheModel, Client restMapClient)protected java.io.InputStreamexecuteRequestForStream(Request request)Execute the request and return the Stream.protected java.io.InputStreamexecuteRequestForStream(Request request, boolean useCache)Execute the request and return the Stream.protected java.io.InputStreamexecuteRequestForStream(Request request, RestProviderBase.CacheModel cacheModel)Execute the request and return the Stream.protected java.lang.StringexecuteRequestForText(Request request)Execute the request and return the string.protected java.lang.StringexecuteRequestForText(Request request, boolean useCache)Execute the request and return the string.protected java.lang.StringexecuteRequestForText(Request request, RestProviderBase.CacheModel cacheModel)Execute the request and return the string.protected abstract RestProviderSettinggetRestProviderSetting()Return the rest service provider configuration information.voidhandleExeption(RestProviderBase.RestRequestException ex)protected voidinit(RestProviderSetting setting)Initialize the object according to RestProvider Setting.protected ClientnewAndSetClient(Client nclient, java.lang.String socketTimeout)protected java.lang.StringrectifyRestServiceRootURL(java.lang.String restUrl)Correct the REST URL, remove the "/" at the end of the URL.
-
-
-
Field Detail
-
lock
public static final java.util.concurrent.locks.ReentrantLock lock
-
message
protected static final ResourceManager message
-
logger
protected static final LocLogger logger
-
javaConverter
protected static final JavaStreamConverter javaConverter
-
jsonDecoder
protected static final JsonDecoder jsonDecoder
-
JSON_POSTFIX
protected static final java.lang.String JSON_POSTFIX
-
JAVA_POSTFIX
protected static final java.lang.String JAVA_POSTFIX
-
jsonConverter
protected final JsonConverter jsonConverter
-
-
Method Detail
-
dispose
public void dispose()
Description copied from interface:DisposableRelease the resource object.
- Specified by:
disposein interfaceDisposable
-
clearCache
public void clearCache()
Clear the cache.
-
init
protected void init(RestProviderSetting setting)
Initialize the object according to RestProvider Setting.- Parameters:
setting-
-
executeRequestForText
protected java.lang.String executeRequestForText(Request request) throws RestProviderBase.RestRequestExceptionExecute the request and return the string.- Parameters:
request- request.- Returns:
- Throws:
RestProviderBase.RestRequestException
-
executeRequestForText
protected java.lang.String executeRequestForText(Request request, boolean useCache) throws RestProviderBase.RestRequestExceptionExecute the request and return the string.- Parameters:
request- request.useCache- Whether to use caching.- Returns:
- Throws:
RestProviderBase.RestRequestException
-
executeRequestForText
protected java.lang.String executeRequestForText(Request request, RestProviderBase.CacheModel cacheModel) throws RestProviderBase.RestRequestExceptionExecute the request and return the string.- Parameters:
request- request.cacheModel- Cache mode.- Returns:
- Throws:
RestProviderBase.RestRequestException
-
executeRequest
protected <T> T executeRequest(Request request, java.lang.Class<T> clz) throws RestProviderBase.RestRequestExceptionExecute the request and return the object.- Parameters:
request- request.clz- Object type.- Returns:
- Throws:
JSONExceptionRestProviderBase.RestRequestException
-
executeRequest
protected <T> T executeRequest(Request request, java.lang.Class<T> clz, boolean useCache) throws RestProviderBase.RestRequestExceptionExecute the request and return the object.- Parameters:
request- request.clz- Object type.useCache- cache.- Returns:
- Throws:
JSONExceptionRestProviderBase.RestRequestException
-
executeRequest
protected <T> T executeRequest(Request request, java.lang.Class<T> clz, RestProviderBase.CacheModel cacheModel) throws RestProviderBase.RestRequestExceptionExecute the request and return the object.- Parameters:
request- request.clz- Object type.cacheModel- Cache mode.- Returns:
- Throws:
RestProviderBase.RestRequestExceptionJSONException
-
executeRequestForByteArray
protected byte[] executeRequestForByteArray(Request request) throws RestProviderBase.RestRequestExceptionExecute the request and return the byte array.- Parameters:
request- request.- Returns:
- Throws:
RestProviderBase.RestRequestException
-
executeRequestForByteArray
protected byte[] executeRequestForByteArray(Request request, boolean useCache) throws RestProviderBase.RestRequestExceptionExecute the request and return the byte array.- Parameters:
request- request.useCache- Whether to use caching.- Returns:
- Throws:
RestProviderBase.RestRequestException
-
executeRequestForByteArray
protected byte[] executeRequestForByteArray(Request request, RestProviderBase.CacheModel cacheModel) throws RestProviderBase.RestRequestExceptionExecute the request and return the byte array.- Parameters:
request- request.cacheModel- Cache mode.- Returns:
- Throws:
RestProviderBase.RestRequestException
-
executeRequestForByteArray
protected byte[] executeRequestForByteArray(Request request, RestProviderBase.CacheModel cacheModel, Client restMapClient) throws RestProviderBase.RestRequestException- Parameters:
request-cacheModel-restMapClient- The client used by RestMapProvider- Returns:
- Throws:
RestProviderBase.RestRequestException
-
executeRequestForList
protected <T> java.util.List<T> executeRequestForList(Request request, java.lang.Class<T> clz) throws RestProviderBase.RestRequestExceptionExecute the request to return the array.
- Parameters:
request- request.clz- Object type.- Returns:
- Throws:
JSONExceptionRestProviderBase.RestRequestException
-
executeRequestForList
protected <T> java.util.List<T> executeRequestForList(Request request, java.lang.Class<T> clz, boolean useCache) throws RestProviderBase.RestRequestExceptionExecute the request to return the array.
- Parameters:
request- request.clz- Object type.useCache- Whether to use caching.- Returns:
- Throws:
JSONExceptionRestProviderBase.RestRequestException
-
executeRequestForList
protected <T> java.util.List<T> executeRequestForList(Request request, java.lang.Class<T> clz, RestProviderBase.CacheModel cacheModel) throws RestProviderBase.RestRequestExceptionExecute the request to return the array.
- Parameters:
request- request.clz- Object type.cacheModel- Cache mode.- Returns:
- Throws:
RestProviderBase.RestRequestException
-
executeRequestForList
protected <T> java.util.List<T> executeRequestForList(Request request, java.lang.Class<T> clz, RestProviderBase.CacheModel cacheModel, Client restMapClient) throws RestProviderBase.RestRequestException- Parameters:
request-clz-cacheModel-restMapClient- The client used by RestMapProvider- Returns:
- Throws:
RestProviderBase.RestRequestException
-
executeRequestForStream
protected java.io.InputStream executeRequestForStream(Request request) throws RestProviderBase.RestRequestExceptionExecute the request and return the Stream.- Parameters:
request- request.- Returns:
- Throws:
RestProviderBase.RestRequestException
-
executeRequestForStream
protected java.io.InputStream executeRequestForStream(Request request, boolean useCache) throws RestProviderBase.RestRequestExceptionExecute the request and return the Stream.- Parameters:
request- request.useCache- Whether to use caching.- Returns:
- Throws:
RestProviderBase.RestRequestException
-
executeRequestForStream
protected java.io.InputStream executeRequestForStream(Request request, RestProviderBase.CacheModel cacheModel) throws RestProviderBase.RestRequestExceptionExecute the request and return the Stream.- Parameters:
request- request.cacheModel- Cache mode.- Returns:
- Throws:
RestProviderBase.RestRequestException
-
rectifyRestServiceRootURL
protected java.lang.String rectifyRestServiceRootURL(java.lang.String restUrl)
Correct the REST URL, remove the "/" at the end of the URL.
- Parameters:
restUrl-- Returns:
-
getRestProviderSetting
protected abstract RestProviderSetting getRestProviderSetting()
Return the rest service provider configuration information.- Returns:
-
newAndSetClient
protected Client newAndSetClient(Client nclient, java.lang.String socketTimeout)
-
handleExeption
public void handleExeption(RestProviderBase.RestRequestException ex)
-
-