cz.cuni.jagrlib.xml
Class JGLScript

java.lang.Object
  extended by org.xml.sax.helpers.DefaultHandler
      extended by cz.cuni.jagrlib.xml.JGLScript
All Implemented Interfaces:
org.xml.sax.ContentHandler, org.xml.sax.DTDHandler, org.xml.sax.EntityResolver, org.xml.sax.ErrorHandler

public class JGLScript
extends org.xml.sax.helpers.DefaultHandler

Script read from XML file.

See Also:
JGLScript.java

Nested Class Summary
protected  class JGLScript.ArgParseState
          Reads direct argument: atomic type, 1D array..
protected  class JGLScript.ArrayState
          Defines general array object.
protected  class JGLScript.ClassState
          Reads full class specification and returns it using setValue().
protected  class JGLScript.ConstructorState
          Constructs the object using explicitly defined constructor.
protected  class JGLScript.DefState
          Defines literal (named) object: atomic type, 1D array..
protected  class JGLScript.FunctionState
          Executes function from the other object.
protected  class JGLScript.InitState
          Global parsing state encapsulating the whole XML file.
protected  class JGLScript.MemberState
          Fetches member variable from the given class/instance.
protected  class JGLScript.MethodState
          Invokes the given method of the ancestor object.
protected  class JGLScript.NullState
          Null reference literal.
protected  class JGLScript.ObjectState
          Defines a new object instance.
protected  class JGLScript.ParseState
          Generic state object.
protected  class JGLScript.RefState
          Reads reference to previously defined object.
protected  class JGLScript.ReturnState
          Defines result object map.
protected  class JGLScript.ScriptState
          Parses the whole JGL script (inside of the <script> tag).
protected  class JGLScript.SequenceState
          Defines vector of the objects.
protected  class JGLScript.SetState
          Invokes the set() method of the ancestor object.
protected  class JGLScript.TextParseState
          General text-parsing state, accumulates text into StringBuffer.
 
Field Summary
static java.lang.String A_ID
           
static java.lang.String A_KEY
           
static java.lang.String A_TYPE
           
protected static int anonId
          For <object> section: anonymous id assigned if no explicit one was provided.
static java.lang.String ARG
           
static java.lang.String ARRAY
           
static java.lang.String CLASS
           
static java.lang.String CONSTRUCTOR
           
static java.lang.String DATA
           
static java.lang.String DEF
           
static java.lang.String FUNCTION
           
static java.lang.String KEY
           
protected  int lineNo
          Actual line number (for error messages).
static java.lang.String MEMBER
           
static java.lang.String METHOD
           
static java.lang.String NAME
           
static java.lang.String NULL
           
static java.lang.String OBJECT
           
protected  java.util.Map<java.lang.String,java.lang.Object> objects
          Object map.
static java.lang.String[] PREF_PACKAGES
          Preferred packages to be searched at object instantiation, member lookup, ..
static java.lang.String REF
           
protected  java.util.Map<java.lang.String,java.lang.Object> results
          Result map.
static java.lang.String RETURN
           
static java.lang.String SCRIPT
           
protected  java.lang.String scriptFileName
          Script file-name.
static java.lang.String SET
           
static int STATE_ALL
           
static int STATE_CLASS
           
static int STATE_NAME
           
static int STATE_REF
           
protected  JGLScript.ParseState tos
          State stack (top of stack).
static java.lang.String VALUE
           
 
Constructor Summary
JGLScript()
           
 
Method Summary
 void endElement(java.lang.String uri, java.lang.String localName, java.lang.String qName)
           
protected  void error(java.lang.String msg)
          XML format error.
protected  java.lang.Object globalInvoke(java.lang.Object instance, java.lang.String name, java.lang.Object[] args)
          Invokes the given method.
 void characters(char[] ch, int start, int length)
           
 java.util.Map<java.lang.String,java.lang.Object> interpret(java.lang.String scriptFileName)
          Read and interprets XML script.
 java.util.Map<java.lang.String,java.lang.Object> interpret(java.lang.String scriptFileName, java.util.Map<java.lang.String,java.lang.Object> input)
          Read and interprets XML script.
static void main(java.lang.String[] args)
           
protected  void newObject(java.lang.String name, java.lang.Object instance)
          New object instance.
 void startElement(java.lang.String uri, java.lang.String localName, java.lang.String qName, org.xml.sax.Attributes atts)
           
protected  void warning(java.lang.String msg)
          XML warning.
 
Methods inherited from class org.xml.sax.helpers.DefaultHandler
endDocument, endPrefixMapping, error, fatalError, ignorableWhitespace, notationDecl, processingInstruction, resolveEntity, setDocumentLocator, skippedEntity, startDocument, startPrefixMapping, unparsedEntityDecl, warning
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

SCRIPT

public static final java.lang.String SCRIPT
See Also:
Constant Field Values

OBJECT

public static final java.lang.String OBJECT
See Also:
Constant Field Values

CLASS

public static final java.lang.String CLASS
See Also:
Constant Field Values

CONSTRUCTOR

public static final java.lang.String CONSTRUCTOR
See Also:
Constant Field Values

METHOD

public static final java.lang.String METHOD
See Also:
Constant Field Values

MEMBER

public static final java.lang.String MEMBER
See Also:
Constant Field Values

NAME

public static final java.lang.String NAME
See Also:
Constant Field Values

ARG

public static final java.lang.String ARG
See Also:
Constant Field Values

REF

public static final java.lang.String REF
See Also:
Constant Field Values

FUNCTION

public static final java.lang.String FUNCTION
See Also:
Constant Field Values

RETURN

public static final java.lang.String RETURN
See Also:
Constant Field Values

ARRAY

public static final java.lang.String ARRAY
See Also:
Constant Field Values

DATA

public static final java.lang.String DATA
See Also:
Constant Field Values

NULL

public static final java.lang.String NULL
See Also:
Constant Field Values

SET

public static final java.lang.String SET
See Also:
Constant Field Values

KEY

public static final java.lang.String KEY
See Also:
Constant Field Values

VALUE

public static final java.lang.String VALUE
See Also:
Constant Field Values

DEF

public static final java.lang.String DEF
See Also:
Constant Field Values

A_ID

public static final java.lang.String A_ID
See Also:
Constant Field Values

A_TYPE

public static final java.lang.String A_TYPE
See Also:
Constant Field Values

A_KEY

public static final java.lang.String A_KEY
See Also:
Constant Field Values

STATE_ALL

public static final int STATE_ALL
See Also:
Constant Field Values

STATE_CLASS

public static final int STATE_CLASS
See Also:
Constant Field Values

STATE_REF

public static final int STATE_REF
See Also:
Constant Field Values

STATE_NAME

public static final int STATE_NAME
See Also:
Constant Field Values

PREF_PACKAGES

public static final java.lang.String[] PREF_PACKAGES
Preferred packages to be searched at object instantiation, member lookup, .. Ordering of the packages does matter!


objects

protected java.util.Map<java.lang.String,java.lang.Object> objects
Object map.


results

protected java.util.Map<java.lang.String,java.lang.Object> results
Result map.


scriptFileName

protected java.lang.String scriptFileName
Script file-name.


lineNo

protected int lineNo
Actual line number (for error messages).


tos

protected JGLScript.ParseState tos
State stack (top of stack).


anonId

protected static int anonId
For <object> section: anonymous id assigned if no explicit one was provided.

Constructor Detail

JGLScript

public JGLScript()
Method Detail

error

protected void error(java.lang.String msg)
XML format error.


warning

protected void warning(java.lang.String msg)
XML warning.


newObject

protected void newObject(java.lang.String name,
                         java.lang.Object instance)
New object instance.


globalInvoke

protected java.lang.Object globalInvoke(java.lang.Object instance,
                                        java.lang.String name,
                                        java.lang.Object[] args)
Invokes the given method.


interpret

public java.util.Map<java.lang.String,java.lang.Object> interpret(java.lang.String scriptFileName)
Read and interprets XML script.

Parameters:
scriptFileName - File-name to interpret.
Returns:
Output (result) object map.

interpret

public java.util.Map<java.lang.String,java.lang.Object> interpret(java.lang.String scriptFileName,
                                                                  java.util.Map<java.lang.String,java.lang.Object> input)
Read and interprets XML script.

Parameters:
scriptFileName - File-name to interpret.
input - Initial object-map (can be null, if not, it will be altered!).
Returns:
Output (result) object map.

characters

public void characters(char[] ch,
                       int start,
                       int length)
                throws org.xml.sax.SAXException
Specified by:
characters in interface org.xml.sax.ContentHandler
Overrides:
characters in class org.xml.sax.helpers.DefaultHandler
Throws:
org.xml.sax.SAXException

startElement

public void startElement(java.lang.String uri,
                         java.lang.String localName,
                         java.lang.String qName,
                         org.xml.sax.Attributes atts)
                  throws org.xml.sax.SAXException
Specified by:
startElement in interface org.xml.sax.ContentHandler
Overrides:
startElement in class org.xml.sax.helpers.DefaultHandler
Throws:
org.xml.sax.SAXException

endElement

public void endElement(java.lang.String uri,
                       java.lang.String localName,
                       java.lang.String qName)
                throws org.xml.sax.SAXException
Specified by:
endElement in interface org.xml.sax.ContentHandler
Overrides:
endElement in class org.xml.sax.helpers.DefaultHandler
Throws:
org.xml.sax.SAXException

main

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