19f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson/* 29f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * Licensed to the Apache Software Foundation (ASF) under one 39f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * or more contributor license agreements. See the NOTICE file 49f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * distributed with this work for additional information 59f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * regarding copyright ownership. The ASF licenses this file 69f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * to you under the Apache License, Version 2.0 (the "License"); 79f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * you may not use this file except in compliance with the License. 89f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * You may obtain a copy of the License at 99f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * 109f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * http://www.apache.org/licenses/LICENSE-2.0 119f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * 129f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * Unless required by applicable law or agreed to in writing, software 139f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * distributed under the License is distributed on an "AS IS" BASIS, 149f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 159f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * See the License for the specific language governing permissions and 169f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * limitations under the License. 179f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson */ 189f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson/* 199f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * $Id: SerializerTrace.java 468654 2006-10-28 07:09:23Z minchau $ 209f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson */ 219f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilsonpackage org.apache.xml.serializer; 229f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson 239f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilsonimport org.xml.sax.Attributes; 249f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson 259f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson/** 269f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * This interface defines a set of integer constants that identify trace event 279f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * types. 289f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * 299f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * @xsl.usage internal 309f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson */ 319f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson 329f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilsonpublic interface SerializerTrace { 339f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson 349f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson /** 359f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * Event type generated when a document begins. 369f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * 379f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson */ 389f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson public static final int EVENTTYPE_STARTDOCUMENT = 1; 399f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson 409f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson /** 419f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * Event type generated when a document ends. 429f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson */ 439f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson public static final int EVENTTYPE_ENDDOCUMENT = 2; 449f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson 459f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson /** 469f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * Event type generated when an element begins (after the attributes have been processed but before the children have been added). 479f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson */ 489f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson public static final int EVENTTYPE_STARTELEMENT = 3; 499f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson 509f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson /** 519f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * Event type generated when an element ends, after it's children have been added. 529f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson */ 539f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson public static final int EVENTTYPE_ENDELEMENT = 4; 549f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson 559f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson /** 569f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * Event type generated for character data (CDATA and Ignorable Whitespace have their own events). 579f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson */ 589f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson public static final int EVENTTYPE_CHARACTERS = 5; 599f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson 609f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson /** 619f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * Event type generated for ignorable whitespace (I'm not sure how much this is actually called. 629f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson */ 639f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson public static final int EVENTTYPE_IGNORABLEWHITESPACE = 6; 649f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson 659f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson /** 669f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * Event type generated for processing instructions. 679f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson */ 689f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson public static final int EVENTTYPE_PI = 7; 699f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson 709f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson /** 719f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * Event type generated after a comment has been added. 729f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson */ 739f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson public static final int EVENTTYPE_COMMENT = 8; 749f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson 759f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson /** 769f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * Event type generate after an entity ref is created. 779f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson */ 789f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson public static final int EVENTTYPE_ENTITYREF = 9; 799f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson 809f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson /** 819f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * Event type generated after CDATA is generated. 829f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson */ 839f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson public static final int EVENTTYPE_CDATA = 10; 849f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson 859f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson /** 869f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * Event type generated when characters might be written to an output stream, 879f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * but these characters never are. They will ultimately be written out via 889f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * EVENTTYPE_OUTPUT_CHARACTERS. This type is used as attributes are collected. 899f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * Whenever the attributes change this event type is fired. At the very end 909f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * however, when the attributes do not change anymore and are going to be 919f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * ouput to the document the real characters will be written out using the 929f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * EVENTTYPE_OUTPUT_CHARACTERS. 939f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson */ 949f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson public static final int EVENTTYPE_OUTPUT_PSEUDO_CHARACTERS = 11; 959f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson 969f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson /** 979f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * Event type generated when characters are written to an output stream. 989f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson */ 999f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson public static final int EVENTTYPE_OUTPUT_CHARACTERS = 12; 1009f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson 1019f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson 1029f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson /** 1039f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * Tell if trace listeners are present. 1049f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * 1059f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * @return True if there are trace listeners 1069f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson */ 1079f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson public boolean hasTraceListeners(); 1089f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson 1099f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson /** 1109f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * Fire startDocument, endDocument events. 1119f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * 1129f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * @param eventType One of the EVENTTYPE_XXX constants. 1139f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson */ 1149f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson public void fireGenerateEvent(int eventType); 1159f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson 1169f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson /** 1179f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * Fire startElement, endElement events. 1189f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * 1199f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * @param eventType One of the EVENTTYPE_XXX constants. 1209f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * @param name The name of the element. 1219f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * @param atts The SAX attribute list. 1229f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson */ 1239f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson public void fireGenerateEvent(int eventType, String name, Attributes atts); 1249f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson 1259f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson /** 1269f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * Fire characters, cdata events. 1279f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * 1289f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * @param eventType One of the EVENTTYPE_XXX constants. 1299f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * @param ch The char array from the SAX event. 1309f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * @param start The start offset to be used in the char array. 1319f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * @param length The end offset to be used in the chara array. 1329f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson */ 1339f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson public void fireGenerateEvent(int eventType, char ch[], int start, int length); 1349f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson 1359f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson /** 1369f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * Fire processingInstruction events. 1379f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * 1389f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * @param eventType One of the EVENTTYPE_XXX constants. 1399f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * @param name The name of the processing instruction. 1409f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * @param data The processing instruction data. 1419f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson */ 1429f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson public void fireGenerateEvent(int eventType, String name, String data); 1439f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson 1449f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson 1459f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson /** 1469f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * Fire comment and entity ref events. 1479f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * 1489f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * @param eventType One of the EVENTTYPE_XXX constants. 1499f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * @param data The comment or entity ref data. 1509f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson */ 1519f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson public void fireGenerateEvent(int eventType, String data); 1529f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson 1539f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson} 154