You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@commons.apache.org by ra...@apache.org on 2005/10/09 06:41:16 UTC
svn commit: r307360 -
/jakarta/commons/sandbox/scxml/trunk/src/main/java/org/apache/commons/scxml/env/Tracer.java
Author: rahul
Date: Sat Oct 8 21:41:14 2005
New Revision: 307360
URL: http://svn.apache.org/viewcvs?rev=307360&view=rev
Log:
Have the Tracer delegate to the simple loggers.
Modified:
jakarta/commons/sandbox/scxml/trunk/src/main/java/org/apache/commons/scxml/env/Tracer.java
Modified: jakarta/commons/sandbox/scxml/trunk/src/main/java/org/apache/commons/scxml/env/Tracer.java
URL: http://svn.apache.org/viewcvs/jakarta/commons/sandbox/scxml/trunk/src/main/java/org/apache/commons/scxml/env/Tracer.java?rev=307360&r1=307359&r2=307360&view=diff
==============================================================================
--- jakarta/commons/sandbox/scxml/trunk/src/main/java/org/apache/commons/scxml/env/Tracer.java (original)
+++ jakarta/commons/sandbox/scxml/trunk/src/main/java/org/apache/commons/scxml/env/Tracer.java Sat Oct 8 21:41:14 2005
@@ -17,197 +17,96 @@
*/
package org.apache.commons.scxml.env;
-import java.util.HashSet;
-import java.util.Iterator;
-import java.util.LinkedList;
-import java.util.Map;
-import java.util.Set;
-
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
+
import org.apache.commons.scxml.ErrorReporter;
import org.apache.commons.scxml.SCXMLListener;
-import org.apache.commons.scxml.model.SCXML;
-import org.apache.commons.scxml.model.State;
import org.apache.commons.scxml.model.Transition;
import org.apache.commons.scxml.model.TransitionTarget;
+
import org.xml.sax.ErrorHandler;
import org.xml.sax.SAXException;
import org.xml.sax.SAXParseException;
/**
- * A simple logger connected to Jakarta Commons Logging.
+ * A simple tracer connected to Jakarta Commons Logging.
*
*/
-public class Tracer implements ErrorReporter, SCXMLListener, ErrorHandler {
+public class Tracer implements ErrorHandler, ErrorReporter, SCXMLListener {
/** A Logger for the Tracer. */
private static Log log = LogFactory.getLog(Tracer.class);
+ /** ErrorHandler delegate. */
+ ErrorHandler errHandler;
+ /** ErrorReporter delegate. */
+ ErrorReporter errReporter;
+ /** SCXMLListener delegate. */
+ SCXMLListener scxmlListener;
+
/**
* Constructor.
*/
public Tracer() {
super();
+ errHandler = new SimpleErrorHandler();
+ errReporter = new SimpleErrorReporter();
+ scxmlListener = new SimpleSCXMLListener();
}
/**
- * @see ErrorReporter#onError(String, String, Object)
- */
- public void onError(final String errorCode, final String errDetail,
- final Object errCtx) {
- //Note: the if-then-else below is based on the actual usage
- // (codebase search), it has to be kept up-to-date as the code changes
- String errCode = errorCode.intern();
- StringBuffer msg = new StringBuffer();
- msg.append(errCode).append(" (");
- msg.append(errDetail).append("): ");
- if (errCode == ErrorReporter.NO_INITIAL) {
- if (errCtx instanceof SCXML) {
- //determineInitialStates
- msg.append("<SCXML>");
- } else if (errCtx instanceof State) {
- //determineInitialStates
- //determineTargetStates
- msg.append("State " + Tracer.getTTPath((State) errCtx));
- }
- } else if (errCode == ErrorReporter.UNKNOWN_ACTION) {
- //executeActionList
- msg.append("Action: " + errCtx.getClass().getName());
- } else if (errCode == ErrorReporter.NON_DETERMINISTIC) {
- //filterTransitionSet
- msg.append(" [");
- if (errCtx instanceof HashSet) {
- for (Iterator i = ((Set) errCtx).iterator(); i.hasNext();) {
- Transition t = (Transition) i.next();
- msg.append(transToString(t.getParent(), t.getTarget(), t));
- if (i.hasNext()) {
- msg.append(", ");
- }
- }
- }
- msg.append(']');
- } else if (errCode == ErrorReporter.ILLEGAL_CONFIG) {
- //isLegalConfig
- if (errCtx instanceof Map.Entry) {
- TransitionTarget tt = (TransitionTarget)
- (((Map.Entry) errCtx).getKey());
- Set vals = (Set) (((Map.Entry) errCtx).getValue());
- msg.append(Tracer.getTTPath(tt) + " : [");
- for (Iterator i = vals.iterator(); i.hasNext();) {
- TransitionTarget tx = (TransitionTarget) i.next();
- msg.append(Tracer.getTTPath(tx));
- if (i.hasNext()) {
- msg.append(", ");
- }
- }
- msg.append(']');
- } else if (errCtx instanceof Set) {
- Set vals = (Set) errCtx;
- msg.append("<SCXML> : [");
- for (Iterator i = vals.iterator(); i.hasNext();) {
- TransitionTarget tx = (TransitionTarget) i.next();
- msg.append(Tracer.getTTPath(tx));
- if (i.hasNext()) {
- msg.append(", ");
- }
- }
- msg.append(']');
- }
- }
- log.warn(msg.toString());
- }
-
- /**
- * @see SCXMLListener#onEntry(TransitionTarget)
+ * @see org.xml.sax.ErrorHandler#warning(org.xml.sax.SAXParseException)
*/
- public void onEntry(final TransitionTarget state) {
- log.info(Tracer.getTTPath(state));
+ public void warning(final SAXParseException exception)
+ throws SAXException {
+ errHandler.warning(exception);
}
/**
- * @see SCXMLListener#onExit(TransitionTarget)
+ * @see org.xml.sax.ErrorHandler#error(org.xml.sax.SAXParseException)
*/
- public void onExit(final TransitionTarget state) {
- log.info(Tracer.getTTPath(state));
+ public void error(final SAXParseException exception)
+ throws SAXException {
+ errHandler.error(exception);
}
/**
-* @see SCXMLListener#onTransition(TransitionTarget,TransitionTarget,Transition)
+ * @see org.xml.sax.ErrorHandler#fatalError(org.xml.sax.SAXParseException)
*/
- public void onTransition(final TransitionTarget from,
- final TransitionTarget to, final Transition transition) {
- log.info(transToString(from, to, transition));
+ public void fatalError(final SAXParseException exception)
+ throws SAXException {
+ errHandler.fatalError(exception);
}
/**
- * Create a human readable log view of this transition.
- *
- * @param from The source TransitionTarget
- * @param to The destination TransitionTarget
- * @param transition The Transition that is taken
- * @return String The human readable log entry
+ * @see ErrorReporter#onError(String, String, Object)
*/
- private static String transToString(final TransitionTarget from,
- final TransitionTarget to, final Transition transition) {
- StringBuffer buf = new StringBuffer("transition (");
- buf.append("event = ").append(transition.getEvent());
- buf.append(", cond = ").append(transition.getCond());
- buf.append(", from = ").append(Tracer.getTTPath(from));
- buf.append(", to = ").append(Tracer.getTTPath(to));
- buf.append(')');
- return buf.toString();
+ public void onError(final String errCode, final String errDetail,
+ final Object errCtx) {
+ errReporter.onError(errCode, errDetail, errCtx);
}
/**
- * @see org.xml.sax.ErrorHandler#warning(org.xml.sax.SAXParseException)
+ * @see SCXMLListener#onEntry(TransitionTarget)
*/
- public void warning(final SAXParseException exception)
- throws SAXException {
- log.warn(exception.getMessage(), exception);
+ public void onEntry(final TransitionTarget target) {
+ scxmlListener.onEntry(target);
}
/**
- * @see org.xml.sax.ErrorHandler#error(org.xml.sax.SAXParseException)
+ * @see SCXMLListener#onExit(TransitionTarget)
*/
- public void error(final SAXParseException exception)
- throws SAXException {
- log.error(exception.getMessage(), exception);
+ public void onExit(final TransitionTarget target) {
+ scxmlListener.onExit(target);
}
/**
- * @see org.xml.sax.ErrorHandler#fatalError(org.xml.sax.SAXParseException)
+* @see SCXMLListener#onTransition(TransitionTarget,TransitionTarget,Transition)
*/
- public void fatalError(final SAXParseException exception)
- throws SAXException {
- log.fatal(exception.getMessage(), exception);
- }
-
- /**
- * Write out this TransitionTarget location in a XPath style format.
- *
- * @param tt The TransitionTarget whose "path" is to needed
- * @return String The XPath style location of the TransitionTarget within
- * the SCXML document
- */
- private static String getTTPath(final TransitionTarget tt) {
- TransitionTarget parent = tt.getParent();
- if (parent == null) {
- return "/" + tt.getId();
- } else {
- LinkedList pathElements = new LinkedList();
- pathElements.addFirst(tt);
- while (parent != null) {
- pathElements.addFirst(parent);
- parent = parent.getParent();
- }
- StringBuffer names = new StringBuffer();
- for (Iterator i = pathElements.iterator(); i.hasNext();) {
- TransitionTarget pathElement = (TransitionTarget) i.next();
- names.append('/').append(pathElement.getId());
- }
- return names.toString();
- }
+ public void onTransition(final TransitionTarget from,
+ final TransitionTarget to, final Transition transition) {
+ scxmlListener.onTransition(from, to, transition);
}
}
---------------------------------------------------------------------
To unsubscribe, e-mail: commons-dev-unsubscribe@jakarta.apache.org
For additional commands, e-mail: commons-dev-help@jakarta.apache.org