diff options
Diffstat (limited to 'framework/src/ant/apache-ant-1.9.6/src/main/org/apache/tools/ant/taskdefs/optional/net/FTPTask.java')
-rw-r--r-- | framework/src/ant/apache-ant-1.9.6/src/main/org/apache/tools/ant/taskdefs/optional/net/FTPTask.java | 965 |
1 files changed, 0 insertions, 965 deletions
diff --git a/framework/src/ant/apache-ant-1.9.6/src/main/org/apache/tools/ant/taskdefs/optional/net/FTPTask.java b/framework/src/ant/apache-ant-1.9.6/src/main/org/apache/tools/ant/taskdefs/optional/net/FTPTask.java deleted file mode 100644 index 79780c78..00000000 --- a/framework/src/ant/apache-ant-1.9.6/src/main/org/apache/tools/ant/taskdefs/optional/net/FTPTask.java +++ /dev/null @@ -1,965 +0,0 @@ -/* - * Licensed to the Apache Software Foundation (ASF) under one or more - * contributor license agreements. See the NOTICE file distributed with - * this work for additional information regarding copyright ownership. - * The ASF licenses this file to You under the Apache License, Version 2.0 - * (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * - */ -package org.apache.tools.ant.taskdefs.optional.net; - -import java.io.File; -import java.lang.reflect.Constructor; -import java.util.Locale; -import java.util.Vector; - -import org.apache.tools.ant.BuildException; -import org.apache.tools.ant.Task; -import org.apache.tools.ant.types.EnumeratedAttribute; -import org.apache.tools.ant.types.FileSet; -import org.apache.tools.ant.types.Path; -import org.apache.tools.ant.util.LoaderUtils; -import org.apache.tools.ant.util.Retryable; -import org.apache.tools.ant.util.SplitClassLoader; - -/** - * Basic FTP client. Performs the following actions: - * <ul> - * <li> <strong>send</strong> - send files to a remote server. This is the - * default action.</li> - * <li> <strong>get</strong> - retrieve files from a remote server.</li> - * <li> <strong>del</strong> - delete files from a remote server.</li> - * <li> <strong>list</strong> - create a file listing.</li> - * <li> <strong>chmod</strong> - change unix file permissions.</li> - * <li> <strong>rmdir</strong> - remove directories, if empty, from a - * remote server.</li> - * </ul> - * <strong>Note:</strong> Some FTP servers - notably the Solaris server - seem - * to hold data ports open after a "retr" operation, allowing them to timeout - * instead of shutting them down cleanly. This happens in active or passive - * mode, and the ports will remain open even after ending the FTP session. FTP - * "send" operations seem to close ports immediately. This behavior may cause - * problems on some systems when downloading large sets of files. - * - * @since Ant 1.3 - */ -public class FTPTask extends Task implements FTPTaskConfig { - public static final int SEND_FILES = 0; - public static final int GET_FILES = 1; - public static final int DEL_FILES = 2; - public static final int LIST_FILES = 3; - public static final int MK_DIR = 4; - public static final int CHMOD = 5; - public static final int RM_DIR = 6; - public static final int SITE_CMD = 7; - - /** adjust uptodate calculations where server timestamps are HH:mm and client's - * are HH:mm:ss */ - private static final long GRANULARITY_MINUTE = 60000L; - - /** Default port for FTP */ - public static final int DEFAULT_FTP_PORT = 21; - - private String remotedir; - private String server; - private String userid; - private String password; - private String account; - private File listing; - private boolean binary = true; - private boolean passive = false; - private boolean verbose = false; - private boolean newerOnly = false; - private long timeDiffMillis = 0; - private long granularityMillis = 0L; - private boolean timeDiffAuto = false; - private int action = SEND_FILES; - private Vector filesets = new Vector(); - private String remoteFileSep = "/"; - private int port = DEFAULT_FTP_PORT; - private boolean skipFailedTransfers = false; - private boolean ignoreNoncriticalErrors = false; - private boolean preserveLastModified = false; - private String chmod = null; - private String umask = null; - private FTPSystemType systemTypeKey = FTPSystemType.getDefault(); - private String defaultDateFormatConfig = null; - private String recentDateFormatConfig = null; - private String serverLanguageCodeConfig = null; - private String serverTimeZoneConfig = null; - private String shortMonthNamesConfig = null; - private Granularity timestampGranularity = Granularity.getDefault(); - private boolean isConfigurationSet = false; - private int retriesAllowed = 0; - private String siteCommand = null; - private String initialSiteCommand = null; - private boolean enableRemoteVerification = true; - - private Path classpath; - private ClassLoader mirrorLoader; - private FTPTaskMirror delegate = null; - - public static final String[] ACTION_STRS = { - "sending", - "getting", - "deleting", - "listing", - "making directory", - "chmod", - "removing", - "site" - }; - - public static final String[] COMPLETED_ACTION_STRS = { - "sent", - "retrieved", - "deleted", - "listed", - "created directory", - "mode changed", - "removed", - "site command executed" - }; - - public static final String[] ACTION_TARGET_STRS = { - "files", - "files", - "files", - "files", - "directory", - "files", - "directories", - "site command" - }; - - /** - * Sets the remote directory where files will be placed. This may be a - * relative or absolute path, and must be in the path syntax expected by - * the remote server. No correction of path syntax will be performed. - * - * @param dir the remote directory name. - */ - public void setRemotedir(String dir) { - this.remotedir = dir; - } - - public String getRemotedir() { - return remotedir; - } - - /** - * Sets the FTP server to send files to. - * - * @param server the remote server name. - */ - public void setServer(String server) { - this.server = server; - } - - public String getServer() { - return server; - } - - /** - * Sets the FTP port used by the remote server. - * - * @param port the port on which the remote server is listening. - */ - public void setPort(int port) { - this.port = port; - } - - public int getPort() { - return port; - } - - /** - * Sets the login user id to use on the specified server. - * - * @param userid remote system userid. - */ - public void setUserid(String userid) { - this.userid = userid; - } - - public String getUserid() { - return userid; - } - - /** - * Sets the login password for the given user id. - * - * @param password the password on the remote system. - */ - public void setPassword(String password) { - this.password = password; - } - - public String getPassword() { - return password; - } - - /** - * Sets the login account to use on the specified server. - * - * @param pAccount the account name on remote system - * @since Ant 1.7 - */ - public void setAccount(String pAccount) { - this.account = pAccount; - } - - public String getAccount() { - return account; - } - - /** - * If true, uses binary mode, otherwise text mode (default is binary). - * - * @param binary if true use binary mode in transfers. - */ - public void setBinary(boolean binary) { - this.binary = binary; - } - - public boolean isBinary() { - return binary; - } - - /** - * Specifies whether to use passive mode. Set to true if you are behind a - * firewall and cannot connect without it. Passive mode is disabled by - * default. - * - * @param passive true is passive mode should be used. - */ - public void setPassive(boolean passive) { - this.passive = passive; - } - - public boolean isPassive() { - return passive; - } - - /** - * Set to true to receive notification about each file as it is - * transferred. - * - * @param verbose true if verbose notifications are required. - */ - public void setVerbose(boolean verbose) { - this.verbose = verbose; - } - - public boolean isVerbose() { - return verbose; - } - - /** - * A synonym for <tt>depends</tt>. Set to true to transmit only new - * or changed files. - * - * See the related attributes timediffmillis and timediffauto. - * - * @param newer if true only transfer newer files. - */ - public void setNewer(boolean newer) { - this.newerOnly = newer; - } - - public boolean isNewer() { - return newerOnly; - } - - /** - * number of milliseconds to add to the time on the remote machine - * to get the time on the local machine. - * - * use in conjunction with <code>newer</code> - * - * @param timeDiffMillis number of milliseconds - * - * @since ant 1.6 - */ - public void setTimeDiffMillis(long timeDiffMillis) { - this.timeDiffMillis = timeDiffMillis; - } - - public long getTimeDiffMillis() { - return timeDiffMillis; - } - - /** - * "true" to find out automatically the time difference - * between local and remote machine. - * - * This requires right to create - * and delete a temporary file in the remote directory. - * - * @param timeDiffAuto true = find automatically the time diff - * - * @since ant 1.6 - */ - public void setTimeDiffAuto(boolean timeDiffAuto) { - this.timeDiffAuto = timeDiffAuto; - } - - public boolean isTimeDiffAuto() { - return timeDiffAuto; - } - - /** - * Set to true to preserve modification times for "gotten" files. - * - * @param preserveLastModified if true preserver modification times. - */ - public void setPreserveLastModified(boolean preserveLastModified) { - this.preserveLastModified = preserveLastModified; - } - - public boolean isPreserveLastModified() { - return preserveLastModified; - } - - /** - * Set to true to transmit only files that are new or changed from their - * remote counterparts. The default is to transmit all files. - * - * @param depends if true only transfer newer files. - */ - public void setDepends(boolean depends) { - this.newerOnly = depends; - } - - - /** - * Sets the remote file separator character. This normally defaults to the - * Unix standard forward slash, but can be manually overridden using this - * call if the remote server requires some other separator. Only the first - * character of the string is used. - * - * @param separator the file separator on the remote system. - */ - public void setSeparator(String separator) { - remoteFileSep = separator; - } - - - public String getSeparator() { - return remoteFileSep; - } - - /** - * Sets the file permission mode (Unix only) for files sent to the - * server. - * - * @param theMode unix style file mode for the files sent to the remote - * system. - */ - public void setChmod(String theMode) { - this.chmod = theMode; - } - - public String getChmod() { - return chmod; - } - - /** - * Sets the default mask for file creation on a unix server. - * - * @param theUmask unix style umask for files created on the remote server. - */ - public void setUmask(String theUmask) { - this.umask = theUmask; - } - - public String getUmask() { - return umask; - } - - /** - * A set of files to upload or download - * - * @param set the set of files to be added to the list of files to be - * transferred. - */ - public void addFileset(FileSet set) { - filesets.addElement(set); - } - - public Vector getFilesets() { - return filesets; - } - - /** - * Sets the FTP action to be taken. Currently accepts "put", "get", "del", - * "mkdir", "chmod", "list", and "site". - * - * @deprecated since 1.5.x. - * setAction(String) is deprecated and is replaced with - * setAction(FTP.Action) to make Ant's Introspection mechanism do the - * work and also to encapsulate operations on the type in its own - * class. - * @ant.attribute ignore="true" - * - * @param action the FTP action to be performed. - * - * @throws BuildException if the action is not a valid action. - */ - public void setAction(String action) throws BuildException { - log("DEPRECATED - The setAction(String) method has been deprecated." - + " Use setAction(FTP.Action) instead."); - - Action a = new Action(); - - a.setValue(action); - this.action = a.getAction(); - } - - - /** - * Sets the FTP action to be taken. Currently accepts "put", "get", "del", - * "mkdir", "chmod", "list", and "site". - * - * @param action the FTP action to be performed. - * - * @throws BuildException if the action is not a valid action. - */ - public void setAction(Action action) throws BuildException { - this.action = action.getAction(); - } - - public int getAction() { - return this.action; - } - - /** - * The output file for the "list" action. This attribute is ignored for - * any other actions. - * - * @param listing file in which to store the listing. - */ - public void setListing(File listing) { - this.listing = listing; - } - - public File getListing() { - return listing; - } - - /** - * If true, enables unsuccessful file put, delete and get - * operations to be skipped with a warning and the remainder - * of the files still transferred. - * - * @param skipFailedTransfers true if failures in transfers are ignored. - */ - public void setSkipFailedTransfers(boolean skipFailedTransfers) { - this.skipFailedTransfers = skipFailedTransfers; - } - - public boolean isSkipFailedTransfers() { - return skipFailedTransfers; - } - - /** - * set the flag to skip errors on directory creation. - * (and maybe later other server specific errors) - * - * @param ignoreNoncriticalErrors true if non-critical errors should not - * cause a failure. - */ - public void setIgnoreNoncriticalErrors(boolean ignoreNoncriticalErrors) { - this.ignoreNoncriticalErrors = ignoreNoncriticalErrors; - } - - public boolean isIgnoreNoncriticalErrors() { - return ignoreNoncriticalErrors; - } - - private void configurationHasBeenSet() { - this.isConfigurationSet = true; - } - - public boolean isConfigurationSet() { - return this.isConfigurationSet; - } - - /** - * Sets the systemTypeKey attribute. - * Method for setting <code>FTPClientConfig</code> remote system key. - * - * @param systemKey the key to be set - BUT if blank - * the default value of null (which signifies "autodetect") will be kept. - * @see org.apache.commons.net.ftp.FTPClientConfig - */ - public void setSystemTypeKey(FTPSystemType systemKey) { - if (systemKey != null && !systemKey.getValue().equals("")) { - this.systemTypeKey = systemKey; - configurationHasBeenSet(); - } - } - - /** - * Sets the defaultDateFormatConfig attribute. - * @param defaultDateFormat configuration to be set, unless it is - * null or empty string, in which case ignored. - * @see org.apache.commons.net.ftp.FTPClientConfig - */ - public void setDefaultDateFormatConfig(String defaultDateFormat) { - if (defaultDateFormat != null && !defaultDateFormat.equals("")) { - this.defaultDateFormatConfig = defaultDateFormat; - configurationHasBeenSet(); - } - } - - /** - * Sets the recentDateFormatConfig attribute. - * @param recentDateFormat configuration to be set, unless it is - * null or empty string, in which case ignored. - * @see org.apache.commons.net.ftp.FTPClientConfig - */ - public void setRecentDateFormatConfig(String recentDateFormat) { - if (recentDateFormat != null && !recentDateFormat.equals("")) { - this.recentDateFormatConfig = recentDateFormat; - configurationHasBeenSet(); - } - } - - /** - * Sets the serverLanguageCode attribute. - * @param serverLanguageCode configuration to be set, unless it is - * null or empty string, in which case ignored. - * @see org.apache.commons.net.ftp.FTPClientConfig - */ - public void setServerLanguageCodeConfig(String serverLanguageCode) { - if (serverLanguageCode != null && !"".equals(serverLanguageCode)) { - this.serverLanguageCodeConfig = serverLanguageCode; - configurationHasBeenSet(); - } - } - - /** - * Sets the serverTimeZoneConfig attribute. - * @param serverTimeZoneId configuration to be set, unless it is - * null or empty string, in which case ignored. - * @see org.apache.commons.net.ftp.FTPClientConfig - */ - public void setServerTimeZoneConfig(String serverTimeZoneId) { - if (serverTimeZoneId != null && !serverTimeZoneId.equals("")) { - this.serverTimeZoneConfig = serverTimeZoneId; - configurationHasBeenSet(); - } - } - - /** - * Sets the shortMonthNamesConfig attribute - * - * @param shortMonthNames configuration to be set, unless it is - * null or empty string, in which case ignored. - * @see org.apache.commons.net.ftp.FTPClientConfig - */ - public void setShortMonthNamesConfig(String shortMonthNames) { - if (shortMonthNames != null && !shortMonthNames.equals("")) { - this.shortMonthNamesConfig = shortMonthNames; - configurationHasBeenSet(); - } - } - - - - /** - * Defines how many times to retry executing FTP command before giving up. - * Default is 0 - try once and if failure then give up. - * - * @param retriesAllowed number of retries to allow. -1 means - * keep trying forever. "forever" may also be specified as a - * synonym for -1. - */ - public void setRetriesAllowed(String retriesAllowed) { - if ("FOREVER".equalsIgnoreCase(retriesAllowed)) { - this.retriesAllowed = Retryable.RETRY_FOREVER; - } else { - try { - int retries = Integer.parseInt(retriesAllowed); - if (retries < Retryable.RETRY_FOREVER) { - throw new BuildException( - "Invalid value for retriesAllowed attribute: " - + retriesAllowed); - - } - this.retriesAllowed = retries; - } catch (NumberFormatException px) { - throw new BuildException( - "Invalid value for retriesAllowed attribute: " - + retriesAllowed); - - } - - } - } - - public int getRetriesAllowed() { - return retriesAllowed; - } - - /** - * @return Returns the systemTypeKey. - */ - public String getSystemTypeKey() { - return systemTypeKey.getValue(); - } - /** - * @return Returns the defaultDateFormatConfig. - */ - public String getDefaultDateFormatConfig() { - return defaultDateFormatConfig; - } - /** - * @return Returns the recentDateFormatConfig. - */ - public String getRecentDateFormatConfig() { - return recentDateFormatConfig; - } - /** - * @return Returns the serverLanguageCodeConfig. - */ - public String getServerLanguageCodeConfig() { - return serverLanguageCodeConfig; - } - /** - * @return Returns the serverTimeZoneConfig. - */ - public String getServerTimeZoneConfig() { - return serverTimeZoneConfig; - } - /** - * @return Returns the shortMonthNamesConfig. - */ - public String getShortMonthNamesConfig() { - return shortMonthNamesConfig; - } - /** - * @return Returns the timestampGranularity. - */ - public Granularity getTimestampGranularity() { - return timestampGranularity; - } - /** - * Sets the timestampGranularity attribute - * @param timestampGranularity The timestampGranularity to set. - */ - public void setTimestampGranularity(Granularity timestampGranularity) { - if (null == timestampGranularity || "".equals(timestampGranularity.getValue())) { - return; - } - this.timestampGranularity = timestampGranularity; - } - /** - * Sets the siteCommand attribute. This attribute - * names the command that will be executed if the action - * is "site". - * @param siteCommand The siteCommand to set. - */ - public void setSiteCommand(String siteCommand) { - this.siteCommand = siteCommand; - } - - public String getSiteCommand() { - return siteCommand; - } - - /** - * Sets the initialSiteCommand attribute. This attribute - * names a site command that will be executed immediately - * after connection. - * @param initialCommand The initialSiteCommand to set. - */ - public void setInitialSiteCommand(String initialCommand) { - this.initialSiteCommand = initialCommand; - } - - public String getInitialSiteCommand() { - return initialSiteCommand; - } - - public long getGranularityMillis() { - return this.granularityMillis; - } - - public void setGranularityMillis(long granularity) { - this.granularityMillis = granularity; - } - - /** - * Whether to verify that data and control connections are - * connected to the same remote host. - * - * @since Ant 1.8.0 - */ - public void setEnableRemoteVerification(boolean b) { - enableRemoteVerification = b; - } - - public boolean getEnableRemoteVerification() { - return enableRemoteVerification; - } - - /** - * Checks to see that all required parameters are set. - * - * @throws BuildException if the configuration is not valid. - */ - protected void checkAttributes() throws BuildException { - if (server == null) { - throw new BuildException("server attribute must be set!"); - } - if (userid == null) { - throw new BuildException("userid attribute must be set!"); - } - if (password == null) { - throw new BuildException("password attribute must be set!"); - } - - if ((action == LIST_FILES) && (listing == null)) { - throw new BuildException("listing attribute must be set for list " - + "action!"); - } - - if (action == MK_DIR && remotedir == null) { - throw new BuildException("remotedir attribute must be set for " - + "mkdir action!"); - } - - if (action == CHMOD && chmod == null) { - throw new BuildException("chmod attribute must be set for chmod " - + "action!"); - } - if (action == SITE_CMD && siteCommand == null) { - throw new BuildException("sitecommand attribute must be set for site " - + "action!"); - } - - - if (this.isConfigurationSet) { - try { - Class.forName("org.apache.commons.net.ftp.FTPClientConfig"); - } catch (ClassNotFoundException e) { - throw new BuildException( - "commons-net.jar >= 1.4.0 is required for at least one" - + " of the attributes specified."); - } - } - } - - /** - * Runs the task. - * - * @throws BuildException if the task fails or is not configured - * correctly. - */ - public void execute() throws BuildException { - checkAttributes(); - try { - setupFTPDelegate(); - delegate.doFTP(); - } finally { - if (mirrorLoader instanceof SplitClassLoader) { - ((SplitClassLoader) mirrorLoader).cleanup(); - } - mirrorLoader = null; - } - } - - public Path createClasspath() { - if (classpath == null) { - classpath = new Path(getProject()); - } - return classpath; - } - - protected void setupFTPDelegate() { - ClassLoader myLoader = FTPTask.class.getClassLoader(); - if (mustSplit()) { - mirrorLoader = - new SplitClassLoader(myLoader, classpath, getProject(), - new String[] { - "FTPTaskMirrorImpl", - "FTPConfigurator" - }); - } else { - mirrorLoader = myLoader; - } - delegate = createMirror(this, mirrorLoader); - } - - private static boolean mustSplit() { - return LoaderUtils.getResourceSource(FTPTask.class.getClassLoader(), - "/org/apache/commons/net/" - + "ftp/FTP.class") - == null; - } - - private static FTPTaskMirror createMirror(FTPTask task, - ClassLoader loader) { - try { - loader.loadClass("org.apache.commons.net.ftp.FTP"); // sanity check - } catch (ClassNotFoundException e) { - throw new BuildException("The <classpath> for <ftp> must include" - + " commons-net.jar if not in Ant's own " - + " classpath", e, task.getLocation()); - } - try { - Class c = loader.loadClass(FTPTaskMirror.class.getName() + "Impl"); - if (c.getClassLoader() != loader) { - throw new BuildException("Overdelegating loader", - task.getLocation()); - } - Constructor cons = c.getConstructor(new Class[] {FTPTask.class}); - return (FTPTaskMirror) cons.newInstance(new Object[] {task}); - } catch (Exception e) { - throw new BuildException(e, task.getLocation()); - } - } - - /** - * an action to perform, one of - * "send", "put", "recv", "get", "del", "delete", "list", "mkdir", "chmod", - * "rmdir" - */ - public static class Action extends EnumeratedAttribute { - - private static final String[] VALID_ACTIONS = { - "send", "put", "recv", "get", "del", "delete", "list", "mkdir", - "chmod", "rmdir", "site" - }; - - - /** - * Get the valid values - * - * @return an array of the valid FTP actions. - */ - public String[] getValues() { - return VALID_ACTIONS; - } - - - /** - * Get the symbolic equivalent of the action value. - * - * @return the SYMBOL representing the given action. - */ - public int getAction() { - String actionL = getValue().toLowerCase(Locale.ENGLISH); - if (actionL.equals("send") || actionL.equals("put")) { - return SEND_FILES; - } else if (actionL.equals("recv") || actionL.equals("get")) { - return GET_FILES; - } else if (actionL.equals("del") || actionL.equals("delete")) { - return DEL_FILES; - } else if (actionL.equals("list")) { - return LIST_FILES; - } else if (actionL.equals("chmod")) { - return CHMOD; - } else if (actionL.equals("mkdir")) { - return MK_DIR; - } else if (actionL.equals("rmdir")) { - return RM_DIR; - } else if (actionL.equals("site")) { - return SITE_CMD; - } - return SEND_FILES; - } - } - /** - * represents one of the valid timestamp adjustment values - * recognized by the <code>timestampGranularity</code> attribute.<p> - - * A timestamp adjustment may be used in file transfers for checking - * uptodateness. MINUTE means to add one minute to the server - * timestamp. This is done because FTP servers typically list - * timestamps HH:mm and client FileSystems typically use HH:mm:ss. - * - * The default is to use MINUTE for PUT actions and NONE for GET - * actions, since GETs have the <code>preserveLastModified</code> - * option, which takes care of the problem in most use cases where - * this level of granularity is an issue. - * - */ - public static class Granularity extends EnumeratedAttribute { - - private static final String[] VALID_GRANULARITIES = { - "", "MINUTE", "NONE" - }; - - /** - * Get the valid values. - * @return the list of valid Granularity values - */ - public String[] getValues() { - return VALID_GRANULARITIES; - } - /** - * returns the number of milliseconds associated with - * the attribute, which can vary in some cases depending - * on the value of the action parameter. - * @param action SEND_FILES or GET_FILES - * @return the number of milliseconds associated with - * the attribute, in the context of the supplied action - */ - public long getMilliseconds(int action) { - String granularityU = getValue().toUpperCase(Locale.ENGLISH); - if ("".equals(granularityU)) { - if (action == SEND_FILES) { - return GRANULARITY_MINUTE; - } - } else if ("MINUTE".equals(granularityU)) { - return GRANULARITY_MINUTE; - } - return 0L; - } - static final Granularity getDefault() { - Granularity g = new Granularity(); - g.setValue(""); - return g; - } - - } - /** - * one of the valid system type keys recognized by the systemTypeKey - * attribute. - */ - public static class FTPSystemType extends EnumeratedAttribute { - - private static final String[] VALID_SYSTEM_TYPES = { - "", "UNIX", "VMS", "WINDOWS", "OS/2", "OS/400", - "MVS" - }; - - - /** - * Get the valid values. - * @return the list of valid system types. - */ - public String[] getValues() { - return VALID_SYSTEM_TYPES; - } - - static final FTPSystemType getDefault() { - FTPSystemType ftpst = new FTPSystemType(); - ftpst.setValue(""); - return ftpst; - } - } - -} |