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]

Reply via email to