- From: Jean-Guilhem Rouel via cvs-syncmail <cvsmail@w3.org>
- Date: Tue, 01 Sep 2009 16:00:26 +0000
- To: www-validator-cvs@w3.org
Update of /sources/public/2006/unicorn/src/org/w3c/unicorn/output In directory hutz:/tmp/cvs-serv16874/src/org/w3c/unicorn/output Modified Files: OutputFactory.java OutputFormater.java SimpleOutputFormater.java XMLOutputFormater.java Log Message: simplified outputs a bit Index: XMLOutputFormater.java =================================================================== RCS file: /sources/public/2006/unicorn/src/org/w3c/unicorn/output/XMLOutputFormater.java,v retrieving revision 1.4 retrieving revision 1.5 diff -u -d -r1.4 -r1.5 --- XMLOutputFormater.java 1 Sep 2009 13:39:41 -0000 1.4 +++ XMLOutputFormater.java 1 Sep 2009 16:00:24 -0000 1.5 @@ -4,19 +4,7 @@ // Please first read the full copyright statement in file COPYRIGHT.html package org.w3c.unicorn.output; -import java.io.Writer; -import java.util.Map; - -import org.apache.commons.logging.Log; -import org.apache.commons.logging.LogFactory; -import org.apache.velocity.VelocityContext; import org.apache.velocity.app.event.EventCartridge; -import org.apache.velocity.exception.MethodInvocationException; -import org.apache.velocity.exception.ParseErrorException; -import org.apache.velocity.exception.ResourceNotFoundException; -import org.w3c.unicorn.Framework; -import org.w3c.unicorn.util.Property; -import org.w3c.unicorn.util.Templates; import org.w3c.unicorn.util.XHTMLize; /** @@ -24,106 +12,20 @@ * * @author Jean-Guilhem ROUEL */ -public class XMLOutputFormater implements OutputFormater { - /** - * Object used for complex logging purpose - */ - private static final Log logger = LogFactory.getLog(XMLOutputFormater.class); - - /** - * Apache velocity context - */ - private VelocityContext aVelocityContext; - - private String sOutputFormat; +public class XMLOutputFormater extends SimpleOutputFormater { - private String sLang; - - /** - * Write the result of the XML in a file - * - * @param sOutputFormat - * format of the output - * @param sLang - * Language of the output - * @throws ResourceNotFoundException - * exception when resources not found using the path - * @throws ParseErrorException - * error in the parser - * @throws Exception - * odd error occur - */ - public XMLOutputFormater(final String sOutputFormat, final String sLang) - throws ResourceNotFoundException, ParseErrorException, Exception { - XMLOutputFormater.logger.trace("Constructor"); - XMLOutputFormater.logger.debug("Output format : " + sOutputFormat + "."); - XMLOutputFormater.logger.debug("Output language : " + sLang + "."); - - this.sOutputFormat = sOutputFormat; - this.sLang = sLang; - + public XMLOutputFormater(final String format, final String lang) { + super(format, lang); } + + public void setLang(String lang) { + super.setLang(lang); - /* - * (non-Javadoc) - * - * @see org.w3c.unicorn.output.OutputFormater#produceOutput(java.util.Map, - * java.io.Writer) - */ - public void produceOutput(final Map<String, Object> mapOfStringObject, - final Writer aWriter) throws ResourceNotFoundException, - ParseErrorException, MethodInvocationException, Exception { - - if (Framework.getLanguageContexts().get(sLang) != null) { - aVelocityContext = new VelocityContext(Framework.getLanguageContexts().get(sLang)); - } else { - logger.debug("Context for " + sLang + " doesn't exist."); - aVelocityContext = new VelocityContext(Framework.getLanguageContexts().get(Property.get("DEFAULT_LANGUAGE"))); - } - - XMLOutputFormater.logger.trace("produceOutput"); - XMLOutputFormater.logger.debug("Map of String -> Object : " - + mapOfStringObject + "."); - XMLOutputFormater.logger.debug("Writer : " + aWriter + "."); - + // Replace tag objects (A, Img, ...) with their XHTML representation final EventCartridge aEventCartridge = new EventCartridge(); aEventCartridge.addEventHandler(new XHTMLize()); aEventCartridge.attachToContext(aVelocityContext); - for (final String sObjectName : mapOfStringObject.keySet()) { - aVelocityContext.put(sObjectName, mapOfStringObject - .get(sObjectName)); - } - - Templates.write(sOutputFormat + ".vm", aVelocityContext, aWriter); - aWriter.close(); } - /* - * (non-Javadoc) - * - * @see org.w3c.unicorn.output.OutputFormater#produceError(java.lang.Exception, - * java.io.Writer) - */ - public void produceError(final Exception aException, final Writer aWriter) - throws ResourceNotFoundException, ParseErrorException, - MethodInvocationException, Exception { - - if (Framework.getLanguageContexts().get(sLang) != null) { - aVelocityContext = new VelocityContext(Framework.getLanguageContexts().get(sLang)); - } else { - logger.debug("Context for " + sLang + " doesn't exist."); - aVelocityContext = new VelocityContext(Framework.getLanguageContexts().get(Property.get("DEFAULT_LANGUAGE"))); - } - - XMLOutputFormater.logger.trace("produceError"); - XMLOutputFormater.logger.debug("Error : " + aException + "."); - XMLOutputFormater.logger.debug("Writer : " + aWriter + "."); - final EventCartridge aEventCartridge = new EventCartridge(); - aEventCartridge.addEventHandler(new XHTMLize()); - aEventCartridge.attachToContext(aVelocityContext); - aVelocityContext.put("error", aException); - Templates.write(sOutputFormat + ".error.vm", aVelocityContext, aWriter); - aWriter.close(); - } -} +} \ No newline at end of file Index: OutputFormater.java =================================================================== RCS file: /sources/public/2006/unicorn/src/org/w3c/unicorn/output/OutputFormater.java,v retrieving revision 1.2 retrieving revision 1.3 diff -u -d -r1.2 -r1.3 --- OutputFormater.java 28 Aug 2009 12:40:06 -0000 1.2 +++ OutputFormater.java 1 Sep 2009 16:00:24 -0000 1.3 @@ -7,6 +7,8 @@ import java.io.Writer; import java.util.Map; +import org.apache.commons.logging.Log; +import org.apache.commons.logging.LogFactory; import org.apache.velocity.exception.MethodInvocationException; import org.apache.velocity.exception.ParseErrorException; import org.apache.velocity.exception.ResourceNotFoundException; @@ -19,8 +21,18 @@ */ public interface OutputFormater { + public static final Log logger = LogFactory.getLog(OutputFormater.class); + + /** + * @param mapOfStringObject + * @param output + * @throws ResourceNotFoundException + * @throws ParseErrorException + * @throws MethodInvocationException + * @throws Exception + */ public abstract void produceOutput( - final Map<String, Object> mapOfStringObject, final Writer aWriter) + final Map<String, Object> mapOfStringObject, final Writer output) throws ResourceNotFoundException, ParseErrorException, MethodInvocationException, Exception; @@ -33,7 +45,7 @@ * @throws ResourceNotFoundException */ public abstract void produceError(final Exception aException, - final Writer aWriter) throws ResourceNotFoundException, + final Writer output) throws ResourceNotFoundException, ParseErrorException, MethodInvocationException, Exception; } \ No newline at end of file Index: SimpleOutputFormater.java =================================================================== RCS file: /sources/public/2006/unicorn/src/org/w3c/unicorn/output/SimpleOutputFormater.java,v retrieving revision 1.2 retrieving revision 1.3 diff -u -d -r1.2 -r1.3 --- SimpleOutputFormater.java 28 Aug 2009 12:40:06 -0000 1.2 +++ SimpleOutputFormater.java 1 Sep 2009 16:00:24 -0000 1.3 @@ -7,8 +7,6 @@ import java.io.Writer; import java.util.Map; -import org.apache.commons.logging.Log; -import org.apache.commons.logging.LogFactory; import org.apache.velocity.VelocityContext; import org.apache.velocity.exception.MethodInvocationException; import org.apache.velocity.exception.ParseErrorException; @@ -24,25 +22,47 @@ */ public class SimpleOutputFormater implements OutputFormater { - private static final Log logger = LogFactory.getLog(SimpleOutputFormater.class); - - private static VelocityContext aVelocityContext; + protected VelocityContext aVelocityContext; - private String sOutputFormat; + private String format; - private String sLang; + private String lang; + + public SimpleOutputFormater() { + setLang(Property.get("DEFAULT_LANGUAGE")); + setFormat(Property.get("DEFAULT_FORMAT")); + } - public SimpleOutputFormater(final String sOutputFormat, final String sLang) - throws ResourceNotFoundException, ParseErrorException, Exception { - SimpleOutputFormater.logger.trace("Constructor"); - SimpleOutputFormater.logger.debug("Output format : " + sOutputFormat + "."); - SimpleOutputFormater.logger.debug("Output language : " + sLang + "."); - - this.sOutputFormat = sOutputFormat; - this.sLang = sLang; + public SimpleOutputFormater(final String format, final String lang) { + OutputFormater.logger.trace("Constructor"); + OutputFormater.logger.debug("Output format : " + format + "."); + OutputFormater.logger.debug("Output language : " + lang + "."); + setFormat(format); + setLang(lang); + } + + public String getLang() { + return lang; + } + + public void setLang(String lang) { + this.lang = lang; + if (Framework.getLanguageContexts().get(lang) != null) { + aVelocityContext = new VelocityContext(Framework.getLanguageContexts().get(lang)); + } else { + aVelocityContext = new VelocityContext(Framework.getLanguageContexts().get(Property.get("DEFAULT_LANGUAGE"))); + } } + public String getFormat() { + return format; + } + + public void setFormat(String outputFormat) { + this.format = outputFormat; + } + /* * (non-Javadoc) * @@ -50,27 +70,21 @@ * java.io.Writer) */ public void produceOutput(final Map<String, Object> mapOfStringObject, - final Writer aWriter) throws ResourceNotFoundException, + final Writer output) throws ResourceNotFoundException, ParseErrorException, MethodInvocationException, Exception { - - if (Framework.getLanguageContexts().get(sLang) != null) { - aVelocityContext = new VelocityContext(Framework.getLanguageContexts().get(sLang)); - } else { - aVelocityContext = new VelocityContext(Framework.getLanguageContexts().get(Property.get("DEFAULT_LANGUAGE"))); - } - - SimpleOutputFormater.logger.trace("produceOutput"); - SimpleOutputFormater.logger.debug("Map of String -> Object : " + + OutputFormater.logger.trace("produceOutput"); + OutputFormater.logger.debug("Map of String -> Object : " + mapOfStringObject + "."); - SimpleOutputFormater.logger.debug("Writer : " + aWriter + "."); + OutputFormater.logger.debug("Writer : " + output + "."); for (final String sObjectName : mapOfStringObject.keySet()) { aVelocityContext.put(sObjectName, mapOfStringObject .get(sObjectName)); } - Templates.write(sOutputFormat + ".vm", aVelocityContext, aWriter); - aWriter.close(); + Templates.write(format + ".vm", aVelocityContext, output); + output.close(); } /* @@ -79,24 +93,19 @@ * @see org.w3c.unicorn.output.OutputFormater#produceError(java.lang.Exception, * java.io.Writer) */ - public void produceError(final Exception aException, final Writer aWriter) + public void produceError(final Exception aException, final Writer output) throws ResourceNotFoundException, ParseErrorException, MethodInvocationException, Exception { - if (Framework.getLanguageContexts().get(sLang) != null) { - aVelocityContext = new VelocityContext(Framework.getLanguageContexts().get(sLang)); - } else { - aVelocityContext = new VelocityContext(Framework.getLanguageContexts().get(Property.get("DEFAULT_LANGUAGE"))); - } - - SimpleOutputFormater.logger.trace("produceError"); - SimpleOutputFormater.logger.debug("Error : " + aException.getMessage() + OutputFormater.logger.trace("produceError"); + OutputFormater.logger.debug("Error : " + aException.getMessage() + "."); - SimpleOutputFormater.logger.debug("Writer : " + aWriter + "."); + OutputFormater.logger.debug("Writer : " + output + "."); if (aException != null) aVelocityContext.put("error", aException); - Templates.write(sOutputFormat + ".error.vm", aVelocityContext, aWriter); - aWriter.close(); + Templates.write(format + ".error.vm", aVelocityContext, output); + output.close(); } + } Index: OutputFactory.java =================================================================== RCS file: /sources/public/2006/unicorn/src/org/w3c/unicorn/output/OutputFactory.java,v retrieving revision 1.3 retrieving revision 1.4 diff -u -d -r1.3 -r1.4 --- OutputFactory.java 28 Aug 2009 16:11:41 -0000 1.3 +++ OutputFactory.java 1 Sep 2009 16:00:24 -0000 1.4 @@ -4,9 +4,6 @@ // Please first read the full copyright statement in file COPYRIGHT.html package org.w3c.unicorn.output; -import java.util.LinkedHashMap; -import java.util.Map; - import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import org.apache.velocity.exception.ParseErrorException; @@ -24,38 +21,39 @@ protected static final Log logger = LogFactory.getLog(OutputFactory.class); - private static final Map<EnumOutputModule, OutputModule> mapOfOutputModule = new LinkedHashMap<EnumOutputModule, OutputModule>(); - - private static final Map<String, OutputFormater> mapOfOutputFormater = new LinkedHashMap<String, OutputFormater>(); - /** - * Create a new output module and add it to the map. + * Create a new output module * * @param aEnumOutputModule * To identify which type of output module will be created. * @return The new output module. */ - private static OutputModule createOutputModule( - final EnumOutputModule aEnumOutputModule) { + public static OutputModule createOutputModule(String module) { OutputFactory.logger.trace("createOutputModule"); if (OutputFactory.logger.isDebugEnabled()) { - OutputFactory.logger.debug("Output module : " + aEnumOutputModule - + "."); - } - final OutputModule aOutputModule; - switch (aEnumOutputModule) { - case SIMPLE: - aOutputModule = new SimpleOutputModule(); - break; - default: - return null; + OutputFactory.logger.debug("Output module : " + module); } - OutputFactory.mapOfOutputModule.put(aEnumOutputModule, aOutputModule); - return aOutputModule; + + /* Commented out for now as this is unnecessary and that doesn't seem quite safe */ +// if(null == module || "".equals(module)) { +// module = "simple"; +// } +// +// module = module.substring(0, 1).toUpperCase() + module.substring(1); +// +// Class<?> moduleClass; +// try { +// moduleClass = Class.forName("org.w3c.unicorn.output." + module + "OutputModule"); +// return (OutputModule) moduleClass.getConstructor().newInstance(); +// } catch (Exception e) { +// OutputFactory.logger.error("Couldn't create output module " + module + ". Will use SimpleOutputModule", e); +// } + + return new SimpleOutputModule(); } /** - * Create a new output formatter and add it to the map. + * Create a new output formatter. * * @param sOutputFormat * The format who the output formatter must produce. @@ -64,7 +62,7 @@ * @throws ParseErrorException * @throws Exception */ - private static OutputFormater createOutputFormater( + public static OutputFormater createOutputFormater( final String sOutputFormat, final String sLang, final String sMimeType) throws ResourceNotFoundException, ParseErrorException, Exception { @@ -76,6 +74,8 @@ OutputFactory.logger.debug("Mime type : " + sMimeType + "."); } + final OutputFormater aOutputFormater; + final String sFormaterName = Property.getProps("specialFormaters.properties") .getProperty(sMimeType); if (null != sFormaterName) { @@ -83,101 +83,15 @@ .forName("org.w3c.unicorn.output." + sFormaterName); final Class<?>[] tClassParamType = { String.class, String.class }; final Object[] tObjectParamValue = { sOutputFormat, sLang }; - final OutputFormater aOutputFormater; + aOutputFormater = (OutputFormater) aFormaterClass.getConstructor( tClassParamType).newInstance(tObjectParamValue); - OutputFactory.mapOfOutputFormater.put(sMimeType + "_" + sLang + "_" - + sOutputFormat, aOutputFormater); - return aOutputFormater; - } - - final OutputFormater aOutputFormater; - aOutputFormater = new SimpleOutputFormater(sOutputFormat, sLang); - OutputFactory.mapOfOutputFormater.put(sLang + "_" + sOutputFormat, - aOutputFormater); - return aOutputFormater; - } - - /** - * Return the output module asked. - * - * @param sOutputModule - * The name of the output module to return. - * @return The output module asked. - */ - public static OutputModule getOutputModule(final String sOutputModule) { - OutputFactory.logger.trace("getOutputModule"); - if (OutputFactory.logger.isDebugEnabled()) { - OutputFactory.logger - .debug("Output module : " + sOutputModule + "."); - } - final EnumOutputModule aEnumOutputModule = EnumOutputModule - .fromValue(sOutputModule); - if (null == aEnumOutputModule) { - OutputFactory.logger.error("Unknow output module."); - return null; - } - return OutputFactory.getOutputModule(aEnumOutputModule); - } - - /** - * Return the output module asked. - * - * @param aEnumOutputModule - * @return The output module asked. - */ - public static OutputModule getOutputModule( - final EnumOutputModule aEnumOutputModule) { - OutputFactory.logger.trace("getOutputModule"); - if (OutputFactory.logger.isDebugEnabled()) { - OutputFactory.logger.debug("Output module : " + aEnumOutputModule - + "."); - } - final OutputModule aOutputModule = OutputFactory.mapOfOutputModule - .get(aEnumOutputModule); - // if output module not already exist - if (null == aOutputModule) { - // create it - return OutputFactory.createOutputModule(aEnumOutputModule); } - return aOutputModule; - } - - /** - * Return the output formatter asked. - * - * @param sOutputFormat - * The output format who be produce by the output formatter. - * @return The output formatter asked. - * @throws ResourceNotFoundException - * @throws ParseErrorException - * @throws Exception - */ - public static OutputFormater getOutputFormater(final String sOutputFormat, - final String sLang, final String sMimeType) - throws ResourceNotFoundException, ParseErrorException, Exception { - OutputFactory.logger.trace("getOutputformater"); - if (OutputFactory.logger.isDebugEnabled()) { - OutputFactory.logger - .debug("Output format : " + sOutputFormat + "."); - OutputFactory.logger.debug("Language : " + sLang + "."); - } - OutputFormater aOutputFormater = OutputFactory.mapOfOutputFormater - .get(sMimeType + "_" + sLang + "_" + sOutputFormat); - if (null != aOutputFormater) { - return aOutputFormater; - } - aOutputFormater = OutputFactory.mapOfOutputFormater.get(sLang + "_" - + sOutputFormat); - - if (null != aOutputFormater) { - return aOutputFormater; + else { + aOutputFormater = new SimpleOutputFormater(sOutputFormat, sLang); } - // if output formater not already exist create it - aOutputFormater = OutputFactory.createOutputFormater(sOutputFormat, - sLang, sMimeType); return aOutputFormater; } - + }
Received on Tuesday, 1 September 2009 16:00:36 UTC