Merge branch 'develop' into feature/JAL-3551Pymol
[jalview.git] / unused / xml / sax / demo / DemoHandler.java
diff --git a/unused/xml/sax/demo/DemoHandler.java b/unused/xml/sax/demo/DemoHandler.java
new file mode 100644 (file)
index 0000000..66c6a08
--- /dev/null
@@ -0,0 +1,325 @@
+package org.xml.sax.demo;
+
+// SAX event handler for demos.
+// No warranty; no copyright -- use this as you will.
+// $Id: DemoHandler.java,v 1.3 1998/05/01 20:45:16 david Exp $
+
+import org.xml.sax.HandlerBase;
+import org.xml.sax.InputSource;
+import org.xml.sax.Locator;
+import org.xml.sax.AttributeList;
+import org.xml.sax.EntityResolver;
+import org.xml.sax.DTDHandler;
+import org.xml.sax.DocumentHandler;
+import org.xml.sax.ErrorHandler;
+import org.xml.sax.SAXParseException;
+
+
+/**
+  * Event handler class for SAX demos.
+  *
+  * <p>This handler simply reports all of the events that it receives.
+  * It is useful for testing and comparing SAX implementations, and
+  * for teaching or learning about SAX.  This is also a demonstration
+  * of how one class can implement all four handler interfaces.</p>
+  *
+  * @see org.xml.sax.EntityResolver
+  * @see org.xml.sax.DTDHandler
+  * @see org.xml.sax.DocumentHandler
+  * @see org.xml.sax.ErrorHandler
+  */
+public class DemoHandler
+  implements EntityResolver, DTDHandler, DocumentHandler, ErrorHandler
+{
+
+
+\f
+  //////////////////////////////////////////////////////////////////////
+  // Implementation of org.xml.sax.EntityResolver
+  //////////////////////////////////////////////////////////////////////
+
+
+  /**
+    * Display requests for entity resolution.
+    *
+    * <p>The SAX parser will invoke this method to give the application
+    * a chance to resolve entities.  This implementation always
+    * returns null, so that the parser will resolve the entity
+    * itself.</p>
+    *
+    * @see org.xml.sax.EntityResolver#resolveEntity
+    */
+  @Override
+       public InputSource resolveEntity (String publicId, String systemId)
+  {
+    System.out.print("Resolve entity:");
+    if (publicId != null) {
+      System.out.print(" publicId=\"" + publicId + '"');
+    }
+    System.out.println(" systemId=\"" + systemId + '"');
+
+    return null;
+  }
+
+
+\f
+  //////////////////////////////////////////////////////////////////////
+  // Implementation of org.xml.sax.DTDHandler
+  //////////////////////////////////////////////////////////////////////
+
+
+  /**
+    * Display notation declarations as they are reported.
+    *
+    * @see org.xml.sax.DTDHandler#notationDecl
+    */
+  @Override
+       public void notationDecl (String name, String publicId, String systemId)
+  {
+    System.out.print("Notation declaration: " + name);
+    if (publicId != null) {
+      System.out.print(" publicId=\"" + publicId + '"');
+    }
+    if (systemId != null) {
+      System.out.print(" systemId=\"" + systemId + '"');
+    }
+    System.out.print('\n');
+  }
+
+
+  /**
+    * Display unparsed entity declarations as they are reported.
+    *
+    * @see org.xml.sax.DTDHandler#unparsedEntityDecl
+    */
+  @Override
+       public void unparsedEntityDecl (String name,
+                                 String publicId,
+                                 String systemId,
+                                 String notationName)
+  {
+    System.out.print("Unparsed Entity Declaration: " + name);
+    if (publicId != null) {
+      System.out.print(" publicId=\"" + publicId + '"');
+    }
+    if (systemId != null) {
+      System.out.print(" systemId=\"" + systemId + '"');
+    }
+    System.out.println(" notationName=\"" + notationName + '"');
+  }
+
+
+\f
+  //////////////////////////////////////////////////////////////////////
+  // Implementation of org.xml.sax.DocumentHandler
+  //////////////////////////////////////////////////////////////////////
+
+
+  /**
+    * Print a message when the parser provides a locator.
+    *
+    * <p>Not all SAX parsers will provide a locator object.</p>
+    *
+    * @see org.xml.sax.DocumentHandler#setDocumentLocator
+    */
+  @Override
+       public void setDocumentLocator (Locator locator)
+  {
+    System.out.println("Document locator supplied.");
+  }
+
+
+  /**
+    * Print a message at the start of the document.
+    *
+    * @see org.xml.sax.DocumentHandler#startDocument
+    */
+  @Override
+       public void startDocument ()
+  {
+    System.out.println("Start document");
+  }
+
+
+  /**
+    * Print a message for the end of the document.
+    *
+    * @see org.xml.sax.DocumentHandler#endDocument
+    */
+  @Override
+       public void endDocument ()
+  {
+    System.out.println("End document");
+  }
+
+
+  /**
+    * Print a message for the start of an element.
+    *
+    * <p>Display all attributes on separate lines, indented.</p>
+    *
+    * @see org.xml.sax.DocumentHandler#startElement
+    */
+  @Override
+       public void startElement (String name, AttributeList attributes)
+  {
+    System.out.println("Start element: " + name);
+    for (int i = 0; i < attributes.getLength(); i++) {
+      System.out.println("  Attribute: " +
+                        attributes.getName(i) +
+                        ' ' +
+                        attributes.getType(i) +
+                        " \"" +
+                        attributes.getValue(i) +
+                        '"');
+    }
+  }
+
+
+  /**
+    * Print a message for the end of an element.
+    *
+    * @see org.xml.sax.DocumentHandler#endElement
+    */
+  @Override
+       public void endElement (String name)
+  {
+    System.out.println("End element: " + name);
+  }
+
+
+  /**
+    * Print a message for character data.
+    *
+    * @see org.xml.sax.DocumentHandler#characters
+    */
+  @Override
+       public void characters (char ch[], int start, int length)
+  {
+    System.out.print("Characters: ");
+    display(ch, start, length);
+  }
+
+
+  /**
+    * Print a message for ignorable whitespace.
+    *
+    * @see org.xml.sax.DocumentHandler#ignorableWhitespace
+    */
+  @Override
+       public void ignorableWhitespace (char ch[], int start, int length)
+  {
+    System.out.print("Ignorable Whitespace: ");
+    display(ch, start, length);
+  }
+
+
+  /**
+    * Print a message for a processing instruction.
+    *
+    * @see org.xml.sax.DocumentHandler#processingInstruction
+    */
+  @Override
+       public void processingInstruction (String target, String data)
+  {
+    System.out.println("Processing instruction: " + target + ' ' + data);
+  }
+
+
+\f
+  //////////////////////////////////////////////////////////////////////
+  // Implementation of org.xml.sax.ErrorHandler
+  //////////////////////////////////////////////////////////////////////
+
+
+  /**
+    * Report all warnings, and continue parsing.
+    *
+    * @see org.xml.sax.ErrorHandler#warning
+    */
+  @Override
+       public void warning (SAXParseException exception)
+  {
+    System.out.println("Warning: " +
+                      exception.getMessage() +
+                      " (" +
+                      exception.getSystemId() +
+                      ':' +
+                      exception.getLineNumber() +
+                      ',' +
+                      exception.getColumnNumber() +
+                      ')');
+  }
+
+
+  /**
+    * Report all recoverable errors, and try to continue parsing.
+    *
+    * @see org.xml.sax.ErrorHandler#error
+    */
+  @Override
+       public void error (SAXParseException exception)
+  {
+    System.out.println("Recoverable Error: " +
+                      exception.getMessage() +
+                      " (" +
+                      exception.getSystemId() +
+                      ':' +
+                      exception.getLineNumber() +
+                      ',' +
+                      exception.getColumnNumber() +
+                      ')');
+  }
+
+
+  /**
+    * Report all fatal errors, and try to continue parsing.
+    *
+    * <p>Note: results are no longer reliable once a fatal error has
+    * been reported.</p>
+    *
+    * @see org.xml.sax.ErrorHandler#fatalError
+    */
+  @Override
+       public void fatalError (SAXParseException exception)
+  {
+    System.out.println("Fatal Error: " +
+                      exception.getMessage() +
+                      " (" +
+                      exception.getSystemId() +
+                      ':' +
+                      exception.getLineNumber() +
+                      ',' +
+                      exception.getColumnNumber() +
+                      ')');
+  }
+
+
+\f
+  //////////////////////////////////////////////////////////////////////
+  // Utility routines.
+  //////////////////////////////////////////////////////////////////////
+
+
+  /**
+    * Display text, escaping some characters.
+    */
+  private static void display (char ch[], int start, int length)
+  {
+    for (int i = start; i < start + length; i++) {
+      switch (ch[i]) {
+      case '\n':
+       System.out.print("\\n");
+       break;
+      case '\t':
+       System.out.print("\\t");
+       break;
+      default:
+       System.out.print(ch[i]);
+       break;
+      }
+    }
+    System.out.print("\n");
+  }
+
+}