com.softsynth.jmsl.util
Class SimpleXMLLoader

java.lang.Object
  extended by com.softsynth.jmsl.util.SimpleXMLLoader
All Implemented Interfaces:
XMLListener
Direct Known Subclasses:
InstrumentXMLLoader

public class SimpleXMLLoader
extends java.lang.Object
implements XMLListener

Read in an XML file that describes an Object, and recreate the object with values found for all matching get/set methods that handle primitive types (String, boolean, int, double), Example, Class com.widgits.City below has matching get/set methods for popuation

 package com.widgits;
 
 public class City {
     int population;
 
     public City() {
     }
 
     public void setPopulation(int p) {
         this.population = p;
     }
 
     public int getPopulation() {
         return population;
     }
 
     public static void main(String args[]) {
         try {
             // create a new City and write it out as an XML file
             City myCity = new City();
             myCity.setPopulation(10000);
             java.io.PrintWriter pout = new java.io.PrintWriter(new java.io.FileOutputStream("city.xml"));
             (new com.softsynth.jmsl.score.util.SimpleXMLSaver(myCity, "SomeXMLTag")).writeXML(pout);
             pout.close();
 
             // now read it back in to create a new object with same population as the saved one
             com.softsynth.jmsl.score.util.SimpleXMLLoader loader = new com.softsynth.jmsl.score.util.SimpleXMLLoader();
             City loadedCity = (City) loader.loadXML("city.xml");
             System.out.println("population=" + loadedCity.getPopulation());
         } catch (java.io.IOException e) {
             System.out.println("ERROR in main: " + e);
         }
 
     }
 
 }
 
The XML file written in main() looks like this:
  
  (openbracket)SomeXMLTag CLASSNAME="com.widgits.City" Population="10000" (closebracket)
  (openbracket)/SomeXMLTag (closebracket)
 

Author:
Nick Didkovsky, (c) 2001 Nick Didkovsky all rights reserved

Constructor Summary
SimpleXMLLoader()
           
 
Method Summary
 void beginElement(java.lang.String tag, java.util.Hashtable attributes, boolean ifEmpty)
          Handles the start of an element.
 void endElement(java.lang.String tag)
          Handles the end of an element.
 void foundContent(java.lang.String content)
          Handles the content of an element.
 java.lang.Object loadXML(java.io.InputStream stream)
           
 java.lang.Object loadXML(java.lang.String fileName)
           
static void main(java.lang.String[] args)
           
 void setObjectListener(NewXMLObjectListener listener)
           
 
Methods inherited from class java.lang.Object
equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

SimpleXMLLoader

public SimpleXMLLoader()
Method Detail

loadXML

public java.lang.Object loadXML(java.io.InputStream stream)
                         throws java.io.IOException
Throws:
java.io.IOException

loadXML

public java.lang.Object loadXML(java.lang.String fileName)
                         throws java.io.IOException
Throws:
java.io.IOException

setObjectListener

public void setObjectListener(NewXMLObjectListener listener)

beginElement

public void beginElement(java.lang.String tag,
                         java.util.Hashtable attributes,
                         boolean ifEmpty)
                  throws XMLLoaderException
Description copied from interface: XMLListener
Handles the start of an element. The flag ifEmpty if there is no content or endTag.

Specified by:
beginElement in interface XMLListener
Throws:
XMLLoaderException

foundContent

public void foundContent(java.lang.String content)
Description copied from interface: XMLListener
Handles the content of an element.

Specified by:
foundContent in interface XMLListener

endElement

public void endElement(java.lang.String tag)
Description copied from interface: XMLListener
Handles the end of an element.

Specified by:
endElement in interface XMLListener

main

public static void main(java.lang.String[] args)