com.baidubce
Class AbstractBceClient

java.lang.Object
  extended by com.baidubce.AbstractBceClient
Direct Known Subclasses:
AbstractIotHiskBceClient, AbstractTsdbBceClient, AclClient, AdaptorClient, BacnetClient, BaseDuMapClient, BatchClient, BccClient, BinaryParserClient, BlbClient, BmrClient, BosClient, CdnClient, CertClient, CvcaClient, DocClient, DuGoClient, EipClient, EipGroupClient, IotAlarmClient, IotDmClient, IotDmV2Client, IotDmV3Client, IotHubClient, IotSmsReceiverClient, IotTimerClient, IotVizClient, KmsClient, LssClient, MediaClient, ModbusClient, MolaDbClient, NatClient, OcrClient, PeerConnClient, RouteClient, RuleEngineClient, SesClientSupport, SmsClientSupport, StsClient, SubnetClient, TagClient, VcaClient, VcrClient, VodClient, VodproClient, VpcClient

@ThreadSafe
public abstract class AbstractBceClient
extends Object

Abstract base class for BCE service clients.

Responsible for basic client capabilities that are the same across all BCE SDK Java clients (ex: setting the client endpoint).

Subclass names should be in the form of "com.baidubce.services.xxx.XxxClient", while "xxx" is the service ID and "Xxx" is the capitalized service ID.


Field Summary
protected  BceClientConfiguration config
          The client configuration for this client.
static String DEFAULT_CONTENT_TYPE
          The default http request content type for all BCE service APIs.
static String DEFAULT_ENCODING
          The default string encoding for all BCE service APIs.
static String DEFAULT_SERVICE_DOMAIN
          The default service domain for BCE.
static String URL_PREFIX
          The common URL prefix for all BCE service APIs.
 
Constructor Summary
AbstractBceClient(BceClientConfiguration config, HttpResponseHandler[] responseHandlers)
          Equivalent to AbstractBceClient(config, responseHandlers, false)
AbstractBceClient(BceClientConfiguration config, HttpResponseHandler[] responseHandlers, boolean isHttpAsyncPutEnabled)
          Constructs a new AbstractBceClient with the specified client configuration and handlers.
 
Method Summary
 BceHttpClient getClient()
           
 URI getEndpoint()
          Returns the service endpoint to which this client will send requests.
 String getServiceId()
          Returns the target service ID.
protected
<T extends AbstractBceResponse>
T
invokeHttpClient(InternalRequest request, Class<T> responseClass)
          Subclasses should invoke this method for sending request to the target service.
 boolean isRegionSupported()
          Returns true if the target service supports regions.
 void setClient(BceHttpClient client)
           
 void shutdown()
          Shuts down the client and releases all underlying resources.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

DEFAULT_SERVICE_DOMAIN

public static final String DEFAULT_SERVICE_DOMAIN
The default service domain for BCE.

See Also:
Constant Field Values

URL_PREFIX

public static final String URL_PREFIX
The common URL prefix for all BCE service APIs.

See Also:
Constant Field Values

DEFAULT_ENCODING

public static final String DEFAULT_ENCODING
The default string encoding for all BCE service APIs.

See Also:
Constant Field Values

DEFAULT_CONTENT_TYPE

public static final String DEFAULT_CONTENT_TYPE
The default http request content type for all BCE service APIs.

See Also:
Constant Field Values

config

protected BceClientConfiguration config
The client configuration for this client.

Constructor Detail

AbstractBceClient

public AbstractBceClient(BceClientConfiguration config,
                         HttpResponseHandler[] responseHandlers,
                         boolean isHttpAsyncPutEnabled)
Constructs a new AbstractBceClient with the specified client configuration and handlers.

The constructor will extract serviceId from the class name automatically. And if there is no endpoint specified in the client configuration, the constructor will create a default one.

Parameters:
config - the client configuration. The constructor makes a copy of this parameter so that it is safe to change the configuration after then.
responseHandlers - a list of handlers for processing HTTP responses from services. See BceHttpClient.execute(InternalRequest, Class, HttpResponseHandler[])
isHttpAsyncPutEnabled - whether or not PUT method use Async manner.
Throws:
IllegalStateException - if the class name does not follow the naming convention for BCE clients.
IllegalArgumentException - if the endpoint specified in the client configuration is not a valid URI.

AbstractBceClient

public AbstractBceClient(BceClientConfiguration config,
                         HttpResponseHandler[] responseHandlers)
Equivalent to AbstractBceClient(config, responseHandlers, false)

Parameters:
config - the client configuration. The constructor makes a copy of this parameter so that it is safe to change the configuration after then.
responseHandlers - a list of handlers for processing HTTP responses from services. See BceHttpClient.execute(InternalRequest, Class, HttpResponseHandler[])
Throws:
IllegalStateException - if the class name does not follow the naming convention for BCE clients.
IllegalArgumentException - if the endpoint specified in the client configuration is not a valid URI.
Method Detail

isRegionSupported

public boolean isRegionSupported()
Returns true if the target service supports regions.

The result will impact the construction of default service endpoint.

Returns:
true if the target service supports regions.

getEndpoint

public URI getEndpoint()
Returns the service endpoint to which this client will send requests.

Returns:
the service endpoint to which this client will send requests.

getServiceId

public String getServiceId()
Returns the target service ID.

Returns:
the target service ID.

getClient

public BceHttpClient getClient()

setClient

public void setClient(BceHttpClient client)

shutdown

public void shutdown()
Shuts down the client and releases all underlying resources.

Invoking this method is NOT a must. Once it is called, no subsequent requests should be made.


invokeHttpClient

protected <T extends AbstractBceResponse> T invokeHttpClient(InternalRequest request,
                                                             Class<T> responseClass)
Subclasses should invoke this method for sending request to the target service.

This method will add "Content-Type" and "Date" to headers with default values if not present.

Type Parameters:
T - the type of response
Parameters:
request - the request to build up the HTTP request.
responseClass - the response class.
Returns:
the final response object.


Copyright © 2018. All rights reserved.