Author: oheger
Date: Tue Apr 15 13:26:23 2008
New Revision: 648405
URL: http://svn.apache.org/viewvc?rev=648405&view=rev
Log:
Extracted addNodeValue() method from processNodeAddData(), so that it can be
easier overridden in sub classes
Modified:
commons/proper/configuration/branches/configuration2_experimental/src/main/java/org/apache/commons/configuration2/AbstractHierarchicalConfiguration.java
Modified:
commons/proper/configuration/branches/configuration2_experimental/src/main/java/org/apache/commons/configuration2/AbstractHierarchicalConfiguration.java
URL:
http://svn.apache.org/viewvc/commons/proper/configuration/branches/configuration2_experimental/src/main/java/org/apache/commons/configuration2/AbstractHierarchicalConfiguration.java?rev=648405&r1=648404&r2=648405&view=diff
==============================================================================
---
commons/proper/configuration/branches/configuration2_experimental/src/main/java/org/apache/commons/configuration2/AbstractHierarchicalConfiguration.java
(original)
+++
commons/proper/configuration/branches/configuration2_experimental/src/main/java/org/apache/commons/configuration2/AbstractHierarchicalConfiguration.java
Tue Apr 15 13:26:23 2008
@@ -731,15 +731,33 @@
}
// Add the new property
- if (data.isAttribute())
+ return addNodeValue(node, data.getNewNodeName(), value,
data.isAttribute());
+ }
+
+ /**
+ * Adds a new value to a node, which can either be a child node or an
+ * attribute. This method is called by <code>processNodeAddData()</code>
+ * for the final node to be added. It can be overridden by concrete sub
+ * classes with specific requirements for adding values. This base
+ * implementation uses the <code>NodeHandler</code> of this configuration
+ * for either adding a new child node or an attribute value.
+ *
+ * @param parent the parent node (to which a value should be added)
+ * @param name the name of the property to be added
+ * @param value the value itself
+ * @param attr a flag whether a child node or an attribute should be added
+ * @return the newly created child node or <b>null</b> for an attribute
+ */
+ protected T addNodeValue(T parent, String name, Object value, boolean attr)
+ {
+ if (attr)
{
- getNodeHandler().addAttributeValue(node, data.getNewNodeName(),
- value);
+ getNodeHandler().addAttributeValue(parent, name, value);
return null;
}
else
{
- T child = createNode(node, data.getNewNodeName());
+ T child = createNode(parent, name);
getNodeHandler().setValue(child, value);
return child;
}