1 package org.naftulin.configmgr.content; 2 3 import org.apache.commons.lang.builder.ToStringBuilder; 4 import org.naftulin.configmgr.ConfigurationManagerException; 5 import org.naftulin.configmgr.parsers.ConfigEntryParser; 6 7 /*** 8 * Abstract Record implementation combines the most common attributes of the record: file name and key. 9 * A record is described in the master configuraion: current implementations include 10 * property record, log4j xml or property and external record, all sub-classed from the 11 * abstract record. 12 * 13 * @author Henry Naftulin 14 * @since 1.0 15 */ 16 public abstract class AbstractRecordImpl { 17 private String fileName; 18 private String key; 19 20 /*** 21 * If configuration is file-base, we need to get the file to be parsed. 22 * Most of the configurations are file-based. 23 * @return true. 24 */ 25 public boolean isGetUrlForFile() { 26 return true; 27 } 28 29 30 /*** 31 * Constructs a record without specifying the key or file name. 32 */ 33 public AbstractRecordImpl() { 34 } 35 36 /*** 37 * Constructs a record with the key and file name specified. 38 * @param key the key associated with the record. 39 * @param fileName the file name associated with the record. 40 */ 41 public AbstractRecordImpl(String key, String fileName) { 42 this.fileName = fileName; 43 this.key = key; 44 } 45 46 /*** 47 * Returns the file name associated with the record. 48 * @return the file name associated with the record. 49 */ 50 public String getFileName() { 51 return fileName; 52 } 53 54 /*** 55 * Sets the file name for the reoord. 56 * @param fileName the file name for the record. 57 */ 58 public void setFileName(final String fileName) { 59 this.fileName = fileName; 60 } 61 62 /*** 63 * Returns the key associated with the record. 64 * @return the key associated with the record. 65 */ 66 public String getKey() { 67 return key; 68 } 69 70 /*** 71 * Sets the key associated with the record. 72 * @param key the key associated with the record. 73 */ 74 public void setKey(final String key) { 75 this.key = key; 76 } 77 78 /*** 79 * Returns the parser that can parse the file to extract the configuration. 80 * @return the parser that can parse the file to extract the configuration. 81 * @throws ConfigurationManagerException if an error occured while instantiating the parser. 82 */ 83 public abstract ConfigEntryParser getParser() throws ConfigurationManagerException; 84 /*** 85 * Returns the string representation of the record. 86 * @return the string representation of the record. 87 */ 88 public String toString() { 89 return new ToStringBuilder(this).append("key", this.key).append( 90 "fileName", this.fileName).toString(); 91 } 92 }