Author: peterreilly Date: Sun Sep 24 07:14:08 2006 New Revision: 449407 URL: http://svn.apache.org/viewvc?view=rev&rev=449407 Log: refine empty node handling
Modified: ant/core/trunk/src/main/org/apache/tools/ant/taskdefs/XmlProperty.java Modified: ant/core/trunk/src/main/org/apache/tools/ant/taskdefs/XmlProperty.java URL: http://svn.apache.org/viewvc/ant/core/trunk/src/main/org/apache/tools/ant/taskdefs/XmlProperty.java?view=diff&rev=449407&r1=449406&r2=449407 ============================================================================== --- ant/core/trunk/src/main/org/apache/tools/ant/taskdefs/XmlProperty.java (original) +++ ant/core/trunk/src/main/org/apache/tools/ant/taskdefs/XmlProperty.java Sun Sep 24 07:14:08 2006 @@ -422,6 +422,18 @@ } String nodeText = null; + boolean emptyNode = false; + boolean semanticEmptyOverride = false; + if (node.getNodeType() == Node.ELEMENT_NODE + && semanticAttributes + && node.hasAttributes() + && (node.getAttributes().getNamedItem(VALUE) != null + || node.getAttributes().getNamedItem(LOCATION) != null + || node.getAttributes().getNamedItem(REF_ID) != null + || node.getAttributes().getNamedItem(PATH) != null + || node.getAttributes().getNamedItem(PATHID) != null)) { + semanticEmptyOverride = true; + } if (node.getNodeType() == Node.TEXT_NODE) { // For the text node, add a property. nodeText = getAttributeValue(node); @@ -430,9 +442,21 @@ && (node.getFirstChild().getNodeType() == Node.CDATA_SECTION_NODE)) { nodeText = node.getFirstChild().getNodeValue(); + if ("".equals(nodeText) && !semanticEmptyOverride) { + emptyNode = true; + } + } else if ((node.getNodeType() == Node.ELEMENT_NODE) + && (node.getChildNodes().getLength() == 0) + && !semanticEmptyOverride) { + nodeText = ""; + emptyNode = true; } else if ((node.getNodeType() == Node.ELEMENT_NODE) - && (node.getChildNodes().getLength() == 0)) { + && (node.getChildNodes().getLength() == 1) + && (node.getFirstChild().getNodeType() == Node.TEXT_NODE) + && ("".equals(node.getFirstChild().getNodeValue())) + && !semanticEmptyOverride) { nodeText = ""; + emptyNode = true; } if (nodeText != null) { @@ -441,8 +465,9 @@ && container instanceof String) { id = (String) container; } - - addProperty(prefix, nodeText, id); + if (nodeText.trim().length() != 0 || emptyNode) { + addProperty(prefix, nodeText, id); + } } // Return the Path we added or the ID of this node for --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]