Class RedisConnection

  • All Implemented Interfaces:
    adams.core.AdditionalInformationHandler, adams.core.CleanUpHandler, adams.core.Destroyable, adams.core.GlobalInfoSupporter, adams.core.logging.LoggingLevelHandler, adams.core.logging.LoggingSupporter, adams.core.option.OptionHandler, adams.core.PasswordPrompter, adams.core.PasswordSupporter, adams.core.QuickInfoSupporter, adams.core.ShallowCopySupporter<adams.flow.core.Actor>, adams.core.SizeOfHandler, adams.core.Stoppable, adams.core.StoppableWithFeedback, adams.core.VariablesInspectionHandler, adams.event.VariableChangeListener, adams.flow.core.Actor, adams.flow.core.ErrorHandler, adams.flow.core.InteractiveActor, adams.flow.core.OptionalPasswordPrompt, adams.flow.core.StopModeSupporter, Serializable, Comparable

    public class RedisConnection
    extends adams.flow.standalone.AbstractStandalone
    implements adams.flow.core.OptionalPasswordPrompt, adams.core.PasswordPrompter
    Defines a connection to a Redis server.

    -logging-level <OFF|SEVERE|WARNING|INFO|CONFIG|FINE|FINER|FINEST> (property: loggingLevel)
        The logging level for outputting errors and debugging output.
        default: WARNING
        min-user-mode: Expert
     
    -name <java.lang.String> (property: name)
        The name of the actor.
        default: RedisConnection
     
    -annotation <adams.core.base.BaseAnnotation> (property: annotations)
        The annotations to attach to this actor.
        default:
     
    -skip <boolean> (property: skip)
        If set to true, transformation is skipped and the input token is just forwarded
        as it is.
        default: false
     
    -stop-flow-on-error <boolean> (property: stopFlowOnError)
        If set to true, the flow execution at this level gets stopped in case this
        actor encounters an error; the error gets propagated; useful for critical
        actors.
        default: false
        min-user-mode: Expert
     
    -silent <boolean> (property: silent)
        If enabled, then no errors are output in the console; Note: the enclosing
        actor handler must have this enabled as well.
        default: false
        min-user-mode: Expert
     
    -host <java.lang.String> (property: host)
        The host (name/IP address) to connect to.
        default: localhost
     
    -port <int> (property: port)
        The port to connect to.
        default: 6379
        minimum: 1
        maximum: 65535
     
    -database <int> (property: database)
        The database to use (usually 0).
        default: 0
        minimum: 0
        maximum: 65535
     
    -use-ssl <boolean> (property: useSSL)
        If enabled, SSL is used for the connection.
        default: false
     
    -start-tls <boolean> (property: startTLS)
        If enabled, StartTLS is used with SSL connections.
        default: false
     
    -ssl-verify-mode <NONE|CA|FULL> (property: SSLVerifyMode)
        How to verify SSL peers.
        default: NONE
     
    -password <adams.core.base.BasePassword> (property: password)
        The password to use for connecting.
     
    -prompt-for-password <boolean> (property: promptForPassword)
        If enabled, the user gets prompted for enter a password if none has been
        provided in the setup.
        default: false
     
    -stop-if-canceled <boolean> (property: stopFlowIfCanceled)
        If enabled, the flow gets stopped in case the user cancels the dialog.
        default: false
     
    -custom-stop-message <java.lang.String> (property: customStopMessage)
        The custom stop message to use in case a user cancelation stops the flow
        (default is the full name of the actor)
        default:
     
    -stop-mode <GLOBAL|STOP_RESTRICTOR> (property: stopMode)
        The stop mode to use.
        default: GLOBAL
     
    Author:
    fracpete (fracpete at waikato dot ac dot nz)
    See Also:
    Serialized Form
    • Field Summary

      Fields 
      Modifier and Type Field Description
      static int DEFAULT_PORT  
      protected adams.core.base.BasePassword m_ActualPassword
      the actual password to use.
      protected io.lettuce.core.RedisClient m_Client
      the client object.
      protected Map<Class,​io.lettuce.core.api.StatefulRedisConnection> m_Connections
      the connection object.
      protected String m_CustomStopMessage
      the custom stop message to use if flow gets stopped due to cancelation.
      protected int m_Database
      the database.
      protected String m_Host
      the host.
      protected adams.core.base.BasePassword m_Password
      the password to use.
      protected int m_Port
      the port.
      protected boolean m_PromptForPassword
      whether to prompt the user for a password if none provided.
      protected io.lettuce.core.SslVerifyMode m_SSLVerifyMode
      how to verify peers.
      protected boolean m_StartTLS
      whether to start TLS.
      protected boolean m_StopFlowIfCanceled
      whether to stop the flow if canceled.
      protected adams.flow.core.StopMode m_StopMode
      how to perform the stop.
      protected boolean m_UseSSL
      whether to use SSL.
      • Fields inherited from class adams.flow.core.AbstractActor

        m_Annotations, m_BackupState, m_DetectedObjectVariables, m_DetectedVariables, m_ErrorHandler, m_Executed, m_Executing, m_ExecutionListeningSupporter, m_FullName, m_LoggingPrefix, m_Name, m_Parent, m_ScopeHandler, m_Self, m_Silent, m_Skip, m_StopFlowOnError, m_StopMessage, m_Stopped, m_StorageHandler, m_VariablesUpdated
      • Fields inherited from class adams.core.option.AbstractOptionHandler

        m_OptionManager
      • Fields inherited from class adams.core.logging.LoggingObject

        m_Logger, m_LoggingIsEnabled, m_LoggingLevel
      • Fields inherited from interface adams.flow.core.Actor

        FILE_EXTENSION, FILE_EXTENSION_GZ
      • Fields inherited from interface adams.flow.core.InteractiveActor

        INTERACTION_CANCELED
    • Constructor Summary

      Constructors 
      Constructor Description
      RedisConnection()  
    • Method Summary

      All Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      protected String connect()
      Performs the connection.
      String customStopMessageTipText()
      Returns the tip text for this property.
      String databaseTipText()
      Returns the tip text for this property.
      void defineOptions()
      Adds options to the internal list of options.
      protected String doExecute()
      Executes the actor.
      String doInteract()
      Performs the interaction with the user.
      String doInteractHeadless()
      Performs the interaction with the user in a headless environment.
      io.lettuce.core.RedisClient getClient()
      Returns the client in use.
      io.lettuce.core.api.StatefulRedisConnection getConnection​(Class codec)
      Returns the connection in use.
      String getCustomStopMessage()
      Returns the custom message to use when stopping the flow.
      int getDatabase()
      Returns the database to use.
      String getHost()
      Returns the host to connect to.
      adams.core.base.BasePassword getPassword()
      Returns the password to use.
      int getPort()
      Returns the port to connect to.
      boolean getPromptForPassword()
      Returns whether to prompt for a password if none currently provided.
      String getQuickInfo()
      Returns a quick info about the actor, which will be displayed in the GUI.
      io.lettuce.core.SslVerifyMode getSSLVerifyMode()
      Returns how to verify SSL peers.
      boolean getStartTLS()
      Returns whether to use StartTLS with SSL connections.
      boolean getStopFlowIfCanceled()
      Returns whether to stop the flow if dialog canceled.
      adams.flow.core.StopMode getStopMode()
      Returns the stop mode.
      boolean getUseSSL()
      Returns whether to use SSL for the connection.
      String globalInfo()
      Returns a string describing the object.
      String hostTipText()
      Returns the tip text for this property.
      io.lettuce.core.api.StatefulRedisConnection<String,​String> newConnection​(adams.core.MessageCollection errors)
      Creates a new connection.
      String passwordTipText()
      Returns the tip text for this property.
      String portTipText()
      Returns the tip text for this property.
      String promptForPasswordTipText()
      Returns the tip text for this property.
      void setCustomStopMessage​(String value)
      Sets the custom message to use when stopping the flow.
      void setDatabase​(int value)
      Sets the database to use.
      void setHost​(String value)
      Sets the host to connect to.
      void setPassword​(adams.core.base.BasePassword value)
      Sets the password to use.
      void setPort​(int value)
      Sets the port to connect to.
      void setPromptForPassword​(boolean value)
      Sets whether to prompt for a password if none currently provided.
      void setSSLVerifyMode​(io.lettuce.core.SslVerifyMode value)
      Sets how to verify SSL peers.
      void setStartTLS​(boolean value)
      Sets whether to use StartTLS with SSL connections.
      void setStopFlowIfCanceled​(boolean value)
      Sets whether to stop the flow if dialog canceled.
      void setStopMode​(adams.flow.core.StopMode value)
      Sets the stop mode.
      void setUseSSL​(boolean value)
      Sets whether to use SSL for the connection.
      String SSLVerifyModeTipText()
      Returns the tip text for this property.
      String startTLSTipText()
      Returns the tip text for this property.
      String stopFlowIfCanceledTipText()
      Returns the tip text for this property.
      String stopModeTipText()
      Returns the tip text for this property.
      boolean supportsHeadlessInteraction()
      Returns whether headless interaction is supported.
      String useSSLTipText()
      Returns the tip text for this property.
      void wrapUp()
      Cleans up after the execution has finished.
      • Methods inherited from class adams.flow.standalone.AbstractStandalone

        preExecute
      • Methods inherited from class adams.flow.core.AbstractActor

        annotationsTipText, backupState, canInspectOptions, canPerformSetUpCheck, cleanUp, compareTo, configureLogger, destroy, equals, execute, finalUpdateVariables, findVariables, findVariables, forceVariables, forCommandLine, forName, forName, getAdditionalInformation, getAnnotations, getDefaultName, getDetectedVariables, getErrorHandler, getFlowActors, getFlowExecutionListeningSupporter, getFullName, getName, getNextSibling, getParent, getParentComponent, getPreviousSibling, getRoot, getScopeHandler, getSilent, getSkip, getStopFlowOnError, getStopMessage, getStorageHandler, getVariables, handleError, handleException, hasErrorHandler, hasStopMessage, index, initialize, isBackedUp, isExecuted, isExecuting, isFinished, isHeadless, isStopped, nameTipText, performSetUpChecks, performVariableChecks, postExecute, pruneBackup, pruneBackup, reset, restoreState, setAnnotations, setErrorHandler, setName, setParent, setSilent, setSkip, setStopFlowOnError, setUp, setVariables, shallowCopy, shallowCopy, silentTipText, sizeOf, skipTipText, stopExecution, stopExecution, stopFlowOnErrorTipText, updateDetectedVariables, updatePrefix, updateVariables, variableChanged
      • Methods inherited from class adams.core.option.AbstractOptionHandler

        cleanUpOptions, finishInit, getDefaultLoggingLevel, getOptionManager, loggingLevelTipText, newOptionManager, setLoggingLevel, toCommandLine, toString
      • Methods inherited from class adams.core.logging.LoggingObject

        getLogger, getLoggingLevel, initializeLogging, isLoggingEnabled
      • Methods inherited from interface adams.flow.core.Actor

        cleanUp, compareTo, destroy, equals, execute, findVariables, getAnnotations, getDefaultName, getDetectedVariables, getErrorHandler, getFlowExecutionListeningSupporter, getFullName, getName, getNextSibling, getParent, getParentComponent, getPreviousSibling, getRoot, getScopeHandler, getSilent, getSkip, getStopFlowOnError, getStopMessage, getStorageHandler, getVariables, handleError, hasErrorHandler, hasStopMessage, index, isExecuted, isFinished, isHeadless, isStopped, setAnnotations, setErrorHandler, setName, setParent, setSilent, setSkip, setStopFlowOnError, setUp, setVariables, shallowCopy, shallowCopy, sizeOf, stopExecution, stopExecution, toCommandLine, variableChanged
      • Methods inherited from interface adams.core.AdditionalInformationHandler

        getAdditionalInformation
      • Methods inherited from interface adams.core.logging.LoggingLevelHandler

        getLoggingLevel, setLoggingLevel
      • Methods inherited from interface adams.core.logging.LoggingSupporter

        getLogger, isLoggingEnabled
      • Methods inherited from interface adams.core.option.OptionHandler

        cleanUpOptions, getOptionManager
      • Methods inherited from interface adams.core.VariablesInspectionHandler

        canInspectOptions
    • Field Detail

      • m_Host

        protected String m_Host
        the host.
      • m_Port

        protected int m_Port
        the port.
      • m_Database

        protected int m_Database
        the database.
      • m_UseSSL

        protected boolean m_UseSSL
        whether to use SSL.
      • m_StartTLS

        protected boolean m_StartTLS
        whether to start TLS.
      • m_SSLVerifyMode

        protected io.lettuce.core.SslVerifyMode m_SSLVerifyMode
        how to verify peers.
      • m_Password

        protected adams.core.base.BasePassword m_Password
        the password to use.
      • m_ActualPassword

        protected adams.core.base.BasePassword m_ActualPassword
        the actual password to use.
      • m_PromptForPassword

        protected boolean m_PromptForPassword
        whether to prompt the user for a password if none provided.
      • m_StopFlowIfCanceled

        protected boolean m_StopFlowIfCanceled
        whether to stop the flow if canceled.
      • m_StopMode

        protected adams.flow.core.StopMode m_StopMode
        how to perform the stop.
      • m_CustomStopMessage

        protected String m_CustomStopMessage
        the custom stop message to use if flow gets stopped due to cancelation.
      • m_Client

        protected transient io.lettuce.core.RedisClient m_Client
        the client object.
      • m_Connections

        protected transient Map<Class,​io.lettuce.core.api.StatefulRedisConnection> m_Connections
        the connection object.
    • Constructor Detail

      • RedisConnection

        public RedisConnection()
    • Method Detail

      • globalInfo

        public String globalInfo()
        Returns a string describing the object.
        Specified by:
        globalInfo in interface adams.core.GlobalInfoSupporter
        Specified by:
        globalInfo in class adams.core.option.AbstractOptionHandler
        Returns:
        a description suitable for displaying in the gui
      • defineOptions

        public void defineOptions()
        Adds options to the internal list of options.
        Specified by:
        defineOptions in interface adams.core.option.OptionHandler
        Overrides:
        defineOptions in class adams.flow.core.AbstractActor
      • getQuickInfo

        public String getQuickInfo()
        Returns a quick info about the actor, which will be displayed in the GUI.
        Specified by:
        getQuickInfo in interface adams.flow.core.Actor
        Specified by:
        getQuickInfo in interface adams.core.QuickInfoSupporter
        Overrides:
        getQuickInfo in class adams.flow.core.AbstractActor
        Returns:
        null if no info available, otherwise short string
      • getHost

        public String getHost()
        Returns the host to connect to.
        Returns:
        the host name/ip
      • setHost

        public void setHost​(String value)
        Sets the host to connect to.
        Parameters:
        value - the host name/ip
      • hostTipText

        public String hostTipText()
        Returns the tip text for this property.
        Returns:
        tip text for this property suitable for displaying in the GUI or for listing the options.
      • getPort

        public int getPort()
        Returns the port to connect to.
        Returns:
        the port
      • setPort

        public void setPort​(int value)
        Sets the port to connect to.
        Parameters:
        value - the port
      • portTipText

        public String portTipText()
        Returns the tip text for this property.
        Returns:
        tip text for this property suitable for displaying in the GUI or for listing the options.
      • getDatabase

        public int getDatabase()
        Returns the database to use.
        Returns:
        the database ID
      • setDatabase

        public void setDatabase​(int value)
        Sets the database to use.
        Parameters:
        value - the database ID
      • databaseTipText

        public String databaseTipText()
        Returns the tip text for this property.
        Returns:
        tip text for this property suitable for displaying in the GUI or for listing the options.
      • getUseSSL

        public boolean getUseSSL()
        Returns whether to use SSL for the connection.
        Returns:
        true if to use
      • setUseSSL

        public void setUseSSL​(boolean value)
        Sets whether to use SSL for the connection.
        Parameters:
        value - true if to use
      • useSSLTipText

        public String useSSLTipText()
        Returns the tip text for this property.
        Returns:
        tip text for this property suitable for displaying in the GUI or for listing the options.
      • getStartTLS

        public boolean getStartTLS()
        Returns whether to use StartTLS with SSL connections.
        Returns:
        true if to use
      • setStartTLS

        public void setStartTLS​(boolean value)
        Sets whether to use StartTLS with SSL connections.
        Parameters:
        value - true if to use
      • startTLSTipText

        public String startTLSTipText()
        Returns the tip text for this property.
        Returns:
        tip text for this property suitable for displaying in the GUI or for listing the options.
      • getSSLVerifyMode

        public io.lettuce.core.SslVerifyMode getSSLVerifyMode()
        Returns how to verify SSL peers.
        Returns:
        how to verify
      • setSSLVerifyMode

        public void setSSLVerifyMode​(io.lettuce.core.SslVerifyMode value)
        Sets how to verify SSL peers.
        Parameters:
        value - how to verify
      • SSLVerifyModeTipText

        public String SSLVerifyModeTipText()
        Returns the tip text for this property.
        Returns:
        tip text for this property suitable for displaying in the GUI or for listing the options.
      • setPassword

        public void setPassword​(adams.core.base.BasePassword value)
        Sets the password to use.
        Specified by:
        setPassword in interface adams.core.PasswordSupporter
        Parameters:
        value - the password
      • getPassword

        public adams.core.base.BasePassword getPassword()
        Returns the password to use.
        Specified by:
        getPassword in interface adams.core.PasswordSupporter
        Returns:
        the password
      • passwordTipText

        public String passwordTipText()
        Returns the tip text for this property.
        Returns:
        tip text for this property suitable for displaying in the GUI or for listing the options.
      • setPromptForPassword

        public void setPromptForPassword​(boolean value)
        Sets whether to prompt for a password if none currently provided.
        Specified by:
        setPromptForPassword in interface adams.flow.core.OptionalPasswordPrompt
        Specified by:
        setPromptForPassword in interface adams.core.PasswordPrompter
        Parameters:
        value - true if to prompt for a password
      • getPromptForPassword

        public boolean getPromptForPassword()
        Returns whether to prompt for a password if none currently provided.
        Specified by:
        getPromptForPassword in interface adams.flow.core.OptionalPasswordPrompt
        Specified by:
        getPromptForPassword in interface adams.core.PasswordPrompter
        Returns:
        true if to prompt for a password
      • promptForPasswordTipText

        public String promptForPasswordTipText()
        Returns the tip text for this property.
        Specified by:
        promptForPasswordTipText in interface adams.flow.core.OptionalPasswordPrompt
        Specified by:
        promptForPasswordTipText in interface adams.core.PasswordPrompter
        Returns:
        tip text for this property suitable for displaying in the GUI or for listing the options.
      • setStopFlowIfCanceled

        public void setStopFlowIfCanceled​(boolean value)
        Sets whether to stop the flow if dialog canceled.
        Specified by:
        setStopFlowIfCanceled in interface adams.flow.core.InteractiveActor
        Parameters:
        value - if true flow gets stopped if dialog canceled
      • getStopFlowIfCanceled

        public boolean getStopFlowIfCanceled()
        Returns whether to stop the flow if dialog canceled.
        Specified by:
        getStopFlowIfCanceled in interface adams.flow.core.InteractiveActor
        Returns:
        true if the flow gets stopped if dialog canceled
      • stopFlowIfCanceledTipText

        public String stopFlowIfCanceledTipText()
        Returns the tip text for this property.
        Specified by:
        stopFlowIfCanceledTipText in interface adams.flow.core.InteractiveActor
        Returns:
        tip text for this property suitable for displaying in the GUI or for listing the options.
      • setCustomStopMessage

        public void setCustomStopMessage​(String value)
        Sets the custom message to use when stopping the flow.
        Specified by:
        setCustomStopMessage in interface adams.flow.core.InteractiveActor
        Parameters:
        value - the stop message
      • getCustomStopMessage

        public String getCustomStopMessage()
        Returns the custom message to use when stopping the flow.
        Specified by:
        getCustomStopMessage in interface adams.flow.core.InteractiveActor
        Returns:
        the stop message
      • customStopMessageTipText

        public String customStopMessageTipText()
        Returns the tip text for this property.
        Specified by:
        customStopMessageTipText in interface adams.flow.core.InteractiveActor
        Returns:
        tip text for this property suitable for displaying in the GUI or for listing the options.
      • setStopMode

        public void setStopMode​(adams.flow.core.StopMode value)
        Sets the stop mode.
        Specified by:
        setStopMode in interface adams.flow.core.StopModeSupporter
        Parameters:
        value - the mode
      • getStopMode

        public adams.flow.core.StopMode getStopMode()
        Returns the stop mode.
        Specified by:
        getStopMode in interface adams.flow.core.StopModeSupporter
        Returns:
        the mode
      • stopModeTipText

        public String stopModeTipText()
        Returns the tip text for this property.
        Specified by:
        stopModeTipText in interface adams.flow.core.StopModeSupporter
        Returns:
        tip text for this property suitable for displaying in the GUI or for listing the options.
      • newConnection

        public io.lettuce.core.api.StatefulRedisConnection<String,​String> newConnection​(adams.core.MessageCollection errors)
        Creates a new connection.
        Parameters:
        errors - for collecting errors
        Returns:
        the connection, null if failed to create
      • getClient

        public io.lettuce.core.RedisClient getClient()
        Returns the client in use.
        Returns:
        the client object
      • getConnection

        public io.lettuce.core.api.StatefulRedisConnection getConnection​(Class codec)
        Returns the connection in use.
        Parameters:
        codec - the codec to use
        Returns:
        the connection object
      • doInteract

        public String doInteract()
        Performs the interaction with the user.
        Specified by:
        doInteract in interface adams.flow.core.InteractiveActor
        Returns:
        null if successfully interacted, otherwise error message
      • supportsHeadlessInteraction

        public boolean supportsHeadlessInteraction()
        Returns whether headless interaction is supported.
        Specified by:
        supportsHeadlessInteraction in interface adams.flow.core.InteractiveActor
        Returns:
        true if interaction in headless environment is possible
      • doInteractHeadless

        public String doInteractHeadless()
        Performs the interaction with the user in a headless environment.
        Specified by:
        doInteractHeadless in interface adams.flow.core.InteractiveActor
        Returns:
        null if successfully interacted, otherwise error message
      • connect

        protected String connect()
        Performs the connection.
        Returns:
        null if everything is fine, otherwise error message
      • doExecute

        protected String doExecute()
        Executes the actor.
        Specified by:
        doExecute in class adams.flow.core.AbstractActor
        Returns:
        null if everything is fine, otherwise error message
      • wrapUp

        public void wrapUp()
        Cleans up after the execution has finished. Graphical output is left untouched.
        Specified by:
        wrapUp in interface adams.flow.core.Actor
        Overrides:
        wrapUp in class adams.flow.core.AbstractActor