You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@commons.apache.org by oh...@apache.org on 2008/03/08 21:37:09 UTC
svn commit: r635075 - in
/commons/proper/configuration/branches/configuration2_experimental/src:
main/java/org/apache/commons/configuration2/expr/NodeList.java
test/java/org/apache/commons/configuration2/expr/TestNodeList.java
Author: oheger
Date: Sat Mar 8 12:37:07 2008
New Revision: 635075
URL: http://svn.apache.org/viewvc?rev=635075&view=rev
Log:
Added getAttributeParent() method to NodeList
Modified:
commons/proper/configuration/branches/configuration2_experimental/src/main/java/org/apache/commons/configuration2/expr/NodeList.java
commons/proper/configuration/branches/configuration2_experimental/src/test/java/org/apache/commons/configuration2/expr/TestNodeList.java
Modified: commons/proper/configuration/branches/configuration2_experimental/src/main/java/org/apache/commons/configuration2/expr/NodeList.java
URL: http://svn.apache.org/viewvc/commons/proper/configuration/branches/configuration2_experimental/src/main/java/org/apache/commons/configuration2/expr/NodeList.java?rev=635075&r1=635074&r2=635075&view=diff
==============================================================================
--- commons/proper/configuration/branches/configuration2_experimental/src/main/java/org/apache/commons/configuration2/expr/NodeList.java (original)
+++ commons/proper/configuration/branches/configuration2_experimental/src/main/java/org/apache/commons/configuration2/expr/NodeList.java Sat Mar 8 12:37:07 2008
@@ -111,6 +111,27 @@
}
/**
+ * Returns the parent of the attribute at the specified index. If the
+ * element at this index is not an attribute, an exception will be thrown.
+ *
+ * @param index the index
+ * @return the parent node, to which the attribute at this index belongs
+ * @throws IndexOutOfBoundsException if the index is invalid
+ * @throws IllegalArgumentException if the element at this index is not an
+ * attribute
+ */
+ public T getAttributeParent(int index)
+ {
+ if (!isAttribute(index))
+ {
+ throw new IllegalArgumentException("Element at " + index
+ + " is not an attribute!");
+ }
+
+ return element(index).getAssociatedNode();
+ }
+
+ /**
* Returns the name of the element at the specified index. If the element is
* a node, the node name is returned. For an attribute the attribute name is
* returned.
Modified: commons/proper/configuration/branches/configuration2_experimental/src/test/java/org/apache/commons/configuration2/expr/TestNodeList.java
URL: http://svn.apache.org/viewvc/commons/proper/configuration/branches/configuration2_experimental/src/test/java/org/apache/commons/configuration2/expr/TestNodeList.java?rev=635075&r1=635074&r2=635075&view=diff
==============================================================================
--- commons/proper/configuration/branches/configuration2_experimental/src/test/java/org/apache/commons/configuration2/expr/TestNodeList.java (original)
+++ commons/proper/configuration/branches/configuration2_experimental/src/test/java/org/apache/commons/configuration2/expr/TestNodeList.java Sat Mar 8 12:37:07 2008
@@ -195,4 +195,32 @@
assertEquals("Wrong attribute name", NAME, list.getName(0,
new ConfigurationNodeHandler()));
}
+
+ /**
+ * Tests querying the parent of an attribute.
+ */
+ public void testGetAttributeParent()
+ {
+ ConfigurationNode parent = new DefaultConfigurationNode();
+ list.addAttribute(parent, NAME);
+ assertEquals("Wrong parent node", parent, list.getAttributeParent(0));
+ }
+
+ /**
+ * Tests querying the parent of an attribute when the specified element is
+ * not an attribute. This should cause an exception.
+ */
+ public void testGetAttributeParentNoAttribute()
+ {
+ list.addNode(new DefaultConfigurationNode(NAME));
+ try
+ {
+ list.getAttributeParent(0);
+ fail("Invalid element type not detected!");
+ }
+ catch (IllegalArgumentException iex)
+ {
+ // ok
+ }
+ }
}