Coverage Report - org.naftulin.configmgr.content.MasterRecordImpl
 
Classes in this File Line Coverage Branch Coverage Complexity
MasterRecordImpl
100%
21/21
N/A
0
 
 1  
 package org.naftulin.configmgr.content;
 2  
 
 3  
 import java.util.Collections;
 4  
 import java.util.LinkedList;
 5  
 import java.util.List;
 6  
 
 7  
 import org.naftulin.configmgr.parsers.ConfigEntryParser;
 8  
 import org.naftulin.configmgr.parsers.MasterRecordParser;
 9  
 import org.apache.commons.lang.builder.ToStringBuilder;
 10  
 
 11  
 /**
 12  
  * Parses config.xml file: properties file, log4j xml or log4j properties.
 13  
  * Once a master record is created, parsers are called for each of the entries
 14  
  * to be parsed and stored in config manager. Entry is similar to config manager
 15  
  * entry, yet there is no content (since the entry was not parsed yet).
 16  
  * 
 17  
  * @author Henry Naftulin
 18  
  * @since 1.0
 19  
  */
 20  5
 public class MasterRecordImpl extends AbstractRecordImpl {
 21  5
         private static final ConfigEntryParser PARSER = new MasterRecordParser();
 22  130
         private boolean jmx = true;
 23  130
         private final List<AbstractRecordImpl> records = new LinkedList<AbstractRecordImpl>();
 24  
         
 25  
         /**
 26  
          * Constructs a record without specifying the key or file name.
 27  
          */
 28  
         public MasterRecordImpl() {
 29  125
                 super();
 30  125
         }
 31  
 
 32  
         /**
 33  
          * Constructs a record with the key and file name specified.
 34  
          * @param key the key associated with the record.
 35  
          * @param fileName the file name associated with the record.
 36  
          */
 37  
         public MasterRecordImpl(final String key, final String fileName) {
 38  5
                 super(key, fileName);
 39  5
         }
 40  
 
 41  
         /**
 42  
          * Returns Jmx setting for configuration manager. By defaul the jmx
 43  
          * setting is true, which means that configuration manager will try to
 44  
          * connect to JMX MBean server.
 45  
          * @return returns Jmx setting for configuration manager.
 46  
          */
 47  
         public boolean isJmx() { 
 48  165
                 return jmx;
 49  
         }
 50  
         
 51  
         /**
 52  
          * Sets Jmx setting for configuration manager. When Jmx
 53  
          * setting equals true, configuration manager will try to
 54  
          * connect to JMX MBean server.
 55  
          * @param jmx jmx setting
 56  
          */
 57  
         public void setJmx(boolean jmx) {
 58  85
                 this.jmx = jmx;
 59  85
         }
 60  
         
 61  
         /**
 62  
          * Adds a record to the list of records to be processed. Mirrors the
 63  
          * master file which consists of configuration records. 
 64  
          * @param record the record to be processed, read from the master configuration file
 65  
          */
 66  
         public void addRecord(final AbstractRecordImpl record) {
 67  330
                 records.add(record);
 68  330
         }
 69  
         
 70  
         /**
 71  
          * Returns the unmodifiable list of {@link AbstractRecordImpl records} from the cofiguration file.
 72  
          * @return a list of {@link AbstractRecordImpl records} from the cofiguration file.
 73  
          */
 74  
         public List<AbstractRecordImpl> getRecords() {
 75  140
                 return Collections.unmodifiableList(records);
 76  
         }
 77  
         
 78  
         /**
 79  
          * Returns master record parser. The master record is
 80  
          * processed by configuration manager with a special parser; and is
 81  
          * not re-parsed when transofrmed to configuration manager entry. 
 82  
          * @return Returns master record parser.
 83  
          */
 84  
         public ConfigEntryParser getParser() {
 85  170
                 return PARSER;
 86  
         }
 87  
 
 88  
         /**
 89  
          * Returns the string representation of the master record.
 90  
          * @return the string representation of the master record.
 91  
          */
 92  
         public String toString() {
 93  170
                 return new ToStringBuilder(this)
 94  85
                                 .append("key", this.getKey())
 95  85
                                 .append("jmx", this.isJmx())
 96  85
                                 .append("parser", this.getParser())
 97  85
                                 .append("fileName",this.getFileName())
 98  85
                                 .append("records", this.records).toString();
 99  
         }
 100  
 
 101  
 }