All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.amazonaws.codegen.protocol.ProtocolMetadataProvider Maven / Gradle / Ivy

/*
 * Copyright 2011-2024 Amazon.com, Inc. or its affiliates. All Rights Reserved.
 *
 * Licensed under the Apache License, Version 2.0 (the "License").
 * You may not use this file except in compliance with the License.
 * A copy of the License is located at
 *
 *  http://aws.amazon.com/apache2.0
 *
 * or in the "license" file accompanying this file. This file is distributed
 * on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either
 * express or implied. See the License for the specific language governing
 * permissions and limitations under the License.
 */
package com.amazonaws.codegen.protocol;

/**
 * Provides various pieces of information that are specific to certain protocols.
 */
public interface ProtocolMetadataProvider {

    /**
     * @return True if protocol uses some form of JSON wire format. False otherwise.
     */
    boolean isJsonProtocol();

    /**
     * @return True if protocol uses XML as the wire format. False otherwise.
     */
    boolean isXmlProtocol();

    /**
     * @return True if protocol uses CBOR as the wire format. False otherwise.
     */
    boolean isCborProtocol();

    /**
     * @return True if protocol uses Ion as the wire format. False otherwise.
     */
    boolean isIonProtocol();

    /**
     * @return The content type to use when sending requests. Currently only respected by JSON
     * protocols.
     */
    String getContentType();

    /**
     * @return The name of the Unmarshaller Context class used by the generated unmarshaller
     * classes.
     */
    String getUnmarshallerContextClassName();

    /**
     * @return The suffix for generated unmarshaller classes. I.e. FooStaxUnmarshaller or
     * FooJsonUnmarshaller.
     */
    String getUnmarshallerClassSuffix();

    /**
     * @return The default implementation of exception unmarshallers to use or derive from.
     * Currently only used by XML protocols.
     */
    String getExceptionUnmarshallerImpl();

    /**
     * @return The protocol factory implementation to use for JSON services.
     */
    String getProtocolFactoryImplFqcn();

    /**
     * @return The fully qualified class name of the exception class that all service exceptions
     * will be inherited from. Not to be confused with the service specific base exception which
     * would extend from this base exception.
     */
    String getBaseExceptionFqcn();

    /**
     * @return The fully qualified class name of the base request class.
     */
    String getRequestBaseFqcn();

}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy