mstover1 2005/02/14 09:40:59
Modified: test/src/org/apache/jorphan/collections
TestConfigurationTree.java
src/jorphan/org/apache/jorphan/collections HashTree.java
ConfigurationTree.java
Log:
some new supporting methods for the ConfigurationTree
Revision Changes Path
1.2 +21 -0
jakarta-jmeter/test/src/org/apache/jorphan/collections/TestConfigurationTree.java
Index: TestConfigurationTree.java
===================================================================
RCS file:
/home/cvs/jakarta-jmeter/test/src/org/apache/jorphan/collections/TestConfigurationTree.java,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- TestConfigurationTree.java 9 Feb 2005 21:11:55 -0000 1.1
+++ TestConfigurationTree.java 14 Feb 2005 17:40:58 -0000 1.2
@@ -7,6 +7,7 @@
package org.apache.jorphan.collections;
import java.io.FileReader;
+import java.util.Properties;
import org.apache.jmeter.junit.JMeterTestCase;
import org.apache.jorphan.io.TextFile;
@@ -106,4 +107,24 @@
tree.getProperty(
"services/org.apache.service.webaction.error.Redirector/exceptions/NoSuchObjectException/msg"));
}
+
+ public void testAsProperties() throws Exception
+ {
+ Properties props = config.getAsProperties();
+ assertEquals("value4",props.getProperty("param4"));
+ }
+
+ public void testAddProps() throws Exception
+ {
+ Properties props = new Properties();
+ props.setProperty("name","Mike");
+ props.setProperty("pets","dog");
+ config.add(props);
+ assertEquals("dog",config.getProperty("pets"));
+ }
+
+ public void testDefault() throws Exception
+ {
+ assertEquals("default",config.getProperty("notThere","default"));
+ }
}
1.21 +5 -4
jakarta-jmeter/src/jorphan/org/apache/jorphan/collections/HashTree.java
Index: HashTree.java
===================================================================
RCS file:
/home/cvs/jakarta-jmeter/src/jorphan/org/apache/jorphan/collections/HashTree.java,v
retrieving revision 1.20
retrieving revision 1.21
diff -u -r1.20 -r1.21
--- HashTree.java 9 Feb 2005 21:11:55 -0000 1.20
+++ HashTree.java 14 Feb 2005 17:40:58 -0000 1.21
@@ -26,6 +26,7 @@
import java.util.Collection;
import java.util.HashMap;
import java.util.Iterator;
+import java.util.LinkedList;
import java.util.Map;
import java.util.Set;
@@ -718,7 +719,7 @@
}
else
{
- return null;
+ return new LinkedList();
}
}
@@ -769,7 +770,7 @@
HashTree tree = getTreePath(treePath);
if(tree != null)
return tree.list();
- return null;
+ return new LinkedList();
}
/**
1.2 +95 -7
jakarta-jmeter/src/jorphan/org/apache/jorphan/collections/ConfigurationTree.java
Index: ConfigurationTree.java
===================================================================
RCS file:
/home/cvs/jakarta-jmeter/src/jorphan/org/apache/jorphan/collections/ConfigurationTree.java,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- ConfigurationTree.java 9 Feb 2005 21:11:55 -0000 1.1
+++ ConfigurationTree.java 14 Feb 2005 17:40:58 -0000 1.2
@@ -12,7 +12,9 @@
import java.io.StringWriter;
import java.io.Writer;
import java.util.Collection;
+import java.util.Iterator;
import java.util.Map;
+import java.util.Properties;
/**
* @author mike
@@ -104,6 +106,18 @@
}
return makeSubtree(tree);
}
+
+ public ConfigurationTree addRaw(String key,String value)
+ {
+ ListedHashTree tree = (ListedHashTree)propTree.add(key,value);
+ return makeSubtree(tree);
+ }
+
+ public ConfigurationTree addRaw(String key)
+ {
+ ListedHashTree tree = (ListedHashTree)propTree.add(key);
+ return makeSubtree(tree);
+ }
/**
* @param key
@@ -130,6 +144,30 @@
return makeSubtree((ListedHashTree) propTree.add(
getPath(key), value));
}
+
+ public Properties getAsProperties(String key)
+ {
+ return getAsProperties(getTree(key));
+ }
+
+ public Properties getAsProperties()
+ {
+ return getAsProperties(this);
+ }
+
+ protected Properties getAsProperties(ConfigurationTree tree)
+ {
+ Properties props = new Properties();
+ if(tree == null) return props;
+ String[] propNames = tree.getPropertyNames();
+ if(propNames == null) return props;
+ for(int i = 0;i < propNames.length;i++)
+ {
+ if(tree.getProperty(propNames[i]) != null)
+
props.setProperty(propNames[i],tree.getProperty(propNames[i]));
+ }
+ return props;
+ }
/**
* @param key
@@ -171,6 +209,16 @@
public void add(String[] treePath, String[] values) {
propTree.add(treePath, values);
}
+
+ public void add(Properties props)
+ {
+ Iterator iter = props.keySet().iterator();
+ while(iter.hasNext())
+ {
+ String key = (String)iter.next();
+ add(key,props.getProperty(key));
+ }
+ }
/**
* @param treePath
@@ -211,25 +259,40 @@
}
return new String[0];
}
+
+ public String getProperty(String key,String def)
+ {
+ return getProperty(getPath(key),def);
+ }
/**
* @param key
* @return
*/
public String getProperty(String key) {
- HashTree subTree = propTree.getTree(getPath(key));
+ return getProperty(getPath(key),null);
+ }
+
+ public String getProperty(String[] keys,String def)
+ {
+ HashTree subTree = propTree.getTree(keys);
if (subTree != null) {
if (subTree.list() == null || subTree.list().size() == 0) {
- return null;
+ return def;
} else if (subTree.list().size() == 1) {
return (String) subTree.getArray()[0];
} else {
- return null;
+ return def;
}
} else {
- return null;
+ return def;
}
}
+
+ public String getProperty(String[] keys)
+ {
+ return getProperty(keys,null);
+ }
/**
* @return
@@ -586,14 +649,14 @@
} else if (equals > -1) {
String key = line[0].substring(0, equals);
if ((equals + 1) < line[0].length())
- tree.add(key, line[0].substring(equals + 1));
+ tree.addRaw(key, line[0].substring(equals + 1));
else
- tree.add(key);
+ tree.addRaw(key);
} else if (line[0].equals("}")) {
return false;
} else if(line[0].length() > 0)
{
- tree.add(line[0]);
+ tree.addRaw(line[0]);
}
}
} catch (IOException e) {
@@ -735,6 +798,21 @@
return getProperty(VALUE);
}
+ /**
+ * Get the value or return the given default value if null
+ * @param def
+ * @return
+ */
+ public String getValueOr(String def)
+ {
+ String v = getValue();
+ if(v == null)
+ {
+ return def;
+ }
+ return v;
+ }
+
public String getValue(String name)
{
ConfigurationTree tree = getTree(getPath(name));
@@ -744,6 +822,16 @@
}
return null;
}
+
+ public String getValue(String key,String def)
+ {
+ String v = getValue(key);
+ if(v == null)
+ {
+ return def;
+ }
+ return v;
+ }
/**
* @param value
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]