Package adams.flow.standalone
Class FTPConnection
-
- 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
,EventListener
,org.apache.commons.net.ProtocolCommandListener
public class FTPConnection extends AbstractStandalone implements org.apache.commons.net.ProtocolCommandListener, OptionalPasswordPrompt, PasswordPrompter
Provides access to a FTP host.
If debugging is enabled, the FTP commands issued by other actors will get printed as debug output of this actor.
Valid options are:
-D <int> (property: debugLevel) The greater the number the more additional info the scheme may output to the console (0 = off). default: 0 minimum: 0
-name <java.lang.String> (property: name) The name of the actor. default: FTPConnection
-annotation <adams.core.base.BaseText> (property: annotations) The annotations to attach to this actor. default:
-skip (property: skip) If set to true, transformation is skipped and the input token is just forwarded as it is.
-stop-flow-on-error (property: stopFlowOnError) If set to true, the flow gets stopped in case this actor encounters an error; useful for critical actors.
-host <java.lang.String> (property: host) The host (name/IP address) to connect to. default:
-user <java.lang.String> (property: user) The FTP user to use for connecting.
-password <adams.core.base.BasePassword> (property: password) The password of the FTP user to use for connecting.
-passive (property: usePassiveMode) If enabled, passive mode is used instead.
-binary (property: useBinaryMode) If enabled, binary mode is used instead of ASCII.
-prompt-for-password (property: promptForPassword) If enabled, the user gets prompted for enter a password if none has been provided in the setup.
-stop-if-canceled (property: stopFlowIfCanceled) If enabled, the flow gets stopped in case the user cancels the dialog.
-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:
- Author:
- fracpete (fracpete at waikato dot ac dot nz)
- See Also:
- Serialized Form
-
-
Field Summary
Fields Modifier and Type Field Description protected BasePassword
m_ActualPassword
the actual SMTP password to use.protected org.apache.commons.net.ftp.FTPClient
m_Client
the FTP client object.protected String
m_CustomStopMessage
the custom stop message to use if flow gets stopped due to cancelation.protected String
m_Host
the FTP host.protected BasePassword
m_Password
the FTP password to use.protected boolean
m_PromptForPassword
whether to prompt the user for a password if none provided.protected boolean
m_StopFlowIfCanceled
whether to stop the flow if canceled.protected StopMode
m_StopMode
how to perform the stop.protected boolean
m_UseBinaryMode
whether to use binary file transfer mode.protected boolean
m_UsePassiveMode
whether to use passive mode.protected String
m_User
the FTP 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 FTPConnection()
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description protected String
connect()
Starts up a FTP session.String
customStopMessageTipText()
Returns the tip text for this property.void
defineOptions()
Adds options to the internal list of options.void
disconnect()
Disconnects the FTP session, if necessary.protected String
doExecute()
Executes the flow item.String
doInteract()
Performs the interaction with the user.String
doInteractHeadless()
Performs the interaction with the user in a headless environment.String
getCustomStopMessage()
Returns the custom message to use when stopping the flow.org.apache.commons.net.ftp.FTPClient
getFTPClient()
Returns the FTP client object.String
getHost()
Returns the host to connect to.BasePassword
getPassword()
Returns the FTP password to use.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.boolean
getStopFlowIfCanceled()
Returns whether to stop the flow if dialog canceled.StopMode
getStopMode()
Returns the stop mode.boolean
getUseBinaryMode()
Returns whether binary mode is used.boolean
getUsePassiveMode()
Returns whether passive mode is used.String
getUser()
Returns the FTP user name to use.String
globalInfo()
Returns a string describing the object.String
hostTipText()
Returns the tip text for this property.String
passwordTipText()
Returns the tip text for this property.String
promptForPasswordTipText()
Returns the tip text for this property.void
protocolCommandSent(org.apache.commons.net.ProtocolCommandEvent event)
This method is invoked by a ProtocolCommandEvent source after sending a protocol command to a server.void
protocolReplyReceived(org.apache.commons.net.ProtocolCommandEvent event)
This method is invoked by a ProtocolCommandEvent source after receiving a reply from a server.protected void
reset()
Resets the actor.void
setCustomStopMessage(String value)
Sets the custom message to use when stopping the flow.void
setHost(String value)
Sets the host to connect to.void
setPassword(BasePassword value)
Sets the FTP password to use.void
setPromptForPassword(boolean value)
Sets whether to prompt for a password if none currently provided.void
setStopFlowIfCanceled(boolean value)
Sets whether to stop the flow if dialog canceled.void
setStopMode(StopMode value)
Sets the stop mode.void
setUseBinaryMode(boolean value)
Sets whether to use binary mode.void
setUsePassiveMode(boolean value)
Sets whether to use passive mode.void
setUser(String value)
Sets the FTP user to use.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
useBinaryModeTipText()
Returns the tip text for this property.String
usePassiveModeTipText()
Returns the tip text for this property.String
userTipText()
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, 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_Host
protected String m_Host
the FTP host.
-
m_User
protected String m_User
the FTP user to use.
-
m_Password
protected BasePassword m_Password
the FTP password to use.
-
m_UsePassiveMode
protected boolean m_UsePassiveMode
whether to use passive mode.
-
m_UseBinaryMode
protected boolean m_UseBinaryMode
whether to use binary file transfer mode.
-
m_ActualPassword
protected BasePassword m_ActualPassword
the actual SMTP 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 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 org.apache.commons.net.ftp.FTPClient m_Client
the FTP client object.
-
-
Method Detail
-
globalInfo
public String globalInfo()
Returns a string describing the object.- Specified by:
globalInfo
in interfaceGlobalInfoSupporter
- Specified by:
globalInfo
in classAbstractOptionHandler
- 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 interfaceOptionHandler
- Overrides:
defineOptions
in classAbstractActor
-
reset
protected void reset()
Resets the actor.- Overrides:
reset
in classAbstractActor
-
getQuickInfo
public String getQuickInfo()
Returns a quick info about the actor, which will be displayed in the GUI.- Specified by:
getQuickInfo
in interfaceActor
- Specified by:
getQuickInfo
in interfaceQuickInfoSupporter
- Overrides:
getQuickInfo
in classAbstractActor
- Returns:
- null if no info available, otherwise short string
-
setHost
public void setHost(String value)
Sets the host to connect to.- Parameters:
value
- the host name/ip
-
getHost
public String getHost()
Returns the host to connect to.- Returns:
- 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.
-
setUser
public void setUser(String value)
Sets the FTP user to use.- Parameters:
value
- the user name
-
getUser
public String getUser()
Returns the FTP 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 FTP password to use.- Specified by:
setPassword
in interfacePasswordSupporter
- Parameters:
value
- the password
-
getPassword
public BasePassword getPassword()
Returns the FTP password to use.- Specified by:
getPassword
in 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.
-
setUsePassiveMode
public void setUsePassiveMode(boolean value)
Sets whether to use passive mode.- Parameters:
value
- if true passive mode is used
-
getUsePassiveMode
public boolean getUsePassiveMode()
Returns whether passive mode is used.- Returns:
- true if passive mode is used
-
usePassiveModeTipText
public String usePassiveModeTipText()
Returns the tip text for this property.- Returns:
- tip text for this property suitable for displaying in the GUI or for listing the options.
-
setUseBinaryMode
public void setUseBinaryMode(boolean value)
Sets whether to use binary mode.- Parameters:
value
- if true binary mode is used
-
getUseBinaryMode
public boolean getUseBinaryMode()
Returns whether binary mode is used.- Returns:
- true if binary mode is used
-
useBinaryModeTipText
public String useBinaryModeTipText()
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 interfaceOptionalPasswordPrompt
- Specified by:
setPromptForPassword
in 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:
getPromptForPassword
in interfaceOptionalPasswordPrompt
- Specified by:
getPromptForPassword
in interfacePasswordPrompter
- Returns:
- true if to prompt for a password
-
promptForPasswordTipText
public String promptForPasswordTipText()
Returns the tip text for this property.- Specified by:
promptForPasswordTipText
in interfaceOptionalPasswordPrompt
- Specified by:
promptForPasswordTipText
in 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:
setStopFlowIfCanceled
in 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:
getStopFlowIfCanceled
in interfaceInteractiveActor
- 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 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:
setCustomStopMessage
in interfaceInteractiveActor
- Parameters:
value
- the stop message
-
getCustomStopMessage
public String getCustomStopMessage()
Returns the custom message to use when stopping the flow.- Specified by:
getCustomStopMessage
in interfaceInteractiveActor
- Returns:
- the stop message
-
customStopMessageTipText
public String customStopMessageTipText()
Returns the tip text for this property.- Specified by:
customStopMessageTipText
in 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:
setStopMode
in interfaceStopModeSupporter
- Parameters:
value
- the mode
-
getStopMode
public StopMode getStopMode()
Returns the stop mode.- Specified by:
getStopMode
in interfaceStopModeSupporter
- Returns:
- the mode
-
stopModeTipText
public String stopModeTipText()
Returns the tip text for this property.- Specified by:
stopModeTipText
in 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:
doInteract
in interfaceInteractiveActor
- Returns:
- null if successfully interacted, otherwise error message
-
supportsHeadlessInteraction
public boolean supportsHeadlessInteraction()
Returns whether headless interaction is supported.- Specified by:
supportsHeadlessInteraction
in 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:
doInteractHeadless
in interfaceInteractiveActor
- Returns:
- true if successfully interacted
-
getFTPClient
public org.apache.commons.net.ftp.FTPClient getFTPClient()
Returns the FTP client object.- Returns:
- the FTP client, null if failed to connect
-
doExecute
protected String doExecute()
Executes the flow item.- Specified by:
doExecute
in classAbstractActor
- Returns:
- null if ok, otherwise error message
-
connect
protected String connect()
Starts up a FTP session.- Returns:
- null if OK, otherwise error message
-
disconnect
public void disconnect()
Disconnects the FTP session, if necessary.
-
wrapUp
public void wrapUp()
Cleans up after the execution has finished.- Specified by:
wrapUp
in interfaceActor
- Overrides:
wrapUp
in classAbstractActor
-
protocolCommandSent
public void protocolCommandSent(org.apache.commons.net.ProtocolCommandEvent event)
This method is invoked by a ProtocolCommandEvent source after sending a protocol command to a server.- Specified by:
protocolCommandSent
in interfaceorg.apache.commons.net.ProtocolCommandListener
- Parameters:
event
- The ProtocolCommandEvent fired.
-
protocolReplyReceived
public void protocolReplyReceived(org.apache.commons.net.ProtocolCommandEvent event)
This method is invoked by a ProtocolCommandEvent source after receiving a reply from a server.- Specified by:
protocolReplyReceived
in interfaceorg.apache.commons.net.ProtocolCommandListener
- Parameters:
event
- The ProtocolCommandEvent fired.
-
-