You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@ant.apache.org by pe...@apache.org on 2007/05/18 20:23:54 UTC
svn commit: r539547 - in /ant/core/trunk: WHATSNEW
src/main/org/apache/tools/ant/taskdefs/MacroDef.java
src/main/org/apache/tools/ant/taskdefs/MacroInstance.java
src/tests/antunit/taskdefs/macrodef-test.xml
Author: peterreilly
Date: Fri May 18 11:23:51 2007
New Revision: 539547
URL: http://svn.apache.org/viewvc?view=rev&rev=539547
Log:
bugzilla request: 42301 add default for text element in macrodef
Added:
ant/core/trunk/src/tests/antunit/taskdefs/macrodef-test.xml
Modified:
ant/core/trunk/WHATSNEW
ant/core/trunk/src/main/org/apache/tools/ant/taskdefs/MacroDef.java
ant/core/trunk/src/main/org/apache/tools/ant/taskdefs/MacroInstance.java
Modified: ant/core/trunk/WHATSNEW
URL: http://svn.apache.org/viewvc/ant/core/trunk/WHATSNEW?view=diff&rev=539547&r1=539546&r2=539547
==============================================================================
--- ant/core/trunk/WHATSNEW (original)
+++ ant/core/trunk/WHATSNEW Fri May 18 11:23:51 2007
@@ -150,6 +150,8 @@
* A new logger, BigProjectLogger, lists the project name with every target
+* Default text added to macrodef. Bugzilla report 42301.
+
Changes from Ant 1.6.5 to Ant 1.7.0
===================================
Modified: ant/core/trunk/src/main/org/apache/tools/ant/taskdefs/MacroDef.java
URL: http://svn.apache.org/viewvc/ant/core/trunk/src/main/org/apache/tools/ant/taskdefs/MacroDef.java?view=diff&rev=539547&r1=539546&r2=539547
==============================================================================
--- ant/core/trunk/src/main/org/apache/tools/ant/taskdefs/MacroDef.java (original)
+++ ant/core/trunk/src/main/org/apache/tools/ant/taskdefs/MacroDef.java Fri May 18 11:23:51 2007
@@ -431,6 +431,7 @@
private boolean optional;
private boolean trim;
private String description;
+ private String defaultString;
/**
* The name of the attribute.
@@ -501,6 +502,20 @@
}
/**
+ * @param defaultString default text for the string.
+ */
+ public void setDefault(String defaultString) {
+ this.defaultString = defaultString;
+ }
+
+ /**
+ * @return the default text if set, null otherwise.
+ */
+ public String getDefault() {
+ return defaultString;
+ }
+
+ /**
* equality method
*
* @param obj an <code>Object</code> value
@@ -514,20 +529,10 @@
return false;
}
Text other = (Text) obj;
- if (name == null) {
- if (other.name != null) {
- return false;
- }
- } else if (!name.equals(other.name)) {
- return false;
- }
- if (optional != other.optional) {
- return false;
- }
- if (trim != other.trim) {
- return false;
- }
- return true;
+ return safeCompare(name, other.name)
+ && optional == other.optional
+ && trim == other.trim
+ && safeCompare(defaultString, other.defaultString);
}
/**
@@ -536,6 +541,10 @@
public int hashCode() {
return objectHashCode(name);
}
+ }
+
+ private static boolean safeCompare(Object a, Object b) {
+ return a == null ? b == null : a.equals(b);
}
/**
Modified: ant/core/trunk/src/main/org/apache/tools/ant/taskdefs/MacroInstance.java
URL: http://svn.apache.org/viewvc/ant/core/trunk/src/main/org/apache/tools/ant/taskdefs/MacroInstance.java?view=diff&rev=539547&r1=539546&r2=539547
==============================================================================
--- ant/core/trunk/src/main/org/apache/tools/ant/taskdefs/MacroInstance.java (original)
+++ ant/core/trunk/src/main/org/apache/tools/ant/taskdefs/MacroInstance.java Fri May 18 11:23:51 2007
@@ -361,11 +361,12 @@
}
if (macroDef.getText() != null) {
if (text == null) {
- if (!macroDef.getText().getOptional()) {
+ String defaultText = macroDef.getText().getDefault();
+ if (!macroDef.getText().getOptional() && defaultText == null) {
throw new BuildException(
"required text missing");
}
- text = "";
+ text = defaultText == null ? "" : defaultText;
}
if (macroDef.getText().getTrim()) {
text = text.trim();
Added: ant/core/trunk/src/tests/antunit/taskdefs/macrodef-test.xml
URL: http://svn.apache.org/viewvc/ant/core/trunk/src/tests/antunit/taskdefs/macrodef-test.xml?view=auto&rev=539547
==============================================================================
--- ant/core/trunk/src/tests/antunit/taskdefs/macrodef-test.xml (added)
+++ ant/core/trunk/src/tests/antunit/taskdefs/macrodef-test.xml Fri May 18 11:23:51 2007
@@ -0,0 +1,20 @@
+<project name="length-test" default="antunit"
+ xmlns:au="antlib:org.apache.ant.antunit">
+
+ <import file="../antunit-base.xml" />
+
+ <target name="testDefaultTest">
+ <macrodef name="test-log">
+ <text name="log" default="DEFAULT-LOG-VALUE"/>
+ <sequential>
+ <concat>@{log}</concat>
+ </sequential>
+ </macrodef>
+ <test-log/>
+ <au:assertLogContains text="DEFAULT-LOG-VALUE"/>
+ <test-log>THIS IS NOT DEFAULT LOG</test-log>
+ <au:assertLogContains text="THIS IS NOT DEFAULT LOG"/>
+ </target>
+
+
+</project>
---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@ant.apache.org
For additional commands, e-mail: dev-help@ant.apache.org