Package com.uppaal.model.core2
Class Document
java.lang.Object
com.uppaal.model.core2.Element
com.uppaal.model.core2.Node
com.uppaal.model.core2.Document
- All Implemented Interfaces:
Serializable
,Cloneable
public class Document extends Node
Model for a network of timed automata as defined in UPPAAL. The
document object is the root of a tree containing templates,
locations and edges.
This class supports the command pattern: It can execute classes implementing the Command interface. It also supports unlimited undo/redo. When using the command interface, each change will increment a version counter. Notice that the version counter is not incremented if the document tree is modified directly.
UPPAAL timed automata model document can be loaded from a file or Internet by using a PrototypeDocument.load() method:
Document doc = new PrototypeDocument().load(url);
The following code demonstrates how to create a document from scratch with
default properties (colors and so on) without using editor Command
s:
PrototypeDocument prototype = new PrototypeDocument(); Document doc = new Document(prototype); doc.setProperty("declarations", "clock x;"); // shared global clock xThen a template can be created and manipulated as follows:
Template t = doc.createTemplate(); // new TA template with defaults doc.insert(t, null).setProperty("name", "Template"); // insert and set the name t.setProperty("declarations", "clock y;"); // create local clock yThe timed automata elements can be created like-wise:
Location l0 = t.createLocation(); // create a location t.insert(l0, null).setProperty("name", "L0"); // insert and name it l0.setProperty("x", 0); // set the graphical position x l0.setProperty("y", 0); // set the graphical position y l0.setFlag("urgent", true); // make the location urgent Location l1 = t.createLocation(); t.insert(l1, l0).setProperty("name", "L1"); l1.setProperty("x", 200); l1.setProperty("y", 0); Edge e = t.createEdge(); // create an edge t.insert(e, l1); // insert it after location l1 (can be null) e.setSource(l0); // set the origin e.setTarget(l1); // set the destination e.setProperty("assignment", "x = 0, y = 0"); // add some assignmentsFinally a system declaration should be added:
doc.setProperty("system", "Process = Template();\n"+ "system Process;");Then the model can be saved into an XML file:
try { doc.save("sampledoc.xml"); } catch (IOException e) { e.printStackTrace(System.err); }For further examples, visit Engine on how to compile and interact with simulator and verifier.
-
Field Summary
-
Constructor Summary
-
Method Summary
Modifier and Type Method Description void
accept(Visitor visitor)
Accept a visitor.LscTemplate
createLscTemplate()
Creates a new stand-alone LSC template using a LSC prototype from the document.Template
createTemplate()
Creates a new stand-alone TA template using a template prototype from the document.Document
getDocument()
Returns the document of this element.AbstractTemplate
getLastTATemplate()
Returns the last TA template or null if no such template exists.QueryList
getQueryList()
Returns the model of the list of queries defined in this document.AbstractTemplate
getTemplate(String name)
Returns the first template with the given name or null if no such template exists.AbstractTemplate
getTemplates()
Returns the first template of the document.String
getVersion()
Get the current number of the documentString
getXPathTag()
Computes the local tag of the XPath address.static boolean
merge(AbstractTemplate source, AbstractTemplate target)
Merges the source template into target (useful for pasting from clipboard).Element
resolveXPath(String path)
Resolve the pathvoid
save(File file)
Save the data into the filevoid
save(String path)
Save the data into the fileMethods inherited from class com.uppaal.model.core2.Node
clone, getFirst, getLast, getNext, getPrevious, insert, move, remove, setPrototype
Methods inherited from class com.uppaal.model.core2.Element
acceptSafe, addListener, getColor, getCommandManager, getLocalProperty, getParent, getProperties, getProperty, getPropertyValue, getPrototype, getPrototypeFromParent, getTemplate, getX, getXMLLabelKinds, getXPath, getY, hasFlag, importInto, isPropertyLocal, removeListener, setCommandManager, setProperties, setProperty, setPropertyFromPath
-
Constructor Details
-
Method Details
-
getVersion
Get the current number of the document- Returns:
- sb - The version number
-
getQueryList
Returns the model of the list of queries defined in this document.- Returns:
- queries - The queries
-
createTemplate
Creates a new stand-alone TA template using a template prototype from the document. The new template is not added to the document tree!- Returns:
- - The template
-
createLscTemplate
Creates a new stand-alone LSC template using a LSC prototype from the document. The new template is not added to the document tree!- Returns:
- - the lsc template
-
getTemplates
Returns the first template of the document. This is the same as calling getFirst() and type casting the result to a Template.- Returns:
- - The abstract template
-
getTemplate
Returns the first template with the given name or null if no such template exists.- Parameters:
name
- - The template name- Returns:
- - The abstract template
-
getLastTATemplate
Returns the last TA template or null if no such template exists.- Returns:
- - The abstract template
-
accept
Description copied from class:Element
Accept a visitor. This method is specialized in every subclass. Part of the visitor pattern. -
getDocument
Description copied from class:Element
Returns the document of this element.- Overrides:
getDocument
in classElement
- Returns:
- The document object
-
resolveXPath
Resolve the path- Parameters:
path
- - The path- Returns:
- - The element object
-
merge
Merges the source template into target (useful for pasting from clipboard). The source template gets emptied without a notice. The new elements are placed to the right of existing elements.- Parameters:
source
- - The source abstract templatetarget
- - The target abstract template- Returns:
- merging successful
-
save
Save the data into the file- Parameters:
path
- - The file path to save to- Throws:
IOException
- file system I/O error.
-
save
Save the data into the file- Parameters:
file
- - The output file- Throws:
IOException
- file system I/O error.
-
getXPathTag
Description copied from class:Element
Computes the local tag of the XPath address. Needs to be overwritten by concrete instances- Overrides:
getXPathTag
in classNode
- Returns:
- local address of this element
-