Module: ObjectModel::Entity::ClassMethods

Included in:
ObjectModel::Entity
Defined in:
lib/ObjectModel/AnEntity/entity_cm.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Instance Attribute Details

#self_metaObject

Returns the value of attribute self_meta.



4
5
6
# File 'lib/ObjectModel/AnEntity/entity_cm.rb', line 4

def self_meta
  @self_meta
end

Instance Method Details

#_define_attribute(m) ⇒ Object



10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
# File 'lib/ObjectModel/AnEntity/entity_cm.rb', line 10

def _define_attribute m		
	n = m.name
	script = %{\
def #{n}
	_single_attribute_get "@#{n}"
end				

def #{n}= value
	_single_attribute_set "@#{n}", :#{n}, value
end

def #{n}_get
	@#{n}
end
}													
	class_eval script, __FILE__, __LINE__			
end

#_define_child(m) ⇒ Object



28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
# File 'lib/ObjectModel/AnEntity/entity_cm.rb', line 28

def _define_child m				
	n = m.name
	if m.type == Types::SingleType
		script = %{\
def #{n}
	_single_child_get "@#{n}"
end				

def #{n}= value
	_single_child_set "@#{n}", :#{n}, value
end

def #{n}_get
	return @#{n} ? @om_repository.by_id(@#{n}) : nil	
end
}								
		class_eval script, __FILE__, __LINE__			
	else
		class_eval{attr_reader n}
	end
end

#_define_reference(m) ⇒ Object



50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
# File 'lib/ObjectModel/AnEntity/entity_cm.rb', line 50

def _define_reference m
	n = m.name
	if m.type == Types::SingleType
		script = %{\
def #{n}
	_single_reference_get "@#{n}"
end				

def #{n}= value
	_single_reference_set "@#{n}", :#{n}, value
end

def #{n}_get
	return @#{n} ? @om_repository.by_id(@#{n}) : nil
end
}								
		class_eval script, __FILE__, __LINE__				
	else
		class_eval{attr_reader n}
	end
end

#metaObject



72
73
74
75
76
77
78
79
80
81
82
# File 'lib/ObjectModel/AnEntity/entity_cm.rb', line 72

def meta
	meta = ancestors.reverse.inject nil do |r, a| 
		if a.respond_to? :self_meta
			self_meta.should_not! :be_nil
			r ? a.self_meta.inherit(r) : a.self_meta
		else
			r
		end
	end			
	return meta
end

#metadata(&b) ⇒ Object



6
7
8
# File 'lib/ObjectModel/AnEntity/entity_cm.rb', line 6

def  &b
	Metadata::DSL.new self, &b
end

#new(eid = nil, entity_id = nil, original_new = nil) ⇒ Object



84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
# File 'lib/ObjectModel/AnEntity/entity_cm.rb', line 84

def new eid = nil, entity_id = nil, original_new = nil				
	e = super()
	if original_new == "original_new"
		return e 
	else
		original_new.should! :be_nil
	end
	
	tr = Thread.current[:om_transaction]			
	raise_without_self NoTransactionError, "", ObjectModel unless tr
	
	AnEntity::EntityType.initialize_new_entity e, eid, entity_id, tr								
	
	tr.new_entities[e.entity_id] = e 
	c = tr.copy_get! e
	c.new!
	
	tr.event_processor.fire_after e, :new
	
	return e
end