henning     2003/03/11 08:38:44

  Modified:    src/java/org/apache/turbine/services/assemblerbroker
                        AssemblerBrokerService.java
                        TurbineAssemblerBroker.java
                        TurbineAssemblerBrokerService.java
  Log:
  - Some Java doc cleanups and additions
  - Use Interface types and Collection objects in the service
  - replace loops with iterators, reworked getAssembler() logic
  
  Revision  Changes    Path
  1.5       +38 -12    
jakarta-turbine-2/src/java/org/apache/turbine/services/assemblerbroker/AssemblerBrokerService.java
  
  Index: AssemblerBrokerService.java
  ===================================================================
  RCS file: 
/home/cvs/jakarta-turbine-2/src/java/org/apache/turbine/services/assemblerbroker/AssemblerBrokerService.java,v
  retrieving revision 1.4
  retrieving revision 1.5
  diff -u -r1.4 -r1.5
  --- AssemblerBrokerService.java       9 Mar 2003 03:06:24 -0000       1.4
  +++ AssemblerBrokerService.java       11 Mar 2003 16:38:44 -0000      1.5
  @@ -64,23 +64,49 @@
    * See TurbineAssemblerBrokerService for more info.
    *
    * @author <a href="mailto:[EMAIL PROTECTED]">Leon Messerschmidt</a>
  + * @author <a href="mailto:[EMAIL PROTECTED]">Henning P. Schmiedehausen</a>
    * @version $Id$
    */
  -public interface AssemblerBrokerService extends Service
  +public interface AssemblerBrokerService
  +        extends Service
   {
  -    static final String SERVICE_NAME = "AssemblerBrokerService";
  +    /** Name of the Service */
  +    String SERVICE_NAME = "AssemblerBrokerService";
   
  -    /**Predefined types for Turbine built-in assemblers */
  -    static final String ACTION_TYPE = "action";
  -    static final String SCREEN_TYPE = "screen";
  -    static final String NAVIGATION_TYPE = "navigation";
  -    static final String LAYOUT_TYPE = "layout";
  -    static final String PAGE_TYPE = "page";
  -    static final String SCHEDULEDJOB_TYPE = "scheduledjob";
  +    /** Predefined types for Turbine built-in assemblers: Actions  */
  +    String ACTION_TYPE = "action";
   
  -    /** Register an AssemblerFactory class for a given type*/
  +    /** Predefined types for Turbine built-in assemblers: Screens  */
  +    String SCREEN_TYPE = "screen";
  +
  +    /** Predefined types for Turbine built-in assemblers: Navigations  */
  +    String NAVIGATION_TYPE = "navigation";
  +
  +    /** Predefined types for Turbine built-in assemblers: Layouts  */
  +    String LAYOUT_TYPE = "layout";
  +
  +    /** Predefined types for Turbine built-in assemblers: Pages  */
  +    String PAGE_TYPE = "page";
  +
  +    /** Predefined types for Turbine built-in assemblers: Scheduler Jobs  */
  +    String SCHEDULEDJOB_TYPE = "scheduledjob";
  +
  +    /** 
  +     * Register an AssemblerFactory class for a given type
  +     *
  +     * @param type Type of the Factory
  +     * @param factory The factory object
  +     */
       void registerFactory(String type, AssemblerFactory factory);
   
  -    /** Attempts to load an Assembler of a type with a given name*/
  +    /** 
  +     * Attempts to load an Assembler of a type with a given name
  +     * 
  +     * @param type The Type of the Assembler
  +     * @param name The Name of the Assembler
  +     * @return An Assembler object for the requested name and type
  +     *
  +     * @throws TurbineException Something went wrong while looking for the Assembler
  +     */
       Assembler getAssembler(String type, String name) throws TurbineException;
   }
  
  
  
  1.3       +4 -4      
jakarta-turbine-2/src/java/org/apache/turbine/services/assemblerbroker/TurbineAssemblerBroker.java
  
  Index: TurbineAssemblerBroker.java
  ===================================================================
  RCS file: 
/home/cvs/jakarta-turbine-2/src/java/org/apache/turbine/services/assemblerbroker/TurbineAssemblerBroker.java,v
  retrieving revision 1.2
  retrieving revision 1.3
  diff -u -r1.2 -r1.3
  --- TurbineAssemblerBroker.java       9 Mar 2003 03:06:24 -0000       1.2
  +++ TurbineAssemblerBroker.java       11 Mar 2003 16:38:44 -0000      1.3
  @@ -68,6 +68,7 @@
    * See TurbineAssemblerBrokerService for more info.
    *
    * @author <a href="mailto:[EMAIL PROTECTED]">Leon Messerschmidt</a>
  + * @author <a href="mailto:[EMAIL PROTECTED]">Henning P. Schmiedehausen</a>
    * @version $Id$
    */
   public abstract class TurbineAssemblerBroker
  @@ -76,7 +77,7 @@
        * Utility method for accessing the service
        * implementation
        *
  -     * @return a VelocityService implementation instance
  +     * @return An AssemblerBroker implementation instance
        */
       public static AssemblerBrokerService getService()
       {
  @@ -105,8 +106,7 @@
        *
        * @throws TurbineException If a problem locating the Assember occured.
        */
  -    public static Assembler getAssembler(String type,
  -        String name)
  +    public static Assembler getAssembler(String type, String name)
           throws TurbineException
       {
           return getService().getAssembler(type, name);
  
  
  
  1.7       +34 -32    
jakarta-turbine-2/src/java/org/apache/turbine/services/assemblerbroker/TurbineAssemblerBrokerService.java
  
  Index: TurbineAssemblerBrokerService.java
  ===================================================================
  RCS file: 
/home/cvs/jakarta-turbine-2/src/java/org/apache/turbine/services/assemblerbroker/TurbineAssemblerBrokerService.java,v
  retrieving revision 1.6
  retrieving revision 1.7
  diff -u -r1.6 -r1.7
  --- TurbineAssemblerBrokerService.java        9 Mar 2003 03:06:24 -0000       1.6
  +++ TurbineAssemblerBrokerService.java        11 Mar 2003 16:38:44 -0000      1.7
  @@ -54,10 +54,15 @@
    * <http://www.apache.org/>.
    */
   
  -import java.util.Hashtable;
  +import java.util.HashMap;
  +import java.util.Iterator;
  +import java.util.List;
  +import java.util.Map;
   import java.util.Vector;
  +
   import org.apache.commons.logging.Log;
   import org.apache.commons.logging.LogFactory;
  +
   import org.apache.turbine.modules.Assembler;
   import org.apache.turbine.services.InitializationException;
   import org.apache.turbine.services.TurbineBaseService;
  @@ -71,19 +76,19 @@
    * by adding them to the TurbineResources.properties file.
    *
    * @author <a href="mailto:[EMAIL PROTECTED]">Leon Messerschmidt</a>
  + * @author <a href="mailto:[EMAIL PROTECTED]">Henning P. Schmiedehausen</a>
    * @version $Id$
    */
   public class TurbineAssemblerBrokerService
  -    extends TurbineBaseService
  -    implements AssemblerBrokerService
  -
  +        extends TurbineBaseService
  +        implements AssemblerBrokerService
   {
  -    /** the log */
  +    /** Logging */
       private static Log log
               = LogFactory.getLog(TurbineAssemblerBrokerService.class);
   
  -    /** A structure that holds the registered AssemblerFactories*/
  -    private Hashtable factories = null;
  +    /** A structure that holds the registered AssemblerFactories */
  +    private Map factories = null;
   
       /**
        * Get a list of AssemblerFactories of a certain type
  @@ -91,13 +96,13 @@
        * @param type type of Assembler
        * @return list of AssemblerFactories
        */
  -    private Vector getFactoryGroup(String type)
  +    private List getFactoryGroup(String type)
       {
           if (!factories.containsKey(type))
           {
               factories.put(type, new Vector());
           }
  -        return (Vector) factories.get(type);
  +        return (List) factories.get(type);
       }
   
       /**
  @@ -109,17 +114,16 @@
       private void registerFactories(String type)
           throws TurbineException
       {
  -        log.debug("registerFactories: key = " + type);
  -
  -        String[] names = getConfiguration().getStringArray(type);
  +        List names = getConfiguration().getVector(type);
   
  -        log.info("Registering " + names.length + " " + type + " factories.");
  +        log.info("Registering " + names.size() + " " + type + " factories.");
   
  -        for (int i = 0; i < names.length; i++)
  +        for (Iterator it = names.iterator(); it.hasNext(); )
           {
  +            String factory = (String) it.next();
               try
               {
  -                Object o = Class.forName(names[i]).newInstance();
  +                Object o = Class.forName(factory).newInstance();
                   registerFactory(type, (AssemblerFactory) o);
               }
               // these must be passed to the VM
  @@ -136,20 +140,21 @@
               catch (Throwable t)
               {
                   throw new TurbineException("Failed registering " + type
  -                        + " factories", t);
  +                        + " factory: " + factory, t);
               }
           }
       }
   
       /**
        * Initializes the AssemblerBroker and loads the AssemblerFactory
  -     * classes registerd in TurbineResources.Properties.
  +     * classes registered in TurbineResources.Properties.
        *
        * @throws InitializationException
        */
  -    public void init() throws InitializationException
  +    public void init()
  +        throws InitializationException
       {
  -        factories = new Hashtable();
  +        factories = new HashMap();
           try
           {
               registerFactories(AssemblerBrokerService.ACTION_TYPE);
  @@ -192,27 +197,24 @@
       public Assembler getAssembler(String type, String name)
           throws TurbineException
       {
  -        Vector facs = getFactoryGroup(type);
  +        List facs = getFactoryGroup(type);
   
  -        for (int i = 0; i < facs.size(); i++)
  +        Assembler assembler = null;
  +        for (Iterator it = facs.iterator(); (assembler == null) && it.hasNext();)
           {
  -            AssemblerFactory fac = (AssemblerFactory) facs.get(i);
  -            Assembler assembler = null;
  +            AssemblerFactory fac = (AssemblerFactory) it.next();
               try
               {
                   assembler = fac.getAssembler(name);
               }
               catch (Exception e)
               {
  -                throw new TurbineException("Failed to find the " + type
  -                        + " named " + name, e);
  -            }
  -
  -            if (assembler != null)
  -            {
  -                return assembler;
  +                throw new TurbineException("Failed to load an assembler for "
  +                                           + name + " from the " 
  +                                           + type + " factory "
  +                                           + fac.getClass().getName(), e);
               }
           }
  -        return null;
  +        return assembler;
       }
   }
  
  
  

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

Reply via email to