unsw.cse.framescript
Class XMLSerialiser

java.lang.Object
  extended by unsw.cse.framescript.XMLSerialiser
All Implemented Interfaces:
Serialiser
Direct Known Subclasses:
MicaBotSerialiser

public class XMLSerialiser
extends java.lang.Object
implements Serialiser

This is a class that serialises FrameScript to and from XML.

Author:
mmcgill

Field Summary
static java.lang.String ALTERNATIVE
           
static java.lang.String ALTERNATIVES
           
static java.lang.String ATOM
           
static java.lang.String ATOMDEF
           
static java.lang.String BECAUSE
           
static java.lang.String CACHE
           
static java.lang.String CLASS
           
static java.lang.String COMMENT
           
static java.lang.String COMMONVARIABLES
           
static java.lang.String COMPOUND
           
static java.lang.String CONCLUSION
           
static java.lang.String CONDITION
           
static java.lang.String CORNERSTONE
           
static java.lang.String CURRENTCONTEXT
           
static java.lang.String CURRENTTOPIC
           
static java.lang.String DAEMON
           
static java.lang.String DOMAIN
           
static java.lang.String DOMAINS
           
static java.lang.String DOUBLE
           
static java.lang.String DVAL
           
static java.lang.String EXCEPT
           
static java.lang.String EXPR
           
static java.lang.String EXPRLIST
           
static java.lang.String FACET
           
static java.lang.String FAILSAFE
           
static java.lang.String FALSE
           
static java.lang.String FRAMESCRIPT
           
static java.lang.String FUNCTOR
           
static java.lang.String GENERIC
           
static java.lang.String GENERICS
           
static java.lang.String HISTORY
           
static java.lang.String ID
           
static java.lang.String INFIX
           
static java.lang.String INSTANCE
           
static java.lang.String INSTANCES
           
static java.lang.String INTEGER
           
static java.lang.String IVAL
           
static java.lang.String LIST
           
static java.lang.String MULTIVALUED
           
static java.lang.String NAME
           
static java.lang.String NULL
           
static java.lang.String NUMARGS
           
static java.lang.String OFFSET
           
static java.lang.String OPERATOR
           
static java.lang.String PARENTS
           
static java.lang.String PATTERN
           
static java.lang.String POSTFIX
           
static java.lang.String PREFIX
           
static java.lang.String RDR
           
static java.lang.String RECOGNISER
           
static java.lang.String REFERENCE
           
static java.lang.String RIGHT
           
static java.lang.String SCRIPT
           
static java.lang.String SCRIPTS
           
static java.lang.String SEQUENCE
           
static java.lang.String SLOT
           
static java.lang.String SPECIFICATION
           
static java.lang.String STR
           
static java.lang.String STRING
           
static java.lang.String SUBR
           
static java.lang.String SUBRS
           
static java.lang.String TEXT
           
static java.lang.String TOPICS
           
static java.lang.String TRACE
           
static java.lang.String TRIGGER
           
static java.lang.String TRUE
           
static java.lang.String USEFULLMATCH
           
static java.lang.String VALUE
           
static java.lang.String VARIABLE
           
static java.lang.String VERBOSE
           
 
Constructor Summary
XMLSerialiser()
           
 
Method Summary
 java.lang.String declareReferences(int indentLevel)
          Declares the type and ID numbers of all referenced types as XML.
 void idParseError(java.lang.String id, java.lang.NumberFormatException e)
          Prints an error message if a reference ID could not be parsed.
 java.lang.String indent(int level)
          Creates the indentation for a line of XML.
 Term lookUpReference(long id)
          Looks up the term for a reference number.
 Alternatives parseAlternativesNode(org.w3c.dom.Node n)
          Parses an XML node for an Alternatives.
 Atom parseAtomDefNode(org.w3c.dom.Node n)
          Parses an XML node for an Atom definition.
 Atom parseAtomNode(org.w3c.dom.Node n)
          Parses an XML node for an Atom.
 java.lang.String parseCommentNode(org.w3c.dom.Node n)
          Parses an XML node for a comment.
 Compound parseCompoundNode(org.w3c.dom.Node n)
          Parses an XML node for a Compound.
 Domain parseDomainNode(org.w3c.dom.Node n)
          Parses an XML node for a Domain.
 FSDouble parseDoubleNode(org.w3c.dom.Node n)
          Parses an XML node for a FSDouble.
 ExprList parseExprListNode(org.w3c.dom.Node n)
          Parses an XML node for an ExprList.
 Expr parseExprNode(org.w3c.dom.Node n)
          Parses an XML node for an Expr.
 void parseFacetDaemonNode(Facets f, org.w3c.dom.Node n)
          Parses an XML node for an Facet daemon.
 Facets parseFacetsNode(org.w3c.dom.Node n)
          Parses an XML node for a Facets.
 Generic parseGenericNode(org.w3c.dom.Node n)
          Parses an XML node for a Generic.
 Instance parseInstanceNode(org.w3c.dom.Node n)
          Parses an XML node for an Instance.
 FSInteger parseIntegerNode(org.w3c.dom.Node n)
          Parses an XML node for an FSInteger.
 FSList parseListNode(org.w3c.dom.Node n)
          Parses an XML node for an FSList.
 Term parseNode(org.w3c.dom.Node n)
          Parses a FrameScript term from and XML node.
 FSList parseParentsNode(org.w3c.dom.Node n)
          Parses an XML node for a list of parents.
 Pattern parsePatternNode(org.w3c.dom.Node n)
          Parses an XML node for a Pattern.
 RDR parseRDRNode(org.w3c.dom.Node n)
          Parses an XML node for an RDR.
 Term parseReferenceNode(org.w3c.dom.Node n)
          Parses an XML node for a referenced term.
 void parseScriptDaemonNode(Script script, org.w3c.dom.Node n)
          Parses an XML node for a script daemon.
 Script parseScriptNode(org.w3c.dom.Node n)
          Parses an XML node for a Script.
 Sequence parseSequenceNode(org.w3c.dom.Node n)
          Parses an XML node for a Sequence.
 Slot parseSlotNode(org.w3c.dom.Node n)
          Parses an XML node for a Slot.
 FSString parseStringNode(org.w3c.dom.Node n)
          Parses an XML node for an FSString.
 Subr parseSubrNode(org.w3c.dom.Node n)
          Parses an XML node for a Subr.
 Term parseValueNode(org.w3c.dom.Node n)
          Parses an XML node for a value term.
 Variable parseVariableNode(org.w3c.dom.Node n)
          Parses an XML node for a Variable.
 void putReference(long id, Term t)
          Maps a reference number to its term.
 java.lang.String serialise(Term t, int indentLevel)
          Serialises a term to XML.
 java.lang.String serialiseReferredTerm(Term t, long id, int indentLevel)
          Serialises a referenced term to XML.
 java.lang.String serialiseStatics(int indentLevel)
          Defines all static variables in XML.
 void serialiseTo(java.lang.String filename)
          Serialises FrameScript to a file.
 void unserialiseFrom(java.lang.String filename)
          Deserialises FrameScript from a file.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

ALTERNATIVE

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

ALTERNATIVES

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

ATOM

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

ATOMDEF

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

BECAUSE

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

CACHE

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

CLASS

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

COMMENT

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

COMMONVARIABLES

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

COMPOUND

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

CONCLUSION

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

CONDITION

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

CORNERSTONE

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

CURRENTCONTEXT

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

CURRENTTOPIC

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

DAEMON

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

DOMAIN

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

DOMAINS

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

DOUBLE

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

DVAL

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

EXCEPT

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

EXPR

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

EXPRLIST

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

FACET

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

FAILSAFE

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

FALSE

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

FUNCTOR

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

FRAMESCRIPT

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

GENERICS

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

GENERIC

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

HISTORY

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

ID

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

INFIX

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

INSTANCE

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

INSTANCES

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

INTEGER

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

IVAL

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

LIST

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

MULTIVALUED

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

NAME

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

NULL

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

NUMARGS

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

OFFSET

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

OPERATOR

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

PARENTS

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

PATTERN

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

POSTFIX

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

PREFIX

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

RDR

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

RECOGNISER

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

REFERENCE

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

RIGHT

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

SCRIPT

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

SCRIPTS

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

SEQUENCE

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

SLOT

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

SPECIFICATION

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

STR

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

STRING

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

SUBR

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

SUBRS

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

TEXT

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

TOPICS

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

TRACE

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

TRIGGER

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

TRUE

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

USEFULLMATCH

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

VALUE

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

VARIABLE

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

VERBOSE

public static final java.lang.String VERBOSE
See Also:
Constant Field Values
Constructor Detail

XMLSerialiser

public XMLSerialiser()
Method Detail

serialiseTo

public void serialiseTo(java.lang.String filename)
                 throws java.io.IOException
Description copied from interface: Serialiser
Serialises FrameScript to a file.

Specified by:
serialiseTo in interface Serialiser
Parameters:
filename - name of the file to serialise to
Throws:
java.io.IOException - any exceptions writing to the file

declareReferences

public java.lang.String declareReferences(int indentLevel)
Declares the type and ID numbers of all referenced types as XML. Extensions should override and declare any new types.

Parameters:
indentLevel - the indentation level
Returns:
declaration of all referenced terms in an XML string

serialiseStatics

public java.lang.String serialiseStatics(int indentLevel)
Defines all static variables in XML. Extensions should override and declare their variables.

Parameters:
indentLevel - the indentation level
Returns:
the static variables as an XML string

indent

public java.lang.String indent(int level)
Creates the indentation for a line of XML.

Parameters:
level - the indentation level
Returns:
the indentation as a string

serialiseReferredTerm

public java.lang.String serialiseReferredTerm(Term t,
                                              long id,
                                              int indentLevel)
Serialises a referenced term to XML. Extensions should override and define any new types.

Parameters:
t - the term
id - the term id number
indentLevel - the indentation level
Returns:
the term defined as an xml string

serialise

public java.lang.String serialise(Term t,
                                  int indentLevel)
Serialises a term to XML. Extensions should overide and define any non referenced types.

Parameters:
t - term to be serialised
indentLevel - the indentation level
Returns:
the term as XML

unserialiseFrom

public void unserialiseFrom(java.lang.String filename)
                     throws java.io.IOException,
                            unsw.cse.framescript.SerialisationException
Description copied from interface: Serialiser
Deserialises FrameScript from a file.

Specified by:
unserialiseFrom in interface Serialiser
Parameters:
filename - the name of the file to deserialise from
Throws:
java.io.IOException - any errors reading from the file
unsw.cse.framescript.SerialisationException - any errors deserialising an object

parseNode

public Term parseNode(org.w3c.dom.Node n)
Parses a FrameScript term from and XML node. Extensions should override and look for any of their specific nodes first.

Parameters:
n - the XML node

putReference

public void putReference(long id,
                         Term t)
Maps a reference number to its term.

Parameters:
id - the ID reference number
t - the term

lookUpReference

public Term lookUpReference(long id)
Looks up the term for a reference number.

Parameters:
id - the ID reference number
Returns:
the term for the number, null if none

parseAlternativesNode

public Alternatives parseAlternativesNode(org.w3c.dom.Node n)
Parses an XML node for an Alternatives.

Parameters:
n - the XML node
Returns:
the parsed Alternatives

parseAtomNode

public Atom parseAtomNode(org.w3c.dom.Node n)
Parses an XML node for an Atom.

Parameters:
n - the XML node
Returns:
the parsed Atom

parseAtomDefNode

public Atom parseAtomDefNode(org.w3c.dom.Node n)
Parses an XML node for an Atom definition.

Parameters:
n - the XML node
Returns:
the parsed Atom

parseCommentNode

public java.lang.String parseCommentNode(org.w3c.dom.Node n)
Parses an XML node for a comment.

Parameters:
n - the XML node
Returns:
the parsed comment

parseCompoundNode

public Compound parseCompoundNode(org.w3c.dom.Node n)
Parses an XML node for a Compound.

Parameters:
n - the XML node
Returns:
the parsed Compound

parseDomainNode

public Domain parseDomainNode(org.w3c.dom.Node n)
Parses an XML node for a Domain.

Parameters:
n - the XML node
Returns:
the parsed Domain

parseExprNode

public Expr parseExprNode(org.w3c.dom.Node n)
Parses an XML node for an Expr.

Parameters:
n - the XML node
Returns:
the parsed Expr

parseExprListNode

public ExprList parseExprListNode(org.w3c.dom.Node n)
Parses an XML node for an ExprList.

Parameters:
n - the XML node
Returns:
the parsed ExprList

parseFacetsNode

public Facets parseFacetsNode(org.w3c.dom.Node n)
Parses an XML node for a Facets.

Parameters:
n - the XML node
Returns:
the parsed Facets

parseFacetDaemonNode

public void parseFacetDaemonNode(Facets f,
                                 org.w3c.dom.Node n)
Parses an XML node for an Facet daemon.

Parameters:
f - the Facets
n - the XML node

parseDoubleNode

public FSDouble parseDoubleNode(org.w3c.dom.Node n)
Parses an XML node for a FSDouble.

Parameters:
n - the XML node
Returns:
the parsed FSDouble

parseIntegerNode

public FSInteger parseIntegerNode(org.w3c.dom.Node n)
Parses an XML node for an FSInteger.

Parameters:
n - the XML node
Returns:
the parsed FSInteger

parseListNode

public FSList parseListNode(org.w3c.dom.Node n)
Parses an XML node for an FSList.

Parameters:
n - the XML node
Returns:
the parsed FSList

parseStringNode

public FSString parseStringNode(org.w3c.dom.Node n)
Parses an XML node for an FSString.

Parameters:
n - the XML node
Returns:
the parsed FSString

parseGenericNode

public Generic parseGenericNode(org.w3c.dom.Node n)
Parses an XML node for a Generic.

Parameters:
n - the XML node
Returns:
the parsed Generic

parseInstanceNode

public Instance parseInstanceNode(org.w3c.dom.Node n)
Parses an XML node for an Instance.

Parameters:
n - the XML node
Returns:
the parsed Instance

parseParentsNode

public FSList parseParentsNode(org.w3c.dom.Node n)
Parses an XML node for a list of parents.

Parameters:
n - the XML node
Returns:
the parsed list of parent

parsePatternNode

public Pattern parsePatternNode(org.w3c.dom.Node n)
Parses an XML node for a Pattern.

Parameters:
n - the XML node
Returns:
the parsed Pattern

parseRDRNode

public RDR parseRDRNode(org.w3c.dom.Node n)
Parses an XML node for an RDR.

Parameters:
n - the XML node
Returns:
the parsed RDR

parseScriptNode

public Script parseScriptNode(org.w3c.dom.Node n)
Parses an XML node for a Script.

Parameters:
n - the XML node
Returns:
the parsed Script

parseScriptDaemonNode

public void parseScriptDaemonNode(Script script,
                                  org.w3c.dom.Node n)
Parses an XML node for a script daemon.

Parameters:
script - the script
n - the XML node

parseSequenceNode

public Sequence parseSequenceNode(org.w3c.dom.Node n)
Parses an XML node for a Sequence.

Parameters:
n - the XML node
Returns:
the parsed Sequence

parseSlotNode

public Slot parseSlotNode(org.w3c.dom.Node n)
Parses an XML node for a Slot.

Parameters:
n - the XML node
Returns:
the parsed Slot

parseSubrNode

public Subr parseSubrNode(org.w3c.dom.Node n)
Parses an XML node for a Subr.

Parameters:
n - the XML node
Returns:
the parsed Subr

parseValueNode

public Term parseValueNode(org.w3c.dom.Node n)
Parses an XML node for a value term.

Parameters:
n - the XML node
Returns:
the parsed term

parseVariableNode

public Variable parseVariableNode(org.w3c.dom.Node n)
Parses an XML node for a Variable.

Parameters:
n - the XML node
Returns:
the parsed Variable

parseReferenceNode

public Term parseReferenceNode(org.w3c.dom.Node n)
Parses an XML node for a referenced term.

Parameters:
n - the XML node
Returns:
the reference term

idParseError

public void idParseError(java.lang.String id,
                         java.lang.NumberFormatException e)
Prints an error message if a reference ID could not be parsed.

Parameters:
id - the ID referenc
e - the exception