dgraham     2003/07/07 18:03:43

  Modified:    src/share/org/apache/struts/tiles/xmlDefinition
                        I18nFactorySet.java
  Log:
  Formatted code, removed deprecated constant.
  
  Revision  Changes    Path
  1.8       +411 -386  
jakarta-struts/src/share/org/apache/struts/tiles/xmlDefinition/I18nFactorySet.java
  
  Index: I18nFactorySet.java
  ===================================================================
  RCS file: 
/home/cvs/jakarta-struts/src/share/org/apache/struts/tiles/xmlDefinition/I18nFactorySet.java,v
  retrieving revision 1.7
  retrieving revision 1.8
  diff -u -r1.7 -r1.8
  --- I18nFactorySet.java       16 Mar 2003 16:02:11 -0000      1.7
  +++ I18nFactorySet.java       8 Jul 2003 01:03:43 -0000       1.8
  @@ -7,7 +7,7 @@
    *
    * The Apache Software License, Version 1.1
    *
  - * Copyright (c) 1999-2002 The Apache Software Foundation.  All rights
  + * Copyright (c) 1999-2003 The Apache Software Foundation.  All rights
    * reserved.
    *
    * Redistribution and use in source and binary forms, with or without
  @@ -59,31 +59,29 @@
    *
    */
   
  -
   package org.apache.struts.tiles.xmlDefinition;
   
  -import org.apache.struts.tiles.DefinitionsFactoryException;
  -import org.apache.struts.tiles.FactoryNotFoundException;
  -import org.apache.struts.tiles.DefinitionsUtil;
  -import org.apache.commons.logging.Log;
  -import org.apache.commons.logging.LogFactory;
  -
  -import javax.servlet.ServletRequest;
  -import javax.servlet.ServletContext;
  -import javax.servlet.http.HttpSession;
  -import javax.servlet.http.HttpServletRequest;
  -
  -import java.util.Map;
  -import java.util.Locale;
  -import java.util.List;
  +import java.io.FileNotFoundException;
  +import java.io.IOException;
  +import java.io.InputStream;
   import java.util.ArrayList;
   import java.util.HashMap;
   import java.util.Iterator;
  +import java.util.List;
  +import java.util.Locale;
  +import java.util.Map;
   import java.util.StringTokenizer;
  -import java.io.InputStream;
  -import java.io.IOException;
  -import java.io.FileNotFoundException;
   
  +import javax.servlet.ServletContext;
  +import javax.servlet.ServletRequest;
  +import javax.servlet.http.HttpServletRequest;
  +import javax.servlet.http.HttpSession;
  +
  +import org.apache.commons.logging.Log;
  +import org.apache.commons.logging.LogFactory;
  +import org.apache.struts.tiles.DefinitionsFactoryException;
  +import org.apache.struts.tiles.DefinitionsUtil;
  +import org.apache.struts.tiles.FactoryNotFoundException;
   import org.xml.sax.SAXException;
   
   /**
  @@ -97,68 +95,93 @@
    *
    * A definition factory file is loaded using main filename extended with locale code
    * (ex : <code>templateDefinitions_fr.xml</code>). If no file is found under this 
name, use default file.
  -*/
  -public class I18nFactorySet extends FactorySet
  -{
  -    /** Commons Logging instance. */
  -  protected static Log log = LogFactory.getLog(I18nFactorySet.class);
  -
  -    /** Config file parameter name.
  -     * @deprecated use DEFINITIONS_CONFIG_PARAMETER_NAME
  -     */
  -  public static final String INSTANCES_CONFIG_PARAMETER_NAME = "instances-config";
  -
  -    /** Default name */
  -  //public static final String DEFAULT_DEFINITIONS_FILE_NAME = 
"/WEB-INF/componentDefinitions.xml";
  -    /** Config file parameter name. */
  -  public static final String DEFINITIONS_CONFIG_PARAMETER_NAME = 
"definitions-config";
  -    /** Config file parameter name. */
  -  public static final String PARSER_DETAILS_PARAMETER_NAME = 
"definitions-parser-details";
  -    /** Config file parameter name. */
  -  public static final String PARSER_VALIDATE_PARAMETER_NAME = 
"definitions-parser-validate";
  -
  -    /** Possible definition filenames. */
  -  public static final String DEFAULT_DEFINITION_FILENAMES[] = {
  -                      "/WEB-INF/tileDefinitions.xml",
  -                      "/WEB-INF/componentDefinitions.xml",
  -                      "/WEB-INF/instanceDefinitions.xml"};
  -    /** Default factory. */
  -  protected DefinitionsFactory defaultFactory;
  -    /** Xml parser used.
  -     *  Attribute is transient to allow serialization. In this implementaiton,
  -     *  xmlParser is created each time we need it ;-(.
  -     */
  -  protected transient XmlParser xmlParser;
  -    /** Do we want validating parser. Default is <code>false</code>.
  -     *  Can be set from servlet config file.
  -     */
  -  protected boolean isValidatingParser = false;
  -    /** Parser detail level. Default is 0.
  -     *  Can be set from servlet config file.
  + */
  +public class I18nFactorySet extends FactorySet {
  +
  +    /** 
  +     * Commons Logging instance. 
        */
  -  protected int parserDetailLevel = 0;
  +    protected static Log log = LogFactory.getLog(I18nFactorySet.class);
  +
  +    /** 
  +     * Config file parameter name. 
  +     */
  +    public static final String DEFINITIONS_CONFIG_PARAMETER_NAME =
  +        "definitions-config";
  +
  +    /** 
  +     * Config file parameter name. 
  +     */
  +    public static final String PARSER_DETAILS_PARAMETER_NAME =
  +        "definitions-parser-details";
  +
  +    /** 
  +     * Config file parameter name. 
  +     */
  +    public static final String PARSER_VALIDATE_PARAMETER_NAME =
  +        "definitions-parser-validate";
  +
  +    /** 
  +     * Possible definition filenames. 
  +     */
  +    public static final String DEFAULT_DEFINITION_FILENAMES[] =
  +        {
  +            "/WEB-INF/tileDefinitions.xml",
  +            "/WEB-INF/componentDefinitions.xml",
  +            "/WEB-INF/instanceDefinitions.xml" };
   
       /**
        * Maximum length of one branch of the resource search path tree.
        * Used in getBundle().
        */
  -  private static final int MAX_BUNDLES_SEARCHED = 2;
  -    /** Default filenames extension. */
  -  public static final String FILENAME_EXTENSION = ".xml";
  -
  -    /** Names of files containing instances descriptions. */
  -  private List filenames;
  -    /** Collection of already loaded definitions set, referenced by their suffix. */
  -  private Map loaded;
  +    private static final int MAX_BUNDLES_SEARCHED = 2;
  +
  +    /** 
  +     * Default filenames extension. 
  +     */
  +    public static final String FILENAME_EXTENSION = ".xml";
  +
  +    /** 
  +     * Default factory. 
  +     */
  +    protected DefinitionsFactory defaultFactory = null;
  +
  +    /** 
  +     * XML parser used.
  +     * Attribute is transient to allow serialization. In this implementaiton,
  +     * xmlParser is created each time we need it ;-(.
  +     */
  +    protected transient XmlParser xmlParser;
  +
  +    /** 
  +     * Do we want validating parser. Default is <code>false</code>.
  +     * Can be set from servlet config file.
  +     */
  +    protected boolean isValidatingParser = false;
  +
  +    /** 
  +     * Parser detail level. Default is 0.
  +     * Can be set from servlet config file.
  +     */
  +    protected int parserDetailLevel = 0;
   
  +    /** 
  +     * Names of files containing instances descriptions. 
  +     */
  +    private List filenames = null;
  +
  +    /** 
  +     * Collection of already loaded definitions set, referenced by their suffix. 
  +     */
  +    private Map loaded = null;
   
       /**
        * Parameterless Constructor.
        * Method [EMAIL PROTECTED] #initFactory} must be called prior to any use of 
created factory.
        */
  -  public I18nFactorySet()
  -  {
  -  }
  +    public I18nFactorySet() {
  +        super();
  +    }
   
       /**
        * Constructor.
  @@ -167,11 +190,11 @@
        * @param properties Map containing all properties.
        * @throws FactoryNotFoundException Can't find factory configuration file.
        */
  -  public I18nFactorySet(ServletContext servletContext, Map properties )
  -         throws DefinitionsFactoryException
  -  {
  -  initFactory( servletContext, properties);
  -  }
  +    public I18nFactorySet(ServletContext servletContext, Map properties)
  +        throws DefinitionsFactoryException {
  +
  +        initFactory(servletContext, properties);
  +    }
   
       /**
        * Initialization method.
  @@ -183,67 +206,61 @@
        * more properties than requested.
        * @throws DefinitionsFactoryException An error occur during initialization.
        */
  -  public void initFactory(ServletContext servletContext, Map properties )
  -         throws DefinitionsFactoryException
  -  {
  -    // Set some property values
  -  String value = (String)properties.get(PARSER_VALIDATE_PARAMETER_NAME);
  -  if( value != null )
  -    {
  -    isValidatingParser = Boolean.valueOf( value ).booleanValue();
  -    }  // end if
  -  value = (String)properties.get(PARSER_DETAILS_PARAMETER_NAME);
  -  if( value != null )
  -    {
  -    try {
  -      parserDetailLevel = Integer.valueOf( value ).intValue();
  -      }
  -     catch( NumberFormatException ex )
  -      {
  -      log.error( "Bad format for parameter '"
  +    public void initFactory(ServletContext servletContext, Map properties)
  +        throws DefinitionsFactoryException {
  +
  +        // Set some property values
  +        String value = (String) properties.get(PARSER_VALIDATE_PARAMETER_NAME);
  +        if (value != null) {
  +            isValidatingParser = Boolean.valueOf(value).booleanValue();
  +        }
  +
  +        value = (String) properties.get(PARSER_DETAILS_PARAMETER_NAME);
  +        if (value != null) {
  +            try {
  +                parserDetailLevel = Integer.valueOf(value).intValue();
  +
  +            } catch (NumberFormatException ex) {
  +                log.error(
  +                    "Bad format for parameter '"
                           + PARSER_DETAILS_PARAMETER_NAME
                           + "'. Integer expected.");
  -      }
  -    }  // end if
  +            }
  +        }
   
  -    // init factory withappropriate configuration file
  -    // Try to use provided filename, if any.
  -    // If no filename are provided, try to use default ones.
  -  String filename = (String)properties.get(DEFINITIONS_CONFIG_PARAMETER_NAME);
  -  if( filename != null )
  -    { // Use provided filename
  -    try
  -      {
  -      initFactory( servletContext, filename );
  -          if(log.isDebugEnabled())
  -            log.debug( "Factory initialized from file '" + filename + "'." );
  -      }
  -     catch( FileNotFoundException ex )
  -        { // A filename is specified, throw appropriate error.
  -          log.error( ex.getMessage() + " : Can't find file '" +filename + "'" );
  -          throw new FactoryNotFoundException( ex.getMessage() + " : Can't find file 
'" +filename + "'" ) ;
  -        } // end catch
  -      }
  -     else
  -      { // try each default file names
  -      for( int i=0; i<DEFAULT_DEFINITION_FILENAMES.length; i++ )
  -        {
  -        filename = DEFAULT_DEFINITION_FILENAMES[i];
  -        try
  -          {
  -          initFactory( servletContext, filename );
  -          if(log.isInfoEnabled())
  -            {
  -            log.info( "Factory initialized from file '" + filename + "'." );
  -            }
  -          }
  -         catch( FileNotFoundException ex )
  -          { // Do nothing
  -          } // end catch
  -        } // end loop
  -      } // end if
  +        // init factory withappropriate configuration file
  +        // Try to use provided filename, if any.
  +        // If no filename are provided, try to use default ones.
  +        String filename = (String) 
properties.get(DEFINITIONS_CONFIG_PARAMETER_NAME);
  +        if (filename != null) { // Use provided filename
  +            try {
  +                initFactory(servletContext, filename);
  +                if (log.isDebugEnabled()) {
  +                    log.debug("Factory initialized from file '" + filename + "'.");
  +                }
  +
  +            } catch (FileNotFoundException ex) { // A filename is specified, throw 
appropriate error.
  +                log.error(ex.getMessage() + " : Can't find file '" + filename + 
"'");
  +                throw new FactoryNotFoundException(
  +                    ex.getMessage() + " : Can't find file '" + filename + "'");
  +            }
   
  -   }
  +        } else { // try each default file names
  +            for (int i = 0; i < DEFAULT_DEFINITION_FILENAMES.length; i++) {
  +                filename = DEFAULT_DEFINITION_FILENAMES[i];
  +                try {
  +                    initFactory(servletContext, filename);
  +                    if (log.isInfoEnabled()) {
  +                        log.info(
  +                            "Factory initialized from file '" + filename + "'.");
  +                    }
  +                } catch (FileNotFoundException ex) {
  +                    // Do nothing
  +                }
  +            }
  +        }
  +
  +    }
   
       /**
        * Initialization method.
  @@ -254,154 +271,162 @@
        * @param proposedFilename File names, comma separated, to use as  base file 
names.
        * @throws DefinitionsFactoryException An error occur during initialization.
        */
  -  protected void initFactory(ServletContext servletContext, String proposedFilename 
)
  -         throws DefinitionsFactoryException, FileNotFoundException
  -  {
  -      // Init list of filenames
  -    StringTokenizer tokenizer = new StringTokenizer( proposedFilename, "," );
  -    this.filenames = new ArrayList(tokenizer.countTokens());
  -    while( tokenizer.hasMoreTokens() )
  -      {
  -      this.filenames.add(tokenizer.nextToken().trim());
  -      }
  -
  -    loaded = new HashMap();
  -    defaultFactory = createDefaultFactory( servletContext );
  -    if(log.isDebugEnabled())
  -      log.debug( "default factory:" + defaultFactory );
  -  }
  -
  -  /**
  -   * Get default factory.
  -   * @return Default factory
  -   */
  -  protected DefinitionsFactory getDefaultFactory()
  -  {
  -  return defaultFactory;
  -  }
  -
  -   /**
  -    * Create default factory .
  -   * Create InstancesMapper for specified Locale.
  -   * If creation failes, use default mapper and log error message.
  -   * @param servletContext Current servlet context. Used to open file.
  -   * @return Created default definition factory.
  -   * @throws DefinitionsFactoryException If an error occur while creating factory.
  -   * @throws FileNotFoundException if factory can't be loaded from filenames.
  -    */
  -  protected DefinitionsFactory createDefaultFactory(ServletContext servletContext)
  -    throws DefinitionsFactoryException, FileNotFoundException
  -    {
  -    XmlDefinitionsSet rootXmlConfig = parseXmlFiles( servletContext, "", null );
  -    if( rootXmlConfig == null )
  -      throw new FileNotFoundException();
  -
  -    rootXmlConfig.resolveInheritances();
  -
  -    if(log.isDebugEnabled())
  -      log.debug( rootXmlConfig );
  -
  -    DefinitionsFactory factory = new DefinitionsFactory( rootXmlConfig );
  -    if(log.isDebugEnabled())
  -      log.debug( "factory loaded : " + factory );
  -
  -    return factory;
  -    }
  -
  -  /**
  -   * Extract key that will be used to get the sub factory.
  -   * @param name Name of requested definition
  -   * @param request Current servlet request.
  -   * @param servletContext Current servlet context.
  -   * @return the key or <code>null</code> if not found.
  -   */
  -  protected Object getDefinitionsFactoryKey(String name, ServletRequest request, 
ServletContext servletContext)
  -  {
  -  Locale locale = null;
  -  try
  -    {
  -    HttpSession session = ((HttpServletRequest)request).getSession(false);
  -    if (session != null)
  -      locale = (Locale)session.getAttribute(DefinitionsUtil.LOCALE_KEY);
  -    }
  -   catch( ClassCastException ex )
  -    { //
  -    log.error( "I18nFactorySet.getDefinitionsFactoryKey" );
  -    ex.printStackTrace();
  -    }
  -
  -  return locale;
  -  }
  -
  -   /**
  -    * Create a factory for specified key.
  -   * If creation failes, return default factory and log an error message.
  -   * @param key The key.
  -   * @param request Servlet request.
  -   * @param servletContext Servlet context.
  -   * @return Definition factory for specified key.
  -   * @throws DefinitionsFactoryException If an error occur while creating factory.
  -    */
  -  protected DefinitionsFactory createFactory(Object key, ServletRequest request, 
ServletContext servletContext)
  -    throws DefinitionsFactoryException
  -    {
  -    if( key == null )
  -      return getDefaultFactory();
  -
  -
  -      // Build possible postfixes
  -    List possiblePostfixes = calculatePostixes( "", (Locale)key );
  -
  -
  -      // Search last postix corresponding to a config file to load.
  -      // First check if something is loaded for this postfix.
  -      // If not, try to load its config.
  -    XmlDefinitionsSet lastXmlFile = null;
  -    DefinitionsFactory factory = null;
  -    String curPostfix = null;
  -    int i;
  -
  -    for(i=possiblePostfixes.size()-1; i>=0; i-- )
  -      {
  -      curPostfix = (String)possiblePostfixes.get(i);
  -        // Already loaded ?
  -      factory = (DefinitionsFactory)loaded.get( curPostfix );
  -      if( factory != null )
  -        { // yes, stop search
  +    protected void initFactory(
  +        ServletContext servletContext,
  +        String proposedFilename)
  +        throws DefinitionsFactoryException, FileNotFoundException {
  +
  +        // Init list of filenames
  +        StringTokenizer tokenizer = new StringTokenizer(proposedFilename, ",");
  +        this.filenames = new ArrayList(tokenizer.countTokens());
  +        while (tokenizer.hasMoreTokens()) {
  +            this.filenames.add(tokenizer.nextToken().trim());
  +        }
  +
  +        loaded = new HashMap();
  +        defaultFactory = createDefaultFactory(servletContext);
  +        if (log.isDebugEnabled())
  +            log.debug("default factory:" + defaultFactory);
  +    }
  +
  +    /**
  +     * Get default factory.
  +     * @return Default factory
  +     */
  +    protected DefinitionsFactory getDefaultFactory() {
  +        return defaultFactory;
  +    }
  +
  +    /**
  +     * Create default factory .
  +     * Create InstancesMapper for specified Locale.
  +     * If creation failes, use default mapper and log error message.
  +     * @param servletContext Current servlet context. Used to open file.
  +     * @return Created default definition factory.
  +     * @throws DefinitionsFactoryException If an error occur while creating factory.
  +     * @throws FileNotFoundException if factory can't be loaded from filenames.
  +     */
  +    protected DefinitionsFactory createDefaultFactory(ServletContext servletContext)
  +        throws DefinitionsFactoryException, FileNotFoundException {
  +
  +        XmlDefinitionsSet rootXmlConfig = parseXmlFiles(servletContext, "", null);
  +        if (rootXmlConfig == null) {
  +            throw new FileNotFoundException();
  +        }
  +
  +        rootXmlConfig.resolveInheritances();
  +
  +        if (log.isDebugEnabled()) {
  +            log.debug(rootXmlConfig);
  +        }
  +
  +        DefinitionsFactory factory = new DefinitionsFactory(rootXmlConfig);
  +        if (log.isDebugEnabled()) {
  +            log.debug("factory loaded : " + factory);
  +        }
  +
  +        return factory;
  +    }
  +
  +    /**
  +     * Extract key that will be used to get the sub factory.
  +     * @param name Name of requested definition
  +     * @param request Current servlet request.
  +     * @param servletContext Current servlet context.
  +     * @return the key or <code>null</code> if not found.
  +     */
  +    protected Object getDefinitionsFactoryKey(
  +        String name,
  +        ServletRequest request,
  +        ServletContext servletContext) {
  +
  +        Locale locale = null;
  +        try {
  +            HttpSession session = ((HttpServletRequest) request).getSession(false);
  +            if (session != null) {
  +                locale = (Locale) session.getAttribute(DefinitionsUtil.LOCALE_KEY);
  +            }
  +
  +        } catch (ClassCastException ex) {
  +            log.error("I18nFactorySet.getDefinitionsFactoryKey");
  +            ex.printStackTrace();
  +        }
  +
  +        return locale;
  +    }
  +
  +    /**
  +     * Create a factory for specified key.
  +    * If creation failes, return default factory and log an error message.
  +    * @param key The key.
  +    * @param request Servlet request.
  +    * @param servletContext Servlet context.
  +    * @return Definition factory for specified key.
  +    * @throws DefinitionsFactoryException If an error occur while creating factory.
  +     */
  +    protected DefinitionsFactory createFactory(
  +        Object key,
  +        ServletRequest request,
  +        ServletContext servletContext)
  +        throws DefinitionsFactoryException {
  +
  +        if (key == null) {
  +            return getDefaultFactory();
  +        }
  +
  +        // Build possible postfixes
  +        List possiblePostfixes = calculatePostixes("", (Locale) key);
  +
  +        // Search last postix corresponding to a config file to load.
  +        // First check if something is loaded for this postfix.
  +        // If not, try to load its config.
  +        XmlDefinitionsSet lastXmlFile = null;
  +        DefinitionsFactory factory = null;
  +        String curPostfix = null;
  +        int i = 0;
  +
  +        for (i = possiblePostfixes.size() - 1; i >= 0; i--) {
  +            curPostfix = (String) possiblePostfixes.get(i);
  +
  +            // Already loaded ?
  +            factory = (DefinitionsFactory) loaded.get(curPostfix);
  +            if (factory != null) { // yes, stop search
  +                return factory;
  +            }
  +
  +            // Try to load it. If success, stop search
  +            lastXmlFile = parseXmlFiles(servletContext, curPostfix, null);
  +            if (lastXmlFile != null) {
  +                break;
  +            }
  +        }
  +
  +        // Have we found a description file ?
  +        // If no, return default one
  +        if (lastXmlFile == null) {
  +            return getDefaultFactory();
  +        }
  +
  +        // We found something. Need to load base and intermediate files
  +        String lastPostfix = curPostfix;
  +        XmlDefinitionsSet rootXmlConfig = parseXmlFiles(servletContext, "", null);
  +        for (int j = 0; j < i; j++) {
  +            curPostfix = (String) possiblePostfixes.get(j);
  +            parseXmlFiles(servletContext, curPostfix, rootXmlConfig);
  +        }
  +
  +        rootXmlConfig.extend(lastXmlFile);
  +        rootXmlConfig.resolveInheritances();
  +
  +        factory = new DefinitionsFactory(rootXmlConfig);
  +        loaded.put(lastPostfix, factory);
  +
  +        if (log.isDebugEnabled()) {
  +            log.debug("factory loaded : " + factory);
  +        }
  +
  +        // return last available found !
           return factory;
  -        } // end if
  -        // Try to load it. If success, stop search
  -      lastXmlFile = parseXmlFiles( servletContext, curPostfix, null );
  -      if( lastXmlFile != null )
  -        break;
  -      } // end loop
  -
  -      // Have we found a description file ?
  -      // If no, return default one
  -    if( lastXmlFile == null )
  -      {
  -      return getDefaultFactory();
  -      }
  -
  -      // We found something. Need to load base and intermediate files
  -    String lastPostfix = curPostfix;
  -    XmlDefinitionsSet rootXmlConfig = parseXmlFiles( servletContext, "", null );
  -    for( int j=0; j<i; j++ )
  -      {
  -      curPostfix = (String)possiblePostfixes.get(j);
  -      parseXmlFiles( servletContext, curPostfix, rootXmlConfig);
  -      } // end loop
  -
  -    rootXmlConfig.extend( lastXmlFile );
  -    rootXmlConfig.resolveInheritances();
  -
  -    factory = new DefinitionsFactory(rootXmlConfig);
  -    loaded.put( lastPostfix, factory );
  -      // User help
  -    if(log.isDebugEnabled())
  -      log.debug( "factory loaded : " + factory );
  -      // return last available found !
  -    return factory;
       }
   
       /**
  @@ -424,11 +449,12 @@
               //The locale is "", "", "".
               return result;
           }
  +
           final StringBuffer temp = new StringBuffer(baseName);
           temp.append('_');
           temp.append(language);
   
  -        if(languageLength > 0)
  +        if (languageLength > 0)
               result.add(temp.toString());
   
           if (countryLength + variantLength == 0)
  @@ -437,10 +463,10 @@
           temp.append('_');
           temp.append(country);
   
  -        if(countryLength > 0)
  +        if (countryLength > 0)
               result.add(temp.toString());
   
  -        if(variantLength == 0) {
  +        if (variantLength == 0) {
               return result;
           } else {
               temp.append('_');
  @@ -465,20 +491,24 @@
        * @return XmlDefinitionsSet The definitions set created or passed as parameter.
        * @throws DefinitionsFactoryException On errors parsing file.
        */
  -  private XmlDefinitionsSet parseXmlFiles( ServletContext servletContext, String 
postfix, XmlDefinitionsSet xmlDefinitions )
  -      throws DefinitionsFactoryException
  -    {
  -    if( postfix != null && postfix.length() == 0 )
  -      postfix = null;
  -
  -      // Iterate throw each file name in list
  -    Iterator i = filenames.iterator();
  -    while( i.hasNext() )
  -      {
  -      String filename = concatPostfix((String)i.next(), postfix) ;
  -      xmlDefinitions = parseXmlFile( servletContext, filename, xmlDefinitions );
  -      } // end loop
  -    return xmlDefinitions;
  +    private XmlDefinitionsSet parseXmlFiles(
  +        ServletContext servletContext,
  +        String postfix,
  +        XmlDefinitionsSet xmlDefinitions)
  +        throws DefinitionsFactoryException {
  +
  +        if (postfix != null && postfix.length() == 0) {
  +            postfix = null;
  +        }
  +
  +        // Iterate throw each file name in list
  +        Iterator i = filenames.iterator();
  +        while (i.hasNext()) {
  +            String filename = concatPostfix((String) i.next(), postfix);
  +            xmlDefinitions = parseXmlFile(servletContext, filename, xmlDefinitions);
  +        }
  +
  +        return xmlDefinitions;
       }
   
       /**
  @@ -493,69 +523,66 @@
        * @return XmlDefinitionsSet The definitions set created or passed as parameter.
        * @throws DefinitionsFactoryException On errors parsing file.
        */
  -  private XmlDefinitionsSet parseXmlFile( ServletContext servletContext, String 
filename , XmlDefinitionsSet xmlDefinitions)
  -      throws DefinitionsFactoryException
  -    {
  -    try
  -      {
  -         InputStream input = servletContext.getResourceAsStream(filename);
  -        // Try to load using real path.
  -        // This allow to load config file under websphere 3.5.x
  -        // Patch proposed Houston, Stephen (LIT) on 5 Apr 2002
  -      if (null == input)
  -      {
  -        try
  -         {
  -         input = new java.io.FileInputStream(servletContext.getRealPath(filename));
  -         }
  -         catch (Exception e)
  -         {
  -         }
  -     }
  -        // If still nothing found, this mean no config file is associated
  -         if(input == null )
  -        {
  -        if(log.isDebugEnabled())
  -          log.debug( "Can't open file '" + filename + "'" );
  -        return xmlDefinitions;
  -        }
  +    private XmlDefinitionsSet parseXmlFile(
  +        ServletContext servletContext,
  +        String filename,
  +        XmlDefinitionsSet xmlDefinitions)
  +        throws DefinitionsFactoryException {
  +
  +        try {
  +            InputStream input = servletContext.getResourceAsStream(filename);
  +            // Try to load using real path.
  +            // This allow to load config file under websphere 3.5.x
  +            // Patch proposed Houston, Stephen (LIT) on 5 Apr 2002
  +            if (null == input) {
  +                try {
  +                    input =
  +                        new java.io.FileInputStream(
  +                            servletContext.getRealPath(filename));
  +                } catch (Exception e) {
  +                }
  +            }
   
  -        // Check if parser already exist.
  -        // Doesn't seem to work yet.
  -      //if( xmlParser == null )
  -      if( true )
  -        {  // create it
  -        //if(log.isDebugEnabled())
  -          //log.debug( "Create xmlParser");
  -        xmlParser = new XmlParser();
  -        xmlParser.setValidating(isValidatingParser);
  -        xmlParser.setDetailLevel(parserDetailLevel);
  -        }
  -        // Check if definition set already exist.
  -      if( xmlDefinitions == null )
  -        {  // create it
  -        //if(log.isDebugEnabled())
  -          //log.debug( "Create xmlDefinitions");
  -        xmlDefinitions = new XmlDefinitionsSet();
  -        }
  -
  -      xmlParser.parse( input, xmlDefinitions );
  -         }
  -        catch( SAXException ex )
  -         {
  -      if(log.isDebugEnabled())
  -        {
  -        log.debug( "Error while parsing file '"  + filename + "'.");
  -        ex.printStackTrace();
  +            // If still nothing found, this mean no config file is associated
  +            if (input == null) {
  +                if (log.isDebugEnabled()) {
  +                    log.debug("Can't open file '" + filename + "'");
  +                }
  +                return xmlDefinitions;
  +            }
  +
  +            // Check if parser already exist.
  +            // Doesn't seem to work yet.
  +            //if( xmlParser == null )
  +            if (true) {
  +                xmlParser = new XmlParser();
  +                xmlParser.setValidating(isValidatingParser);
  +                xmlParser.setDetailLevel(parserDetailLevel);
  +            }
  +
  +            // Check if definition set already exist.
  +            if (xmlDefinitions == null) {
  +                xmlDefinitions = new XmlDefinitionsSet();
  +            }
  +
  +            xmlParser.parse(input, xmlDefinitions);
  +
  +        } catch (SAXException ex) {
  +            if (log.isDebugEnabled()) {
  +                log.debug("Error while parsing file '" + filename + "'.");
  +                ex.printStackTrace();
  +            }
  +            throw new DefinitionsFactoryException(
  +                "Error while parsing file '" + filename + "'. " + ex.getMessage(),
  +                ex);
  +
  +        } catch (IOException ex) {
  +            throw new DefinitionsFactoryException(
  +                "IO Error while parsing file '" + filename + "'. " + 
ex.getMessage(),
  +                ex);
           }
  -         throw new DefinitionsFactoryException( "Error while parsing file '" + 
filename + "'. " + ex.getMessage(), ex );
  -         }
  -        catch( IOException ex )
  -         {
  -         throw new DefinitionsFactoryException( "IO Error while parsing file '" + 
filename + "'. " + ex.getMessage(), ex);
  -         }
   
  -    return xmlDefinitions;
  +        return xmlDefinitions;
       }
   
       /**
  @@ -566,40 +593,38 @@
        * @param postfix Postfix to add.
        * @return Concatenated filename.
        */
  -  private String concatPostfix( String name, String postfix )
  -    {
  -    if( postfix == null )
  -      return name;
  -
  -      // Search file name extension.
  -      // take care of Unix files starting with .
  -    int dotIndex = name.lastIndexOf( "." );
  -    int lastNameStart = name.lastIndexOf( java.io.File.pathSeparator );
  -    if( dotIndex < 1 || dotIndex < lastNameStart )
  -      return name + postfix;
  -
  -    String ext = name.substring( dotIndex );
  -    name = name.substring( 0, dotIndex);
  -    return name + postfix + ext;
  +    private String concatPostfix(String name, String postfix) {
  +        if (postfix == null) {
  +            return name;
  +        }
  +
  +        // Search file name extension.
  +        // take care of Unix files starting with .
  +        int dotIndex = name.lastIndexOf(".");
  +        int lastNameStart = name.lastIndexOf(java.io.File.pathSeparator);
  +        if (dotIndex < 1 || dotIndex < lastNameStart) {
  +            return name + postfix;
  +        }
  +
  +        String ext = name.substring(dotIndex);
  +        name = name.substring(0, dotIndex);
  +        return name + postfix + ext;
       }
   
       /**
        * Return String representation.
        * @return String representation.
        */
  -  public String toString()
  -    {
  -    StringBuffer buff = new StringBuffer( "I18nFactorySet : \n" );
  -    buff.append( "--- default factory ---\n" );
  -    buff.append( defaultFactory.toString() );
  -    buff.append( "\n--- other factories ---\n" );
  -    Iterator i = factories.values().iterator();
  -    while( i.hasNext() )
  -      {
  -      buff.append( i.next().toString() ).append("---------- \n");
  -      }
  -    return buff.toString();
  +    public String toString() {
  +        StringBuffer buff = new StringBuffer("I18nFactorySet : \n");
  +        buff.append("--- default factory ---\n");
  +        buff.append(defaultFactory.toString());
  +        buff.append("\n--- other factories ---\n");
  +        Iterator i = factories.values().iterator();
  +        while (i.hasNext()) {
  +            buff.append(i.next().toString()).append("---------- \n");
  +        }
  +        return buff.toString();
       }
  -
   
   }
  
  
  

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

Reply via email to