Class BaseAwsJsonProtocolFactory
- java.lang.Object
-
- software.amazon.awssdk.protocols.json.BaseAwsJsonProtocolFactory
-
- Direct Known Subclasses:
AwsJsonProtocolFactory
public abstract class BaseAwsJsonProtocolFactory extends Object
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description static class
BaseAwsJsonProtocolFactory.Builder<SubclassT extends BaseAwsJsonProtocolFactory.Builder>
Builder forAwsJsonProtocolFactory
.
-
Field Summary
Fields Modifier and Type Field Description protected static JsonContentTypeResolver
AWS_JSON
Content type resolver implementation for plain text AWS_JSON services.static OperationMetadataAttribute<Boolean>
GENERATES_BODY
Used by operations that do not serialize the input, e.g., when the input is not defined in the model.static OperationMetadataAttribute<Map<String,String>>
HTTP_EXTRA_HEADERS
Attribute for a protocol to configure extra headers for the operation.
-
Constructor Summary
Constructors Modifier Constructor Description protected
BaseAwsJsonProtocolFactory(BaseAwsJsonProtocolFactory.Builder<?> builder)
-
Method Summary
-
-
-
Field Detail
-
GENERATES_BODY
public static final OperationMetadataAttribute<Boolean> GENERATES_BODY
Used by operations that do not serialize the input, e.g., when the input is not defined in the model. RPCv2 uses it.
-
HTTP_EXTRA_HEADERS
public static final OperationMetadataAttribute<Map<String,String>> HTTP_EXTRA_HEADERS
Attribute for a protocol to configure extra headers for the operation.
-
AWS_JSON
protected static final JsonContentTypeResolver AWS_JSON
Content type resolver implementation for plain text AWS_JSON services.
-
-
Constructor Detail
-
BaseAwsJsonProtocolFactory
protected BaseAwsJsonProtocolFactory(BaseAwsJsonProtocolFactory.Builder<?> builder)
-
-
Method Detail
-
createResponseHandler
public final <T extends SdkPojo> HttpResponseHandler<T> createResponseHandler(JsonOperationMetadata operationMetadata, Supplier<SdkPojo> pojoSupplier)
Creates a new response handler with the givenJsonOperationMetadata
and a supplier of the POJO response type.- Type Parameters:
T
- Type being unmarshalled.- Parameters:
operationMetadata
- Metadata about operation being unmarshalled.pojoSupplier
-Supplier
of the POJO response type.- Returns:
- HttpResponseHandler that will handle the HTTP response and unmarshall into a POJO.
-
createResponseHandler
public final <T extends SdkPojo> HttpResponseHandler<T> createResponseHandler(JsonOperationMetadata operationMetadata, Function<SdkHttpFullResponse,SdkPojo> pojoSupplier)
Creates a new response handler with the givenJsonOperationMetadata
and a supplier of the POJO response type.- Type Parameters:
T
- Type being unmarshalled.- Parameters:
operationMetadata
- Metadata about operation being unmarshalled.pojoSupplier
-Supplier
of the POJO response type. Has access to the HTTP response, primarily for polymorphic deserialization as seen in event stream (i.e. unmarshalled event depends on ':event-type' header).- Returns:
- HttpResponseHandler that will handle the HTTP response and unmarshall into a POJO.
-
createErrorResponseHandler
@Deprecated public final HttpResponseHandler<AwsServiceException> createErrorResponseHandler(JsonOperationMetadata errorResponseMetadata)
Deprecated.Users should favor usingcreateErrorResponseHandler(JsonOperationMetadata, Function)
, which allows the creation of an error unmarshaller that uses a mapping function to map from error code to the associatedExceptionMetadata
.Creates a response handler for handling a error response (non 2xx response).
-
createErrorResponseHandler
public final HttpResponseHandler<AwsServiceException> createErrorResponseHandler(JsonOperationMetadata errorResponseMetadata, Function<String,Optional<ExceptionMetadata>> exceptionMetadataSupplier)
-
getContentType
public final String getContentType()
-
getContentTypeResolver
protected JsonContentTypeResolver getContentTypeResolver()
- Returns:
- Content type resolver implementation to use.
-
getSdkFactory
protected StructuredJsonFactory getSdkFactory()
- Returns:
- Instance of
StructuredJsonFactory
to use in creating handlers.
-
getDefaultTimestampFormats
protected Map<MarshallLocation,TimestampFormatTrait.Format> getDefaultTimestampFormats()
- Returns:
- The default timestamp format for unmarshalling for each location in the response. This can be overridden by subclasses to customize behavior.
-
createProtocolMarshaller
public final ProtocolMarshaller<SdkHttpFullRequest> createProtocolMarshaller(OperationInfo operationInfo)
-
-