From 3a28c02ef6540c2d32aef2665f4abfd00e5937e3 Mon Sep 17 00:00:00 2001 From: Magesh Umasankar Date: Wed, 5 Dec 2001 02:06:57 +0000 Subject: [PATCH] setAction(String) replaced with setAction(FTP.Action) for action attribute of the FTP task. setAction(String) has been deprecated. git-svn-id: https://svn.apache.org/repos/asf/ant/core/trunk@270072 13f79535-47bb-0310-9956-ffa450edef68 --- .../tools/ant/taskdefs/optional/net/FTP.java | 83 ++++++++++++------- 1 file changed, 52 insertions(+), 31 deletions(-) diff --git a/src/main/org/apache/tools/ant/taskdefs/optional/net/FTP.java b/src/main/org/apache/tools/ant/taskdefs/optional/net/FTP.java index c21ee0f85..4ba421c44 100644 --- a/src/main/org/apache/tools/ant/taskdefs/optional/net/FTP.java +++ b/src/main/org/apache/tools/ant/taskdefs/optional/net/FTP.java @@ -62,6 +62,7 @@ import org.apache.tools.ant.DirectoryScanner; import org.apache.tools.ant.FileScanner; import org.apache.tools.ant.Project; import org.apache.tools.ant.Task; +import org.apache.tools.ant.types.EnumeratedAttribute; import org.apache.tools.ant.types.FileSet; import java.io.BufferedInputStream; @@ -97,6 +98,7 @@ import java.util.Vector; * * @author Roger Vaughn rvaughn@seaconinc.com * @author Glenn McAllister glennm@ca.ibm.com + * @author Magesh Umasankar */ public class FTP extends Task @@ -343,38 +345,27 @@ public class FTP /** * Sets the FTP action to be taken. Currently accepts "put", "get", - * "del", and "list". + * "del", "mkdir" and "list". + * + * @deprecated 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. */ - public void setAction(String action) throws BuildException - { - String actionL = action.toLowerCase(Locale.US); - if (actionL.equals("send") || - actionL.equals("put")) - { - this.action = SEND_FILES; - } - else if (actionL.equals("recv") || - actionL.equals("get")) - { - this.action = GET_FILES; - } - else if (actionL.equals("del") || - actionL.equals("delete" )) - { - this.action = DEL_FILES; - } - else if (actionL.equals("list")) - { - this.action = LIST_FILES; - } - else if (actionL.equals("mkdir")) - { - this.action = MK_DIR; - } - else - { - throw new BuildException("action " + action + " is not supported"); - } + 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" and "list". + */ + public void setAction(Action action) throws BuildException { + this.action = action.getAction(); } /** @@ -943,4 +934,34 @@ public class FTP } } } + + public static class Action extends EnumeratedAttribute { + + private final static String[] validActions = { + "send", "put", "recv", "get", "del", "delete", "list", "mkdir" + }; + + public String[] getValues() { + return validActions; + } + + public int getAction() { + String actionL = getValue().toLowerCase(Locale.US); + 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("mkdir")) { + return MK_DIR; + } + return SEND_FILES; + } + } }