diff options
author | rbrooks | 2007-12-08 07:45:39 +0000 |
---|---|---|
committer | rbrooks | 2007-12-08 07:45:39 +0000 |
commit | d19b50ce5d56f1f6c3bc38cba0d3d20b5291265e (patch) | |
tree | ef75eeb914538ac7400404b3aff3481db069816a /org.eclipse.osee.framework.jdk.core/src/org/eclipse/osee/framework/jdk/core/text/RulesLogHandler.java | |
parent | e8f608978dd689780d59b1066920867b691ee6c4 (diff) | |
download | org.eclipse.osee-d19b50ce5d56f1f6c3bc38cba0d3d20b5291265e.tar.gz org.eclipse.osee-d19b50ce5d56f1f6c3bc38cba0d3d20b5291265e.tar.xz org.eclipse.osee-d19b50ce5d56f1f6c3bc38cba0d3d20b5291265e.zip |
[CQ 1720]
Diffstat (limited to 'org.eclipse.osee.framework.jdk.core/src/org/eclipse/osee/framework/jdk/core/text/RulesLogHandler.java')
-rw-r--r-- | org.eclipse.osee.framework.jdk.core/src/org/eclipse/osee/framework/jdk/core/text/RulesLogHandler.java | 104 |
1 files changed, 104 insertions, 0 deletions
diff --git a/org.eclipse.osee.framework.jdk.core/src/org/eclipse/osee/framework/jdk/core/text/RulesLogHandler.java b/org.eclipse.osee.framework.jdk.core/src/org/eclipse/osee/framework/jdk/core/text/RulesLogHandler.java new file mode 100644 index 00000000000..fefecb6e140 --- /dev/null +++ b/org.eclipse.osee.framework.jdk.core/src/org/eclipse/osee/framework/jdk/core/text/RulesLogHandler.java @@ -0,0 +1,104 @@ +/******************************************************************************* + * Copyright (c) 2004, 2007 Boeing. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * Boeing - initial API and implementation + *******************************************************************************/ +package org.eclipse.osee.framework.jdk.core.text; + +import java.io.File; +import java.io.IOException; +import java.util.logging.Handler; +import java.util.logging.LogRecord; +import javax.xml.parsers.ParserConfigurationException; +import javax.xml.transform.TransformerException; +import org.eclipse.osee.framework.jdk.core.util.xml.Jaxp; +import org.w3c.dom.Document; +import org.w3c.dom.Element; +import com.sun.org.apache.xml.internal.serialize.OutputFormat; + +/** + * @author Ryan D. Brooks + * @author Andrew M. Finkbeiner + */ +public class RulesLogHandler extends Handler { + + private Document document; + private File outFile; + private Element rootElement; + + /** + * RulesLogHandler Constructor. Sets the file to log to and the test script that will be logged. It also establishes + * the XML format to be used. + * + * @param outFile Reference to the file that will be used to output the log. + * @throws ParserConfigurationException + */ + public RulesLogHandler(File outFile) throws ParserConfigurationException { + super(); + this.outFile = outFile; + document = Jaxp.newDocument(); + rootElement = document.createElement("Rule"); + document.appendChild(rootElement); + } + + /** + * Write out the log records as XML. + */ + public void writeOutFile() { + // only write the XML file if there is something to write + if (rootElement.hasChildNodes()) { + try { + // create an XMLOutputter that indents using 3 spaces and uses new lines + OutputFormat format = new OutputFormat(document); + format.setIndenting(true); + format.setIndent(3); + Jaxp.writeXmlDocument(document, outFile, format); + } catch (IOException ex) { + ex.printStackTrace(); + } catch (TransformerException ex) { + ex.printStackTrace(); + } + } + } + + /* + * (non-Javadoc) + * + * @see java.util.logging.Handler#publish(java.util.logging.LogRecord) + */ + public void publish(LogRecord logRecord) { + if (!isLoggable(logRecord)) { + return; + } + + if (logRecord instanceof RuleRecord) { + RuleRecord record = (RuleRecord) logRecord; + rootElement.appendChild(record.toXml(document)); + } else { + rootElement.appendChild(Jaxp.createElement(document, logRecord.getLevel().getName(), logRecord.getMessage())); + } + } + + /* + * (non-Javadoc) + * + * @see java.util.logging.Handler#close() + */ + public void close() throws SecurityException { + writeOutFile(); + } + + /* + * (non-Javadoc) don't call this method + * + * @see java.util.logging.Handler#flush() + */ + public void flush() { + throw new UnsupportedOperationException(); + } +}
\ No newline at end of file |