xmimodel 0.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,21 @@
1
+
2
+ class DataType
3
+
4
+ attr_reader :xml
5
+ attr_reader :parent
6
+
7
+ attr_reader :id
8
+ attr_reader :name
9
+
10
+ def initialize(xml, parent)
11
+ @xml = xml
12
+ @parent = parent
13
+
14
+ @id = xml.attribute("xmi.id").to_s
15
+ @name = xml.attribute("name").to_s.strip
16
+ end
17
+
18
+ def to_s
19
+ "DataType[#{@name}]"
20
+ end
21
+ end
@@ -0,0 +1,13 @@
1
+ require 'xmimodel/state'
2
+
3
+ class FinalState < State
4
+
5
+ def initialize(xml, activity_graph)
6
+ super(xml, activity_graph)
7
+ end
8
+
9
+ def to_s
10
+ "FinalState"
11
+ end
12
+
13
+ end
@@ -0,0 +1,36 @@
1
+ # encoding: utf-8
2
+
3
+ ##
4
+ # UML:Generalization
5
+ class Generalization
6
+
7
+ attr_reader :xml
8
+
9
+ attr_reader :id
10
+ attr_reader :child
11
+ attr_reader :parent
12
+
13
+ def initialize(xml, xmi_model)
14
+ @xml = xml
15
+ @xmi_model = xmi_model
16
+
17
+ @id = xml.attribute("xmi.id").to_s
18
+ @child = XmiHelper.generalization_child(xml)
19
+ @parent = XmiHelper.generalization_parent(xml)
20
+ end
21
+
22
+ def child_obj
23
+ return nil if @child.nil? or @child.empty?
24
+ @child_obj = @xmi_model.class_by_id(@child)
25
+ end
26
+
27
+ def parent_obj
28
+ return nil if @parent.nil? or @parent.empty?
29
+ @parent_obj = @xmi_model.class_by_id(@parent)
30
+ end
31
+
32
+ def to_s
33
+ "Generalization[#{@parent_obj} <- #{@child_obj}]"
34
+ end
35
+
36
+ end
@@ -0,0 +1,373 @@
1
+ require 'xmimodel/association'
2
+ require 'xmimodel/attribute'
3
+ require 'xmimodel/clazz'
4
+ require 'xmimodel/data_type'
5
+ require 'xmimodel/use_case'
6
+ require 'xmimodel/package'
7
+
8
+ # UML:Namespace.ownedElement
9
+ class Namespace
10
+
11
+ attr_reader :xml
12
+ attr_reader :parent
13
+
14
+ attr_reader :activity_graphs
15
+
16
+ # Array of 'UML:Association'
17
+ attr_reader :associations
18
+
19
+ # Array of 'UML:Attribute'
20
+ # UML:Attribute is also present in the tag 'UML:Classifier.feature'
21
+ attr_reader :attributes
22
+
23
+ # Array of 'UML:Class'
24
+ attr_reader :classes
25
+
26
+ # Array of 'UML:DataType'
27
+ attr_reader :data_types
28
+
29
+ # Array of 'UML:UseCase'
30
+ attr_reader :use_cases
31
+
32
+ # Array of 'UML:Package'
33
+ attr_reader :packages
34
+
35
+ # TODO
36
+ =begin
37
+ # UML:ModelElement
38
+ attr_reader :model_element
39
+
40
+ # UML:GeneralizableElement
41
+ attr_reader :generalizable_element
42
+
43
+ # UML:Classifier
44
+ attr_reader :classifier
45
+
46
+ # UML:AssociationClass
47
+ attr_reader :association_class
48
+
49
+ # UML:Primitive
50
+ attr_reader :Primitive
51
+
52
+ # UML:Enumeration
53
+ attr_reader :Enumeration
54
+
55
+ # UML:ProgrammingLanguageDataType
56
+ attr_reader :ProgrammingLanguageDataType
57
+
58
+ # UML:Interface
59
+ attr_reader :Interface
60
+
61
+ # UML:Component
62
+ attr_reader :Component
63
+
64
+ # UML:Node
65
+ attr_reader :Node
66
+
67
+ # UML:Artifact
68
+ attr_reader :Artifact
69
+
70
+ # UML:Signal
71
+ attr_reader :Signal
72
+
73
+ # UML:Exception
74
+ attr_reader :Exception
75
+
76
+ # UML:Actor
77
+ attr_reader :Actor
78
+
79
+ # UML:ClassifierRole
80
+ attr_reader :ClassifierRole
81
+
82
+ # UML:ClassifierInState
83
+ attr_reader :ClassifierInState
84
+
85
+ # UML:Subsystem
86
+ attr_reader :Subsystem
87
+
88
+ # UML:AssociationRole
89
+ attr_reader :AssociationRole
90
+
91
+ # UML:Stereotype
92
+ attr_reader :Stereotype
93
+
94
+ # UML:Collaboration
95
+ attr_reader :Collaboration
96
+
97
+ # UML:Model
98
+ attr_reader :Model
99
+
100
+ # UML:Namespace
101
+ attr_reader :Namespace
102
+
103
+ # UML:Feature
104
+ attr_reader :Feature
105
+
106
+ # UML:StructuralFeature
107
+ attr_reader :StructuralFeature
108
+
109
+ # UML:BehavioralFeature
110
+ attr_reader :BehavioralFeature
111
+
112
+ # UML:Operation
113
+ attr_reader :Operation
114
+
115
+ # UML:Method
116
+ attr_reader :Method
117
+
118
+ # UML:Reception
119
+ attr_reader :Reception
120
+
121
+ # UML:AssociationEnd
122
+ attr_reader :AssociationEnd
123
+
124
+ # UML:AssociationEndRole
125
+ attr_reader :AssociationEndRole
126
+
127
+ # UML:Constraint
128
+ attr_reader :Constraint
129
+
130
+ # UML:Relationship
131
+ attr_reader :Relationship
132
+
133
+ # UML:Generalization
134
+ attr_reader :Generalization
135
+
136
+ # UML:Dependency
137
+ attr_reader :Dependency
138
+
139
+ # UML:Abstraction
140
+ attr_reader :Abstraction
141
+
142
+ # UML:Usage
143
+ attr_reader :Usage
144
+
145
+ # UML:Binding
146
+ attr_reader :Binding
147
+
148
+ # UML:Permission
149
+ attr_reader :Permission
150
+
151
+ # UML:Flow
152
+ attr_reader :Flow
153
+
154
+ # UML:Extend
155
+ attr_reader :Extend
156
+
157
+ # UML:Include
158
+ attr_reader :Include
159
+
160
+ # UML:Parameter
161
+ attr_reader :Parameter
162
+
163
+ # UML:Comment
164
+ attr_reader :Comment
165
+
166
+ # UML:EnumerationLiteral
167
+ attr_reader :EnumerationLiteral
168
+
169
+ # UML:TagDefinition
170
+ attr_reader :TagDefinition
171
+
172
+ # UML:TaggedValue
173
+ attr_reader :TaggedValue
174
+
175
+ # UML:Instance
176
+ attr_reader :Instance
177
+
178
+ # UML:Object
179
+ attr_reader :Object
180
+
181
+ # UML:LinkObject
182
+ attr_reader :LinkObject
183
+
184
+ # UML:DataValue
185
+ attr_reader :DataValue
186
+
187
+ # UML:ComponentInstance
188
+ attr_reader :ComponentInstance
189
+
190
+ # UML:NodeInstance
191
+ attr_reader :NodeInstance
192
+
193
+ # UML:SubsystemInstance
194
+ attr_reader :SubsystemInstance
195
+
196
+ # UML:UseCaseInstance
197
+ attr_reader :UseCaseInstance
198
+
199
+ # UML:Action
200
+ attr_reader :Action
201
+
202
+ # UML:CreateAction
203
+ attr_reader :CreateAction
204
+
205
+ # UML:DestroyAction
206
+ attr_reader :DestroyAction
207
+
208
+ # UML:UninterpretedAction
209
+ attr_reader :UninterpretedAction
210
+
211
+ # UML:CallAction
212
+ attr_reader :CallAction
213
+
214
+ # UML:SendAction
215
+ attr_reader :SendAction
216
+
217
+ # UML:ActionSequence
218
+ attr_reader :ActionSequence
219
+
220
+ # UML:ReturnAction
221
+ attr_reader :ReturnAction
222
+
223
+ # UML:TerminateAction
224
+ attr_reader :TerminateAction
225
+
226
+ # UML:AttributeLink
227
+ attr_reader :AttributeLink
228
+
229
+ # UML:Link
230
+ attr_reader :Link
231
+
232
+ # UML:Argument
233
+ attr_reader :Argument
234
+
235
+ # UML:LinkEnd
236
+ attr_reader :LinkEnd
237
+
238
+ # UML:Stimulus
239
+ attr_reader :Stimulus
240
+
241
+ # UML:ExtensionPoint
242
+ attr_reader :ExtensionPoint
243
+
244
+ # UML:StateMachine
245
+ attr_reader :StateMachine
246
+
247
+ # UML:ActivityGraph
248
+ attr_reader :ActivityGraph
249
+
250
+ # UML:Event
251
+ attr_reader :Event
252
+
253
+ # UML:TimeEvent
254
+ attr_reader :TimeEvent
255
+
256
+ # UML:CallEvent
257
+ attr_reader :CallEvent
258
+
259
+ # UML:SignalEvent
260
+ attr_reader :SignalEvent
261
+
262
+ # UML:ChangeEvent
263
+ attr_reader :ChangeEvent
264
+
265
+ # UML:StateVertex
266
+ attr_reader :StateVertex
267
+
268
+ # UML:State
269
+ attr_reader :State
270
+
271
+ # UML:CompositeState
272
+ attr_reader :CompositeState
273
+
274
+ # UML:SubmachineState
275
+ attr_reader :SubmachineState
276
+
277
+ # UML:SubactivityState
278
+ attr_reader :SubactivityState
279
+
280
+ # UML:SimpleState
281
+ attr_reader :SimpleState
282
+
283
+ # UML:ActionState
284
+ attr_reader :ActionState
285
+
286
+ # UML:CallState
287
+ attr_reader :CallState
288
+
289
+ # UML:ObjectFlowState
290
+ attr_reader :ObjectFlowState
291
+
292
+ # UML:FinalState
293
+ attr_reader :FinalState
294
+
295
+ # UML:Pseudostate
296
+ attr_reader :Pseudostate
297
+
298
+ # UML:SynchState
299
+ attr_reader :SynchState
300
+
301
+ # UML:StubState
302
+ attr_reader :StubState
303
+
304
+ # UML:Transition
305
+ attr_reader :Transition
306
+
307
+ # UML:Guard
308
+ attr_reader :Guard
309
+
310
+ # UML:Message
311
+ attr_reader :Message
312
+
313
+ # UML:Interaction
314
+ attr_reader :Interaction
315
+
316
+ # UML:InteractionInstanceSet
317
+ attr_reader :InteractionInstanceSet
318
+
319
+ # UML:CollaborationInstanceSet
320
+ attr_reader :CollaborationInstanceSet
321
+
322
+ # UML:Partition
323
+ attr_reader :Partition
324
+ =end
325
+
326
+ def initialize(xml, parent)
327
+ @xml = xml
328
+ @parent = parent
329
+
330
+ @activity_graphs = Array.new
331
+ XmiHelper.activity_graphs(xml).each do |obj|
332
+ activity_graph = ActivityGraph.new(obj, self)
333
+ @activity_graphs << activity_graph
334
+ end
335
+
336
+ @associations = Array.new
337
+ XmiHelper.associations(xml).each do |tag|
338
+ obj = Association.new(tag, self)
339
+ @associations << obj
340
+ end
341
+
342
+ @attributes = Array.new
343
+ XmiHelper.attributes(xml).each do |tag|
344
+ obj = Attribute.new(tag, self)
345
+ @attributes << obj
346
+ end
347
+
348
+ @classes = Array.new
349
+ XmiHelper.classes(xml).each do |tag|
350
+ obj = Clazz.new(tag, self)
351
+ @classes << obj
352
+ end
353
+
354
+ @data_types = Array.new
355
+ XmiHelper.data_types(xml).each do |tag|
356
+ obj = DataType.new(tag, self)
357
+ @data_types << obj
358
+ end
359
+
360
+ @use_cases = Array.new
361
+ XmiHelper.use_cases(xml).each do |tag|
362
+ obj = UseCase.new(tag, self)
363
+ @use_cases << obj
364
+ end
365
+
366
+ @packages = Array.new
367
+ XmiHelper.packages(xml).each do |tag|
368
+ obj = Package.new(tag, self)
369
+ @packages << obj
370
+ end
371
+ end
372
+
373
+ end
@@ -0,0 +1,51 @@
1
+ require 'xmimodel/parameter'
2
+
3
+ class Operation
4
+
5
+ attr_reader :xml
6
+
7
+ attr_reader :id
8
+ attr_reader :name
9
+ attr_reader :visibility
10
+
11
+ attr_reader :parameters
12
+
13
+ def initialize(xml, clazz)
14
+ @xml = xml
15
+ @clazz = clazz
16
+
17
+ @id = xml.attribute("xmi:id").to_s
18
+ @name = xml.attribute("name").to_s
19
+ @visibility = xml.attribute("visibility").to_s
20
+ @visibility = "private" if @visibility == ""
21
+
22
+ @parameters = Array.new
23
+ XmiHelper.parameters(xml).each do |uml_parameter|
24
+ parameter = Parameter.new(uml_parameter, self)
25
+ @parameters << parameter
26
+ end
27
+ end
28
+
29
+ def parameter_by_name(name)
30
+ parameter = @parameters.select{|obj| obj.name == name}
31
+ return parameter[0] if !parameter.nil? && parameter.size > 0
32
+ nil
33
+ end
34
+
35
+ def ==(obj)
36
+ return false if obj.nil?
37
+ if String == obj.class
38
+ full_name == obj
39
+ else
40
+ full_name == obj.full_name
41
+ end
42
+ end
43
+
44
+ def full_name
45
+ "#{@clazz.full_name}::#{@name}"
46
+ end
47
+
48
+ def to_s
49
+ "Operation[#{full_name}]"
50
+ end
51
+ end