interfaces/SProS.idl Source File

SProS.idl
Go to the documentation of this file.
1 #include "DOM_APISPEC.idl"
3 
9 module SProS
10 {
11  interface Base;
12  interface BaseSet;
13  interface BaseIterator;
14  interface SEDMLElement;
15  interface NamedElement;
16  interface NamedElementSet;
17  interface NamedElementIterator;
18  interface NamedIdentifiedElement;
19  interface NamedIdentifiedElementSet;
21  interface Model;
22  interface ModelSet;
23  interface ModelIterator;
24  interface Simulation;
25  interface SimulationSet;
26  interface SimulationIterator;
27  interface UniformTimeCourse;
28  interface Task;
29  interface TaskSet;
30  interface TaskIterator;
31  interface DataGenerator;
32  interface DataGeneratorSet;
33  interface DataGeneratorIterator;
34  interface Output;
35  interface OutputSet;
36  interface OutputIterator;
37  interface Plot2D;
38  interface Plot3D;
39  interface Report;
40  interface Change;
41  interface ChangeSet;
42  interface ChangeIterator;
43  interface ComputeChange;
44  interface ChangeAttribute;
45  interface AddXML;
46  interface ChangeXML;
47  interface RemoveXML;
48  interface Variable;
49  interface VariableSet;
50  interface VariableIterator;
51  interface Parameter;
52  interface ParameterSet;
53  interface ParameterIterator;
54  interface Curve;
55  interface CurveSet;
56  interface CurveIterator;
57  interface Surface;
58  interface SurfaceSet;
59  interface SurfaceIterator;
60  interface DataSet;
61  interface DataSetSet;
62  interface DataSetIterator;
63  interface RepeatedAnalysis;
64 
65  interface Bootstrap
67  {
71  SEDMLElement createEmptySEDML();
72 
76  SEDMLElement parseSEDMLFromURI(in wstring uri, in wstring relativeTo);
77 
81  SEDMLElement parseSEDMLFromText(in wstring txt, in wstring baseURI);
82 
86  SEDMLElement makeSEDMLFromElement(in dom::Element el);
87 
91  wstring sedmlToText(in SEDMLElement el);
92  };
93 
97  interface Base
99  {
103  readonly attribute dom::Element domElement;
104 
108  readonly attribute dom::NodeList notes;
109 
113  readonly attribute dom::NodeList annotations;
114 
118  readonly attribute Base parent;
119  };
120 
121  exception SProSException
122  {
123  };
124 
128  interface BaseSet
130  {
134  BaseIterator iterateElements();
135 
140  void insert(in Base b) raises(SProSException);
141 
145  void remove(in Base b);
146  };
147 
151  interface BaseIterator
153  {
158  Base nextElement();
159  };
160 
164  interface SEDMLElement
165  : Base
166  {
171  attribute unsigned long level;
172 
177  attribute unsigned long version;
178 
182  readonly attribute ModelSet models;
183 
187  readonly attribute TaskSet tasks;
188 
192  readonly attribute SimulationSet simulations;
193 
197  readonly attribute DataGeneratorSet generators;
198 
202  readonly attribute OutputSet outputs;
203 
208  Model createModel();
209 
214  UniformTimeCourse createUniformTimeCourse();
215 
220  RepeatedAnalysis createRepeatedAnalysis();
221 
226  Task createTask();
227 
232  DataGenerator createDataGenerator();
233 
238  Plot2D createPlot2D();
239 
244  Plot3D createPlot3D();
245 
250  Report createReport();
251 
256  ComputeChange createComputeChange();
257 
262  ChangeAttribute createChangeAttribute();
263 
268  AddXML createAddXML();
269 
274  RemoveXML createRemoveXML();
275 
280  ChangeXML createChangeXML();
281 
286  Variable createVariable();
287 
292  Parameter createParameter();
293 
298  Curve createCurve();
299 
304  Surface createSurface();
305 
310  DataSet createDataSet();
311 
315  attribute wstring originalURL;
316  };
317 
321  interface NamedElement
322  : Base
323  {
327  attribute wstring name;
328  };
329 
333  interface NamedElementSet
334  : BaseSet
335  {
339  NamedElementIterator iterateNamedElement();
340 
341  /* Note: Names aren't guaranteed to be unique, they are for human use, so
342  * we don't provide a way to find by name.
343  */
344  };
345 
350  : BaseIterator
351  {
355  NamedElement nextNamedElement();
356  };
357 
362  : NamedElement
363  {
367  attribute wstring id;
368  };
369 
375  {
379  NamedIdentifiedElementIterator iterateNamedIdentifiedElements();
380 
384  NamedIdentifiedElement getNamedIdentifiedElementByIdentifier(in wstring idMatch);
385  };
386 
392  {
397  NamedIdentifiedElement nextNamedIdentifiedElement();
398  };
399 
403  interface Model
405  {
407  attribute wstring language;
408 
410  attribute wstring source;
411 
415  readonly attribute ChangeSet changes;
416  };
417 
421  interface ModelSet
423  {
427  ModelIterator iterateModels();
428 
432  Model getModelByIdentifier(in wstring idMatch);
433  };
434 
438  interface ModelIterator
440  {
444  Model nextModel();
445  };
446 
450  interface Simulation
452  {
456  attribute wstring algorithmKisaoID;
457  };
458 
462  interface SimulationSet
464  {
468  SimulationIterator iterateSimulations();
469 
473  Simulation getSimulationByIdentifier(in wstring idMatch);
474  };
475 
481  {
485  Simulation nextSimulation();
486  };
487 
492  : Simulation
493  {
497  attribute double initialTime;
498 
502  attribute double outputStartTime;
503 
507  attribute double outputEndTime;
508 
512  attribute unsigned long numberOfPoints;
513  };
514 
522  {
523  attribute unsigned long numberOfSamples;
524  };
525 
529  interface Task
531  {
535  attribute wstring simulationReferenceIdentifier;
536 
541 
545  attribute wstring modelReferenceIdentifier;
546 
551  };
552 
556  interface TaskSet
558  {
562  TaskIterator iterateTasks();
563 
567  Task getTaskByIdentifier(in wstring idMatch);
568  };
569 
573  interface TaskIterator
575  {
579  Task nextTask();
580  };
581 
585  interface DataGenerator
587  {
591  readonly attribute ParameterSet parameters;
592 
596  readonly attribute VariableSet variables;
597 
602  };
603 
609  {
613  DataGeneratorIterator iterateDataGenerators();
614 
618  DataGenerator getDataGeneratorByIdentifier(in wstring idMatch);
619  };
620 
626  {
630  DataGenerator nextDataGenerator();
631  };
632 
636  interface Output
638  {
639  };
640 
644  interface OutputSet
646  {
650  OutputIterator iterateOutputs();
651 
655  Output getOutputByIdentifier(in wstring idMatch);
656  };
657 
661  interface OutputIterator
663  {
667  Output nextOutput();
668  };
669 
673  interface Plot2D
674  : Output
675  {
679  readonly attribute CurveSet curves;
680  };
681 
685  interface Plot3D
686  : Output
687  {
691  readonly attribute SurfaceSet surfaces;
692  };
693 
697  interface Report
698  : Output
699  {
703  readonly attribute DataSetSet datasets;
704  };
705 
709  interface Change
710  : Base
711  {
712  attribute wstring target;
713  };
714 
718  interface ChangeSet
719  : BaseSet
720  {
724  ChangeIterator iterateChanges();
725  };
726 
730  interface ChangeIterator
731  : BaseIterator
732  {
736  Change nextChange();
737  };
738 
742  interface ComputeChange
743  : Change
744  {
748  readonly attribute VariableSet variables;
749 
753  readonly attribute ParameterSet parameters;
754 
759  };
760 
764  interface ChangeAttribute
765  : Change
766  {
770  readonly attribute wstring newValue;
771  };
772 
776  interface AddXML
777  : Change
778  {
782  readonly attribute dom::NodeList anyXML;
783  };
784 
788  interface ChangeXML
789  : AddXML
790  {
791  };
792 
796  interface RemoveXML
797  : Change
798  {
799  };
800 
804  interface Variable
806  {
810  attribute wstring target;
811 
815  attribute wstring symbol;
816 
821  attribute wstring taskReferenceID;
822 
827  attribute Task taskReference;
828  };
829 
833  interface VariableSet
835  {
839  VariableIterator iterateVariables();
840 
844  Variable getVariableByIdentifier(in wstring idMatch);
845  };
846 
852  {
856  Variable nextVariable();
857  };
858 
862  interface Parameter
864  {
865  attribute double value;
866  };
867 
871  interface ParameterSet
873  {
877  ParameterIterator iterateParameters();
878 
882  Parameter getParameterByIdentifier(in wstring idMatch);
883  };
884 
890  {
894  Parameter nextParameter();
895  };
896 
900  interface Curve
901  : NamedElement
902  {
906  attribute boolean logX;
907 
911  attribute boolean logY;
912 
916  attribute wstring xDataGeneratorID;
917 
921  attribute wstring yDataGeneratorID;
922 
928 
934  };
935 
939  interface CurveSet
941  {
945  CurveIterator iterateCurves();
946  };
947 
951  interface CurveIterator
953  {
957  Curve nextCurve();
958  };
959 
963  interface Surface
964  : Curve
965  {
969  attribute boolean logZ;
970 
974  attribute wstring zDataGeneratorID;
975 
981  };
982 
986  interface SurfaceSet
987  : CurveSet
988  {
992  SurfaceIterator iterateSurfaces();
993  };
994 
998  interface SurfaceIterator
999  : CurveIterator
1000  {
1004  Surface nextSurface();
1005  };
1006 
1010  interface DataSet
1011  : NamedElement
1012  {
1016  attribute wstring dataGeneratorID;
1017 
1024  };
1025 
1029  interface DataSetSet
1030  : NamedElementSet
1031  {
1035  DataSetIterator iterateDataSets();
1036  };
1037 
1043  {
1047  DataSet nextDataSet();
1048  };
1049 };