io.deephaven.ssl.config.Protocols Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of deephaven-ssl-config Show documentation
Show all versions of deephaven-ssl-config Show documentation
The Deephaven SSL Configuration
/**
* Copyright (c) 2016-2022 Deephaven Data Labs and Patent Pending
*/
package io.deephaven.ssl.config;
import com.fasterxml.jackson.annotation.JsonSubTypes;
import com.fasterxml.jackson.annotation.JsonTypeInfo;
/**
* The TLS protocols.
*
* @see ProtocolsJdk
* @see ProtocolsModern
* @see ProtocolsProperties
* @see ProtocolsExplicit
*/
@JsonTypeInfo(
use = JsonTypeInfo.Id.NAME,
include = JsonTypeInfo.As.PROPERTY,
property = "type")
@JsonSubTypes({
@JsonSubTypes.Type(value = ProtocolsJdk.class, name = "jdk"),
@JsonSubTypes.Type(value = ProtocolsModern.class, name = "modern"),
@JsonSubTypes.Type(value = ProtocolsIntermediate.class, name = "intermediate"),
@JsonSubTypes.Type(value = ProtocolsProperties.class, name = "properties"),
@JsonSubTypes.Type(value = ProtocolsExplicit.class, name = "explicit"),
})
public interface Protocols {
T walk(Visitor visitor);
interface Visitor {
T visit(ProtocolsJdk jdk);
T visit(ProtocolsModern modern);
T visit(ProtocolsIntermediate intermediate);
T visit(ProtocolsProperties properties);
T visit(ProtocolsExplicit explicit);
}
}