dgraham 2003/07/08 16:42:59
Modified: src/tiles-documentation/org/apache/struts/webapp/tiles/channel
ChannelFactorySet.java
Log:
Formatted code.
Revision Changes Path
1.3 +264 -219
jakarta-struts/src/tiles-documentation/org/apache/struts/webapp/tiles/channel/ChannelFactorySet.java
Index: ChannelFactorySet.java
===================================================================
RCS file:
/home/cvs/jakarta-struts/src/tiles-documentation/org/apache/struts/webapp/tiles/channel/ChannelFactorySet.java,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -r1.2 -r1.3
--- ChannelFactorySet.java 16 Nov 2002 04:58:47 -0000 1.2
+++ ChannelFactorySet.java 8 Jul 2003 23:42:59 -0000 1.3
@@ -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
@@ -87,51 +87,75 @@
* Component definitions factory allowing i18n definition.
* A definition is retrieved by its name, and using locale setted in appropriate
session context.
* Definitions are defined in different files, one for each locale. A definition
file is loaded using common name extended with locale code (ex :
templateDefinitions_fr.xml). If no file is found under this name, use default file.
-*/
-public class ChannelFactorySet extends FactorySet
-{
- /** Debug flag */
- static public final boolean debug = false;
-
- /** Default name */
- public static final String DEFAULT_DEFINITIONS_FILE_NAME =
"/WEB-INF/templateDefinitions.xml";
- /** Config file parameter name */
- public static final String DEFINITIONS_CONFIG_PARAMETER_NAME =
"definitions-config";
- /** Config file parameter name */
- public static final String FACTORY_SELECTOR_KEY =
"ChannelFactorySet.factorySelectorKey";
-
- /** Default factory */
- protected DefinitionsFactory defaultFactory;
- /** Xml parser used */
- protected XmlParser xmlParser;
-
- /** Default filenames extension */
- public static final String FILENAME_EXTENSION = ".xml";
-
- /** Names of default file containing definition descriptions */
- private String filename;
- /** Collection of already loaded definitions set, referenced by their suffix */
- private Map loaded;
+ */
+public class ChannelFactorySet extends FactorySet {
+
+ /**
+ * Debug flag.
+ */
+ public static final boolean debug = false;
+
+ /**
+ * Default name.
+ */
+ public static final String DEFAULT_DEFINITIONS_FILE_NAME =
+ "/WEB-INF/templateDefinitions.xml";
+
+ /**
+ * Config file parameter name.
+ */
+ public static final String DEFINITIONS_CONFIG_PARAMETER_NAME =
+ "definitions-config";
+
+ /**
+ * Config file parameter name.
+ */
+ public static final String FACTORY_SELECTOR_KEY =
+ "ChannelFactorySet.factorySelectorKey";
+ /**
+ * Default filenames extension.
+ */
+ public static final String FILENAME_EXTENSION = ".xml";
+
+ /**
+ * Default factory.
+ */
+ protected DefinitionsFactory defaultFactory = null;
+
+ /**
+ * Xml parser used.
+ */
+ protected XmlParser xmlParser = null;
+
+ /**
+ * Names of default file containing definition descriptions.
+ */
+ private String filename = null;
+
+ /**
+ * Collection of already loaded definitions set, referenced by their suffix.
+ */
+ private Map loaded = null;
/**
* Parameterless Constructor.
* Method initFactory must be called prior to any use of created factory.
*/
- public ChannelFactorySet()
- {
- }
+ public ChannelFactorySet() {
+ super();
+ }
/**
* Constructor.
* Init the factory by reading appropriate configuration file.
- * @throw FactoryNotFoundException Can't find factory configuration file.
+ * @throws FactoryNotFoundException Can't find factory configuration file.
*/
- public ChannelFactorySet(ServletContext servletContext, Map properties )
- throws DefinitionsFactoryException
- {
- initFactory( servletContext, properties);
- }
+ public ChannelFactorySet(ServletContext servletContext, Map properties)
+ throws DefinitionsFactoryException {
+
+ initFactory(servletContext, properties);
+ }
/**
* Initialization method.
@@ -143,35 +167,36 @@
* more properties than requested.
* @throws DefinitionsFactoryException An error occur during initialization.
*/
- public void initFactory(ServletContext servletContext, Map properties )
- throws DefinitionsFactoryException
- {
- // read properties values
- String proposedFilename =
(String)properties.get(DEFINITIONS_CONFIG_PARAMETER_NAME);
-
- // Compute filenames to use
- boolean isFileSpecified = true;
- if (proposedFilename == null)
- {
- proposedFilename=DEFAULT_DEFINITIONS_FILE_NAME;
- isFileSpecified = false;
- }
+ public void initFactory(ServletContext servletContext, Map properties)
+ throws DefinitionsFactoryException {
- try
- {
- initFactory( servletContext, proposedFilename );
- return;
- }
- catch( FileNotFoundException ex )
- {
- // If a filename is specified, throw appropriate error.
- if( isFileSpecified )
- {
- throw new FactoryNotFoundException( ex.getMessage() + " : Can't find file
'" +proposedFilename + "'" ) ;
- } // end if
- } // end catch
+ // read properties values
+ String proposedFilename =
+ (String) properties.get(DEFINITIONS_CONFIG_PARAMETER_NAME);
+
+ // Compute filenames to use
+ boolean isFileSpecified = true;
+ if (proposedFilename == null) {
+ proposedFilename = DEFAULT_DEFINITIONS_FILE_NAME;
+ isFileSpecified = false;
+ }
+
+ try {
+ initFactory(servletContext, proposedFilename);
+ return;
+
+ } catch (FileNotFoundException ex) {
+ // If a filename is specified, throw appropriate error.
+ if (isFileSpecified) {
+ throw new FactoryNotFoundException(
+ ex.getMessage()
+ + " : Can't find file '"
+ + proposedFilename
+ + "'");
+ }
+ }
- }
+ }
/**
* Initialization method.
@@ -182,104 +207,121 @@
* @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
- {
- filename = proposedFilename;
- loaded = new HashMap();
- defaultFactory = createDefaultFactory( servletContext );
- }
-
- /**
- * Get default factory.
- * @return Default factory
- */
- protected DefinitionsFactory getDefaultFactory()
- {
- return defaultFactory;
- }
-
- /**
- * Create default factory .
- * @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 = parseXmlKeyFile( servletContext, "", null );
- if( rootXmlConfig == null )
- throw new FileNotFoundException();
- rootXmlConfig.resolveInheritances();
- return new DefinitionsFactory( rootXmlConfig );
+ protected void initFactory(
+ ServletContext servletContext,
+ String proposedFilename)
+ throws DefinitionsFactoryException, FileNotFoundException {
+
+ filename = proposedFilename;
+ loaded = new HashMap();
+ defaultFactory = createDefaultFactory(servletContext);
}
- /**
- * 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 null if not found.
- * @roseuid 3AF6F887018A
- */
- protected Object getDefinitionsFactoryKey(String name, ServletRequest request,
ServletContext servletContext)
- {
- Object key = null;
-
- HttpSession session = ((HttpServletRequest)request).getSession(false);
- if (session != null)
- key = session.getAttribute(FACTORY_SELECTOR_KEY);
-
- return key;
- }
-
- /**
- * Create a factory for specified key.
- * If creation failed, return default factory, and output an error message in
- * console.
- * @param key
- * @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();
-
- // Already loaded ?
- DefinitionsFactory factory = (DefinitionsFactory)loaded.get( key );
- if( factory != null )
- { // yes, stop loading
- return factory;
- } // end if
+ /**
+ * Get default factory.
+ * @return Default factory
+ */
+ protected DefinitionsFactory getDefaultFactory() {
+ return defaultFactory;
+ }
+
+ /**
+ * Create default factory .
+ * @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 = parseXmlKeyFile(servletContext, "", null);
+
+ if (rootXmlConfig == null) {
+ throw new FileNotFoundException();
+ }
+
+ rootXmlConfig.resolveInheritances();
+ return new DefinitionsFactory(rootXmlConfig);
+ }
+
+ /**
+ * 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 null if not found.
+ * @roseuid 3AF6F887018A
+ */
+ protected Object getDefinitionsFactoryKey(
+ String name,
+ ServletRequest request,
+ ServletContext servletContext) {
+ Object key = null;
+
+ HttpSession session = ((HttpServletRequest) request).getSession(false);
+ if (session != null) {
+ key = session.getAttribute(FACTORY_SELECTOR_KEY);
+ }
+
+ return key;
+ }
+
+ /**
+ * Create a factory for specified key.
+ * If creation failed, return default factory, and output an error message in
+ * console.
+ * @param key
+ * @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();
+ }
+
+ // Already loaded ?
+ DefinitionsFactory factory = (DefinitionsFactory) loaded.get(key);
+ if (factory != null) { // yes, stop loading
+ return factory;
+ }
+
// Try to load file associated to key. If fail, stop and return default
factory.
- XmlDefinitionsSet lastXmlFile = parseXmlKeyFile( servletContext, "_" +
(String)key, null );
- if( lastXmlFile == null )
- {
- if( DefinitionsUtil.userDebugLevel > DefinitionsUtil.NO_DEBUG )
- System.out.println( "Warning : No definition factory associated to key '"
- + key + "'. Use default factory instead." );
- factory = getDefaultFactory();
- loaded.put( key, factory );
- return factory;
- } // end if
-
- // Parse default file, and add key file.
- XmlDefinitionsSet rootXmlConfig = parseXmlKeyFile( servletContext, "", null );
-
- rootXmlConfig.extend(lastXmlFile);
- rootXmlConfig.resolveInheritances();
-
- factory = new DefinitionsFactory(rootXmlConfig);
- loaded.put( key, factory );
- // User help
- if( DefinitionsUtil.userDebugLevel > DefinitionsUtil.NO_DEBUG )
- System.out.println( factory );
- // return last available found !
- return factory;
+ XmlDefinitionsSet lastXmlFile =
+ parseXmlKeyFile(servletContext, "_" + (String) key, null);
+
+ if (lastXmlFile == null) {
+ if (DefinitionsUtil.userDebugLevel > DefinitionsUtil.NO_DEBUG) {
+ System.out.println(
+ "Warning : No definition factory associated to key '"
+ + key
+ + "'. Use default factory instead.");
+ }
+ factory = getDefaultFactory();
+ loaded.put(key, factory);
+ return factory;
+ }
+
+ // Parse default file, and add key file.
+ XmlDefinitionsSet rootXmlConfig = parseXmlKeyFile(servletContext, "", null);
+
+ rootXmlConfig.extend(lastXmlFile);
+ rootXmlConfig.resolveInheritances();
+
+ factory = new DefinitionsFactory(rootXmlConfig);
+ loaded.put(key, factory);
+
+ if (DefinitionsUtil.userDebugLevel > DefinitionsUtil.NO_DEBUG) {
+ System.out.println(factory);
+ }
+
+ // return last available found !
+ return factory;
}
/**
@@ -297,15 +339,18 @@
* @return XmlDefinitionsSet The definitions set created or passed as parameter.
* @throws DefinitionsFactoryException If an error happen during file parsing.
*/
- private XmlDefinitionsSet parseXmlKeyFile( ServletContext servletContext, String
postfix, XmlDefinitionsSet xmlDefinitions )
- throws DefinitionsFactoryException
- {
- if( postfix != null && postfix.length() == 0 )
- postfix = null;
+ private XmlDefinitionsSet parseXmlKeyFile(
+ ServletContext servletContext,
+ String postfix,
+ XmlDefinitionsSet xmlDefinitions)
+ throws DefinitionsFactoryException {
+ if (postfix != null && postfix.length() == 0)
+ postfix = null;
- String fullName = concatPostfix( filename, postfix );
- return parseXmlFile( servletContext, fullName, xmlDefinitions);
+ String fullName = concatPostfix(filename, postfix);
+ return parseXmlFile(servletContext, fullName, xmlDefinitions);
}
+
/**
* Parse specified xml file and add definition to specified definitions set.
* This method is used to load several description files in one instances list.
@@ -318,44 +363,44 @@
* @return XmlDefinitionsSet The definitions set created or passed as parameter.
* @throws DefinitionsFactoryException If an error happen during file parsing.
*/
- private XmlDefinitionsSet parseXmlFile( ServletContext servletContext, String
filename , XmlDefinitionsSet xmlDefinitions)
- throws DefinitionsFactoryException
- {
- try
- {
- if( debug)
- {
- System.out.println( "Try to load '" + filename + "'.");
+ private XmlDefinitionsSet parseXmlFile(
+ ServletContext servletContext,
+ String filename,
+ XmlDefinitionsSet xmlDefinitions)
+ throws DefinitionsFactoryException {
+ try {
+ if (debug) {
+ System.out.println("Try to load '" + filename + "'.");
+ }
+ InputStream input = servletContext.getResourceAsStream(filename);
+ if (input == null)
+ return xmlDefinitions;
+
+ // Create parser
+ xmlParser = new XmlParser();
+ // Check if definition set already exist.
+ if (xmlDefinitions == null) { // create it
+ xmlDefinitions = new XmlDefinitionsSet();
+ }
+
+ xmlParser.parse(input, xmlDefinitions);
+ } catch (SAXException ex) {
+ if (debug) {
+ System.out.println("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);
}
- InputStream input = servletContext.getResourceAsStream(filename);
- if(input == null )
- return xmlDefinitions;
-
- // Create parser
- xmlParser = new XmlParser();
- // Check if definition set already exist.
- if( xmlDefinitions == null )
- { // create it
- xmlDefinitions = new XmlDefinitionsSet();
- }
-
- xmlParser.parse( input, xmlDefinitions );
- }
- catch( SAXException ex )
- {
- if( debug)
- {
- System.out.println( "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);
- }
- return xmlDefinitions;
+ return xmlDefinitions;
}
/**
@@ -363,22 +408,22 @@
* Transform the given name "name.ext" to have "name" + "postfix" + "ext".
* If there is no ext, return "name" + "postfix".
*/
- private String concatPostfix( String name, String postfix )
- {
- if( postfix == null )
- return name;
-
- //postfix = "_" + postfix;
- // 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;
+ }
+
+ //postfix = "_" + postfix;
+ // 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;
}
}
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]