edu.princeton.toy
Class TConfigurationManager

java.lang.Object
  extended by org.xml.sax.helpers.DefaultHandler
      extended by edu.princeton.toy.TConfigurationManager
All Implemented Interfaces:
Runnable, ContentHandler, DTDHandler, EntityResolver, ErrorHandler

public class TConfigurationManager
extends DefaultHandler
implements Runnable

TConfigurationManager is a class that reads and stores the bindings passed to Visual X-TOY through $USER_HOME/toy.conf. It will also write a HashMap into toy.conf file.


Field Summary
static String CONFIGURATION_FILE
          The filename of the configuration file (to be found in the user's home directory).
 
Method Summary
 void characters(char[] ch, int start, int length)
          Overriding DefaultHandler's methods.
 void endDocument()
          Overriding DefaultHandler's methods.
 void endElement(String uri, String localName, String qName)
          Overriding DefaultHandler's methods.
 void endPrefixMapping(String prefix)
          Overriding DefaultHandler's methods.
 void error(SAXParseException e)
          Overriding DefaultHandler's methods.
static boolean exportProperties(Map bindings)
          Exports a set of properties to the toy.conf file.
 void fatalError(SAXParseException e)
          Overriding DefaultHandler's methods.
static String getProperty(String name)
          Returns the value of the requested parameter.
 void ignorableWhitespace(char[] ch, int start, int length)
          Overriding DefaultHandler's methods.
static boolean isReady()
          Indicates wheter or not each example in the manifest either does not exist or has been loaded and processed.
 void notationDecl(String name, String publicId, String systemId)
          Overriding DefaultHandler's methods.
 void processingInstruction(String target, String data)
          Overriding DefaultHandler's methods.
 InputSource resolveEntity(String publicId, String systemId)
          Overriding DefaultHandler's methods.
 void run()
          Implement the Runnable interface to parse the conf file in a separate thread.
 void setDocumentLocator(Locator locator)
          Overriding DefaultHandler's methods.
 void skippedEntity(String name)
          Overriding DefaultHandler's methods.
 void startDocument()
          Overriding DefaultHandler's methods.
 void startElement(String uri, String localName, String qName, Attributes attributes)
          Overriding DefaultHandler's methods.
 void startPrefixMapping(String prefix, String uri)
          Overriding DefaultHandler's methods.
 void unparsedEntityDecl(String name, String publicId, String systemId, String notationName)
          Overriding DefaultHandler's methods.
 void warning(SAXParseException e)
          Overriding DefaultHandler's methods.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

CONFIGURATION_FILE

public static final String CONFIGURATION_FILE
The filename of the configuration file (to be found in the user's home directory).

See Also:
Constant Field Values
Method Detail

exportProperties

public static boolean exportProperties(Map bindings)
Exports a set of properties to the toy.conf file. Note that the keys are expected to be non-null strings.

Parameters:
bindings - A map of keys (of the form "tag1.tag2.tag3...tagN#param") to values.

isReady

public static boolean isReady()
Indicates wheter or not each example in the manifest either does not exist or has been loaded and processed.

Returns:
true iff all the example programs have either been accounted for.

getProperty

public static String getProperty(String name)
Returns the value of the requested parameter. Note on parameter naming: nested tags are separated by '.'s and tags and their bindings are separated by '#'s. For example, suppose we have the following (rather convoluted) toy.conf file:

<toy>ignoredText
<!-- ignored comment -->
<tag1 param1="value1" param2="value2">ignoredText<tag2 param3="value3"/>
ignoredText</tag1>
ignoredText</toy>

The following statements would be true:
  1. TConfigurationManager.getParameter( "toy.tag1#param1").equals("value1");
  2. TConfigurationManager.getParameter( "toy.tag1#param2").equals("value2");
  3. TConfigurationManager.getParameter("toy.tag1.tag2#param3").equals("value3");

Parameters:
name - The name of the requested parameter; this is case-sensitive.
Returns:
The value of the requested parameter. Null is returned if the requested parameter does not exist.

run

public void run()
Implement the Runnable interface to parse the conf file in a separate thread.

Specified by:
run in interface Runnable

resolveEntity

public InputSource resolveEntity(String publicId,
                                 String systemId)
Overriding DefaultHandler's methods.

Specified by:
resolveEntity in interface EntityResolver
Overrides:
resolveEntity in class DefaultHandler

notationDecl

public void notationDecl(String name,
                         String publicId,
                         String systemId)
Overriding DefaultHandler's methods.

Specified by:
notationDecl in interface DTDHandler
Overrides:
notationDecl in class DefaultHandler

unparsedEntityDecl

public void unparsedEntityDecl(String name,
                               String publicId,
                               String systemId,
                               String notationName)
Overriding DefaultHandler's methods.

Specified by:
unparsedEntityDecl in interface DTDHandler
Overrides:
unparsedEntityDecl in class DefaultHandler

setDocumentLocator

public void setDocumentLocator(Locator locator)
Overriding DefaultHandler's methods.

Specified by:
setDocumentLocator in interface ContentHandler
Overrides:
setDocumentLocator in class DefaultHandler

startDocument

public void startDocument()
Overriding DefaultHandler's methods.

Specified by:
startDocument in interface ContentHandler
Overrides:
startDocument in class DefaultHandler

endDocument

public void endDocument()
Overriding DefaultHandler's methods.

Specified by:
endDocument in interface ContentHandler
Overrides:
endDocument in class DefaultHandler

startPrefixMapping

public void startPrefixMapping(String prefix,
                               String uri)
Overriding DefaultHandler's methods.

Specified by:
startPrefixMapping in interface ContentHandler
Overrides:
startPrefixMapping in class DefaultHandler

endPrefixMapping

public void endPrefixMapping(String prefix)
Overriding DefaultHandler's methods.

Specified by:
endPrefixMapping in interface ContentHandler
Overrides:
endPrefixMapping in class DefaultHandler

startElement

public void startElement(String uri,
                         String localName,
                         String qName,
                         Attributes attributes)
Overriding DefaultHandler's methods.

Specified by:
startElement in interface ContentHandler
Overrides:
startElement in class DefaultHandler

endElement

public void endElement(String uri,
                       String localName,
                       String qName)
Overriding DefaultHandler's methods.

Specified by:
endElement in interface ContentHandler
Overrides:
endElement in class DefaultHandler

characters

public void characters(char[] ch,
                       int start,
                       int length)
Overriding DefaultHandler's methods.

Specified by:
characters in interface ContentHandler
Overrides:
characters in class DefaultHandler

ignorableWhitespace

public void ignorableWhitespace(char[] ch,
                                int start,
                                int length)
Overriding DefaultHandler's methods.

Specified by:
ignorableWhitespace in interface ContentHandler
Overrides:
ignorableWhitespace in class DefaultHandler

processingInstruction

public void processingInstruction(String target,
                                  String data)
Overriding DefaultHandler's methods.

Specified by:
processingInstruction in interface ContentHandler
Overrides:
processingInstruction in class DefaultHandler

skippedEntity

public void skippedEntity(String name)
Overriding DefaultHandler's methods.

Specified by:
skippedEntity in interface ContentHandler
Overrides:
skippedEntity in class DefaultHandler

warning

public void warning(SAXParseException e)
Overriding DefaultHandler's methods.

Specified by:
warning in interface ErrorHandler
Overrides:
warning in class DefaultHandler

error

public void error(SAXParseException e)
Overriding DefaultHandler's methods.

Specified by:
error in interface ErrorHandler
Overrides:
error in class DefaultHandler

fatalError

public void fatalError(SAXParseException e)
Overriding DefaultHandler's methods.

Specified by:
fatalError in interface ErrorHandler
Overrides:
fatalError in class DefaultHandler