You are viewing a plain text version of this content. The canonical link for it is here.
Posted to notifications@ant.apache.org by jl...@apache.org on 2013/06/27 09:32:00 UTC
svn commit: r1497229 -
/ant/easyant/core/trunk/src/main/java/org/apache/easyant/tasks/ParameterTask.java
Author: jlboudart
Date: Thu Jun 27 07:32:00 2013
New Revision: 1497229
URL: http://svn.apache.org/r1497229
Log:
Add possibleValues attribute on ParameterTask
Modified:
ant/easyant/core/trunk/src/main/java/org/apache/easyant/tasks/ParameterTask.java
Modified: ant/easyant/core/trunk/src/main/java/org/apache/easyant/tasks/ParameterTask.java
URL: http://svn.apache.org/viewvc/ant/easyant/core/trunk/src/main/java/org/apache/easyant/tasks/ParameterTask.java?rev=1497229&r1=1497228&r2=1497229&view=diff
==============================================================================
--- ant/easyant/core/trunk/src/main/java/org/apache/easyant/tasks/ParameterTask.java (original)
+++ ant/easyant/core/trunk/src/main/java/org/apache/easyant/tasks/ParameterTask.java Thu Jun 27 07:32:00 2013
@@ -17,6 +17,9 @@
*/
package org.apache.easyant.tasks;
+import java.util.ArrayList;
+import java.util.List;
+
import org.apache.easyant.core.EasyAntMagicNames;
import org.apache.tools.ant.BuildException;
import org.apache.tools.ant.Project;
@@ -41,6 +44,7 @@ public class ParameterTask extends Task
private String defaultValue;
private boolean required;
private String phase;
+ private List<String> possibleValues = new ArrayList<String>();
/**
* Get a description to the property / path
@@ -156,11 +160,42 @@ public class ParameterTask extends Task
this.required = required;
}
+ /**
+ * Get list of possible values of a property
+ *
+ * @return a list of values
+ */
+ public List<String> getPossibleValues() {
+ return possibleValues;
+ }
+
+ /**
+ * Set list of possible values of a property
+ *
+ * @param possibleValuesAsString
+ * a comma separated list of values
+ */
+ public void setPossibleValues(String possibleValuesAsString) {
+ if (possibleValuesAsString != null) {
+ String[] split = possibleValuesAsString.split(",");
+ for (String possibleValue : split) {
+ possibleValues.add(possibleValue.trim());
+ }
+ }
+ }
+
public void execute() throws BuildException {
if (property != null) {
if (isRequired() && getProject().getProperty(property) == null) {
throw new BuildException("expected property '" + property + "': " + description);
}
+ if (!possibleValues.isEmpty()) {
+ String currentValue = getProject().getProperty(property);
+ if (!possibleValues.contains(currentValue)) {
+ throw new BuildException("current value of property '" + property
+ + "' doesn't match with possible values : " + possibleValues.toString());
+ }
+ }
if (defaultValue != null && getProject().getProperty(property) == null) {
Property propTask = new Property();
propTask.setProject(getProject());