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 */
21package org.apache.xml.serializer;
22
23import 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
32public 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   */
107  public boolean hasTraceListeners();
108
109  /**
110   * Fire startDocument, endDocument events.
111   *
112   * @param eventType One of the EVENTTYPE_XXX constants.
113   */
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   */
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   */
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   */
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   */
151  public void fireGenerateEvent(int eventType, String data);
152
153}
154