View Javadoc

1   /*
2    *
3    *   Copyright 2005 The Apache Software Foundation.
4    *
5    *  Licensed under the Apache License, Version 2.0 (the "License");
6    *  you may not use this file except in compliance with the License.
7    *  You may obtain a copy of the License at
8    *
9    *      http://www.apache.org/licenses/LICENSE-2.0
10   *
11   *  Unless required by applicable law or agreed to in writing, software
12   *  distributed under the License is distributed on an "AS IS" BASIS,
13   *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14   *  See the License for the specific language governing permissions and
15   *  limitations under the License.
16   *
17   */
18  package org.apache.commons.scxml.env;
19  
20  import org.apache.commons.scxml.ErrorReporter;
21  import org.apache.commons.scxml.SCXMLListener;
22  import org.apache.commons.scxml.model.Transition;
23  import org.apache.commons.scxml.model.TransitionTarget;
24  
25  import org.xml.sax.ErrorHandler;
26  import org.xml.sax.SAXException;
27  import org.xml.sax.SAXParseException;
28  
29  /***
30   * A simple tracer connected to Jakarta Commons Logging.
31   *
32   */
33  public class Tracer implements ErrorHandler, ErrorReporter, SCXMLListener {
34  
35      /*** ErrorHandler delegate. */
36      private ErrorHandler errHandler;
37      /*** ErrorReporter delegate. */
38      private ErrorReporter errReporter;
39      /*** SCXMLListener delegate. */
40      private SCXMLListener scxmlListener;
41  
42      /***
43       * Constructor.
44       */
45      public Tracer() {
46          super();
47          errHandler = new SimpleErrorHandler();
48          errReporter = new SimpleErrorReporter();
49          scxmlListener = new SimpleSCXMLListener();
50      }
51  
52      /***
53       * @see org.xml.sax.ErrorHandler#warning(org.xml.sax.SAXParseException)
54       */
55      public void warning(final SAXParseException exception)
56      throws SAXException {
57          errHandler.warning(exception);
58      }
59  
60      /***
61       * @see org.xml.sax.ErrorHandler#error(org.xml.sax.SAXParseException)
62       */
63      public void error(final SAXParseException exception)
64      throws SAXException {
65          errHandler.error(exception);
66      }
67  
68      /***
69       * @see org.xml.sax.ErrorHandler#fatalError(org.xml.sax.SAXParseException)
70       */
71      public void fatalError(final SAXParseException exception)
72      throws SAXException {
73          errHandler.fatalError(exception);
74      }
75  
76      /***
77       * @see ErrorReporter#onError(String, String, Object)
78       */
79      public void onError(final String errCode, final String errDetail,
80              final Object errCtx) {
81          errReporter.onError(errCode, errDetail, errCtx);
82      }
83  
84      /***
85       * @see SCXMLListener#onEntry(TransitionTarget)
86       */
87      public void onEntry(final TransitionTarget target) {
88          scxmlListener.onEntry(target);
89      }
90  
91      /***
92       * @see SCXMLListener#onExit(TransitionTarget)
93       */
94      public void onExit(final TransitionTarget target) {
95          scxmlListener.onExit(target);
96      }
97  
98      /***
99  * @see SCXMLListener#onTransition(TransitionTarget,TransitionTarget,Transition)
100      */
101     public void onTransition(final TransitionTarget from,
102             final TransitionTarget to, final Transition transition) {
103         scxmlListener.onTransition(from, to, transition);
104     }
105 
106 }
107