You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@commons.apache.org by eb...@apache.org on 2004/07/05 11:54:17 UTC
cvs commit: jakarta-commons/configuration/src/java/org/apache/commons/configuration AbstractConfiguration.java BaseConfiguration.java ConfigurationFactory.java HierarchicalConfiguration.java HierarchicalConfigurationXMLReader.java
ebourg 2004/07/05 02:54:17
Modified: configuration/src/java/org/apache/commons/configuration
AbstractConfiguration.java BaseConfiguration.java
ConfigurationFactory.java
HierarchicalConfiguration.java
HierarchicalConfigurationXMLReader.java
Log:
Removed the AbstractConfiguration.Container inner class, a List is used instead
Revision Changes Path
1.17 +15 -102 jakarta-commons/configuration/src/java/org/apache/commons/configuration/AbstractConfiguration.java
Index: AbstractConfiguration.java
===================================================================
RCS file: /home/cvs/jakarta-commons/configuration/src/java/org/apache/commons/configuration/AbstractConfiguration.java,v
retrieving revision 1.16
retrieving revision 1.17
diff -u -r1.16 -r1.17
--- AbstractConfiguration.java 24 Jun 2004 14:01:03 -0000 1.16
+++ AbstractConfiguration.java 5 Jul 2004 09:54:17 -0000 1.17
@@ -238,8 +238,8 @@
//
// We keep the sequence of the keys here and
- // we also keep it in the Container. So the
- // Keys are added to the store in the sequence that
+ // we also keep it in the List. So the
+ // keys are added to the store in the sequence that
// is given in the properties
return list;
}
@@ -367,21 +367,8 @@
*/
public Object getProperty(String key)
{
- // first, try to get from the 'user value' store
- Object o = getPropertyDirect(key);
-
-
- //
- // We must never give a Container Object out. So if the
- // Return Value is a Container, we fix it up to be a
- // List
- //
- if (o instanceof Container)
- {
- o = ((Container) o).asList();
- }
- return o;
- }
+ return getPropertyDirect(key);
+ }
/**
* {@inheritDoc}
@@ -949,13 +936,14 @@
tokens[0] = interpolate((String) value);
}
- else if (value instanceof Container)
+ else if (value instanceof List)
{
- tokens = new String[((Container) value).size()];
+ List list = (List) value;
+ tokens = new String[list.size()];
for (int i = 0; i < tokens.length; i++)
{
- tokens[i] = interpolate((String) ((Container) value).get(i));
+ tokens[i] = interpolate((String) list.get(i));
}
}
else if (value == null)
@@ -991,10 +979,6 @@
list = new ArrayList(1);
list.add(value);
}
- else if (value instanceof Container)
- {
- list = ((Container) value).asList();
- }
else if (value instanceof List)
{
list = (List) value;
@@ -1017,21 +1001,20 @@
}
/**
- * Returns an object from the store described by the key.
- * If the value is a Container object, replace it with the
- * first object in the container
+ * Returns an object from the store described by the key. If the value is
+ * a List object, replace it with the first object in the list.
*
* @param key The property key.
*
- * @return value Value, transparently resolving a possible
- * Container dependency.
+ * @return value Value, transparently resolving a possible List dependency.
*/
private Object resolveContainerStore(String key)
{
Object value = getPropertyDirect(key);
- if (value != null && value instanceof Container)
+ if (value != null && value instanceof List)
{
- value = ((Container) value).get(0);
+ List list = (List) value;
+ value = list.isEmpty() ? null : list.get(0);
}
return value;
}
@@ -1080,74 +1063,4 @@
}
} // class PropertiesTokenizer
- /**
- * Private Wrapper class for List, so we can distinguish between
- * List objects and our container
- */
- static class Container
- {
- /** We're wrapping a List object (A List) */
- private List list;
-
- /**
- * Constructor
- */
- public Container()
- {
- list = new ArrayList(INITIAL_LIST_SIZE);
- }
-
- /**
- * Add an Object to the Container
- *
- * @param o The Object
- */
- public void add(Object o)
- {
- list.add(o);
- }
-
- /**
- * Returns the current size of the Container
- *
- * @return The Number of elements in the container
- */
- public int size()
- {
- return list.size();
- }
-
- /**
- * Returns the Element at an index
- *
- * @param index The Index
- * @return The element at that index
- */
- public Object get(int index)
- {
- return list.get(index);
- }
-
- /**
- * Returns an Iterator over the container objects
- *
- * @return An Iterator
- */
- public Iterator iterator()
- {
- return list.iterator();
- }
-
- /**
- * Returns the Elements of the Container as a List. This is not the
- * internal list element but a shallow copy of the internal list. You
- * may modify the returned list without modifying the container.
- *
- * @return A List containing the elements of the Container.
- */
- public List asList()
- {
- return new ArrayList(list);
- }
- }
}
1.8 +11 -9 jakarta-commons/configuration/src/java/org/apache/commons/configuration/BaseConfiguration.java
Index: BaseConfiguration.java
===================================================================
RCS file: /home/cvs/jakarta-commons/configuration/src/java/org/apache/commons/configuration/BaseConfiguration.java,v
retrieving revision 1.7
retrieving revision 1.8
diff -u -r1.7 -r1.8
--- BaseConfiguration.java 24 Jun 2004 12:35:14 -0000 1.7
+++ BaseConfiguration.java 5 Jul 2004 09:54:17 -0000 1.8
@@ -18,6 +18,8 @@
import java.util.Iterator;
import java.util.Map;
+import java.util.List;
+import java.util.ArrayList;
import org.apache.commons.collections.map.LinkedMap;
@@ -77,23 +79,23 @@
}
else
{
- if (o instanceof Container)
+ if (o instanceof List)
{
- ((Container) o).add(obj);
+ ((List) o).add(obj);
}
else
{
- // The token key is not a container.
- Container c = new Container();
+ // The token key is not a list.
+ List list = new ArrayList();
- // There is an element. Put it into the container
+ // There is an element. Put it into the list
// at the first position
- c.add(o);
+ list.add(o);
// Now gobble up the supplied object
- c.add(obj);
+ list.add(obj);
- objAdd = c;
+ objAdd = list;
}
}
1.14 +2 -2 jakarta-commons/configuration/src/java/org/apache/commons/configuration/ConfigurationFactory.java
Index: ConfigurationFactory.java
===================================================================
RCS file: /home/cvs/jakarta-commons/configuration/src/java/org/apache/commons/configuration/ConfigurationFactory.java,v
retrieving revision 1.13
retrieving revision 1.14
diff -u -r1.13 -r1.14
--- ConfigurationFactory.java 24 Jun 2004 14:01:03 -0000 1.13
+++ ConfigurationFactory.java 5 Jul 2004 09:54:17 -0000 1.14
@@ -637,7 +637,7 @@
AdditionalConfigurationData cdata =
(AdditionalConfigurationData) it.next();
result.addNodes(cdata.getAt(),
- createRootNode(cdata).getChildren().asList());
+ createRootNode(cdata).getChildren());
}
return result.isEmpty() ? null : result;
1.9 +20 -34 jakarta-commons/configuration/src/java/org/apache/commons/configuration/HierarchicalConfiguration.java
Index: HierarchicalConfiguration.java
===================================================================
RCS file: /home/cvs/jakarta-commons/configuration/src/java/org/apache/commons/configuration/HierarchicalConfiguration.java,v
retrieving revision 1.8
retrieving revision 1.9
diff -u -r1.8 -r1.9
--- HierarchicalConfiguration.java 24 Jun 2004 12:35:15 -0000 1.8
+++ HierarchicalConfiguration.java 5 Jul 2004 09:54:17 -0000 1.9
@@ -148,23 +148,23 @@
}
else
{
- Container cont = new Container();
+ List list = new ArrayList();
for (Iterator it = nodes.iterator(); it.hasNext();)
{
- Node nd = (Node) it.next();
- if (nd.getValue() != null)
+ Node node = (Node) it.next();
+ if (node.getValue() != null)
{
- cont.add(nd.getValue());
+ list.add(node.getValue());
}
}
- if (cont.size() < 1)
+ if (list.size() < 1)
{
return null;
}
else
{
- return (cont.size() == 1) ? cont.get(0) : cont;
+ return (list.size() == 1) ? list.get(0) : list;
}
}
}
@@ -322,7 +322,7 @@
Node nd = (Node) it.next();
nd.visit(visitor, null);
- Container children = visitor.getClone().getChildren();
+ List children = visitor.getClone().getChildren();
if (children.size() > 0)
{
for (int i = 0; i < children.size(); i++)
@@ -431,7 +431,7 @@
else
{
String key = keyPart.nextKey(true);
- Container children = node.getChildren(key);
+ List children = node.getChildren(key);
if (keyPart.hasIndex())
{
if (keyPart.getIndex() < children.size()
@@ -524,15 +524,15 @@
if (keyIt.hasNext())
{
- Container c = node.getChildren(keyPart);
- int idx = (keyIt.hasIndex()) ? keyIt.getIndex() : c.size() - 1;
- if (idx < 0 || idx >= c.size())
+ List list = node.getChildren(keyPart);
+ int idx = (keyIt.hasIndex()) ? keyIt.getIndex() : list.size() - 1;
+ if (idx < 0 || idx >= list.size())
{
return node;
}
else
{
- return findLastPathNode(keyIt, (Node) c.get(idx));
+ return findLastPathNode(keyIt, (Node) list.get(idx));
}
}
@@ -567,20 +567,6 @@
}
/**
- * Helper method for adding all elements of a collection to a container.
- *
- * @param cont the container
- * @param items the collection to be added
- */
- private static void addContainer(Container cont, Collection items)
- {
- for (Iterator it = items.iterator(); it.hasNext();)
- {
- cont.add(it.next());
- }
- }
-
- /**
* A data class for storing (hierarchical) property information. A property
* can have a value and an arbitrary number of child properties.
*
@@ -707,15 +693,15 @@
* @return a list with the children (can be empty, but never
* <b>null</b>)
*/
- public Container getChildren()
+ public List getChildren()
{
- Container result = new Container();
+ List result = new ArrayList();
if (children != null)
{
for (Iterator it = children.values().iterator(); it.hasNext();)
{
- addContainer(result, (Collection) it.next());
+ result.addAll((Collection) it.next());
}
}
@@ -729,21 +715,21 @@
* @return a list with all chidren with this name; may be empty, but
* never <b>null</b>
*/
- public Container getChildren(String name)
+ public List getChildren(String name)
{
if (name == null || children == null)
{
return getChildren();
}
- Container cont = new Container();
+ List list = new ArrayList();
List c = (List) children.get(name);
if (c != null)
{
- addContainer(cont, c);
+ list.addAll(c);
}
- return cont;
+ return list;
}
/**
1.5 +6 -6 jakarta-commons/configuration/src/java/org/apache/commons/configuration/HierarchicalConfigurationXMLReader.java
Index: HierarchicalConfigurationXMLReader.java
===================================================================
RCS file: /home/cvs/jakarta-commons/configuration/src/java/org/apache/commons/configuration/HierarchicalConfigurationXMLReader.java,v
retrieving revision 1.4
retrieving revision 1.5
diff -u -r1.4 -r1.5
--- HierarchicalConfigurationXMLReader.java 24 Jun 2004 12:35:15 -0000 1.4
+++ HierarchicalConfigurationXMLReader.java 5 Jul 2004 09:54:17 -0000 1.5
@@ -16,6 +16,8 @@
package org.apache.commons.configuration;
+import java.util.List;
+
import org.apache.commons.configuration.HierarchicalConfiguration.Node;
import org.xml.sax.Attributes;
import org.xml.sax.helpers.AttributesImpl;
@@ -163,17 +165,15 @@
protected Attributes fetchAttributes(Node node)
{
AttributesImpl attrs = new AttributesImpl();
- AbstractConfiguration.Container children = node.getChildren();
+ List children = node.getChildren();
for (int i = 0; i < children.size(); i++)
{
Node child = (Node) children.get(i);
if (isAttributeNode(child) && child.getValue() != null)
{
- String attr = ConfigurationKey.attributeName(
- child.getName());
- attrs.addAttribute(NS_URI, attr, attr, ATTR_TYPE,
- child.getValue().toString());
+ String attr = ConfigurationKey.attributeName(child.getName());
+ attrs.addAttribute(NS_URI, attr, attr, ATTR_TYPE, child.getValue().toString());
}
}
---------------------------------------------------------------------
To unsubscribe, e-mail: commons-dev-unsubscribe@jakarta.apache.org
For additional commands, e-mail: commons-dev-help@jakarta.apache.org