001 package com.croftsoft.core.text.xml; 002 003 import java.io.*; 004 import org.xml.sax.*; 005 import org.xml.sax.helpers.*; 006 007 import com.croftsoft.core.lang.NullArgumentException; 008 009 /********************************************************************* 010 * Filters DefaultHandler operations. 011 * 012 * <p> 013 * Override the FilterDefaultHandler methods to filter calls to the 014 * DefaultHandler delegate. 015 * The initial DefaultHandler delegate can be replaced which allows you 016 * to swap the implementation as necessary. 017 * </p> 018 * 019 * @version 020 * $Date: 2008/04/19 21:18:27 $ 021 * @since 022 * 2002-09-18 023 * @author 024 * <a href="https://www.croftsoft.com/">David Wallace Croft</a> 025 *********************************************************************/ 026 027 public class FilterDefaultHandler 028 extends DefaultHandler 029 implements EntityResolver, DTDHandler, ContentHandler, ErrorHandler 030 ////////////////////////////////////////////////////////////////////// 031 ////////////////////////////////////////////////////////////////////// 032 { 033 034 private DefaultHandler defaultHandler; 035 036 ////////////////////////////////////////////////////////////////////// 037 ////////////////////////////////////////////////////////////////////// 038 039 public FilterDefaultHandler ( DefaultHandler defaultHandler ) 040 ////////////////////////////////////////////////////////////////////// 041 { 042 setDefaultHandler ( defaultHandler ); 043 } 044 045 ////////////////////////////////////////////////////////////////////// 046 ////////////////////////////////////////////////////////////////////// 047 048 public DefaultHandler getDefaultHandler ( ) 049 ////////////////////////////////////////////////////////////////////// 050 { 051 return defaultHandler; 052 } 053 054 public void setDefaultHandler ( DefaultHandler defaultHandler ) 055 ////////////////////////////////////////////////////////////////////// 056 { 057 NullArgumentException.check ( 058 this.defaultHandler = defaultHandler ); 059 } 060 061 ////////////////////////////////////////////////////////////////////// 062 ////////////////////////////////////////////////////////////////////// 063 064 @Override 065 public void characters ( 066 char [ ] ch, 067 int start, 068 int length ) 069 throws SAXException 070 ////////////////////////////////////////////////////////////////////// 071 { 072 defaultHandler.characters ( ch, start, length ); 073 } 074 075 @Override 076 public void endDocument ( ) 077 throws SAXException 078 ////////////////////////////////////////////////////////////////////// 079 { 080 defaultHandler.endDocument ( ); 081 } 082 083 @Override 084 public void endElement ( 085 String namespaceURI, 086 String localName, 087 String qName ) 088 throws SAXException 089 ////////////////////////////////////////////////////////////////////// 090 { 091 defaultHandler.endElement ( namespaceURI, localName, qName ); 092 } 093 094 @Override 095 public void endPrefixMapping ( String prefix ) 096 throws SAXException 097 ////////////////////////////////////////////////////////////////////// 098 { 099 defaultHandler.endPrefixMapping ( prefix ); 100 } 101 102 @Override 103 public void error ( SAXParseException e ) 104 throws SAXException 105 ////////////////////////////////////////////////////////////////////// 106 { 107 defaultHandler.error ( e ); 108 } 109 110 @Override 111 public void fatalError ( SAXParseException e ) 112 throws SAXException 113 ////////////////////////////////////////////////////////////////////// 114 { 115 defaultHandler.fatalError ( e ); 116 } 117 118 @Override 119 public void ignorableWhitespace ( 120 char [ ] ch, 121 int start, 122 int length ) 123 throws SAXException 124 ////////////////////////////////////////////////////////////////////// 125 { 126 defaultHandler.ignorableWhitespace ( ch, start, length ); 127 } 128 129 @Override 130 public void notationDecl ( 131 String name, 132 String publicId, 133 String systemId ) 134 throws SAXException 135 ////////////////////////////////////////////////////////////////////// 136 { 137 defaultHandler.notationDecl ( name, publicId, systemId ); 138 } 139 140 @Override 141 public void processingInstruction ( 142 String target, 143 String data ) 144 throws SAXException 145 ////////////////////////////////////////////////////////////////////// 146 { 147 defaultHandler.processingInstruction ( target, data ); 148 } 149 150 @Override 151 public InputSource resolveEntity ( 152 String publicId, 153 String systemId ) 154 throws IOException, SAXException 155 ////////////////////////////////////////////////////////////////////// 156 { 157 return defaultHandler.resolveEntity ( publicId, systemId ); 158 } 159 160 @Override 161 public void setDocumentLocator ( Locator locator ) 162 ////////////////////////////////////////////////////////////////////// 163 { 164 defaultHandler.setDocumentLocator ( locator ); 165 } 166 167 @Override 168 public void skippedEntity ( String name ) 169 throws SAXException 170 ////////////////////////////////////////////////////////////////////// 171 { 172 defaultHandler.skippedEntity ( name ); 173 } 174 175 @Override 176 public void startDocument ( ) 177 throws SAXException 178 ////////////////////////////////////////////////////////////////////// 179 { 180 defaultHandler.startDocument ( ); 181 } 182 183 @Override 184 public void startElement ( 185 String namespaceURI, 186 String localName, 187 String qName, 188 Attributes atts ) 189 throws SAXException 190 ////////////////////////////////////////////////////////////////////// 191 { 192 defaultHandler.startElement ( 193 namespaceURI, localName, qName, atts ); 194 } 195 196 @Override 197 public void startPrefixMapping ( 198 String prefix, 199 String uri ) 200 throws SAXException 201 ////////////////////////////////////////////////////////////////////// 202 { 203 defaultHandler.startPrefixMapping ( prefix, uri ); 204 } 205 206 @Override 207 public void unparsedEntityDecl ( 208 String name, 209 String publicId, 210 String systemId, 211 String notationName ) 212 throws SAXException 213 ////////////////////////////////////////////////////////////////////// 214 { 215 defaultHandler.unparsedEntityDecl ( 216 name, publicId, systemId, notationName ); 217 } 218 219 @Override 220 public void warning ( SAXParseException e ) 221 throws SAXException 222 ////////////////////////////////////////////////////////////////////// 223 { 224 defaultHandler.warning ( e ); 225 } 226 227 ////////////////////////////////////////////////////////////////////// 228 ////////////////////////////////////////////////////////////////////// 229 }