Interface SftpVersionSelector

All Known Implementing Classes:
SftpVersionSelector.NamedVersionSelector
Functional Interface:
This is a functional interface and can therefore be used as the assignment target for a lambda expression or method reference.

@FunctionalInterface public interface SftpVersionSelector
Author:
Apache MINA SSHD Project
  • Field Details

  • Method Details

    • selectVersion

      int selectVersion(org.apache.sshd.client.session.ClientSession session, boolean initial, int current, List<Integer> available)
      Parameters:
      session - The ClientSession through which the SFTP connection is made
      initial - If true then this is the initial version sent via SSH_FXP_INIT otherwise it is a re-negotiation.
      current - The current version negotiated with the server
      available - Extra versions available - may be empty and/or contain only the current one
      Returns:
      The new requested version - if same as current, then nothing is done
    • fixedVersionSelector

      static SftpVersionSelector.NamedVersionSelector fixedVersionSelector(int version)
      Creates a selector the always returns the requested (fixed version) regardless of what the current or reported available versions are. If the requested version is not reported as available then an exception will be eventually thrown by the client during re-negotiation phase.
      Parameters:
      version - The requested version
      Returns:
      The SftpVersionSelector.NamedVersionSelector wrapping the requested version
    • preferredVersionSelector

      static SftpVersionSelector.NamedVersionSelector preferredVersionSelector(int... preferred)
      Selects a version in order of preference - if none of the preferred versions is listed as available then an exception is thrown when the selectVersion(ClientSession, boolean, int, List) method is invoked
      Parameters:
      preferred - The preferred versions in decreasing order of preference (i.e., most preferred is 1st) - may not be null/empty
      Returns:
      A SftpVersionSelector.NamedVersionSelector that attempts to select the most preferred version that is also listed as available.
    • preferredVersionSelector

      static SftpVersionSelector.NamedVersionSelector preferredVersionSelector(Iterable<? extends Number> preferred)
      Selects a version in order of preference - if none of the preferred versions is listed as available then an exception is thrown when the selectVersion(ClientSession, boolean, int, List) method is invoked
      Parameters:
      preferred - The preferred versions in decreasing order of preference (i.e., most preferred is 1st)
      Returns:
      A SftpVersionSelector.NamedVersionSelector that attempts to select the most preferred version that is also listed as available.
    • resolveVersionSelector

      static SftpVersionSelector.NamedVersionSelector resolveVersionSelector(String selector)
      Parses the input string to see if it matches one of the "known" selectors names (case insensitive). If not, then checks if it is a single number and uses it as a fixed version. Otherwise, assumes a comma separated list of versions in preferred order.
      Parameters:
      selector - The selector value - if null/empty then returns CURRENT
      Returns:
      Parsed SftpVersionSelector.NamedVersionSelector