Difference between revisions of "How to read Rodin projects and elements programmatically"
From Event-B
Jump to navigationJump to searchimported>Maria |
imported>Maria |
||
Line 9: | Line 9: | ||
The following method returns all existing <code>IMachineRoot</code>s of a project: | The following method returns all existing <code>IMachineRoot</code>s of a project: | ||
+ | <code> | ||
+ | public static IMachineRoot[] getMachineRootChildren(IRodinProject project) throws RodinDBException { | ||
+ | ArrayList<IMachineRoot> result = new ArrayList<IMachineRoot>(); | ||
+ | for (IRodinElement element : project.getChildren()) { | ||
+ | if (element instanceof IRodinFile) { | ||
+ | IInternalElement root = ((IRodinFile) element).getRoot(); | ||
+ | if (root instanceof IMachineRoot) { | ||
+ | result.add((IMachineRoot) root); | ||
+ | } | ||
+ | } | ||
+ | } | ||
+ | return result.toArray(new IMachineRoot[result.size()]); | ||
+ | } | ||
+ | </code> | ||
[[Category:Developer documentation]] | [[Category:Developer documentation]] | ||
[[Category:Rodin Platform]] | [[Category:Rodin Platform]] |
Revision as of 14:04, 28 October 2008
How to read a Rodin Project
You can access an existing Rodin project using RodinCore.getRodinDB().getRodinProject("your_project_name")
. This returns a handle to an IRodinProject
. This project may or may not exist. Call exists
on the resulting project to be sure.
An other option is calling RodinCore.getRodinDB().getRodinProjects
, which returns an array with of all existing IRodinProject
s.
How to read a Machine or a Context
Machines and Contexts are accessed through IMachineRoot
and IContextRoot
respectively. Those roots are stored in IRodinFile
s.
The following method returns all existing IMachineRoot
s of a project:
public static IMachineRoot[] getMachineRootChildren(IRodinProject project) throws RodinDBException {
ArrayList<IMachineRoot> result = new ArrayList<IMachineRoot>();
for (IRodinElement element : project.getChildren()) {
if (element instanceof IRodinFile) {
IInternalElement root = ((IRodinFile) element).getRoot();
if (root instanceof IMachineRoot) {
result.add((IMachineRoot) root);
}
}
}
return result.toArray(new IMachineRoot[result.size()]);
}