com.hdcookbook.grin.test
Class RyanExtensionParser

java.lang.Object
  extended by com.hdcookbook.grin.test.RyanExtensionParser
All Implemented Interfaces:
ExtensionParser

public class RyanExtensionParser
extends java.lang.Object
implements ExtensionParser

This is part of the "Ryan's life" test show. It's mostly of historical interest; it still works, but some of the ways of structuring and using a show are passe.

Author:
Bill Foote (http://jovial.com)

Constructor Summary
RyanExtensionParser()
           
RyanExtensionParser(RyanDirector director)
           
 
Method Summary
 Command getCommand(Show show, java.lang.String typeName, Lexer lexer)
          Get a modifier command of the given type.
 Feature getFeature(Show show, java.lang.String typeName, java.lang.String name, Lexer lexer)
          Get a feature of the given type.
 Modifier getModifier(Show show, java.lang.String typeName, java.lang.String name, Lexer lexer)
          Get a modifier feature of the given type.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

RyanExtensionParser

public RyanExtensionParser()

RyanExtensionParser

public RyanExtensionParser(RyanDirector director)
Method Detail

getFeature

public Feature getFeature(Show show,
                          java.lang.String typeName,
                          java.lang.String name,
                          Lexer lexer)
                   throws java.io.IOException
Description copied from interface: ExtensionParser
Get a feature of the given type. The syntax of an extension feature is fixed at
     "feature" "modifier" namespace:type_name name feature_name arguments ";"
 
This method gets a Lexer instance that is pointed to the beginning of the arguments. The implementation of this method is expected to return an instance of a feature which loads on a standard JDK. It can be different from the feature class that is going to be used with the xlet in the BD-J environment.

Specified by:
getFeature in interface ExtensionParser
Parameters:
show - The show being parsed
typeName - The name of the feature's type. This will always contain a ":".
name - The name of this instance of feature a list of commands if needed.
lexer - The lexer to parse arguments for this feature. The implementation of this method should parse up to ";" which indicates the end of the feature declaration.
Returns:
A feature if one of the given type is known, null otherwise
Throws:
java.io.IOException - if there's an error.

getModifier

public Modifier getModifier(Show show,
                            java.lang.String typeName,
                            java.lang.String name,
                            Lexer lexer)
                     throws java.io.IOException
Description copied from interface: ExtensionParser
Get a modifier feature of the given type. The type name will have a colon in it. The sub-feature will automatically be set up for you.

The syntax of an extension feature is fixed at

     "feature" "modifier" namespace:type_name name feature_name arguments ";"
 
where feature_name is given iff the feature is a Modifier. This method gets a Lexer instance that is pointed to the beginning of the arguments. The implementation of this method is expected to return an instance of a modifier which loads on a standard JDK. It can be different from the modifier class that is going to be used with the xlet in the BD-J environment.

Specified by:
getModifier in interface ExtensionParser
Parameters:
show - The show being parsed
typeName - The name of the feature's type. This will always contain a ":".
name - The name of this instance of feature a list of commands if needed.
lexer - The lexer to parse arguments for this feature. The implementation of this method should parse up to ";" which indicates the end of the feature declaration.
Returns:
A feature if one of the given type is known, null otherwise
Throws:
java.io.IOException - if there's an error.

getCommand

public Command getCommand(Show show,
                          java.lang.String typeName,
                          Lexer lexer)
                   throws java.io.IOException
Description copied from interface: ExtensionParser
Get a modifier command of the given type. The implementation of this method is expected to return an instance of a command which loads on a standard JDK. It can be different from the command class that is going to be used with the xlet in the BD-J environment.

Specified by:
getCommand in interface ExtensionParser
Parameters:
show - The show being parsed
typeName - The name of the commands's type. This will always contain a ":".
lexer - The lexer to parse arguments for this feature. The implementation of this method should parse up to ";" which indicates the end of the feature declaration.
Returns:
A command if one of the given type is known, null otherwise
Throws:
java.io.IOException - if there's an error.