Class: SingleType

Inherits:
Object
  • Object
show all
Defined in:
lib/ObjectModel/Types/SingleType.rb

Class Method Summary collapse

Class Method Details

.delete_all_children(e, m) ⇒ Object



38
39
40
41
42
# File 'lib/ObjectModel/Types/SingleType.rb', line 38

def delete_all_children e, m						
	child = e.send m.name
	#			p [e.name, m.name, child]
	child.delete if child != nil
end

.delete_all_references_to(referrer, e, m) ⇒ Object



44
45
46
# File 'lib/ObjectModel/Types/SingleType.rb', line 44

def delete_all_references_to referrer, e, m			
	referrer.send m.name.to_writer, nil if referrer.send(m.name) == e
end

.delete_from_parent(e, parent, m) ⇒ Object



48
49
50
51
52
# File 'lib/ObjectModel/Types/SingleType.rb', line 48

def delete_from_parent e, parent, m
	if parent.send(m.name.to_reader) == e
		parent.send m.name.to_writer, nil
	end
end

.each(e, m, &b) ⇒ Object



54
55
56
57
# File 'lib/ObjectModel/Types/SingleType.rb', line 54

def each e, m, &b
	v = e.send m.name
	b.call v if v != nil
end

.initial_value(m, e) ⇒ Object



5
6
7
8
# File 'lib/ObjectModel/Types/SingleType.rb', line 5

def initial_value m, e
	nil
#			e.instance_variable_set m.ivname, nil
end

.initialize_copy(m, e, c) ⇒ Object



10
11
12
# File 'lib/ObjectModel/Types/SingleType.rb', line 10

def initialize_copy m, e, c
	c[m.ivname] = e.instance_variable_get(m.ivname)
end

.load(m, e, storage) ⇒ Object

Raises:



20
21
22
23
24
25
26
# File 'lib/ObjectModel/Types/SingleType.rb', line 20

def load m, e, storage					
	row = storage[:entities_content][:entity_id => e.entity_id, :name => m.name.to_s]
	raise LoadError unless row
	
	value = AnEntity::EntityType.load_id! row[:value], row[:class]
	e.instance_variable_set m.ivname, value				
end

.persist(c, entity_id, m, storage) ⇒ Object



28
29
30
31
32
33
34
35
36
# File 'lib/ObjectModel/Types/SingleType.rb', line 28

def persist c, entity_id, m, storage								
	value, klass = AnEntity::EntityType.dump_id! c[m.ivname]
	storage[:entities_content].insert(
																		:entity_id => entity_id, 
																		:name => m.name.to_s,
																		:value => value,
																		:class => klass
	)
end

.write_back(c, e, m) ⇒ Object



14
15
16
17
18
# File 'lib/ObjectModel/Types/SingleType.rb', line 14

def write_back c, e, m										
	value = c[m.ivname]
	value.should! :be_a, [NilClass, String]
	e.instance_variable_set m.ivname, value
end