File: UmlBaseState.h

package info (click to toggle)
bouml 2.19.2-1
  • links: PTS
  • area: main
  • in suites: etch, etch-m68k
  • size: 42,364 kB
  • ctags: 33,402
  • sloc: cpp: 169,092; makefile: 135
file content (148 lines) | stat: -rw-r--r-- 3,812 bytes parent folder | download | duplicates (20)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
#ifndef _UMLBASESTATE_H
#define _UMLBASESTATE_H


#include "UmlItem.h"
#include "anItemKind.h"
#include <qcstring.h>
#include "StateBehavior.h"

class UmlState;
class UmlStateDiagram;

class UmlBaseState : public UmlItem {
  public:
    //  returns a new state named 's' created under 'parent'
    //
    // In case it cannot be created (the name is already used or
    // invalid, 'parent' cannot contain it etc ...) return 0 in C++
    // and produce a RuntimeException in Java
    static UmlState * create(UmlItem * parent, const char * s);

    // returns the kind of the item
    virtual anItemKind kind();


  protected:
    //  the constructor, do not call it yourself !!!!!!!!!!
     UmlBaseState(void * id, const QCString & s) : UmlItem(id, s) {
    }


  public:
    // return the entry behavior in OCL
    const QCString & entryBehavior();

    // set the entry behavior in OCL
    //
    // On error return FALSE in C++, produce a RuntimeException in Java
    bool set_EntryBehavior(const char * s);

    // return the exit behavior in OCL
    const QCString & exitBehavior();

    // set the exit behavior in OCL
    //
    // On error return FALSE in C++, produce a RuntimeException in Java
    bool set_ExitBehavior(const char * s);

    // return the activity in OCL
    const QCString & doActivity();

    // set the activity in OCL
    //
    // On error return FALSE in C++, produce a RuntimeException in Java
    bool set_DoActivity(const char * s);

#ifdef WITHCPP
    // return the entry behavior in C++
    const QCString & cppEntryBehavior();

    // set the entry behavior in C++
    //
    // On error return FALSE in C++, produce a RuntimeException in Java
    bool set_CppEntryBehavior(const char * s);

    // return the exit behavior in C++
    const QCString & cppExitBehavior();

    // set the exit behavior in C++
    //
    // On error return FALSE in C++, produce a RuntimeException in Java
    bool set_CppExitBehavior(const char * s);

    // return the activity in C++
    const QCString & cppDoActivity();

    // set the activity in C++
    //
    // On error return FALSE in C++, produce a RuntimeException in Java
    bool set_CppDoActivity(const char * s);
#endif

#ifdef WITHJAVA
    // return the entry behavior in Java
    const QCString & javaEntryBehavior();

    // set the entry behavior in Java
    //
    // On error return FALSE in C++, produce a RuntimeException in Java
    bool set_JavaEntryBehavior(const char * s);

    // return the exit behavior in Java
    const QCString & javaExitBehavior();

    // set the exit behavior in Java
    //
    // On error return FALSE in C++, produce a RuntimeException in Java
    bool set_JavaExitBehavior(const char * s);

    // return the activity in Java
    const QCString & javaDoActivity();

    // set the activity in Java
    //
    // On error return FALSE in C++, produce a RuntimeException in Java
    bool set_JavaDoActivity(const char * s);
#endif

    // returns the optional associated diagram
    UmlStateDiagram * associatedDiagram();

    // to unload the object to free memory, it will be reloaded automatically
    // if needed. Recursively done for the sub items if 'rec' is TRUE. 
    //
    // if 'del' is true the sub items are deleted in C++, and removed from the
    // internal dictionnary in C++ and Java (to allow it to be garbaged),
    // you will have to call Children() to re-access to them
    virtual void unload(bool = FALSE, bool = FALSE);


  private:
    StateBehavior _uml;

#ifdef WITHCPP
    StateBehavior _cpp;
#endif

#ifdef WITHJAVA
    StateBehavior _java;
#endif

    UmlStateDiagram * _assoc_diagram;


  protected:
    virtual void read_uml_();

#ifdef WITHCPP
    virtual void read_cpp_();
#endif

#ifdef WITHJAVA
    virtual void read_java_();
#endif

};

#endif