Home / Class/ OpenSslCertificateCompressionConfig Class — netty Architecture

OpenSslCertificateCompressionConfig Class — netty Architecture

Architecture documentation for the OpenSslCertificateCompressionConfig class in OpenSslCertificateCompressionConfig.java from the netty codebase.

Entity Profile

Dependency Diagram

graph TD
  a6d18277_56e5_50c4_69e5_d7b81628a565["OpenSslCertificateCompressionConfig"]
  31d61dd0_486f_ac2c_1823_02a735027ec9["OpenSslCertificateCompressionConfig.java"]
  a6d18277_56e5_50c4_69e5_d7b81628a565 -->|defined in| 31d61dd0_486f_ac2c_1823_02a735027ec9
  c011d744_5030_b0af_1306_fdd9669a4cc3["OpenSslCertificateCompressionConfig()"]
  a6d18277_56e5_50c4_69e5_d7b81628a565 -->|method| c011d744_5030_b0af_1306_fdd9669a4cc3
  5f154d81_54fe_ef79_eff6_3b2c453f1de3["iterator()"]
  a6d18277_56e5_50c4_69e5_d7b81628a565 -->|method| 5f154d81_54fe_ef79_eff6_3b2c453f1de3
  22146f7f_d717_c26f_c398_0ae765ff47ce["Builder()"]
  a6d18277_56e5_50c4_69e5_d7b81628a565 -->|method| 22146f7f_d717_c26f_c398_0ae765ff47ce

Relationship Graph

Source Code

handler/src/main/java/io/netty/handler/ssl/OpenSslCertificateCompressionConfig.java lines 29–137

public final class OpenSslCertificateCompressionConfig implements
        Iterable<OpenSslCertificateCompressionConfig.AlgorithmConfig> {
    private final List<AlgorithmConfig> pairList;

    private OpenSslCertificateCompressionConfig(AlgorithmConfig... pairs) {
        pairList = Collections.unmodifiableList(Arrays.asList(pairs));
    }

    @Override
    public Iterator<AlgorithmConfig> iterator() {
        return pairList.iterator();
    }

    /**
     * Creates a new {@link Builder} for a config.
     *
     * @return a bulder
     */
    public static Builder newBuilder() {
        return new Builder();
    }

    /**
     * Builder for an {@link OpenSslCertificateCompressionAlgorithm}.
     */
    public static final class Builder {
        private final List<AlgorithmConfig> algorithmList = new ArrayList<AlgorithmConfig>();

        private Builder() { }

        /**
         * Adds a certificate compression algorithm.
         * For servers, algorithm preference order is dictated by the order of algorithm registration.
         * Most preferred algorithm should be registered first.
         *
         * @param algorithm implementation of the compression and or decompression algorithm as a
         * {@link OpenSslCertificateCompressionAlgorithm}
         * @param mode indicates whether decompression support should be advertized, compression should be applied
         *                  for peers which support it, or both. This allows the caller to support one way compression
         *                  only.
         * @return self.
         */
        public Builder addAlgorithm(OpenSslCertificateCompressionAlgorithm algorithm, AlgorithmMode mode) {
            algorithmList.add(new AlgorithmConfig(algorithm, mode));
            return this;
        }

        /**
         * Build a new {@link OpenSslCertificateCompressionConfig} based on the previous
         * added {@link OpenSslCertificateCompressionAlgorithm}s.
         *
         * @return a new config.
         */
        public OpenSslCertificateCompressionConfig build() {
            return new OpenSslCertificateCompressionConfig(algorithmList.toArray(new AlgorithmConfig[0]));
        }
    }

    /**
     * The configuration for algorithm.
     */
    public static final class AlgorithmConfig {
        private final OpenSslCertificateCompressionAlgorithm algorithm;
        private final AlgorithmMode mode;

        private AlgorithmConfig(OpenSslCertificateCompressionAlgorithm algorithm, AlgorithmMode mode) {
            this.algorithm = ObjectUtil.checkNotNull(algorithm, "algorithm");
            this.mode = ObjectUtil.checkNotNull(mode, "mode");
        }

        /**
         * The {@link AlgorithmMode}
         *
         * @return the usage mode.
         */
        public AlgorithmMode mode() {
            return mode;
        }

        /**
         * The configured {@link OpenSslCertificateCompressionAlgorithm}.

Frequently Asked Questions

What is the OpenSslCertificateCompressionConfig class?
OpenSslCertificateCompressionConfig is a class in the netty codebase, defined in handler/src/main/java/io/netty/handler/ssl/OpenSslCertificateCompressionConfig.java.
Where is OpenSslCertificateCompressionConfig defined?
OpenSslCertificateCompressionConfig is defined in handler/src/main/java/io/netty/handler/ssl/OpenSslCertificateCompressionConfig.java at line 29.

Analyze Your Own Codebase

Get architecture documentation, dependency graphs, and domain analysis for your codebase in minutes.

Try Supermodel Free