Interface PropertyResolver

All Known Subinterfaces:
Channel, ClientChannel, ClientFactoryManager, ClientSession, ConnectionService, FactoryManager, SecurityProviderRegistrar, ServerChannel, ServerFactoryManager, ServerSession, Service, Session, SessionContext, SessionHeartbeatController
All Known Implementing Classes:
AbstractChannel, AbstractClientChannel, AbstractClientSession, AbstractConnectionService, AbstractFactoryManager, AbstractSecurityProviderRegistrar, AbstractServerChannel, AbstractServerSession, AbstractSession, AgentForwardedChannel, BouncyCastleSecurityProviderRegistrar, ChannelAgentForwarding, ChannelDirectTcpip, ChannelExec, ChannelForwardedX11, ChannelSession, ChannelSession, ChannelShell, ChannelSubsystem, ClientConnectionService, ClientSessionImpl, ClientUserAuthService, DefaultSftpClient.SftpChannelSubsystem, EdDSASecurityProviderRegistrar, PtyCapableChannelSession, ServerConnectionService, ServerSessionImpl, ServerUserAuthService, SessionHelper, SshClient, SshServer, TcpipClientChannel, TcpipServerChannel

public interface PropertyResolver
Indicates an entity that can be configured using properties. The properties are simple name-value pairs where the actual value type depends on the property. Some automatic conversions may be available - e.g., from a string to a numeric or boolean value, or from int to long, etc.. Note: implementations may decide to use case insensitive property names, therefore it is highly discouraged to use names that differ from each other only in case sensitivity. Also, implementations may choose to trim whitespaces, thus such are also highly discouraged.
  • Field Details

    • EMPTY

      static final PropertyResolver EMPTY
      An "empty" resolver with no properties and no parent
  • Method Details

    • getParentPropertyResolver

      PropertyResolver getParentPropertyResolver()
      Returns:
      The parent resolver that can be used to query for missing properties - null if no parent
    • getProperties

      Map<String,Object> getProperties()

      A map of properties that can be used to configure the SSH server or client. This map will never be changed by either the server or client and is not supposed to be changed at runtime (changes are not bound to have any effect on a running client or server), though it may affect the creation of sessions later as these values are usually not cached.

      Note: the type of the mapped property should match the expected configuration value type - Long, Integer, Boolean, String, etc.... If it doesn't, the toString() result of the mapped value is used to convert it to the required type. E.g., if the mapped value is the string "1234" and the expected value is a long then it will be parsed into one. Also, if the mapped value is an Integer but a long is expected, then it will be converted into one.

      Returns:
      a valid Map containing configuration values, never null. Note: may be immutable.
    • isEmpty

      default boolean isEmpty()
    • getLongProperty

      default long getLongProperty(String name, long def)
    • getLong

      default Long getLong(String name)
    • getIntProperty

      default int getIntProperty(String name, int def)
    • getInteger

      default Integer getInteger(String name)
    • getBooleanProperty

      default boolean getBooleanProperty(String name, boolean def)
    • getBoolean

      default Boolean getBoolean(String name)
    • getStringProperty

      default String getStringProperty(String name, String def)
    • getString

      default String getString(String name)
    • getObject

      default Object getObject(String name)
    • getCharset

      default Charset getCharset(String name, Charset defaultValue)
    • isEmpty

      static boolean isEmpty(PropertyResolver resolver)