|
|||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | ||||||||
java.lang.Objectptolemy.actor.gui.MoMLApplication
public class MoMLApplication
This is an application that reads one or more files specified on the command line, or instantiates one or more Java classes specified by the -class option. If one of these files is an XML file that defines a Configuration, or one of the classes is an instance of Configuration, then all subsequent files will be read by delegating to the Configuration, invoking its openModel() method. A command-line file is assumed to be a MoML file or a file that can be opened by the specified configuration.
For example, this command uses the HyVisual configuration to open a model:
$PTII/bin/moml $PTII/ptolemy/configs/hyvisual/configuration.xml $PTII/ptolemy/domains/ct/demo/StickyMasses/StickyMasses.xml
If a Ptolemy model is instantiated on the command line, either by giving a MoML file or a -class argument, then parameters of that model can be set on the command line. The syntax is:
$PTII/bin/ptolemy modelFile.xml -parameterName valuewhere parameterName is the name of a parameter relative to the top level of a model or the director of a model. For instance, if foo.xml defines a toplevel entity named
x and
x contains an entity named y and a
parameter named a, and y contains a
parameter named b, then:
$PTII/bin/ptolemy foo.xml -a 5 -y.b 10would set the values of the two parameters.
Note that strings need to be carefully backslashed, so to set a
parameter named c to the string "bar" it
might be necessary to do something like:
$PTII/bin/ptolemy foo.xml -a 5 -y.b 10 -c \\\"bar\\\"The reason the backslashes are necessary is because
moml
is a shell script which tends to strip off the double quotes.
The -class option can be used to specify a Java class to be loaded.
The named class must have a constructor that takes a Workspace
as an argument.
In the example below, $PTII/ptolemy/domains/sdf/demo/Butterfly/Butterfly.java
is a class that has a constructor Butterfly(Workspace).
$PTII/bin/ptolemy -class ptolemy.domains.sdf.demo.Butterfly.ButterflyNote that -class is very well tested now that we have use MoML for almost all models.
Derived classes may provide default configurations. In particular, the protected method _createDefaultConfiguration() is called before any arguments are processed to provide a default configuration for those command-line command-line arguments. In this base class, that method returns null, so no default configuration is provided.
If no arguments are given at all, then a default configuration is instead obtained by calling the protected method _createEmptyConfiguration(). In this base class, that method also returns null, so calling this with no arguments will not be very useful. No configuration will be created and no models will be opened. Derived classes can specify a configuration that opens some welcome window, or a blank editor.
Configuration
| Red (eal) |
| Yellow (eal) |
| Nested Class Summary | |
|---|---|
static class |
MoMLApplication.IgnoreErrorHandler
Error Handler that ignore errors. |
| Field Summary | |
|---|---|
protected java.lang.String |
_basePath
The base path of the configuration directory, usually "ptolemy/configs" for Ptolemy II, but subclasses might have configurations in a different directory. |
protected java.lang.String[] |
_commandFlags
The command-line options that are either present or not. |
protected static java.lang.String[][] |
_commandOptions
The command-line options that take arguments. |
protected java.lang.String |
_commandTemplate
The form of the command line. |
protected Configuration |
_configuration
The configuration model of this application. |
protected boolean |
_exit
Indicator that -runThenExit was requested. |
protected MoMLParser |
_parser
The parser used to construct the configuration. |
protected boolean |
_run
If true, then -run was specified on the command line. |
protected static boolean |
_test
If true, then auto exit after a few seconds. |
| Constructor Summary | |
|---|---|
MoMLApplication(java.lang.String[] args)
Parse the specified command-line arguments, instanting classes and reading files that are specified. |
|
MoMLApplication(java.lang.String basePath,
java.lang.String[] args)
Parse the specified command-line arguments, instanting classes and reading files that are specified. |
|
| Method Summary | |
|---|---|
protected java.lang.String |
_configurationUsage(java.lang.String commandTemplate,
java.lang.String[][] commandOptions,
java.lang.String[] commandFlags)
Return a string summarizing the command-line arguments, including any configuration directories in a base path, typically "ptolemy/configs". |
protected Configuration |
_createDefaultConfiguration()
Return a default Configuration, or null to do without one. |
protected Configuration |
_createEmptyConfiguration()
Return a default Configuration to use when there are no command-line arguments, or null to do without one. |
protected boolean |
_parseArg(java.lang.String arg)
Parse a command-line argument. |
protected void |
_parseArgs(java.lang.String[] args)
Parse the command-line arguments. |
protected Configuration |
_readConfiguration(java.net.URL specificationURL)
Deprecated. Use readConfiguration() instead. |
protected java.lang.String |
_usage()
Return a string summarizing the command-line arguments. |
void |
executionError(Manager manager,
java.lang.Throwable throwable)
Reduce the count of executing models by one. |
void |
executionFinished(Manager manager)
Reduce the count of executing models by one. |
static void |
main(java.lang.String[] args)
Create a new instance of this application, passing it the command-line arguments. |
void |
managerStateChanged(Manager manager)
Do nothing. |
java.util.List |
models()
Return a list of the Ptolemy II models that were created by processing the command-line arguments. |
static Configuration |
readConfiguration(java.net.URL specificationURL)
Read a Configuration from the URL given by the specified string. |
void |
runModels()
Start the models running, each in a new thread, then return. |
static java.net.URL |
specToURL(java.lang.String spec)
Given the name of a file or a URL, convert it to a URL. |
static void |
throwArgsException(java.lang.Throwable cause,
java.lang.String[] args)
Throw an exception that includes the elements of the args parameter. |
void |
waitForFinish()
Wait for all executing runs to finish, then return. |
| Methods inherited from class java.lang.Object |
|---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
| Field Detail |
|---|
protected java.lang.String _basePath
protected java.lang.String[] _commandFlags
protected static java.lang.String[][] _commandOptions
protected java.lang.String _commandTemplate
protected Configuration _configuration
protected boolean _exit
protected MoMLParser _parser
protected boolean _run
protected static boolean _test
| Constructor Detail |
|---|
public MoMLApplication(java.lang.String[] args)
throws java.lang.Exception
args - The command-line arguments.
java.lang.Exception - If command line arguments have problems.
public MoMLApplication(java.lang.String basePath,
java.lang.String[] args)
throws java.lang.Exception
basePath - The basePath to look for configurations
in, usually "ptolemy/configs", but other tools might
have other configurations in other directoriesargs - The command-line arguments.
java.lang.Exception - If command line arguments have problems.| Method Detail |
|---|
public void executionError(Manager manager,
java.lang.Throwable throwable)
executionError in interface ExecutionListenermanager - The manager calling this method.throwable - The throwable being reported.public void executionFinished(Manager manager)
executionFinished in interface ExecutionListenermanager - The manager calling this method.public static void main(java.lang.String[] args)
args - The command-line arguments.public void managerStateChanged(Manager manager)
managerStateChanged in interface ExecutionListenermanager - The manager calling this method.Manager.getState()public java.util.List models()
public static Configuration readConfiguration(java.net.URL specificationURL)
throws java.lang.Exception
If there is an _applicationInitializer parameter, then instantiate the class named by that parameter. The _applicationInitializer parameter contains a string that names a class to be initialized.
If the configuration has already been read in, then the old configuration will be deleted. Note that this may exit the application.
specificationURL - A string describing a URL.
java.lang.Exception - If the configuration cannot be opened, or
if the contents of the URL is not a configuration.
public void runModels()
throws IllegalActionException
IllegalActionException - If the manager throws it.
public static java.net.URL specToURL(java.lang.String spec)
throws java.io.IOException
spec - The specification.
java.io.IOException - If it cannot convert the specification to
a URL.
public static void throwArgsException(java.lang.Throwable cause,
java.lang.String[] args)
throws java.lang.Exception
cause - The throwable that caused the problem.args - An array of Strings.
java.lang.Exception - Always thrownpublic void waitForFinish()
protected java.lang.String _configurationUsage(java.lang.String commandTemplate,
java.lang.String[][] commandOptions,
java.lang.String[] commandFlags)
commandTemplate - The form of the command linecommandOptions - Command-line options that take arguments.commandFlags - Command-line options that are either present
or not.
StringUtilities.usageString(String, String [][], String [])
protected Configuration _createDefaultConfiguration()
throws java.lang.Exception
StringUtilities.mergePropertiesFile().
Subclasses should call
PtolemyPreferences.setDefaultPreferences(Configuration).
java.lang.Exception - Thrown in derived classes if the default
configuration cannot be opened.
protected Configuration _createEmptyConfiguration()
throws java.lang.Exception
java.lang.Exception - Thrown in derived classes if the empty
configuration cannot be opened.
protected boolean _parseArg(java.lang.String arg)
throws java.lang.Exception
arg - The command-line argument to be parsed.
java.lang.Exception - If something goes wrong.
protected void _parseArgs(java.lang.String[] args)
throws java.lang.Exception
args - The command-line arguments to be parsed.
java.lang.Exception - If an argument is not understood or triggers
an error.
protected Configuration _readConfiguration(java.net.URL specificationURL)
throws java.lang.Exception
specificationURL - A string describing a URL.
java.lang.Exception - If the configuration cannot be opened, or
if the contents of the URL is not a configuration.protected java.lang.String _usage()
|
|||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | ||||||||