Start line:  
End line:  

Snippet Preview

Snippet HTML Code

Stack Overflow Questions
  /*
   * Copyright (c) 2007-2008 Mozilla Foundation
   *
   * Permission is hereby granted, free of charge, to any person obtaining a 
   * copy of this software and associated documentation files (the "Software"), 
   * to deal in the Software without restriction, including without limitation 
   * the rights to use, copy, modify, merge, publish, distribute, sublicense, 
   * and/or sell copies of the Software, and to permit persons to whom the 
   * Software is furnished to do so, subject to the following conditions:
  *
  * The above copyright notice and this permission notice shall be included in 
  * all copies or substantial portions of the Software.
  *
  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 
  * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 
  * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL 
  * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 
  * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING 
  * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER 
  * DEALINGS IN THE SOFTWARE.
  */
 
 package nu.validator.xml;
 
 
This does not extend XMLFilterImpl, because XMLFilterImpl constructor overwrites handlers on the wrapped XMLReader.

Author(s):
hsivonen
Version:
$Id$
 
 public final class AttributesPermutingXMLReaderWrapper implements XMLReader,
         ContentHandler {
 
     private final XMLReader wrappedReader;
 
     private ContentHandler contentHandler;
 
     public AttributesPermutingXMLReaderWrapper(XMLReader wrappedReader) {
         this. = wrappedReader;
         this. = wrappedReader.getContentHandler();
         wrappedReader.setContentHandler(this);
     }

    
 
     public void characters(char[] chint startint length)
             throws SAXException {
         if ( == null) {
             return;
         }
         .characters(chstartlength);
     }

    
 
     public void endElement(String uriString localNameString qName)
             throws SAXException {
         if ( == null) {
             return;
         }
         .endElement(urilocalNameqName);
     }

    
 
     public void startDocument() throws SAXException {
         if ( == null) {
             return;
         }
         .startDocument();
     }

    
 
     public void startElement(String uriString localNameString qName,
             Attributes attsthrows SAXException {
         if ( == null) {
             return;
        }
        if ("http://www.w3.org/1999/xhtml" == uri) {
            if (("input" == localName || "command" == localName) && atts.getIndex("""type") > 0) {
                PermutingAttributesWrapper wrap = new PermutingAttributesWrapper(atts);
                wrap.pullUp("""role");
                wrap.pullUp("""type");
                wrap.pullUp("""template");                
                .startElement(urilocalNameqNamewrap);                
            } else if ("textarea" == localName && atts.getIndex("""wrap") > 0) {
                PermutingAttributesWrapper wrap = new PermutingAttributesWrapper(atts);
                wrap.pullUp("""wrap");
                wrap.pullUp("""template");                
                .startElement(urilocalNameqNamewrap);                
            } else if ("script" == localName && atts.getIndex("""src") > 0) {
                PermutingAttributesWrapper wrap = new PermutingAttributesWrapper(atts);
                wrap.pullUp("""src");
                wrap.pullUp("""template");                
                .startElement(urilocalNameqNamewrap);                
            } else if ("meta" == localName && atts.getIndex("""content") < atts.getLength() - 1) {
                PermutingAttributesWrapper wrap = new PermutingAttributesWrapper(atts);
                wrap.pushDown("""content");
                wrap.pullUp("""template");                
                .startElement(urilocalNameqNamewrap);                
            } else if (atts.getIndex("""template") > 0 || atts.getIndex("""role") > 0) {
                PermutingAttributesWrapper wrap = new PermutingAttributesWrapper(atts);
                wrap.pullUp("""role");
                wrap.pullUp("""template");                
                .startElement(urilocalNameqNamewrap);                                
            } else {
                .startElement(urilocalNameqNameatts);                
            }
        } else {
            .startElement(urilocalNameqNameatts);
        }
    }

    
    public void setDocumentLocator(Locator locator) {
        if ( == null) {
            return;
        }
        .setDocumentLocator(locator);
    }
    public ContentHandler getContentHandler() {
        return ;
    }

    
    public void endDocument() throws SAXException {
        if ( == null) {
            return;
        }
        .endDocument();
    }

    
    public void endPrefixMapping(String prefixthrows SAXException {
        if ( == null) {
            return;
        }
        .endPrefixMapping(prefix);
    }

    
    public void ignorableWhitespace(char[] chint startint length)
            throws SAXException {
        if ( == null) {
            return;
        }
        .ignorableWhitespace(chstartlength);
    }

    
    public void processingInstruction(String targetString data)
            throws SAXException {
        if ( == null) {
            return;
        }
        .processingInstruction(targetdata);
    }

    
    public void skippedEntity(String namethrows SAXException {
        if ( == null) {
            return;
        }
        .skippedEntity(name);
    }

    
    public void startPrefixMapping(String prefixString uri)
            throws SAXException {
        if ( == null) {
            return;
        }
        .startPrefixMapping(prefixuri);
    }

    
    public DTDHandler getDTDHandler() {
        return .getDTDHandler();
    }

    
    public EntityResolver getEntityResolver() {
        return .getEntityResolver();
    }

    
    public ErrorHandler getErrorHandler() {
        return .getErrorHandler();
    }

    
    public boolean getFeature(String namethrows SAXNotRecognizedException,
            SAXNotSupportedException {
        return .getFeature(name);
    }

    
    public Object getProperty(String namethrows SAXNotRecognizedException,
            SAXNotSupportedException {
        return .getProperty(name);
    }

    
    public void parse(InputSource inputthrows IOExceptionSAXException {
        .parse(input);
    }

    
    public void parse(String systemIdthrows IOExceptionSAXException {
        .parse(systemId);
    }

    
    public void setContentHandler(ContentHandler handler) {
         = handler;
    }

    
    public void setDTDHandler(DTDHandler handler) {
        .setDTDHandler(handler);
    }

    
    public void setEntityResolver(EntityResolver resolver) {
        .setEntityResolver(resolver);
    }

    
    public void setErrorHandler(ErrorHandler handler) {
        .setErrorHandler(handler);
    }

    
    public void setFeature(String nameboolean value)
            throws SAXNotRecognizedExceptionSAXNotSupportedException {
        .setFeature(namevalue);
    }

    
    public void setProperty(String nameObject value)
            throws SAXNotRecognizedExceptionSAXNotSupportedException {
        .setProperty(namevalue);
    }
New to GrepCode? Check out our FAQ X