001 package com.khubla.pragmatach.framework.configuration;
002
003 import javax.naming.InitialContext;
004
005 import com.khubla.pragmatach.framework.api.Configuration;
006 import com.khubla.pragmatach.framework.api.PragmatachException;
007
008 /**
009 * @author tome
010 */
011 public abstract class BaseConfiguration implements Configuration {
012 /**
013 * jndi strings start with this
014 */
015 private final static String JAVA = "java:";
016
017 /**
018 * resolve an object
019 */
020 public static Object resolveObject(String value) throws PragmatachException {
021 try {
022 if (null != value) {
023 if (value.startsWith(JAVA)) {
024 final InitialContext initialContext = new InitialContext();
025 return initialContext.lookup(value);
026 } else {
027 return value;
028 }
029 } else {
030 return null;
031 }
032 } catch (final Exception e) {
033 throw new PragmatachException("Exception in resolveObject: '" + value + "'", e);
034 }
035 }
036
037 /**
038 * resolve a string
039 */
040 public static String resolveString(String value) throws PragmatachException {
041 try {
042 if (null != value) {
043 if (value.startsWith(JAVA)) {
044 final InitialContext initialContext = new InitialContext();
045 return (String) initialContext.lookup(value);
046 } else {
047 return value;
048 }
049 } else {
050 return null;
051 }
052 } catch (final Exception e) {
053 throw new PragmatachException("Exception in resolveString: '" + value + "'", e);
054 }
055 }
056 }