Author: arminw
Date: Tue May 15 15:49:21 2007
New Revision: 538352

URL: http://svn.apache.org/viewvc?view=rev&rev=538352
Log:
add support for shortcut name mapping

Modified:
    
db/ojb/branches/OJB_1_0_RELEASE/src/java/org/apache/ojb/broker/util/factory/ConfigurableFactory.java

Modified: 
db/ojb/branches/OJB_1_0_RELEASE/src/java/org/apache/ojb/broker/util/factory/ConfigurableFactory.java
URL: 
http://svn.apache.org/viewvc/db/ojb/branches/OJB_1_0_RELEASE/src/java/org/apache/ojb/broker/util/factory/ConfigurableFactory.java?view=diff&rev=538352&r1=538351&r2=538352
==============================================================================
--- 
db/ojb/branches/OJB_1_0_RELEASE/src/java/org/apache/ojb/broker/util/factory/ConfigurableFactory.java
 (original)
+++ 
db/ojb/branches/OJB_1_0_RELEASE/src/java/org/apache/ojb/broker/util/factory/ConfigurableFactory.java
 Tue May 15 15:49:21 2007
@@ -18,6 +18,7 @@
 import org.apache.commons.lang.SystemUtils;
 import org.apache.ojb.broker.PersistenceBrokerException;
 import org.apache.ojb.broker.util.ClassHelper;
+import org.apache.ojb.broker.util.ShortcutMapper;
 import org.apache.ojb.broker.util.configuration.Configurable;
 import org.apache.ojb.broker.util.configuration.Configuration;
 import org.apache.ojb.broker.util.configuration.ConfigurationException;
@@ -64,6 +65,15 @@
     protected abstract String getConfigurationKey();
 
     /**
+     * Overrride in factory implementation class if needed.
+     * Returns the base interface of the object to instantiate.
+     */
+    protected Class getBaseInterface()
+    {
+        return null;
+    }
+
+    /**
      * @see 
org.apache.ojb.broker.util.configuration.Configurable#configure(Configuration)
      * looks up the the key getConfigurationKey() in the OjbConfiguration
      * to determine the Class to be served.
@@ -75,7 +85,12 @@
             getLogger().error("ConfigurableFactory configuration key is 
'null'");
             throw new PersistenceBrokerException("ConfigurableFactory 
configuration key is 'null'");
         }
-        Class clazz = pConfig.getClass(getConfigurationKey(), null);
+        Class clazz = null;
+        if(getBaseInterface() != null)
+        {
+            clazz = 
ShortcutMapper.resolve(pConfig.getString(getConfigurationKey(), null), 
getBaseInterface());
+        }
+        if(clazz == null) clazz = pConfig.getClass(getConfigurationKey(), 
null);
         if (clazz == null)
         {
             getLogger().error("ConfigurableFactory configuration key class for 
key'" + getConfigurationKey() + "' does not exist.");



---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to