Coverage report

| %line | %branch
--- | --- | ---
org.apache.commons.configuration.beanutils.ConfigurationDynaClass |
89% |
100% |

1 |  |
     /*
2 |  |
      * Copyright 2001-2004 The Apache Software Foundation.
3 |  |
      *
4 |  |
      * Licensed under the Apache License, Version 2.0 (the "License")
5 |  |
      * you may not use this file except in compliance with the License.
6 |  |
      * You may obtain a copy of the License at
7 |  |
      *
8 |  |
      *     http://www.apache.org/licenses/LICENSE-2.0
9 |  |
      *
10 |  |
      * Unless required by applicable law or agreed to in writing, software
11 |  |
      * distributed under the License is distributed on an "AS IS" BASIS,
12 |  |
      * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 |  |
      * See the License for the specific language governing permissions and
14 |  |
      * limitations under the License.
15 |  |
      */
16 |  |
17 |  |
     package org.apache.commons.configuration.beanutils;
18 |  |
19 |  |
     import java.util.Iterator;
20 |  |
     import java.util.ArrayList;
21 |  |
     import java.util.List;
22 |  |
23 |  |
     import org.apache.commons.beanutils.DynaBean;
24 |  |
     import org.apache.commons.beanutils.DynaClass;
25 |  |
     import org.apache.commons.beanutils.DynaProperty;
26 |  |
     import org.apache.commons.configuration.Configuration;
27 |  |
     import org.apache.commons.logging.Log;
28 |  |
     import org.apache.commons.logging.LogFactory;
29 |  |
30 |  |
     /**
31 |  |
      * The <tt>ConfigurationDynaClass</tt> dynamically determines properties for
32 |  |
      * a <code>ConfigurationDynaBean</code> from a wrapped configuration-collection
33 |  |
      * {@link org.apache.commons.configuration.Configuration} instance.
34 |  |
      *
35 |  |
      * @author <a href="mailto:ricardo.gladwell@btinternet.com">Ricardo Gladwell</a>
36 |  |
      * @version $Revision: 1.4 $, $Date: 2004/09/21 17:49:39 $
37 |  |
      * @since 1.0-rc1
38 |  |
      */
39 |  |
     public class ConfigurationDynaClass implements DynaClass
40 |  |
     {
41 | 10 |
         private final static Log log = LogFactory.getLog(ConfigurationDynaClass.class);
42 |  |
43 |  |
         Configuration configuration;
44 |  |
45 |  |
         /**
46 |  |
          * Construct an instance of a <code>ConfigurationDynaClass</code>
47 |  |
          * wrapping the specified <code>Configuration</code> instance.
48 |  |
          * @param configuration <code>Configuration</code> instance.
49 |  |
          */
50 |  |
         public ConfigurationDynaClass(Configuration configuration)
51 |  |
         {
52 | 11 |
             super();
53 | 11 |
             if (log.isTraceEnabled()) log.trace("ConfigurationDynaClass(" + configuration + ")");
54 | 11 |
             this.configuration = configuration;
55 | 11 |
         }
56 |  |
57 |  |
         /**
58 |  |
          * @see org.apache.commons.beanutils.DynaClass#getDynaProperty(java.lang.String)
59 |  |
          */
60 |  |
         public DynaProperty getDynaProperty(String name)
61 |  |
         {
62 | 36 |
             if (log.isTraceEnabled())
63 |  |
             {
64 | 0 |
                 log.trace("getDynaProperty(" + name + ")");
65 |  |
             }
66 |  |
67 | 36 |
             if (name == null)
68 |  |
             {
69 | 1 |
                 throw new IllegalArgumentException("No such property name=[" + name + "]");
70 |  |
             }
71 |  |
72 | 35 |
             Object value = configuration.getProperty(name);
73 | 35 |
             if (value == null)
74 |  |
             {
75 | 1 |
                 return null;
76 |  |
             }
77 |  |
             else
78 |  |
             {
79 | 34 |
                 Class type = value.getClass();
80 |  |
81 | 34 |
                 if (type == Byte.class)
82 |  |
                 {
83 | 1 |
                     type = Byte.TYPE;
84 |  |
                 }
85 | 34 |
                 if (type == Character.class)
86 |  |
                 {
87 | 1 |
                     type = Character.TYPE;
88 |  |
                 }
89 | 33 |
                 else if (type == Boolean.class)
90 |  |
                 {
91 | 4 |
                     type = Boolean.TYPE;
92 |  |
                 }
93 | 29 |
                 else if (type == Double.class)
94 |  |
                 {
95 | 2 |
                     type = Double.TYPE;
96 |  |
                 }
97 | 27 |
                 else if (type == Float.class)
98 |  |
                 {
99 | 2 |
                     type = Float.TYPE;
100 |  |
                 }
101 | 25 |
                 else if (type == Integer.class)
102 |  |
                 {
103 | 3 |
                     type = Integer.TYPE;
104 |  |
                 }
105 | 22 |
                 else if (type == Long.class)
106 |  |
                 {
107 | 2 |
                     type = Long.TYPE;
108 |  |
                 }
109 | 20 |
                 else if (type == Short.class)
110 |  |
                 {
111 | 2 |
                     type = Short.TYPE;
112 |  |
                 }
113 |  |
114 | 34 |
                 return new DynaProperty(name, type);
115 |  |
             }
116 |  |
         }
117 |  |
118 |  |
         /**
119 |  |
          * @see org.apache.commons.beanutils.DynaClass#getDynaProperties()
120 |  |
          */
121 |  |
         public DynaProperty[] getDynaProperties()
122 |  |
         {
123 | 1 |
             if (log.isTraceEnabled())
124 |  |
             {
125 | 0 |
                 log.trace("getDynaProperties()");
126 |  |
             }
127 |  |
128 | 1 |
             Iterator keys = configuration.getKeys();
129 | 1 |
             List properties = new ArrayList();
130 | 27 |
             while (keys.hasNext())
131 |  |
             {
132 | 26 |
                 String key = (String) keys.next();
133 | 26 |
                 DynaProperty property = getDynaProperty(key);
134 | 26 |
                 properties.add(property);
135 |  |
             }
136 |  |
137 | 1 |
             DynaProperty[] propertyArray = new DynaProperty[properties.size()];
138 | 1 |
             properties.toArray(propertyArray);
139 | 1 |
             if (log.isDebugEnabled())
140 |  |
             {
141 | 0 |
                 log.debug("Found " + properties.size() + " properties.");
142 |  |
             }
143 |  |
144 | 1 |
             return propertyArray;
145 |  |
         }
146 |  |
147 |  |
         /**
148 |  |
          * @see org.apache.commons.beanutils.DynaClass#getName()
149 |  |
          */
150 |  |
         public String getName()
151 |  |
         {
152 | 0 |
             return ConfigurationDynaBean.class.getName();
153 |  |
         }
154 |  |
155 |  |
         /**
156 |  |
          * @see org.apache.commons.beanutils.DynaClass#newInstance()
157 |  |
          */
158 |  |
         public DynaBean newInstance() throws IllegalAccessException, InstantiationException
159 |  |
         {
160 | 0 |
             return new ConfigurationDynaBean(configuration);
161 |  |
         }
162 |  |
163 |  |
     }

This report is generated by jcoverage, Maven and Maven JCoverage Plugin.