Package adams.flow.standalone
Class IMAPConnection
-
- All Implemented Interfaces:
AdditionalInformationHandler,CleanUpHandler,Destroyable,GlobalInfoSupporter,LoggingLevelHandler,LoggingSupporter,OptionHandler,PasswordPrompter,PasswordSupporter,QuickInfoSupporter,ShallowCopySupporter<Actor>,SizeOfHandler,Stoppable,StoppableWithFeedback,VariablesInspectionHandler,VariableChangeListener,Actor,ErrorHandler,InteractiveActor,OptionalPasswordPrompt,StopModeSupporter,Serializable,Comparable
public class IMAPConnection extends AbstractStandalone implements OptionalPasswordPrompt, PasswordPrompter
IMAP server setup.
-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: IMAPConnection
-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
-scheme <IMAP|IMAPS> (property: scheme) The IMAP scheme to use. default: IMAPS
-server <java.lang.String> (property: server) The IMAP server (name/IP address) to use. default:
-port <int> (property: port) The IMAP port to use, uses default if <1. default: -1 minimum: -1 maximum: 65536
-timeout <int> (property: timeout) The timeout in msecs. default: 0 minimum: 0
-requires-auth <boolean> (property: requiresAuthentication) Enable this if IMAP server requires authentication using user/pw. default: false
-user <java.lang.String> (property: user) The IMAP user to use.
-password <adams.core.base.BasePassword> (property: password) The password of the IMAP user.
-prompt-for-password <boolean> (property: promptForPassword) If enabled and authentication is required, 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
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description static classIMAPConnection.IMAPSchemeThe IMAP schemes.
-
Field Summary
Fields Modifier and Type Field Description protected BasePasswordm_ActualPasswordthe actual IMAP password to use.protected Stringm_CustomStopMessagethe custom stop message to use if flow gets stopped due to cancelation.protected jodd.mail.ImapServerm_ImapServerthe server.protected jodd.mail.ReceiveMailSessionm_ImapSessionthe session.protected BasePasswordm_Passwordthe IMAP password to use.protected intm_Portthe IMAP port.protected booleanm_PromptForPasswordwhether to prompt the user for a password if none provided.protected booleanm_RequiresAuthenticationwhether the IMAP server requires authentication.protected IMAPConnection.IMAPSchemem_Schemethe scheme to use.protected Stringm_Serverthe IMAP server.protected booleanm_StopFlowIfCanceledwhether to stop the flow if canceled.protected StopModem_StopModehow to perform the stop.protected intm_Timeoutthe timeout in msecs.protected Stringm_Userthe IMAP user to use.-
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 IMAPConnection()
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description protected voidcloseImap()Closes the image connection.StringcustomStopMessageTipText()Returns the tip text for this property.voiddefineOptions()Adds options to the internal list of options.protected StringdoExecute()Executes the flow item.StringdoInteract()Performs the interaction with the user.StringdoInteractHeadless()Performs the interaction with the user in a headless environment.StringgetCustomStopMessage()Returns the custom message to use when stopping the flow.jodd.mail.ImapServergetImapServer()Returns the imap server instance, instantiates it if necessary.jodd.mail.ReceiveMailSessiongetImapSession()Returns image session, instantiates it if necessary and opens it.BasePasswordgetPassword()Returns the IMAP password to use.intgetPort()Returns the IMAP port in use.booleangetPromptForPassword()Returns whether to prompt for a password if none currently provided.StringgetQuickInfo()Returns a quick info about the actor, which will be displayed in the GUI.booleangetRequiresAuthentication()Returns whether IMAP server requires authentication.IMAPConnection.IMAPSchemegetScheme()Returns the IMAP scheme in use.StringgetServer()Returns the IMAP server in use.booleangetStopFlowIfCanceled()Returns whether to stop the flow if dialog canceled.StopModegetStopMode()Returns the stop mode.intgetTimeout()Returns the timeout in msecs.StringgetUser()Returns the IMAP user name to use.StringglobalInfo()Returns a string describing the object.StringpasswordTipText()Returns the tip text for this property.StringportTipText()Returns the tip text for this property.StringpromptForPasswordTipText()Returns the tip text for this property.StringrequiresAuthenticationTipText()Returns the tip text for this property.protected voidreset()Resets the scheme.StringschemeTipText()Returns the tip text for this property.StringserverTipText()Returns the tip text for this property.voidsetCustomStopMessage(String value)Sets the custom message to use when stopping the flow.voidsetPassword(BasePassword value)Sets the IMAP password to use.voidsetPort(int value)Sets the IMAP port to use.voidsetPromptForPassword(boolean value)Sets whether to prompt for a password if none currently provided.voidsetRequiresAuthentication(boolean value)Sets whether IMAP server requires authentication.voidsetScheme(IMAPConnection.IMAPScheme value)Sets the IMAP scheme to use.voidsetServer(String value)Sets the IMAP server to use.voidsetStopFlowIfCanceled(boolean value)Sets whether to stop the flow if dialog canceled.voidsetStopMode(StopMode value)Sets the stop mode.voidsetTimeout(int value)Sets the timeout in msecs.voidsetUser(String value)Sets the IMAP user to use.StringstopFlowIfCanceledTipText()Returns the tip text for this property.StringstopModeTipText()Returns the tip text for this property.booleansupportsHeadlessInteraction()Returns whether headless interaction is supported.StringtimeoutTipText()Returns the tip text for this property.StringuserTipText()Returns the tip text for this property.voidwrapUp()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, 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 class java.lang.Object
clone, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
-
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_Scheme
protected IMAPConnection.IMAPScheme m_Scheme
the scheme to use.
-
m_Server
protected String m_Server
the IMAP server.
-
m_Port
protected int m_Port
the IMAP port.
-
m_Timeout
protected int m_Timeout
the timeout in msecs.
-
m_RequiresAuthentication
protected boolean m_RequiresAuthentication
whether the IMAP server requires authentication.
-
m_User
protected String m_User
the IMAP user to use.
-
m_Password
protected BasePassword m_Password
the IMAP password to use.
-
m_ActualPassword
protected BasePassword m_ActualPassword
the actual IMAP 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_CustomStopMessage
protected String m_CustomStopMessage
the custom stop message to use if flow gets stopped due to cancelation.
-
m_StopMode
protected StopMode m_StopMode
how to perform the stop.
-
m_ImapServer
protected transient jodd.mail.ImapServer m_ImapServer
the server.
-
m_ImapSession
protected transient jodd.mail.ReceiveMailSession m_ImapSession
the session.
-
-
Method Detail
-
globalInfo
public String globalInfo()
Returns a string describing the object.- Specified by:
globalInfoin interfaceGlobalInfoSupporter- Specified by:
globalInfoin classAbstractOptionHandler- Returns:
- a description suitable for displaying in the gui
-
defineOptions
public void defineOptions()
Adds options to the internal list of options.- Specified by:
defineOptionsin interfaceOptionHandler- Overrides:
defineOptionsin classAbstractActor
-
reset
protected void reset()
Resets the scheme.- Overrides:
resetin classAbstractActor
-
getQuickInfo
public String getQuickInfo()
Returns a quick info about the actor, which will be displayed in the GUI.- Specified by:
getQuickInfoin interfaceActor- Specified by:
getQuickInfoin interfaceQuickInfoSupporter- Overrides:
getQuickInfoin classAbstractActor- Returns:
- null if no info available, otherwise short string
-
setScheme
public void setScheme(IMAPConnection.IMAPScheme value)
Sets the IMAP scheme to use.- Parameters:
value- the scheme
-
getScheme
public IMAPConnection.IMAPScheme getScheme()
Returns the IMAP scheme in use.- Returns:
- the scheme
-
schemeTipText
public String schemeTipText()
Returns the tip text for this property.- Returns:
- tip text for this property suitable for displaying in the GUI or for listing the options.
-
setServer
public void setServer(String value)
Sets the IMAP server to use.- Parameters:
value- the host name/ip
-
getServer
public String getServer()
Returns the IMAP server in use.- Returns:
- the host name/ip
-
serverTipText
public String serverTipText()
Returns the tip text for this property.- Returns:
- tip text for this property suitable for displaying in the GUI or for listing the options.
-
setPort
public void setPort(int value)
Sets the IMAP port to use.- Parameters:
value- the port
-
getPort
public int getPort()
Returns the IMAP port in use.- Returns:
- 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.
-
setTimeout
public void setTimeout(int value)
Sets the timeout in msecs.- Parameters:
value- the timeout
-
getTimeout
public int getTimeout()
Returns the timeout in msecs.- Returns:
- the timeout
-
timeoutTipText
public String timeoutTipText()
Returns the tip text for this property.- Returns:
- tip text for this property suitable for displaying in the GUI or for listing the options.
-
setRequiresAuthentication
public void setRequiresAuthentication(boolean value)
Sets whether IMAP server requires authentication.- Parameters:
value- if true user/pw is used
-
getRequiresAuthentication
public boolean getRequiresAuthentication()
Returns whether IMAP server requires authentication.- Returns:
- true if user/pw is used
-
requiresAuthenticationTipText
public String requiresAuthenticationTipText()
Returns the tip text for this property.- Returns:
- tip text for this property suitable for displaying in the GUI or for listing the options.
-
setUser
public void setUser(String value)
Sets the IMAP user to use.- Parameters:
value- the user name
-
getUser
public String getUser()
Returns the IMAP user name to use.- Returns:
- the user name
-
userTipText
public String userTipText()
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(BasePassword value)
Sets the IMAP password to use.- Specified by:
setPasswordin interfacePasswordSupporter- Parameters:
value- the password
-
getPassword
public BasePassword getPassword()
Returns the IMAP password to use.- Specified by:
getPasswordin interfacePasswordSupporter- 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:
setPromptForPasswordin interfaceOptionalPasswordPrompt- Specified by:
setPromptForPasswordin interfacePasswordPrompter- 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:
getPromptForPasswordin interfaceOptionalPasswordPrompt- Specified by:
getPromptForPasswordin interfacePasswordPrompter- Returns:
- true if to prompt for a password
-
promptForPasswordTipText
public String promptForPasswordTipText()
Returns the tip text for this property.- Specified by:
promptForPasswordTipTextin interfaceOptionalPasswordPrompt- Specified by:
promptForPasswordTipTextin interfacePasswordPrompter- 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:
setStopFlowIfCanceledin interfaceInteractiveActor- 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:
getStopFlowIfCanceledin interfaceInteractiveActor- Returns:
- true if the flow gets stopped if dialog canceled
-
stopFlowIfCanceledTipText
public String stopFlowIfCanceledTipText()
Returns the tip text for this property.- Specified by:
stopFlowIfCanceledTipTextin interfaceInteractiveActor- 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:
setCustomStopMessagein interfaceInteractiveActor- Parameters:
value- the stop message
-
getCustomStopMessage
public String getCustomStopMessage()
Returns the custom message to use when stopping the flow.- Specified by:
getCustomStopMessagein interfaceInteractiveActor- Returns:
- the stop message
-
customStopMessageTipText
public String customStopMessageTipText()
Returns the tip text for this property.- Specified by:
customStopMessageTipTextin interfaceInteractiveActor- Returns:
- tip text for this property suitable for displaying in the GUI or for listing the options.
-
setStopMode
public void setStopMode(StopMode value)
Sets the stop mode.- Specified by:
setStopModein interfaceStopModeSupporter- Parameters:
value- the mode
-
getStopMode
public StopMode getStopMode()
Returns the stop mode.- Specified by:
getStopModein interfaceStopModeSupporter- Returns:
- the mode
-
stopModeTipText
public String stopModeTipText()
Returns the tip text for this property.- Specified by:
stopModeTipTextin interfaceStopModeSupporter- Returns:
- tip text for this property suitable for displaying in the GUI or for listing the options.
-
doInteract
public String doInteract()
Performs the interaction with the user.- Specified by:
doInteractin interfaceInteractiveActor- Returns:
- null if successfully interacted, otherwise error message
-
supportsHeadlessInteraction
public boolean supportsHeadlessInteraction()
Returns whether headless interaction is supported.- Specified by:
supportsHeadlessInteractionin interfaceInteractiveActor- 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:
doInteractHeadlessin interfaceInteractiveActor- Returns:
- null if successfully interacted, otherwise error message
-
getImapServer
public jodd.mail.ImapServer getImapServer()
Returns the imap server instance, instantiates it if necessary.- Returns:
- the server instance
-
getImapSession
public jodd.mail.ReceiveMailSession getImapSession()
Returns image session, instantiates it if necessary and opens it.- Returns:
- the session
-
doExecute
protected String doExecute()
Executes the flow item.- Specified by:
doExecutein classAbstractActor- Returns:
- null if ok, otherwise error message
-
closeImap
protected void closeImap()
Closes the image connection.
-
wrapUp
public void wrapUp()
Cleans up after the execution has finished. Graphical output is left untouched.- Specified by:
wrapUpin interfaceActor- Overrides:
wrapUpin classAbstractActor
-
-