Class: Lafcadio::Committer
- Inherits:
-
Object
- Object
- Lafcadio::Committer
- Defined in:
- lib/lafcadio/objectStore/Committer.rb
Overview
:nodoc:
Constant Summary collapse
- INSERT =
1
- UPDATE =
2
- DELETE =
3
Instance Attribute Summary collapse
-
#commitType ⇒ Object
readonly
Returns the value of attribute commitType.
-
#dbObject ⇒ Object
readonly
Returns the value of attribute dbObject.
Instance Method Summary collapse
- #execute ⇒ Object
- #getLastCommit ⇒ Object
-
#initialize(dbObject, dbBridge) ⇒ Committer
constructor
A new instance of Committer.
- #setCommitType ⇒ Object
Constructor Details
#initialize(dbObject, dbBridge) ⇒ Committer
Returns a new instance of Committer.
11 12 13 14 15 16 |
# File 'lib/lafcadio/objectStore/Committer.rb', line 11 def initialize(dbObject, dbBridge) @dbObject = dbObject @dbBridge = dbBridge @objectStore = Context.instance.getObjectStore @commitType = nil end |
Instance Attribute Details
#commitType ⇒ Object (readonly)
Returns the value of attribute commitType.
9 10 11 |
# File 'lib/lafcadio/objectStore/Committer.rb', line 9 def commitType @commitType end |
#dbObject ⇒ Object (readonly)
Returns the value of attribute dbObject.
9 10 11 |
# File 'lib/lafcadio/objectStore/Committer.rb', line 9 def dbObject @dbObject end |
Instance Method Details
#execute ⇒ Object
28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 |
# File 'lib/lafcadio/objectStore/Committer.rb', line 28 def execute setCommitType @dbObject.lastCommit = getLastCommit @dbObject.preCommitTrigger if @dbObject.delete dependentClasses = @dbObject.objectType.dependentClasses dependentClasses.keys.each { |aClass| field = dependentClasses[aClass] collection = @objectStore.getFiltered( aClass.name, @dbObject, field.name ) collection.each { |dependentObject| if field.deleteCascade dependentObject.delete = true else dependentObject.send( field.name + '=', nil ) end @objectStore.commit(dependentObject) } } end @dbBridge.commit @dbObject unless @dbObject.pkId @dbObject.pkId = @dbBridge.lastPkIdInserted end @dbObject.postCommitTrigger end |
#getLastCommit ⇒ Object
55 56 57 58 59 60 61 62 63 |
# File 'lib/lafcadio/objectStore/Committer.rb', line 55 def getLastCommit if @dbObject.delete DomainObject::COMMIT_DELETE elsif @dbObject.pkId DomainObject::COMMIT_EDIT else DomainObject::COMMIT_ADD end end |