1 /*
2  * Licensed to the Apache Software Foundation (ASF) under one
3  * or more contributor license agreements. See the NOTICE file
4  * distributed with this work for additional information
5  * regarding copyright ownership. The ASF licenses this file
6  * to you under the Apache License, Version 2.0 (the  "License");
7  * you may not use this file except in compliance with the License.
8  * You may obtain a copy of the License at
9  *
10  *     http://www.apache.org/licenses/LICENSE-2.0
11  *
12  * Unless required by applicable law or agreed to in writing, software
13  * distributed under the License is distributed on an "AS IS" BASIS,
14  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
15  * See the License for the specific language governing permissions and
16  * limitations under the License.
17  */
18 /*
19  * $Id: SerializerTrace.java 468654 2006-10-28 07:09:23Z minchau $
20  */
21 package org.apache.xml.serializer;
22 
23 import org.xml.sax.Attributes;
24 
25 /**
26  * This interface defines a set of integer constants that identify trace event
27  * types.
28  *
29  * @xsl.usage internal
30  */
31 
32 public interface SerializerTrace {
33 
34   /**
35    * Event type generated when a document begins.
36    *
37    */
38   public static final int EVENTTYPE_STARTDOCUMENT = 1;
39 
40   /**
41    * Event type generated when a document ends.
42    */
43   public static final int EVENTTYPE_ENDDOCUMENT = 2;
44 
45   /**
46    * Event type generated when an element begins (after the attributes have been processed but before the children have been added).
47    */
48   public static final int EVENTTYPE_STARTELEMENT = 3;
49 
50   /**
51    * Event type generated when an element ends, after it's children have been added.
52    */
53   public static final int EVENTTYPE_ENDELEMENT = 4;
54 
55   /**
56    * Event type generated for character data (CDATA and Ignorable Whitespace have their own events).
57    */
58   public static final int EVENTTYPE_CHARACTERS = 5;
59 
60   /**
61    * Event type generated for ignorable whitespace (I'm not sure how much this is actually called.
62    */
63   public static final int EVENTTYPE_IGNORABLEWHITESPACE = 6;
64 
65   /**
66    * Event type generated for processing instructions.
67    */
68   public static final int EVENTTYPE_PI = 7;
69 
70   /**
71    * Event type generated after a comment has been added.
72    */
73   public static final int EVENTTYPE_COMMENT = 8;
74 
75   /**
76    * Event type generate after an entity ref is created.
77    */
78   public static final int EVENTTYPE_ENTITYREF = 9;
79 
80   /**
81    * Event type generated after CDATA is generated.
82    */
83   public static final int EVENTTYPE_CDATA = 10;
84 
85   /**
86    * Event type generated when characters might be written to an output stream,
87    *  but  these characters never are. They will ultimately be written out via
88    * EVENTTYPE_OUTPUT_CHARACTERS. This type is used as attributes are collected.
89    * Whenever the attributes change this event type is fired. At the very end
90    * however, when the attributes do not change anymore and are going to be
91    * ouput to the document the real characters will be written out using the
92    * EVENTTYPE_OUTPUT_CHARACTERS.
93    */
94   public static final int EVENTTYPE_OUTPUT_PSEUDO_CHARACTERS = 11;
95 
96   /**
97    * Event type generated when characters are written to an output stream.
98    */
99   public static final int EVENTTYPE_OUTPUT_CHARACTERS = 12;
100 
101 
102   /**
103    * Tell if trace listeners are present.
104    *
105    * @return True if there are trace listeners
106    */
hasTraceListeners()107   public boolean hasTraceListeners();
108 
109   /**
110    * Fire startDocument, endDocument events.
111    *
112    * @param eventType One of the EVENTTYPE_XXX constants.
113    */
fireGenerateEvent(int eventType)114   public void fireGenerateEvent(int eventType);
115 
116   /**
117    * Fire startElement, endElement events.
118    *
119    * @param eventType One of the EVENTTYPE_XXX constants.
120    * @param name The name of the element.
121    * @param atts The SAX attribute list.
122    */
fireGenerateEvent(int eventType, String name, Attributes atts)123   public void fireGenerateEvent(int eventType, String name, Attributes atts);
124 
125   /**
126    * Fire characters, cdata events.
127    *
128    * @param eventType One of the EVENTTYPE_XXX constants.
129    * @param ch The char array from the SAX event.
130    * @param start The start offset to be used in the char array.
131    * @param length The end offset to be used in the chara array.
132    */
fireGenerateEvent(int eventType, char ch[], int start, int length)133   public void fireGenerateEvent(int eventType, char ch[], int start, int length);
134 
135   /**
136    * Fire processingInstruction events.
137    *
138    * @param eventType One of the EVENTTYPE_XXX constants.
139    * @param name The name of the processing instruction.
140    * @param data The processing instruction data.
141    */
fireGenerateEvent(int eventType, String name, String data)142   public void fireGenerateEvent(int eventType, String name, String data);
143 
144 
145   /**
146    * Fire comment and entity ref events.
147    *
148    * @param eventType One of the EVENTTYPE_XXX constants.
149    * @param data The comment or entity ref data.
150    */
fireGenerateEvent(int eventType, String data)151   public void fireGenerateEvent(int eventType, String data);
152 
153 }
154