Class: Mxrb::Model::DomainModel
- Inherits:
-
Unit
- Object
- Unit
- Mxrb::Model::DomainModel
show all
- Defined in:
- lib/mxrb/model/domain_model.rb
Overview
$Type: DomainModels$DomainModel
ContainmentName: "DomainModel"
Unlike entities/attributes, DomainModel IS its own Unit row.
Entities and Attributes are embedded inside the DomainModel BSON (not separate Unit rows).
Instance Attribute Summary collapse
Attributes inherited from Unit
#bson_type, #container_id, #containment_name, #id, #mpr
Instance Method Summary
collapse
Methods inherited from Unit
#initialize, #save!
Instance Attribute Details
#annotations ⇒ Object
Returns the value of attribute annotations.
14
15
16
|
# File 'lib/mxrb/model/domain_model.rb', line 14
def annotations
@annotations
end
|
#documentation ⇒ Object
Returns the value of attribute documentation.
14
15
16
|
# File 'lib/mxrb/model/domain_model.rb', line 14
def documentation
@documentation
end
|
Instance Method Details
#associations ⇒ Object
32
|
# File 'lib/mxrb/model/domain_model.rb', line 32
def associations = local_associations + cross_associations
|
#cross_associations ⇒ Object
31
|
# File 'lib/mxrb/model/domain_model.rb', line 31
def cross_associations = @cross_associations || []
|
#decode(doc) ⇒ Object
16
17
18
19
20
21
22
23
24
25
26
27
|
# File 'lib/mxrb/model/domain_model.rb', line 16
def decode(doc)
@documentation = doc["documentation"] || doc["Documentation"] || ""
@annotations = parse_array(doc["annotations"] || doc["Annotations"])
entity_docs = parse_array(doc["entities"] || doc["Entities"])
@entities = entity_docs.map { Entity.from_bson(_1, @id, @mpr) }
assoc_docs = parse_array(doc["associations"] || doc["Associations"])
@associations = assoc_docs.map { Association.from_bson(_1, @id, @mpr) }
cross_docs = parse_array(doc["crossAssociations"] || doc["CrossAssociations"])
@cross_associations = cross_docs.map { Association.from_bson(_1, @id, @mpr) }
end
|
#entities ⇒ Object
29
|
# File 'lib/mxrb/model/domain_model.rb', line 29
def entities = @entities || []
|
#inspect ⇒ Object
46
47
48
|
# File 'lib/mxrb/model/domain_model.rb', line 46
def inspect
"#<Mxrb::DomainModel entities=#{entities.size} associations=#{associations.size}>"
end
|
#local_associations ⇒ Object
30
|
# File 'lib/mxrb/model/domain_model.rb', line 30
def local_associations = @associations || []
|
#to_bson ⇒ Object
34
35
36
37
38
39
40
41
42
43
44
|
# File 'lib/mxrb/model/domain_model.rb', line 34
def to_bson
{
"$ID" => @id,
"$Type" => "DomainModels$DomainModel",
"entities" => IO::BsonCodec.build_array(@entities.map(&:to_bson)),
"associations" => IO::BsonCodec.build_array(local_associations.map(&:to_bson)),
"crossAssociations" => IO::BsonCodec.build_array(cross_associations.map(&:to_bson)),
"annotations" => IO::BsonCodec.build_array([]),
"documentation" => @documentation || "",
}
end
|