activefacts-metamodel 1.7.0 → 1.7.1

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,623 @@
1
+ require 'activefacts/api'
2
+
3
+ module ActiveFacts
4
+ module Metamodel
5
+
6
+ class Adjective < String
7
+ value_type :length => 64
8
+ end
9
+
10
+ class AgentName < String
11
+ value_type
12
+ one_to_one :agent # See Agent.agent_name
13
+ end
14
+
15
+ class AggregateCode < String
16
+ value_type :length => 32
17
+ one_to_one :aggregate # See Aggregate.aggregate_code
18
+ end
19
+
20
+ class Annotation < String
21
+ value_type
22
+ end
23
+
24
+ class Assimilation < String
25
+ value_type
26
+ restrict 'absorbed', 'partitioned', 'separate'
27
+ end
28
+
29
+ class ContextNoteKind < String
30
+ value_type
31
+ restrict 'as_opposed_to', 'because', 'so_that', 'to_avoid'
32
+ end
33
+
34
+ class Date < ::Date
35
+ value_type
36
+ end
37
+
38
+ class Denominator < UnsignedInteger
39
+ value_type :length => 32
40
+ end
41
+
42
+ class Discussion < String
43
+ value_type
44
+ end
45
+
46
+ class DisplayRoleNamesSetting < String
47
+ value_type
48
+ restrict 'false', 'true'
49
+ end
50
+
51
+ class EnforcementCode < String
52
+ value_type :length => 16
53
+ end
54
+
55
+ class EphemeraURL < String
56
+ value_type
57
+ end
58
+
59
+ class Exponent < SignedInteger
60
+ value_type :length => 16
61
+ end
62
+
63
+ class Frequency < UnsignedInteger
64
+ value_type :length => 32
65
+ end
66
+
67
+ class Guid < ::Guid
68
+ value_type
69
+ one_to_one :alternative_set # See AlternativeSet.guid
70
+ one_to_one :component # See Component.guid
71
+ one_to_one :composition # See Composition.guid
72
+ one_to_one :concept # See Concept.guid
73
+ one_to_one :role_sequence # See RoleSequence.guid
74
+ one_to_one :shape # See Shape.guid
75
+ one_to_one :step # See Step.guid
76
+ end
77
+
78
+ class ImplicationRuleName < String
79
+ value_type
80
+ one_to_one :implication_rule # See ImplicationRule.implication_rule_name
81
+ end
82
+
83
+ class Length < UnsignedInteger
84
+ value_type :length => 32
85
+ end
86
+
87
+ class Literal < String
88
+ value_type
89
+ end
90
+
91
+ class Name < String
92
+ value_type :length => 64
93
+ one_to_one :composition # See Composition.name
94
+ one_to_one :plural_named_unit, :class => "Unit", :counterpart => :plural_name # See Unit.plural_name
95
+ one_to_one :topic, :counterpart => :topic_name # See Topic.topic_name
96
+ one_to_one :unit # See Unit.name
97
+ one_to_one :vocabulary # See Vocabulary.name
98
+ end
99
+
100
+ class Numerator < Decimal
101
+ value_type
102
+ end
103
+
104
+ class Offset < Decimal
105
+ value_type
106
+ end
107
+
108
+ class Ordinal < UnsignedInteger
109
+ value_type :length => 16
110
+ end
111
+
112
+ class Pronoun < String
113
+ value_type :length => 20
114
+ restrict 'feminine', 'masculine', 'neuter', 'personal'
115
+ end
116
+
117
+ class RegularExpression < String
118
+ value_type
119
+ end
120
+
121
+ class RingType < String
122
+ value_type
123
+ end
124
+
125
+ class RotationSetting < String
126
+ value_type
127
+ restrict 'left', 'right'
128
+ end
129
+
130
+ class Scale < UnsignedInteger
131
+ value_type :length => 32
132
+ end
133
+
134
+ class Subscript < UnsignedInteger
135
+ value_type :length => 16
136
+ end
137
+
138
+ class Text < String
139
+ value_type :length => 256
140
+ end
141
+
142
+ class TransactionPhase < String
143
+ value_type
144
+ restrict 'assert', 'commit'
145
+ end
146
+
147
+ class X < SignedInteger
148
+ value_type :length => 32
149
+ end
150
+
151
+ class Y < SignedInteger
152
+ value_type :length => 32
153
+ end
154
+
155
+ class Agent
156
+ identified_by :agent_name
157
+ one_to_one :agent_name, :mandatory => true # See AgentName.agent
158
+ end
159
+
160
+ class Aggregate
161
+ identified_by :aggregate_code
162
+ one_to_one :aggregate_code, :mandatory => true # See AggregateCode.aggregate
163
+ end
164
+
165
+ class AlternativeSet
166
+ identified_by :guid
167
+ one_to_one :guid, :mandatory => true # See Guid.alternative_set
168
+ maybe :members_are_exclusive
169
+ end
170
+
171
+ class Coefficient
172
+ identified_by :numerator, :denominator, :is_precise
173
+ has_one :denominator, :mandatory => true # See Denominator.all_coefficient
174
+ maybe :is_precise
175
+ has_one :numerator, :mandatory => true # See Numerator.all_coefficient
176
+ end
177
+
178
+ class Component
179
+ identified_by :guid
180
+ one_to_one :guid, :mandatory => true # See Guid.component
181
+ has_one :mapping, :counterpart => :member # See Mapping.all_member
182
+ has_one :name # See Name.all_component
183
+ end
184
+
185
+ class Composition
186
+ identified_by :guid
187
+ one_to_one :guid, :mandatory => true # See Guid.composition
188
+ one_to_one :name, :mandatory => true # See Name.composition
189
+ end
190
+
191
+ class Concept
192
+ identified_by :guid
193
+ one_to_one :guid, :mandatory => true # See Guid.concept
194
+ has_one :implication_rule # See ImplicationRule.all_concept
195
+ has_one :topic # See Topic.all_concept
196
+ end
197
+
198
+ class ConceptAnnotation
199
+ identified_by :concept, :mapping_annotation
200
+ has_one :concept, :mandatory => true # See Concept.all_concept_annotation
201
+ has_one :mapping_annotation, :class => Annotation, :mandatory => true # See Annotation.all_concept_annotation_as_mapping_annotation
202
+ end
203
+
204
+ class Constraint
205
+ identified_by :concept
206
+ one_to_one :concept, :mandatory => true # See Concept.constraint
207
+ has_one :name # See Name.all_constraint
208
+ has_one :vocabulary # See Vocabulary.all_constraint
209
+ end
210
+
211
+ class ContextNote
212
+ identified_by :concept
213
+ one_to_one :concept, :mandatory => true # See Concept.context_note
214
+ has_one :context_note_kind, :mandatory => true # See ContextNoteKind.all_context_note
215
+ has_one :discussion, :mandatory => true # See Discussion.all_context_note
216
+ has_one :relevant_concept, :class => Concept # See Concept.all_context_note_as_relevant_concept
217
+ end
218
+
219
+ class Discriminator < Component
220
+ end
221
+
222
+ class Enforcement
223
+ identified_by :constraint
224
+ has_one :agent # See Agent.all_enforcement
225
+ one_to_one :constraint, :mandatory => true # See Constraint.enforcement
226
+ has_one :enforcement_code, :mandatory => true # See EnforcementCode.all_enforcement
227
+ end
228
+
229
+ class Fact
230
+ identified_by :concept
231
+ one_to_one :concept, :mandatory => true # See Concept.fact
232
+ has_one :fact_type, :mandatory => true # See FactType.all_fact
233
+ has_one :population, :mandatory => true # See Population.all_fact
234
+ end
235
+
236
+ class FactType
237
+ identified_by :concept
238
+ one_to_one :concept, :mandatory => true # See Concept.fact_type
239
+ end
240
+
241
+ class ImplicationRule
242
+ identified_by :implication_rule_name
243
+ one_to_one :implication_rule_name, :mandatory => true # See ImplicationRuleName.implication_rule
244
+ end
245
+
246
+ class Indicator < Component
247
+ has_one :role, :mandatory => true # See Role.all_indicator
248
+ end
249
+
250
+ class Instance
251
+ identified_by :concept
252
+ one_to_one :concept, :mandatory => true # See Concept.instance
253
+ one_to_one :fact # See Fact.instance
254
+ has_one :object_type, :mandatory => true # See ObjectType.all_instance
255
+ has_one :population, :mandatory => true # See Population.all_instance
256
+ has_one :value # See Value.all_instance
257
+ end
258
+
259
+ class LinkFactType < FactType
260
+ end
261
+
262
+ class Location
263
+ identified_by :x, :y
264
+ has_one :x, :mandatory => true # See X.all_location
265
+ has_one :y, :mandatory => true # See Y.all_location
266
+ end
267
+
268
+ class Mapping < Component
269
+ has_one :object_type, :mandatory => true # See ObjectType.all_mapping
270
+ end
271
+
272
+ class Nesting < Mapping
273
+ end
274
+
275
+ class PresenceConstraint < Constraint
276
+ maybe :is_mandatory
277
+ maybe :is_preferred_identifier
278
+ has_one :max_frequency, :class => Frequency # See Frequency.all_presence_constraint_as_max_frequency
279
+ has_one :min_frequency, :class => Frequency # See Frequency.all_presence_constraint_as_min_frequency
280
+ has_one :role_sequence, :mandatory => true # See RoleSequence.all_presence_constraint
281
+ end
282
+
283
+ class Query
284
+ identified_by :concept
285
+ one_to_one :concept, :mandatory => true # See Concept.query
286
+ end
287
+
288
+ class Reading
289
+ identified_by :fact_type, :ordinal
290
+ has_one :fact_type, :mandatory => true # See FactType.all_reading
291
+ maybe :is_negative
292
+ has_one :ordinal, :mandatory => true # See Ordinal.all_reading
293
+ has_one :role_sequence, :mandatory => true # See RoleSequence.all_reading
294
+ has_one :text, :mandatory => true # See Text.all_reading
295
+ end
296
+
297
+ class RingConstraint < Constraint
298
+ has_one :other_role, :class => "Role" # See Role.all_ring_constraint_as_other_role
299
+ has_one :ring_type, :mandatory => true # See RingType.all_ring_constraint
300
+ has_one :role # See Role.all_ring_constraint
301
+ end
302
+
303
+ class Role
304
+ identified_by :fact_type, :ordinal
305
+ one_to_one :concept, :mandatory => true # See Concept.role
306
+ has_one :fact_type, :mandatory => true # See FactType.all_role
307
+ one_to_one :link_fact_type, :counterpart => :implying_role # See LinkFactType.implying_role
308
+ has_one :object_type, :mandatory => true # See ObjectType.all_role
309
+ has_one :ordinal, :mandatory => true # See Ordinal.all_role
310
+ has_one :role_name, :class => Name # See Name.all_role_as_role_name
311
+ end
312
+
313
+ class RoleSequence
314
+ identified_by :guid
315
+ one_to_one :guid, :mandatory => true # See Guid.role_sequence
316
+ maybe :has_unused_dependency_to_force_table_in_norma
317
+ end
318
+
319
+ class RoleValue
320
+ identified_by :fact, :role
321
+ has_one :fact, :mandatory => true # See Fact.all_role_value
322
+ has_one :instance, :mandatory => true # See Instance.all_role_value
323
+ has_one :population, :mandatory => true # See Population.all_role_value
324
+ has_one :role, :mandatory => true # See Role.all_role_value
325
+ end
326
+
327
+ class SetConstraint < Constraint
328
+ end
329
+
330
+ class Shape
331
+ identified_by :guid
332
+ one_to_one :guid, :mandatory => true # See Guid.shape
333
+ maybe :is_expanded
334
+ has_one :location # See Location.all_shape
335
+ has_one :orm_diagram, :class => "ORMDiagram", :mandatory => true # See ORMDiagram.all_shape
336
+ end
337
+
338
+ class Step
339
+ identified_by :guid
340
+ has_one :alternative_set # See AlternativeSet.all_step
341
+ has_one :fact_type, :mandatory => true # See FactType.all_step
342
+ one_to_one :guid, :mandatory => true # See Guid.step
343
+ maybe :is_disallowed
344
+ maybe :is_optional
345
+ end
346
+
347
+ class SubsetConstraint < SetConstraint
348
+ has_one :subset_role_sequence, :class => RoleSequence, :mandatory => true # See RoleSequence.all_subset_constraint_as_subset_role_sequence
349
+ has_one :superset_role_sequence, :class => RoleSequence, :mandatory => true # See RoleSequence.all_subset_constraint_as_superset_role_sequence
350
+ end
351
+
352
+ class Topic
353
+ identified_by :topic_name
354
+ one_to_one :topic_name, :class => Name, :mandatory => true # See Name.topic_as_topic_name
355
+ end
356
+
357
+ class Unit
358
+ identified_by :concept
359
+ has_one :coefficient # See Coefficient.all_unit
360
+ one_to_one :concept, :mandatory => true # See Concept.unit
361
+ has_one :ephemera_url, :class => EphemeraURL # See EphemeraURL.all_unit
362
+ maybe :is_fundamental
363
+ one_to_one :name, :mandatory => true # See Name.unit
364
+ has_one :offset # See Offset.all_unit
365
+ one_to_one :plural_name, :class => Name, :counterpart => :plural_named_unit # See Name.plural_named_unit
366
+ has_one :vocabulary, :mandatory => true # See Vocabulary.all_unit
367
+ end
368
+
369
+ class Value
370
+ identified_by :literal, :is_literal_string, :unit
371
+ maybe :is_literal_string
372
+ has_one :literal, :mandatory => true # See Literal.all_value
373
+ has_one :unit # See Unit.all_value
374
+ has_one :value_type, :mandatory => true # See ValueType.all_value
375
+ end
376
+
377
+ class ValueConstraint < Constraint
378
+ has_one :regular_expression # See RegularExpression.all_value_constraint
379
+ one_to_one :role, :counterpart => :role_value_constraint # See Role.role_value_constraint
380
+ end
381
+
382
+ class Variable
383
+ identified_by :query, :ordinal
384
+ has_one :object_type, :mandatory => true # See ObjectType.all_variable
385
+ has_one :ordinal, :mandatory => true # See Ordinal.all_variable
386
+ one_to_one :projection, :class => Role # See Role.variable_as_projection
387
+ has_one :query, :mandatory => true # See Query.all_variable
388
+ has_one :role_name, :class => Name # See Name.all_variable_as_role_name
389
+ one_to_one :step, :counterpart => :objectification_variable # See Step.objectification_variable
390
+ has_one :subscript # See Subscript.all_variable
391
+ has_one :value # See Value.all_variable
392
+ end
393
+
394
+ class Vocabulary
395
+ identified_by :name
396
+ one_to_one :name, :mandatory => true # See Name.vocabulary
397
+ end
398
+
399
+ class Absorption < Mapping
400
+ has_one :child_role, :class => Role, :mandatory => true # See Role.all_absorption_as_child_role
401
+ maybe :flattens
402
+ has_one :index_role, :class => Role # See Role.all_absorption_as_index_role
403
+ has_one :parent_role, :class => Role, :mandatory => true # See Role.all_absorption_as_parent_role
404
+ end
405
+
406
+ class Aggregation
407
+ identified_by :aggregate, :aggregated_variable
408
+ has_one :aggregate, :mandatory => true # See Aggregate.all_aggregation
409
+ has_one :aggregated_variable, :class => Variable, :mandatory => true # See Variable.all_aggregation_as_aggregated_variable
410
+ has_one :variable, :mandatory => true # See Variable.all_aggregation
411
+ end
412
+
413
+ class Agreement
414
+ identified_by :context_note
415
+ one_to_one :context_note, :mandatory => true # See ContextNote.agreement
416
+ has_one :date # See Date.all_agreement
417
+ end
418
+
419
+ class Bound
420
+ identified_by :value, :is_inclusive
421
+ maybe :is_inclusive
422
+ has_one :value, :mandatory => true # See Value.all_bound
423
+ end
424
+
425
+ class Composite
426
+ identified_by :mapping
427
+ has_one :composition, :mandatory => true # See Composition.all_composite
428
+ one_to_one :mapping, :mandatory => true # See Mapping.composite
429
+ end
430
+
431
+ class ConstraintShape < Shape
432
+ has_one :constraint, :mandatory => true # See Constraint.all_constraint_shape
433
+ end
434
+
435
+ class ContextAccordingTo
436
+ identified_by :context_note, :agent
437
+ has_one :agent, :mandatory => true # See Agent.all_context_according_to
438
+ has_one :context_note, :mandatory => true # See ContextNote.all_context_according_to
439
+ has_one :date # See Date.all_context_according_to
440
+ end
441
+
442
+ class ContextAgreedBy
443
+ identified_by :agreement, :agent
444
+ has_one :agent, :mandatory => true # See Agent.all_context_agreed_by
445
+ has_one :agreement, :mandatory => true # See Agreement.all_context_agreed_by
446
+ end
447
+
448
+ class Derivation
449
+ identified_by :derived_unit, :base_unit
450
+ has_one :base_unit, :class => Unit, :mandatory => true # See Unit.all_derivation_as_base_unit
451
+ has_one :derived_unit, :class => Unit, :mandatory => true # See Unit.all_derivation_as_derived_unit
452
+ has_one :exponent # See Exponent.all_derivation
453
+ end
454
+
455
+ class Diagram
456
+ identified_by :vocabulary, :name
457
+ has_one :name, :mandatory => true # See Name.all_diagram
458
+ has_one :vocabulary, :mandatory => true # See Vocabulary.all_diagram
459
+ end
460
+
461
+ class DiscriminatedRole
462
+ identified_by :discriminator, :role
463
+ has_one :discriminator, :mandatory => true # See Discriminator.all_discriminated_role
464
+ has_one :role, :mandatory => true # See Role.all_discriminated_role
465
+ has_one :value, :mandatory => true # See Value.all_discriminated_role
466
+ end
467
+
468
+ class FactTypeShape < Shape
469
+ has_one :display_role_names_setting # See DisplayRoleNamesSetting.all_fact_type_shape
470
+ has_one :fact_type, :mandatory => true # See FactType.all_fact_type_shape
471
+ has_one :rotation_setting # See RotationSetting.all_fact_type_shape
472
+ end
473
+
474
+ class Injection < Mapping
475
+ end
476
+
477
+ class ModelNoteShape < Shape
478
+ has_one :context_note, :mandatory => true # See ContextNote.all_model_note_shape
479
+ end
480
+
481
+ class ORMDiagram < Diagram
482
+ end
483
+
484
+ class ObjectType
485
+ identified_by :vocabulary, :name
486
+ one_to_one :concept, :mandatory => true # See Concept.object_type
487
+ maybe :is_independent
488
+ has_one :name, :mandatory => true # See Name.all_object_type
489
+ has_one :pronoun # See Pronoun.all_object_type
490
+ has_one :vocabulary, :mandatory => true # See Vocabulary.all_object_type
491
+ end
492
+
493
+ class ObjectTypeShape < Shape
494
+ maybe :has_expanded_reference_mode
495
+ has_one :object_type, :mandatory => true # See ObjectType.all_object_type_shape
496
+ end
497
+
498
+ class ObjectifiedFactTypeNameShape < Shape
499
+ one_to_one :fact_type_shape, :mandatory => true # See FactTypeShape.objectified_fact_type_name_shape
500
+ end
501
+
502
+ class Play
503
+ identified_by :step, :role
504
+ has_one :role, :mandatory => true # See Role.all_play
505
+ has_one :step, :mandatory => true # See Step.all_play
506
+ has_one :variable, :mandatory => true # See Variable.all_play
507
+ maybe :is_input
508
+ end
509
+
510
+ class Population
511
+ identified_by :vocabulary, :name
512
+ one_to_one :concept, :mandatory => true # See Concept.population
513
+ has_one :name, :mandatory => true # See Name.all_population
514
+ has_one :vocabulary # See Vocabulary.all_population
515
+ end
516
+
517
+ class ReadingShape < Shape
518
+ one_to_one :fact_type_shape, :mandatory => true # See FactTypeShape.reading_shape
519
+ has_one :reading, :mandatory => true # See Reading.all_reading_shape
520
+ end
521
+
522
+ class RingConstraintShape < ConstraintShape
523
+ has_one :fact_type_shape, :mandatory => true # See FactTypeShape.all_ring_constraint_shape
524
+ end
525
+
526
+ class RoleDisplay
527
+ identified_by :fact_type_shape, :ordinal
528
+ has_one :fact_type_shape, :mandatory => true # See FactTypeShape.all_role_display
529
+ has_one :ordinal, :mandatory => true # See Ordinal.all_role_display
530
+ has_one :role, :mandatory => true # See Role.all_role_display
531
+ end
532
+
533
+ class RoleNameShape < Shape
534
+ one_to_one :role_display, :mandatory => true # See RoleDisplay.role_name_shape
535
+ end
536
+
537
+ class RoleRef
538
+ identified_by :role_sequence, :ordinal
539
+ has_one :ordinal, :mandatory => true # See Ordinal.all_role_ref
540
+ has_one :role, :mandatory => true # See Role.all_role_ref
541
+ has_one :role_sequence, :mandatory => true # See RoleSequence.all_role_ref
542
+ has_one :leading_adjective, :class => Adjective # See Adjective.all_role_ref_as_leading_adjective
543
+ one_to_one :play # See Play.role_ref
544
+ has_one :trailing_adjective, :class => Adjective # See Adjective.all_role_ref_as_trailing_adjective
545
+ end
546
+
547
+ class SetComparisonConstraint < SetConstraint
548
+ end
549
+
550
+ class SetComparisonRoles
551
+ identified_by :set_comparison_constraint, :ordinal
552
+ has_one :ordinal, :mandatory => true # See Ordinal.all_set_comparison_roles
553
+ has_one :role_sequence, :mandatory => true # See RoleSequence.all_set_comparison_roles
554
+ has_one :set_comparison_constraint, :mandatory => true # See SetComparisonConstraint.all_set_comparison_roles
555
+ end
556
+
557
+ class SetEqualityConstraint < SetComparisonConstraint
558
+ end
559
+
560
+ class SetExclusionConstraint < SetComparisonConstraint
561
+ maybe :is_mandatory
562
+ end
563
+
564
+ class ValueConstraintShape < ConstraintShape
565
+ has_one :object_type_shape # See ObjectTypeShape.all_value_constraint_shape
566
+ one_to_one :role_display # See RoleDisplay.value_constraint_shape
567
+ end
568
+
569
+ class ValueRange
570
+ identified_by :minimum_bound, :maximum_bound
571
+ has_one :maximum_bound, :class => Bound # See Bound.all_value_range_as_maximum_bound
572
+ has_one :minimum_bound, :class => Bound # See Bound.all_value_range_as_minimum_bound
573
+ end
574
+
575
+ class AllowedRange
576
+ identified_by :value_constraint, :value_range
577
+ has_one :value_constraint, :mandatory => true # See ValueConstraint.all_allowed_range
578
+ has_one :value_range, :mandatory => true # See ValueRange.all_allowed_range
579
+ end
580
+
581
+ class DomainObjectType < ObjectType
582
+ end
583
+
584
+ class EntityType < DomainObjectType
585
+ one_to_one :fact_type # See FactType.entity_type
586
+ end
587
+
588
+ class TypeInheritance < FactType
589
+ identified_by :subtype, :supertype
590
+ has_one :subtype, :class => EntityType, :mandatory => true # See EntityType.all_type_inheritance_as_subtype
591
+ has_one :supertype, :class => EntityType, :mandatory => true # See EntityType.all_type_inheritance_as_supertype
592
+ has_one :assimilation # See Assimilation.all_type_inheritance
593
+ maybe :provides_identification
594
+ end
595
+
596
+ class ValueType < DomainObjectType
597
+ has_one :length # See Length.all_value_type
598
+ has_one :scale # See Scale.all_value_type
599
+ has_one :supertype, :class => ValueType # See ValueType.all_value_type_as_supertype
600
+ has_one :transaction_phase # See TransactionPhase.all_value_type
601
+ has_one :unit # See Unit.all_value_type
602
+ one_to_one :value_constraint # See ValueConstraint.value_type
603
+ end
604
+
605
+ class ValueTypeParameter
606
+ identified_by :value_type, :name
607
+ has_one :name, :mandatory => true # See Name.all_value_type_parameter
608
+ has_one :value_type, :mandatory => true # See ValueType.all_value_type_parameter
609
+ has_one :facet_value_type, :class => ValueType, :mandatory => true # See ValueType.all_value_type_parameter_as_facet_value_type
610
+ end
611
+
612
+ class ValueTypeParameterRestriction
613
+ identified_by :value_type, :value_type_parameter
614
+ has_one :value_type, :mandatory => true # See ValueType.all_value_type_parameter_restriction
615
+ has_one :value_type_parameter, :mandatory => true # See ValueTypeParameter.all_value_type_parameter_restriction
616
+ has_one :value, :mandatory => true # See Value.all_value_type_parameter_restriction
617
+ end
618
+
619
+ class ImplicitBooleanValueType < ValueType
620
+ end
621
+
622
+ end
623
+ end