Start line:  
End line:  

Snippet Preview

Snippet HTML Code

Stack Overflow Questions
  /*
   * Copyright (c) 2007-2012 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.spec.html5;
 
 import java.util.Map;
 
 
 
 public final class Html5AttributeDatatypeBuilder implements ContentHandler {
 
     private static final String NS = "http://www.w3.org/1999/xhtml";
 
     private enum State {
         AWAITING_H2, AWAITING_HEADLINE, IN_HEADLINE, AWAITING_H2_END, AWAITING_P, IN_P
 
     }
 
     private State state = .;
 
     private Class currentClass = null;
 
     private int depth = 0;
 
     private StringBuilder stringBuilder = new StringBuilder();
 
 
     private TreeBuilder treeBuilder;
 
 
     public static Map<ClassDocumentFragmentparseSyntaxDescriptions() throws IOExceptionSAXException {
         HtmlParser parser = new HtmlParser(.);
         Html5AttributeDatatypeBuilder handler = new Html5AttributeDatatypeBuilder();
         parser.setContentHandler(handler);
         InputSource in = new InputSource(
                 Html5AttributeDatatypeBuilder.class.getClassLoader().getResourceAsStream(
                         "nu/validator/localentities/files/syntax-descriptions"));
         parser.parse(in);
         return handler.getAdvice();
     }
     
     public static void main(String[] argsthrows IOExceptionSAXException {
         parseSyntaxDescriptions();
     }
     
     private Html5AttributeDatatypeBuilder() {
 
     }
     
     public void startDocument() throws SAXException {
          = .;
     }
 
     public void startElement(String uriString localNameString qName,
             Attributes attsthrows SAXException {
         switch () {
             case :
                 if ("h2" == localName &&  == uri) {
                      = 0;
                      = .;
                 }
                 return;
            case :
                if ( == 0 && "span" == localName &&  == uri
                        && "mw-headline".equals(atts.getValue("""class"))) {
                    .setLength(0);
                     = .;
                } else {
                    ++;
                }
                return;
            case :
                ++;
                return;
            case :
                ++;
                return;
            case :
                if ( == uri && "p" == localName) {
                    .startElement("dd""dd",
                            .);
                     = .;
                } else {
                     = .;
                }
                return;
            case :
                ++;
                String href = null;
                if ( == uri && "a" == localName
                        && ((href = atts.getValue("""href")) != null)) {
                    AttributesImpl ai = new AttributesImpl();
                    ai.addAttribute("href"href);
                    .startElement(urilocalNameqNameai);
                } else {
                    .startElement(urilocalNameqName,
                            .);
                }
        }
    }
    public void endElement(String uriString localNameString qName)
            throws SAXException {
        switch () {
            case :
                return;
            case :
                if ( == 0) {
                     = .;
                } else {
                    --;
                }
                return;
            case :
                if ( == 0) {
                    try {
                        String name = .toString();
                        AbstractDatatype datatype = (AbstractDatatype.createDatatype(name);
                         = datatype.getClass();
                         = new TreeBuilder(truetrue);
                        .startElement("dt""dt",
                                .);
                        String dt = "Syntax of " + datatype.getName() + ":";
                        .characters(dt.toCharArray(), 0, dt.length());
                        .endElement("dt""dt");
                         = .;
                    } catch (DatatypeException e) {
                         = .;
                    }
                } else {
                    --;
                }
                return;
            case :
                if ( == 0) {
                     = .;
                } else {
                    --;
                }
                return;
            case :
                // should be impossible
                 = .;
                return;
            case :
                if ( == 0) {
                    .endElement("dt""dt");
                    .put(,
                            (DocumentFragment.getRoot());
                     = .;
                } else {
                    --;
                    .endElement(urilocalNameqName);
                }
                return;
        }
    }

    
    public void characters(char[] chint startint length)
            throws SAXException {
        switch () {
            case :
                .append(chstartlength);
                return;
            case :
                .characters(chstartlength);
                return;
            default:
                return;
        }
    }
    public void endDocument() throws SAXException {
    }
    public void endPrefixMapping(String prefixthrows SAXException {
    }
    public void ignorableWhitespace(char[] chint startint length)
            throws SAXException {
    }
    public void processingInstruction(String targetString data)
            throws SAXException {
    }
    public void setDocumentLocator(Locator locator) {
    }
    public void skippedEntity(String namethrows SAXException {
    }
    public void startPrefixMapping(String prefixString uri)
            throws SAXException {
    }

    
Returns the adviceByClass.

Returns:
the adviceByClass
    private Map<ClassDocumentFragmentgetAdvice() {
        return ;
    }
New to GrepCode? Check out our FAQ X