W3C home > Mailing lists > Public > www-validator-cvs@w3.org > September 2009

2006/unicorn/src/org/w3c/unicorn/output OutputFactory.java,1.3,1.4 OutputFormater.java,1.2,1.3 SimpleOutputFormater.java,1.2,1.3 XMLOutputFormater.java,1.4,1.5

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
Message-Id: <E1MiVmU-0004PU-Q3@lionel-hutz.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 GMT

This archive was generated by hypermail 2.2.0+W3C-0.50 : Thursday, 26 April 2012 12:55:12 GMT