001 /* 002 * Licensed to the Apache Software Foundation (ASF) under one 003 * or more contributor license agreements. See the NOTICE file 004 * distributed with this work for additional information 005 * regarding copyright ownership. The ASF licenses this file 006 * to you under the Apache License, Version 2.0 (the "License"); 007 * you may not use this file except in compliance with the License. 008 * You may obtain a copy of the License at 009 * 010 * http://www.apache.org/licenses/LICENSE-2.0 011 * 012 * Unless required by applicable law or agreed to in writing, software 013 * distributed under the License is distributed on an "AS IS" BASIS, 014 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 015 * See the License for the specific language governing permissions and 016 * limitations under the License. 017 */ 018 /* 019 * $Id: SerializerTrace.java 468654 2006-10-28 07:09:23Z minchau $ 020 */ 021 package org.apache.xml.serializer; 022 023 import org.xml.sax.Attributes; 024 025 /** 026 * This interface defines a set of integer constants that identify trace event 027 * types. 028 * 029 * @xsl.usage internal 030 */ 031 032 public interface SerializerTrace { 033 034 /** 035 * Event type generated when a document begins. 036 * 037 */ 038 public static final int EVENTTYPE_STARTDOCUMENT = 1; 039 040 /** 041 * Event type generated when a document ends. 042 */ 043 public static final int EVENTTYPE_ENDDOCUMENT = 2; 044 045 /** 046 * Event type generated when an element begins (after the attributes have been processed but before the children have been added). 047 */ 048 public static final int EVENTTYPE_STARTELEMENT = 3; 049 050 /** 051 * Event type generated when an element ends, after it's children have been added. 052 */ 053 public static final int EVENTTYPE_ENDELEMENT = 4; 054 055 /** 056 * Event type generated for character data (CDATA and Ignorable Whitespace have their own events). 057 */ 058 public static final int EVENTTYPE_CHARACTERS = 5; 059 060 /** 061 * Event type generated for ignorable whitespace (I'm not sure how much this is actually called. 062 */ 063 public static final int EVENTTYPE_IGNORABLEWHITESPACE = 6; 064 065 /** 066 * Event type generated for processing instructions. 067 */ 068 public static final int EVENTTYPE_PI = 7; 069 070 /** 071 * Event type generated after a comment has been added. 072 */ 073 public static final int EVENTTYPE_COMMENT = 8; 074 075 /** 076 * Event type generate after an entity ref is created. 077 */ 078 public static final int EVENTTYPE_ENTITYREF = 9; 079 080 /** 081 * Event type generated after CDATA is generated. 082 */ 083 public static final int EVENTTYPE_CDATA = 10; 084 085 /** 086 * Event type generated when characters might be written to an output stream, 087 * but these characters never are. They will ultimately be written out via 088 * EVENTTYPE_OUTPUT_CHARACTERS. This type is used as attributes are collected. 089 * Whenever the attributes change this event type is fired. At the very end 090 * however, when the attributes do not change anymore and are going to be 091 * ouput to the document the real characters will be written out using the 092 * EVENTTYPE_OUTPUT_CHARACTERS. 093 */ 094 public static final int EVENTTYPE_OUTPUT_PSEUDO_CHARACTERS = 11; 095 096 /** 097 * Event type generated when characters are written to an output stream. 098 */ 099 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 }