archimate 2.0.1 → 2.0.2
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.
- checksums.yaml +4 -4
- data/archimate.gemspec +2 -1
- data/lib/archimate/color.rb +2 -2
- data/lib/archimate/data_model/any_attribute.rb +4 -10
- data/lib/archimate/data_model/any_element.rb +9 -17
- data/lib/archimate/data_model/bounds.rb +6 -6
- data/lib/archimate/data_model/color.rb +6 -6
- data/lib/archimate/data_model/comparison.rb +101 -5
- data/lib/archimate/data_model/concern.rb +5 -13
- data/lib/archimate/data_model/connection.rb +39 -48
- data/lib/archimate/data_model/connector_type.rb +1 -0
- data/lib/archimate/data_model/diagram.rb +27 -42
- data/lib/archimate/data_model/diagram_type.rb +1 -0
- data/lib/archimate/data_model/element.rb +14 -35
- data/lib/archimate/data_model/elements.rb +681 -0
- data/lib/archimate/data_model/font.rb +8 -8
- data/lib/archimate/data_model/lang_string.rb +10 -36
- data/lib/archimate/data_model/layer.rb +4 -5
- data/lib/archimate/data_model/layers.rb +45 -49
- data/lib/archimate/data_model/location.rb +6 -6
- data/lib/archimate/data_model/metadata.rb +2 -6
- data/lib/archimate/data_model/model.rb +50 -62
- data/lib/archimate/data_model/modeling_note.rb +3 -8
- data/lib/archimate/data_model/organization.rb +18 -27
- data/lib/archimate/data_model/property.rb +9 -8
- data/lib/archimate/data_model/property_definition.rb +15 -21
- data/lib/archimate/data_model/referenceable.rb +14 -9
- data/lib/archimate/data_model/referenceable_list.rb +82 -0
- data/lib/archimate/data_model/relationship.rb +41 -152
- data/lib/archimate/data_model/relationship_references.rb +29 -0
- data/lib/archimate/data_model/relationships.rb +214 -0
- data/lib/archimate/data_model/schema_info.rb +6 -12
- data/lib/archimate/data_model/style.rb +14 -25
- data/lib/archimate/data_model/view_node.rb +38 -66
- data/lib/archimate/data_model/viewpoint.rb +23 -38
- data/lib/archimate/data_model/viewpoint_type.rb +347 -387
- data/lib/archimate/data_model.rb +7 -6
- data/lib/archimate/derived_relations.rb +106 -31
- data/lib/archimate/export/cypher.rb +0 -18
- data/lib/archimate/export/jsonl.rb +16 -45
- data/lib/archimate/export/n_quads.rb +1 -24
- data/lib/archimate/file_formats/archi_file_reader.rb +2 -1
- data/lib/archimate/file_formats/model_exchange_file_writer_21.rb +9 -1
- data/lib/archimate/file_formats/sax/archi/archi_handler_factory.rb +2 -2
- data/lib/archimate/file_formats/sax/archi/connection.rb +2 -1
- data/lib/archimate/file_formats/sax/archi/element.rb +7 -5
- data/lib/archimate/file_formats/sax/archi/relationship.rb +1 -1
- data/lib/archimate/file_formats/sax/model_exchange_file/connection.rb +2 -1
- data/lib/archimate/file_formats/sax/model_exchange_file/element.rb +1 -1
- data/lib/archimate/file_formats/sax/model_exchange_file/relationship.rb +1 -1
- data/lib/archimate/file_formats/sax/model_exchange_file/view_node.rb +0 -1
- data/lib/archimate/file_formats/serializer/archi/relationship.rb +1 -1
- data/lib/archimate/lint/duplicate_entities.rb +46 -42
- data/lib/archimate/svg/archimate.css +12 -2
- data/lib/archimate/svg/entity/base_entity.rb +6 -29
- data/lib/archimate/svg/entity/location.rb +1 -0
- data/lib/archimate/svg/entity_factory.rb +3 -3
- data/lib/archimate/svg/point.rb +3 -3
- data/lib/archimate/svg/svg_template.svg.erb +5 -5
- data/lib/archimate/version.rb +2 -1
- metadata +20 -6
- data/TODOs.org +0 -505
- data/lib/archimate/data_model/differentiable.rb +0 -142
- data/lib/archimate/data_model/element_type.rb +0 -89
- data/lib/archimate/data_model/relationship_type.rb +0 -45
@@ -0,0 +1,681 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module Archimate
|
4
|
+
module DataModel
|
5
|
+
module Elements
|
6
|
+
#############################################################
|
7
|
+
# Business Layer
|
8
|
+
#############################################################
|
9
|
+
|
10
|
+
class BusinessActor < Element
|
11
|
+
CLASSIFICATION = :active_structure
|
12
|
+
LAYER = Layers::Business
|
13
|
+
|
14
|
+
def initialize(args)
|
15
|
+
super
|
16
|
+
end
|
17
|
+
end
|
18
|
+
|
19
|
+
class BusinessCollaboration < Element
|
20
|
+
CLASSIFICATION = :active_structure
|
21
|
+
LAYER = Layers::Business
|
22
|
+
|
23
|
+
def initialize(args)
|
24
|
+
super
|
25
|
+
end
|
26
|
+
end
|
27
|
+
|
28
|
+
class BusinessEvent < Element
|
29
|
+
CLASSIFICATION = :behavioral
|
30
|
+
LAYER = Layers::Business
|
31
|
+
|
32
|
+
def initialize(args)
|
33
|
+
super
|
34
|
+
end
|
35
|
+
end
|
36
|
+
|
37
|
+
class BusinessFunction < Element
|
38
|
+
CLASSIFICATION = :behavioral
|
39
|
+
LAYER = Layers::Business
|
40
|
+
|
41
|
+
def initialize(args)
|
42
|
+
super
|
43
|
+
end
|
44
|
+
end
|
45
|
+
|
46
|
+
class BusinessInteraction < Element
|
47
|
+
CLASSIFICATION = :behavioral
|
48
|
+
LAYER = Layers::Business
|
49
|
+
|
50
|
+
def initialize(args)
|
51
|
+
super
|
52
|
+
end
|
53
|
+
end
|
54
|
+
|
55
|
+
class BusinessInterface < Element
|
56
|
+
CLASSIFICATION = :active_structure
|
57
|
+
LAYER = Layers::Business
|
58
|
+
|
59
|
+
def initialize(args)
|
60
|
+
super
|
61
|
+
end
|
62
|
+
end
|
63
|
+
|
64
|
+
class BusinessObject < Element
|
65
|
+
CLASSIFICATION = :passive_structure
|
66
|
+
LAYER = Layers::Business
|
67
|
+
|
68
|
+
def initialize(args)
|
69
|
+
super
|
70
|
+
end
|
71
|
+
end
|
72
|
+
|
73
|
+
class BusinessProcess < Element
|
74
|
+
CLASSIFICATION = :behavioral
|
75
|
+
LAYER = Layers::Business
|
76
|
+
|
77
|
+
def initialize(args)
|
78
|
+
super
|
79
|
+
end
|
80
|
+
end
|
81
|
+
|
82
|
+
class BusinessRole < Element
|
83
|
+
CLASSIFICATION = :active_structure
|
84
|
+
LAYER = Layers::Business
|
85
|
+
|
86
|
+
def initialize(args)
|
87
|
+
super
|
88
|
+
end
|
89
|
+
end
|
90
|
+
|
91
|
+
class BusinessService < Element
|
92
|
+
CLASSIFICATION = :behavioral
|
93
|
+
LAYER = Layers::Business
|
94
|
+
|
95
|
+
def initialize(args)
|
96
|
+
super
|
97
|
+
end
|
98
|
+
end
|
99
|
+
|
100
|
+
class Contract < Element
|
101
|
+
CLASSIFICATION = :passive_structure
|
102
|
+
LAYER = Layers::Business
|
103
|
+
|
104
|
+
def initialize(args)
|
105
|
+
super
|
106
|
+
end
|
107
|
+
end
|
108
|
+
|
109
|
+
class Location < Element
|
110
|
+
CLASSIFICATION = :active_structure
|
111
|
+
LAYER = Layers::Business
|
112
|
+
|
113
|
+
def initialize(args)
|
114
|
+
super
|
115
|
+
end
|
116
|
+
end
|
117
|
+
|
118
|
+
class Meaning < Element
|
119
|
+
CLASSIFICATION = :passive_structure
|
120
|
+
LAYER = Layers::Business
|
121
|
+
|
122
|
+
def initialize(args)
|
123
|
+
super
|
124
|
+
end
|
125
|
+
end
|
126
|
+
|
127
|
+
class Product < Element
|
128
|
+
CLASSIFICATION = :passive_structure
|
129
|
+
LAYER = Layers::Business
|
130
|
+
|
131
|
+
def initialize(args)
|
132
|
+
super
|
133
|
+
end
|
134
|
+
end
|
135
|
+
|
136
|
+
class Representation < Element
|
137
|
+
CLASSIFICATION = :passive_structure
|
138
|
+
LAYER = Layers::Business
|
139
|
+
|
140
|
+
def initialize(args)
|
141
|
+
super
|
142
|
+
end
|
143
|
+
end
|
144
|
+
|
145
|
+
class Value < Element
|
146
|
+
CLASSIFICATION = :passive_structure
|
147
|
+
LAYER = Layers::Business
|
148
|
+
|
149
|
+
def initialize(args)
|
150
|
+
super
|
151
|
+
end
|
152
|
+
end
|
153
|
+
|
154
|
+
#############################################################
|
155
|
+
# Application Layer
|
156
|
+
#############################################################
|
157
|
+
|
158
|
+
class ApplicationCollaboration < Element
|
159
|
+
CLASSIFICATION = :active_structure
|
160
|
+
LAYER = Layers::Application
|
161
|
+
|
162
|
+
def initialize(args)
|
163
|
+
super
|
164
|
+
end
|
165
|
+
end
|
166
|
+
|
167
|
+
class ApplicationComponent < Element
|
168
|
+
CLASSIFICATION = :active_structure
|
169
|
+
LAYER = Layers::Application
|
170
|
+
|
171
|
+
def initialize(args)
|
172
|
+
super
|
173
|
+
end
|
174
|
+
end
|
175
|
+
|
176
|
+
class ApplicationEvent < Element
|
177
|
+
CLASSIFICATION = :behavioral
|
178
|
+
LAYER = Layers::Application
|
179
|
+
|
180
|
+
def initialize(args)
|
181
|
+
super
|
182
|
+
end
|
183
|
+
end
|
184
|
+
|
185
|
+
class ApplicationFunction < Element
|
186
|
+
CLASSIFICATION = :behavioral
|
187
|
+
LAYER = Layers::Application
|
188
|
+
|
189
|
+
def initialize(args)
|
190
|
+
super
|
191
|
+
end
|
192
|
+
end
|
193
|
+
|
194
|
+
class ApplicationInteraction < Element
|
195
|
+
CLASSIFICATION = :behavioral
|
196
|
+
LAYER = Layers::Application
|
197
|
+
|
198
|
+
def initialize(args)
|
199
|
+
super
|
200
|
+
end
|
201
|
+
end
|
202
|
+
|
203
|
+
class ApplicationInterface < Element
|
204
|
+
CLASSIFICATION = :active_structure
|
205
|
+
LAYER = Layers::Application
|
206
|
+
|
207
|
+
def initialize(args)
|
208
|
+
super
|
209
|
+
end
|
210
|
+
end
|
211
|
+
|
212
|
+
class ApplicationProcess < Element
|
213
|
+
CLASSIFICATION = :behavioral
|
214
|
+
LAYER = Layers::Application
|
215
|
+
|
216
|
+
def initialize(args)
|
217
|
+
super
|
218
|
+
end
|
219
|
+
end
|
220
|
+
|
221
|
+
class ApplicationService < Element
|
222
|
+
CLASSIFICATION = :behavioral
|
223
|
+
LAYER = Layers::Application
|
224
|
+
|
225
|
+
def initialize(args)
|
226
|
+
super
|
227
|
+
end
|
228
|
+
end
|
229
|
+
|
230
|
+
class DataObject < Element
|
231
|
+
CLASSIFICATION = :passive_structure
|
232
|
+
LAYER = Layers::Application
|
233
|
+
|
234
|
+
def initialize(args)
|
235
|
+
super
|
236
|
+
end
|
237
|
+
end
|
238
|
+
|
239
|
+
#############################################################
|
240
|
+
# Technology Layer
|
241
|
+
#############################################################
|
242
|
+
|
243
|
+
class Artifact < Element
|
244
|
+
CLASSIFICATION = :passive_structure
|
245
|
+
LAYER = Layers::Technology
|
246
|
+
|
247
|
+
def initialize(args)
|
248
|
+
super
|
249
|
+
end
|
250
|
+
end
|
251
|
+
|
252
|
+
class CommunicationNetwork < Element
|
253
|
+
CLASSIFICATION = :active_structure
|
254
|
+
LAYER = Layers::Technology
|
255
|
+
|
256
|
+
def initialize(args)
|
257
|
+
super
|
258
|
+
end
|
259
|
+
end
|
260
|
+
|
261
|
+
class CommunicationPath < Element
|
262
|
+
CLASSIFICATION = :active_structure
|
263
|
+
LAYER = Layers::Technology
|
264
|
+
|
265
|
+
def initialize(args)
|
266
|
+
super
|
267
|
+
end
|
268
|
+
end
|
269
|
+
|
270
|
+
class Device < Element
|
271
|
+
CLASSIFICATION = :active_structure
|
272
|
+
LAYER = Layers::Technology
|
273
|
+
|
274
|
+
def initialize(args)
|
275
|
+
super
|
276
|
+
end
|
277
|
+
end
|
278
|
+
|
279
|
+
class InfrastructureFunction < Element
|
280
|
+
CLASSIFICATION = :active_structure
|
281
|
+
LAYER = Layers::Technology
|
282
|
+
|
283
|
+
def initialize(args)
|
284
|
+
super
|
285
|
+
end
|
286
|
+
end
|
287
|
+
|
288
|
+
class InfrastructureInterface < Element
|
289
|
+
CLASSIFICATION = :active_structure
|
290
|
+
LAYER = Layers::Technology
|
291
|
+
|
292
|
+
def initialize(args)
|
293
|
+
super
|
294
|
+
end
|
295
|
+
end
|
296
|
+
|
297
|
+
class InfrastructureService < Element
|
298
|
+
CLASSIFICATION = :active_structure
|
299
|
+
LAYER = Layers::Technology
|
300
|
+
|
301
|
+
def initialize(args)
|
302
|
+
super
|
303
|
+
end
|
304
|
+
end
|
305
|
+
|
306
|
+
class Network < Element
|
307
|
+
CLASSIFICATION = :active_structure
|
308
|
+
LAYER = Layers::Technology
|
309
|
+
|
310
|
+
def initialize(args)
|
311
|
+
super
|
312
|
+
end
|
313
|
+
end
|
314
|
+
|
315
|
+
class Node < Element
|
316
|
+
CLASSIFICATION = :active_structure
|
317
|
+
LAYER = Layers::Technology
|
318
|
+
|
319
|
+
def initialize(args)
|
320
|
+
super
|
321
|
+
end
|
322
|
+
end
|
323
|
+
|
324
|
+
class Path < Element
|
325
|
+
CLASSIFICATION = :active_structure
|
326
|
+
LAYER = Layers::Technology
|
327
|
+
|
328
|
+
def initialize(args)
|
329
|
+
super
|
330
|
+
end
|
331
|
+
end
|
332
|
+
|
333
|
+
class SystemSoftware < Element
|
334
|
+
CLASSIFICATION = :active_structure
|
335
|
+
LAYER = Layers::Technology
|
336
|
+
|
337
|
+
def initialize(args)
|
338
|
+
super
|
339
|
+
end
|
340
|
+
end
|
341
|
+
|
342
|
+
class TechnologyCollaboration < Element
|
343
|
+
CLASSIFICATION = :active_structure
|
344
|
+
LAYER = Layers::Technology
|
345
|
+
|
346
|
+
def initialize(args)
|
347
|
+
super
|
348
|
+
end
|
349
|
+
end
|
350
|
+
|
351
|
+
class TechnologyEvent < Element
|
352
|
+
CLASSIFICATION = :behavioral
|
353
|
+
LAYER = Layers::Technology
|
354
|
+
|
355
|
+
def initialize(args)
|
356
|
+
super
|
357
|
+
end
|
358
|
+
end
|
359
|
+
|
360
|
+
class TechnologyFunction < Element
|
361
|
+
CLASSIFICATION = :behavioral
|
362
|
+
LAYER = Layers::Technology
|
363
|
+
|
364
|
+
def initialize(args)
|
365
|
+
super
|
366
|
+
end
|
367
|
+
end
|
368
|
+
|
369
|
+
class TechnologyInteraction < Element
|
370
|
+
CLASSIFICATION = :behavioral
|
371
|
+
LAYER = Layers::Technology
|
372
|
+
|
373
|
+
def initialize(args)
|
374
|
+
super
|
375
|
+
end
|
376
|
+
end
|
377
|
+
|
378
|
+
class TechnologyInterface < Element
|
379
|
+
CLASSIFICATION = :active_structure
|
380
|
+
LAYER = Layers::Technology
|
381
|
+
|
382
|
+
def initialize(args)
|
383
|
+
super
|
384
|
+
end
|
385
|
+
end
|
386
|
+
|
387
|
+
class TechnologyObject < Element
|
388
|
+
CLASSIFICATION = :passive_structure
|
389
|
+
LAYER = Layers::Technology
|
390
|
+
|
391
|
+
def initialize(args)
|
392
|
+
super
|
393
|
+
end
|
394
|
+
end
|
395
|
+
|
396
|
+
class TechnologyProcess < Element
|
397
|
+
CLASSIFICATION = :behavioral
|
398
|
+
LAYER = Layers::Technology
|
399
|
+
|
400
|
+
def initialize(args)
|
401
|
+
super
|
402
|
+
end
|
403
|
+
end
|
404
|
+
|
405
|
+
class TechnologyService < Element
|
406
|
+
CLASSIFICATION = :behavioral
|
407
|
+
LAYER = Layers::Technology
|
408
|
+
|
409
|
+
def initialize(args)
|
410
|
+
super
|
411
|
+
end
|
412
|
+
end
|
413
|
+
|
414
|
+
#############################################################
|
415
|
+
# Physical Layer
|
416
|
+
#############################################################
|
417
|
+
|
418
|
+
class DistributionNetwork < Element
|
419
|
+
CLASSIFICATION = :active_structure
|
420
|
+
LAYER = Layers::Physical
|
421
|
+
|
422
|
+
def initialize(args)
|
423
|
+
super
|
424
|
+
end
|
425
|
+
end
|
426
|
+
|
427
|
+
class Equipment < Element
|
428
|
+
CLASSIFICATION = :active_structure
|
429
|
+
LAYER = Layers::Physical
|
430
|
+
|
431
|
+
def initialize(args)
|
432
|
+
super
|
433
|
+
end
|
434
|
+
end
|
435
|
+
|
436
|
+
class Facility < Element
|
437
|
+
CLASSIFICATION = :active_structure
|
438
|
+
LAYER = Layers::Physical
|
439
|
+
|
440
|
+
def initialize(args)
|
441
|
+
super
|
442
|
+
end
|
443
|
+
end
|
444
|
+
|
445
|
+
class Material < Element
|
446
|
+
CLASSIFICATION = :passive_structure
|
447
|
+
LAYER = Layers::Physical
|
448
|
+
|
449
|
+
def initialize(args)
|
450
|
+
super
|
451
|
+
end
|
452
|
+
end
|
453
|
+
|
454
|
+
#############################################################
|
455
|
+
# Motivation Layer
|
456
|
+
#############################################################
|
457
|
+
|
458
|
+
class Assessment < Element
|
459
|
+
CLASSIFICATION = :active_structure
|
460
|
+
LAYER = Layers::Motivation
|
461
|
+
|
462
|
+
def initialize(args)
|
463
|
+
super
|
464
|
+
end
|
465
|
+
end
|
466
|
+
|
467
|
+
class Constraint < Element
|
468
|
+
CLASSIFICATION = :active_structure
|
469
|
+
LAYER = Layers::Motivation
|
470
|
+
|
471
|
+
def initialize(args)
|
472
|
+
super
|
473
|
+
end
|
474
|
+
end
|
475
|
+
|
476
|
+
class Driver < Element
|
477
|
+
CLASSIFICATION = :active_structure
|
478
|
+
LAYER = Layers::Motivation
|
479
|
+
|
480
|
+
def initialize(args)
|
481
|
+
super
|
482
|
+
end
|
483
|
+
end
|
484
|
+
|
485
|
+
class Goal < Element
|
486
|
+
CLASSIFICATION = :active_structure
|
487
|
+
LAYER = Layers::Motivation
|
488
|
+
|
489
|
+
def initialize(args)
|
490
|
+
super
|
491
|
+
end
|
492
|
+
end
|
493
|
+
|
494
|
+
class Outcome < Element
|
495
|
+
CLASSIFICATION = :active_structure
|
496
|
+
LAYER = Layers::Motivation
|
497
|
+
|
498
|
+
def initialize(args)
|
499
|
+
super
|
500
|
+
end
|
501
|
+
end
|
502
|
+
|
503
|
+
class Principle < Element
|
504
|
+
CLASSIFICATION = :active_structure
|
505
|
+
LAYER = Layers::Motivation
|
506
|
+
|
507
|
+
def initialize(args)
|
508
|
+
super
|
509
|
+
end
|
510
|
+
end
|
511
|
+
|
512
|
+
class Requirement < Element
|
513
|
+
CLASSIFICATION = :active_structure
|
514
|
+
LAYER = Layers::Motivation
|
515
|
+
|
516
|
+
def initialize(args)
|
517
|
+
super
|
518
|
+
end
|
519
|
+
end
|
520
|
+
|
521
|
+
class Stakeholder < Element
|
522
|
+
CLASSIFICATION = :active_structure
|
523
|
+
LAYER = Layers::Motivation
|
524
|
+
|
525
|
+
def initialize(args)
|
526
|
+
super
|
527
|
+
end
|
528
|
+
end
|
529
|
+
|
530
|
+
#############################################################
|
531
|
+
# Implementation and Migration Layer
|
532
|
+
#############################################################
|
533
|
+
|
534
|
+
class Deliverable < Element
|
535
|
+
CLASSIFICATION = :passive_structure
|
536
|
+
LAYER = Layers::Implementation_and_migration
|
537
|
+
|
538
|
+
def initialize(args)
|
539
|
+
super
|
540
|
+
end
|
541
|
+
end
|
542
|
+
|
543
|
+
class Gap < Element
|
544
|
+
CLASSIFICATION = :passive_structure
|
545
|
+
LAYER = Layers::Implementation_and_migration
|
546
|
+
|
547
|
+
def initialize(args)
|
548
|
+
super
|
549
|
+
end
|
550
|
+
end
|
551
|
+
|
552
|
+
class ImplementationEvent < Element
|
553
|
+
CLASSIFICATION = :active_structure
|
554
|
+
LAYER = Layers::Implementation_and_migration
|
555
|
+
|
556
|
+
def initialize(args)
|
557
|
+
super
|
558
|
+
end
|
559
|
+
end
|
560
|
+
|
561
|
+
class Plateau < Element
|
562
|
+
CLASSIFICATION = :active_structure
|
563
|
+
LAYER = Layers::Implementation_and_migration
|
564
|
+
|
565
|
+
def initialize(args)
|
566
|
+
super
|
567
|
+
end
|
568
|
+
end
|
569
|
+
|
570
|
+
class WorkPackage < Element
|
571
|
+
CLASSIFICATION = :behavioral
|
572
|
+
LAYER = Layers::Implementation_and_migration
|
573
|
+
|
574
|
+
def initialize(args)
|
575
|
+
super
|
576
|
+
end
|
577
|
+
end
|
578
|
+
|
579
|
+
#############################################################
|
580
|
+
# Connectors Pseudo Layer
|
581
|
+
#############################################################
|
582
|
+
|
583
|
+
class AndJunction < Element
|
584
|
+
CLASSIFICATION = :active_structure
|
585
|
+
LAYER = Layers::Connectors
|
586
|
+
|
587
|
+
def initialize(args)
|
588
|
+
super
|
589
|
+
end
|
590
|
+
end
|
591
|
+
|
592
|
+
class Junction < Element
|
593
|
+
CLASSIFICATION = :active_structure
|
594
|
+
LAYER = Layers::Connectors
|
595
|
+
|
596
|
+
def initialize(args)
|
597
|
+
super
|
598
|
+
end
|
599
|
+
end
|
600
|
+
|
601
|
+
class OrJunction < Element
|
602
|
+
CLASSIFICATION = :active_structure
|
603
|
+
LAYER = Layers::Connectors
|
604
|
+
|
605
|
+
def initialize(args)
|
606
|
+
super
|
607
|
+
end
|
608
|
+
end
|
609
|
+
|
610
|
+
#############################################################
|
611
|
+
# Strategy Layer
|
612
|
+
#############################################################
|
613
|
+
|
614
|
+
class Capability < Element
|
615
|
+
CLASSIFICATION = :active_structure
|
616
|
+
LAYER = Layers::Strategy
|
617
|
+
|
618
|
+
def initialize(args)
|
619
|
+
super
|
620
|
+
end
|
621
|
+
end
|
622
|
+
|
623
|
+
class CourseOfAction < Element
|
624
|
+
CLASSIFICATION = :active_structure
|
625
|
+
LAYER = Layers::Strategy
|
626
|
+
|
627
|
+
def initialize(args)
|
628
|
+
super
|
629
|
+
end
|
630
|
+
end
|
631
|
+
|
632
|
+
class Resource < Element
|
633
|
+
CLASSIFICATION = :active_structure
|
634
|
+
LAYER = Layers::Strategy
|
635
|
+
|
636
|
+
def initialize(args)
|
637
|
+
super
|
638
|
+
end
|
639
|
+
end
|
640
|
+
|
641
|
+
#############################################################
|
642
|
+
# Other Layer
|
643
|
+
#############################################################
|
644
|
+
|
645
|
+
class Grouping < Element
|
646
|
+
CLASSIFICATION = :other
|
647
|
+
LAYER = Layers::Other
|
648
|
+
|
649
|
+
def initialize(args)
|
650
|
+
super
|
651
|
+
end
|
652
|
+
end
|
653
|
+
|
654
|
+
#############################################################
|
655
|
+
# Module Methods
|
656
|
+
#############################################################
|
657
|
+
|
658
|
+
def self.create(*args)
|
659
|
+
cls_name = str_filter(args[0].delete(:type))
|
660
|
+
const_get(cls_name).new(*args)
|
661
|
+
rescue NameError => err
|
662
|
+
Archimate::Logging.error "An invalid element type '#{cls_name}' was used to create an Element"
|
663
|
+
raise err
|
664
|
+
end
|
665
|
+
|
666
|
+
def self.===(other)
|
667
|
+
constants.map(&:to_s).include?(str_filter(other))
|
668
|
+
end
|
669
|
+
|
670
|
+
def self.str_filter(str)
|
671
|
+
element_substitutions = {}.freeze
|
672
|
+
cls_name = str.strip
|
673
|
+
element_substitutions.fetch(cls_name, cls_name)
|
674
|
+
end
|
675
|
+
|
676
|
+
def self.classes
|
677
|
+
constants.map { |cls_name| const_get(cls_name) }
|
678
|
+
end
|
679
|
+
end
|
680
|
+
end
|
681
|
+
end
|
@@ -6,18 +6,18 @@ module Archimate
|
|
6
6
|
include Comparison
|
7
7
|
|
8
8
|
# @!attribute [r] name
|
9
|
-
#
|
10
|
-
model_attr :name
|
9
|
+
# @return [String, NilClass]
|
10
|
+
model_attr :name, default: nil
|
11
11
|
# @!attribute [r] size
|
12
|
-
#
|
13
|
-
model_attr :size
|
12
|
+
# @return [Float, NilClass]
|
13
|
+
model_attr :size, default: nil
|
14
14
|
# @todo make this an enum
|
15
15
|
# @!attribute [r] style
|
16
|
-
#
|
17
|
-
model_attr :style
|
16
|
+
# @return [Int, NilClass]
|
17
|
+
model_attr :style, default: nil
|
18
18
|
# @!attribute [r] font_data
|
19
|
-
#
|
20
|
-
model_attr :font_data
|
19
|
+
# @return [String, NilClass]
|
20
|
+
model_attr :font_data, default: nil
|
21
21
|
|
22
22
|
# Archi font strings look like this:
|
23
23
|
# "1|Arial |14.0|0|WINDOWS|1|0 |0|0|0|0 |0 |0|0|1|0|0|0|0 |Arial"
|