1 package org.naftulin.configmgr.content; 2 3 import java.util.LinkedList; 4 import java.util.List; 5 6 import org.naftulin.configmgr.ConfigurationManagerException; 7 import org.naftulin.configmgr.parsers.ConfigEntryParser; 8 import org.naftulin.configmgr.parsers.JndiParserImpl; 9 10 /*** 11 * Represents a jndi entry, with it's key, name-value pairs and parser class. 12 * Intended to mirror master configuration rules for external configuration. 13 * The external configuraton xml is: 14 * <pre> 15 * <jndi key="the key" 16 initialContextFactory="optional contenxt factory" 17 jndiName="jdni name" 18 * 19 * > 20 <param name="key1" value="value1" /> 21 ..... 22 <param name="keyn" value="valuen" /> 23 </jndi> 24 * </pre> 25 * 26 * @author Henry Henry 27 * @since 1.3 28 */ 29 public class JndiRecordImpl extends AbstractRecordImpl { 30 private String initialContextFactory; 31 private String jndiName; 32 private final List<NameValuePairImpl> nameValuePairs = new LinkedList<NameValuePairImpl>(); 33 private ConfigEntryParser parser; 34 35 36 public List<NameValuePairImpl> getNameValuePairs() { 37 return nameValuePairs; 38 } 39 40 /*** 41 * Adds a name-value pair as it is read from the master configuration. 42 * @param nv the name value pair. 43 */ 44 public void addNameValuePair(final NameValuePairImpl nv) { 45 nameValuePairs.add(nv); 46 } 47 48 public String getInitialContextFactory() { 49 return initialContextFactory; 50 } 51 52 public void setInitialContextFactory(final String initialContextFactory) { 53 this.initialContextFactory = initialContextFactory; 54 } 55 56 public String getJndiName() { 57 return jndiName; 58 } 59 60 public void setJndiName(final String jndiName) { 61 this.jndiName = jndiName; 62 } 63 64 65 public synchronized ConfigEntryParser getParser() throws ConfigurationManagerException { 66 if (parser == null) { 67 parser = new JndiParserImpl(jndiName, initialContextFactory, nameValuePairs); 68 } 69 return parser; 70 } 71 72 73 74 /*** 75 * Since it is not a file-based cofiguration, we need to overwrite the method. 76 * @return false 77 */ 78 public boolean isGetUrlForFile() { 79 return false; 80 } 81 82 public String getFileName() { 83 return "jndi name : " + jndiName + " initial Context Factory " + initialContextFactory; 84 } 85 }