Coverage Report - org.apache.commons.configuration.BaseConfigurationXMLReader
 
Classes in this File Line Coverage Branch Coverage Complexity
BaseConfigurationXMLReader
100%
13/13
N/A
1,125
BaseConfigurationXMLReader$SAXConverter
100%
7/7
100%
1/1
1,125
 
 1  
 /*
 2  
  * Licensed to the Apache Software Foundation (ASF) under one or more
 3  
  * contributor license agreements.  See the NOTICE file distributed with
 4  
  * this work for additional information regarding copyright ownership.
 5  
  * The ASF licenses this file to You under the Apache License, Version 2.0
 6  
  * (the "License"); you may not use this file except in compliance with
 7  
  * the License.  You may obtain a copy of the License at
 8  
  *
 9  
  *     http://www.apache.org/licenses/LICENSE-2.0
 10  
  *
 11  
  * Unless required by applicable law or agreed to in writing, software
 12  
  * distributed under the License is distributed on an "AS IS" BASIS,
 13  
  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 14  
  * See the License for the specific language governing permissions and
 15  
  * limitations under the License.
 16  
  */
 17  
 
 18  
 package org.apache.commons.configuration;
 19  
 
 20  
 /**
 21  
  * <p>A specialized SAX2 XML parser that processes configuration objects.</p>
 22  
  *
 23  
  * <p>This class mimics to be a SAX compliant XML parser. It is able to iterate
 24  
  * over the keys in a configuration object and to generate corresponding SAX
 25  
  * events. By registering a <code>ContentHandler</code> at an instance
 26  
  * it is possible to perform XML processing on a configuration object.</p>
 27  
  *
 28  
  * @author <a href="mailto:oliver.heger@t-online.de">Oliver Heger</a>
 29  
  * @version $Id: BaseConfigurationXMLReader.java 439648 2006-09-02 20:42:10Z oheger $
 30  
  */
 31  
 public class BaseConfigurationXMLReader extends ConfigurationXMLReader
 32  
 {
 33  
     /** Stores the actual configuration.*/
 34  
     private Configuration config;
 35  
 
 36  
     /**
 37  
      * Creates a new instance of <code>BaseConfigurationXMLReader</code>.
 38  
      */
 39  
     public BaseConfigurationXMLReader()
 40  
     {
 41  6
         super();
 42  6
     }
 43  
 
 44  
     /**
 45  
      * Creates a new instance of <code>BaseConfigurationXMLReader</code> and
 46  
      * sets the configuration object to be parsed.
 47  
      *
 48  
      * @param conf the configuration to be parsed
 49  
      */
 50  
     public BaseConfigurationXMLReader(Configuration conf)
 51  
     {
 52  5
         this();
 53  5
         setConfiguration(conf);
 54  5
     }
 55  
 
 56  
     /**
 57  
      * Returns the actual configuration to be processed.
 58  
      *
 59  
      * @return the actual configuration
 60  
      */
 61  
     public Configuration getConfiguration()
 62  
     {
 63  7
         return config;
 64  
     }
 65  
 
 66  
     /**
 67  
      * Sets the configuration to be processed.
 68  
      *
 69  
      * @param conf the configuration
 70  
      */
 71  
     public void setConfiguration(Configuration conf)
 72  
     {
 73  5
         config = conf;
 74  5
     }
 75  
 
 76  
     /**
 77  
      * Returns the configuration to be processed.
 78  
      *
 79  
      * @return the actual configuration
 80  
      */
 81  
     public Configuration getParsedConfiguration()
 82  
     {
 83  4
         return getConfiguration();
 84  
     }
 85  
 
 86  
     /**
 87  
      * The main SAX event generation method. This element uses an internal
 88  
      * <code>HierarchicalConfigurationConverter</code> object to iterate over
 89  
      * all keys in the actual configuration and to generate corresponding SAX
 90  
      * events.
 91  
      */
 92  
     protected void processKeys()
 93  
     {
 94  3
         fireElementStart(getRootName(), null);
 95  3
         new SAXConverter().process(getConfiguration());
 96  3
         fireElementEnd(getRootName());
 97  3
     }
 98  
 
 99  
     /**
 100  
      * An internally used helper class to iterate over all configuration keys
 101  
      * ant to generate corresponding SAX events.
 102  
      *
 103  
      */
 104  3
     class SAXConverter extends HierarchicalConfigurationConverter
 105  
     {
 106  
         /**
 107  
          * Callback for the start of an element.
 108  
          *
 109  
          * @param name the element name
 110  
          * @param value the element value
 111  
          */
 112  
         protected void elementStart(String name, Object value)
 113  
         {
 114  60
             fireElementStart(name, null);
 115  60
             if (value != null)
 116  
             {
 117  45
                 fireCharacters(value.toString());
 118  
             }
 119  60
         }
 120  
 
 121  
         /**
 122  
          * Callback for the end of an element.
 123  
          *
 124  
          * @param name the element name
 125  
          */
 126  
         protected void elementEnd(String name)
 127  
         {
 128  60
             fireElementEnd(name);
 129  60
         }
 130  
     }
 131  
 }