Start line:  
End line:  

Snippet Preview

Snippet HTML Code

Stack Overflow Questions
  package com.thaiopensource.relaxng.impl;
  
 
 
 public class IdSoundnessChecker implements ValidatorContentHandler {
   private final IdTypeMap idTypeMap;
   private final ErrorHandler eh;
   private Locator locator;
   private final Hashtable table = new Hashtable();
 
   private static class Entry {
     Locator idLoc;
     Vector idrefLocs;
     boolean hadId;
   }
 
   public IdSoundnessChecker(IdTypeMap idTypeMapErrorHandler eh) {
     this. = idTypeMap;
     this. = eh;
   }
 
   public void reset() {
     .clear();
      = null;
   }
 
     return this;
   }
 
   public DTDHandler getDTDHandler() {
     return null;
   }
 
   public void setDocumentLocator(Locator locator) {
     this. = locator;
   }
 
   public void startDocument() throws SAXException {
   }
 
   void setComplete() {
   }
 
   public void endDocument() throws SAXException {
     for (Enumeration e = .keys(); e.hasMoreElements();) {
       String token = (String)e.nextElement();
       Entry entry = (Entry).get(token);
       if (!entry.hadId) {
         for (Enumeration f = entry.idrefLocs.elements(); f.hasMoreElements();)
           error("missing_id"token, (Locator)f.nextElement());
       }
     }
     setComplete();
   }
 
   public void startPrefixMapping(String sString s1throws SAXException {
   }
 
   public void endPrefixMapping(String sthrows SAXException {
   }
 
   public void startElement(String namespaceUriString localNameString qNameAttributes attributes)
           throws SAXException {
     Name elementName = new Name(namespaceUrilocalName);
     int len = attributes.getLength();
     for (int i = 0; i < leni++) {
       Name attributeName = new Name(attributes.getURI(i), attributes.getLocalName(i));
       int idType = .getIdType(elementNameattributeName);
       if (idType != .) {
         String[] tokens = StringSplitter.split(attributes.getValue(i));
         switch (idType) {
         case .:
           if (tokens.length == 1)
             id(tokens[0]);
           else if (tokens.length == 0)
             error("id_no_tokens");
           else
             error("id_multiple_tokens");
           break;
         case .:
           if (tokens.length == 1)
             idref(tokens[0]);
           else if (tokens.length == 0)
            error("idref_no_tokens");
          else
            error("idref_multiple_tokens");
          break;
        case .:
          if (tokens.length > 0) {
            for (int j = 0; j < tokens.lengthj++)
              idref(tokens[j]);
          }
          else
            error("idrefs_no_tokens");
          break;
        }
      }
    }
  }
  private void id(String tokenthrows SAXException {
    Entry entry = (Entry).get(token);
    if (entry == null) {
      entry = new Entry();
      .put(tokenentry);
    }
    else if (entry.hadId) {
      error("duplicate_id"token);
      error("first_id"tokenentry.idLoc);
      return;
    }
    entry.idLoc = new LocatorImpl();
    entry.hadId = true;
  }
  private void idref(String token) {
    Entry entry = (Entry).get(token);
    if (entry == null) {
      entry = new Entry();
      .put(tokenentry);
    }
    if (entry.hadId)
      return;
    if (entry.idrefLocs == null)
      entry.idrefLocs = new Vector();
    entry.idrefLocs.addElement(new LocatorImpl());
  }
  public void endElement(String sString s1String s2throws SAXException {
  }
  public void characters(char[] charsint iint i1throws SAXException {
  }
  public void ignorableWhitespace(char[] charsint iint i1throws SAXException {
  }
  public void processingInstruction(String sString s1throws SAXException {
  }
  public void skippedEntity(String sthrows SAXException {
  }
  public void notationDecl(String name,
                           String publicId,
                           String systemId)
          throws SAXException {
  }
  public void unparsedEntityDecl(String name,
                                 String publicId,
                                 String systemId,
                                 String notationName)
          throws SAXException {
  }
  private void error(String keythrows SAXException {
  }
  private void error(String keyString argthrows SAXException {
  }
  private void error(String keyString argLocator locthrows SAXException {
                                   loc));
  }
New to GrepCode? Check out our FAQ X